✨博客主页: https://blog.csdn.net/m0_63815035?type=blog
💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识
📢博客专栏: https://blog.csdn.net/m0_63815035/category_11954877.html
📢欢迎点赞 👍 收藏 ⭐留言 📝
📢本文为学习笔记资料,如有侵权,请联系我删除,疏漏之处还请指正🙉
📢大厦之成,非一木之材也;大海之阔,非一流之归也✨
本文为《C语言程序设计(第4版)》是由苏小红、赵玲玲、孙志岗、王宇颖等编著,高等教育出版社于2019年8月出版的“十二五”普通高等教育本科国家级规划教材、国家级精品资源共享课和国家精品在线开放课程主讲教材、“高等学校本科计算机专业应用型人才培养研究”项目规划教材。该教材可作为高等学校各专业的C语言程序设计课程教材,也可作为从事计算机相关工作的科技人员、计算机爱好者及各类自学人员的参考书浙大版《C语言程序设计(第4版)》题目集,每次更新五题左右!!!如果有错误请指正
一、求m到n之和
本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数。
函数接口定义:
int sum( int m, int n );
其中m和n是用户传入的参数,保证有m<n。函数返回的是m~n之间所有整数的和。
裁判测试程序样例:
#include <stdio.h>int sum(int m, int n);int main()
{ int m, n;scanf("%d %d", &m, &n);printf("sum = %d\n", sum(m, n));return 0;
}/* 你的代码将被嵌在这里 */
输入样例:
-5 8
输出样例:
sum = 21
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
答案(代码)
#include <stdio.h>int sum(int m, int n);int main()
{ int m, n;scanf("%d %d", &m, &n);printf("sum = %d\n", sum(m, n));return 0;
}/* 你的代码将被嵌在这里 */int sum(int m,int n){int sum=0,i,temp; //用来存储值 printf("m=%d,n=%d",m,n);if(m>n){temp =m;m=n;n=temp; //交换变量 } for(i=m;i<=n;i++){sum+=i;} return sum;
}
二、练习5-2 找两个数中最大者
本题要求对两个整数a和b,输出其中较大的数。
函数接口定义:
int max( int a, int b );
其中a和b是用户传入的参数,函数返回的是两者中较大的数。
裁判测试程序样例:
#include <stdio.h>int max( int a, int b );int main()
{ int a, b;scanf("%d %d", &a, &b);printf("max = %d\n", max(a, b));return 0;
}/* 你的代码将被嵌在这里 */
输入样例:
-5 8
输出样例:
max = 8
代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
答案(代码)
#include <stdio.h>int max( int a, int b );int main()
{ int a, b;scanf("%d %d", &a, &b);printf("max = %d\n", max(a, b));return 0;
}
/* 你的代码将被嵌在这里 */
int max(int a,int b){if(a>b){return a;}else{return b;}
}
第三题(字符金字塔)
答案(代码)
#include <stdio.h>void CharPyramid( int n, char ch );int main()
{ int n;char ch;scanf("%d %c", &n, &ch); //n行数 ch样子 CharPyramid(n, ch); return 0;
}/* 请在这里填写答案 */void CharPyramid( int n, char ch){int i,j,k;for(i=1;i<=n;i++){for(j=1;j<=n-i;j++){printf(" ");}for(k=1;k<=i;k++){printf("%c ",ch);}printf("\n");}
}
四、符号函数
答案(代码)
#include <stdio.h>int sign( int x );int main()
{int x;scanf("%d", &x);printf("sign(%d) = %d\n", x, sign(x));return 0;
}/* 你的代码将被嵌在这里 */
int sign(int x){if(x>0){return 1;}else if(x==0){return 0;}else {return -1;}
}
五、使用函数求奇数和
答案(代码)
#include <stdio.h>#define MAXN 10int even( int n );
int OddSum( int List[], int N );int main()
{ int List[MAXN], N, i;scanf("%d", &N);printf("Sum of ( ");for ( i=0; i<N; i++ ) {scanf("%d", &List[i]);if ( even(List[i])==0 )printf("%d ", List[i]);}printf(") = %d\n", OddSum(List, N));return 0;
}/* 你的代码将被嵌在这里 */
int even(int n){if(n%2==0){return 1;}else{return 0;}
}
int OddSum( int List[], int N ){int i,sum=0;for(i=0;i<=N;i++){if(List[i]%2!=0){sum+=List[i];}}return sum;
}
扩展(学习技巧)
学习C语言需要系统化的计划和有效的学习技巧,以便真正掌握这门底层强大的编程语言。以下是一些学习C语言的实用技巧,适用于从入门到进阶的学习过程。
1. 打牢基础,循序渐进
- 掌握基本语法:从变量、数据类型、运算符、条件语句、循环等基础语法入手,确保理解每一个基本概念。
- 记住常见关键字:学习C语言中的关键字(如
int
、if
、while
等),并掌握它们的使用方法和规则。 - 实践为王:每学习一个概念,尽量动手写简单的代码来加深理解,如用
for
循环输出一个表格等小练习。
2. 多练习代码,培养编码思维
- 编码能力来自于实践:多写小程序,例如计算器、简单排序、查找算法等。这种方式可以帮助你熟悉语法、逻辑和调试。
- 利用在线练习平台:如LeetCode、Codeforces等网站,专注于编程题目练习,可以提升算法和编程能力。
- 坚持每日编程:每天花一点时间编写和调试C代码,逐渐形成良好的编程习惯。
3. 深入理解指针
- 指针是C语言的核心:理解指针和内存地址是学好C语言的关键。学习指针的基本用法、指针与数组的关系、指针函数等。
- 动手实践:尝试自己用指针操作数组、字符串等复杂数据结构,掌握指针的灵活性和危险性。
- 避免常见错误:注意空指针和野指针的检查与处理,确保程序的稳定性和安全性。
4. 多看、多学、多模仿
- 阅读优秀的代码:阅读一些经典的开源项目代码,可以提高你的代码质量和对C语言的理解。
- 模仿优秀代码:模仿并理解如何组织代码结构、如何优化和管理内存等,可以帮助你提升自己的编程技巧。
- 反复调试和分析:对写过的代码进行调试,理解程序运行时的内存分配、变量的变化等细节。通过调试工具(如
gdb
)探索程序执行过程。
5. 掌握C标准库的使用
- 学习常用的标准库函数:如
<stdio.h>
中的printf
、scanf
,<string.h>
中的字符串处理函数,<stdlib.h>
中的动态内存分配函数。 - 深入理解每个函数的用法和参数:了解标准库函数的工作原理和常见的错误使用方式。
6. 学习数据结构与算法
- 掌握基础数据结构:如数组、链表、栈、队列、树等。
- 理解常用算法:如排序、搜索、递归等算法,并用C语言实现它们。
- 分析算法效率:理解时间复杂度和空间复杂度,优化代码性能。
7. 进行项目实战
- 动手实现小项目:从简单的文本编辑器、学生管理系统等小型项目入手,逐步构建自己的能力。
- 逐步增加复杂性:随着技能的提升,尝试实现更复杂的项目,涉及文件操作、内存管理和系统调用等高级特性。
8. 学会调试和查错
- 使用调试工具:学习使用
gdb
等调试工具,跟踪程序的执行流程,检查变量值和内存状态。 - 编写测试用例:通过编写测试用例来验证代码的正确性,确保不同输入条件下代码都能正常运行。
- 掌握常见的错误类型:如段错误、缓冲区溢出、内存泄漏等,避免重复犯错。
9. 学会阅读文档和参考资料
- 阅读官方文档:学习如何查阅C标准文档、手册页(如
man
命令)。 - 利用论坛和社区:在学习中遇到问题时,积极向论坛(如Stack Overflow)提问,与社区中的其他开发者交流经验。
10. 注重内存管理
- 理解内存分配与释放:掌握
malloc
、calloc
、free
等动态内存管理函数的用法。 - 避免内存泄漏:学会用工具如
valgrind
检测和修复内存泄漏问题。
11. 关注代码风格和规范
- 遵循代码风格:保持良好的代码格式和风格,使用适当的缩进、注释和命名规范。
- 编写易读和可维护的代码:代码不仅要实现功能,还需要易于阅读和维护。
12. 参与实际项目和开源社区
- 参与开源项目:通过贡献代码或修复bug,积累实战经验和与团队合作的能力。
- 利用版本控制工具:学习使用
git
等工具管理项目代码,掌握分支和版本管理。
结尾
学习C语言需要耐心、恒心和不断的练习。通过系统化地学习、解决问题、编写实际项目,你可以不断深化对C语言的理解,掌握它的核心技巧和精髓。
今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文