函 数 实验八 第24讲 2007.11.30 C程序设计 Main() { int x,y; X=10; y=x*x+1; Printf(“y=%d\n”,y); } 2007.11.30
知识点 自定义函数、函数应用。
教学重点与难点 重点:函数定义、函数调用。 难点:参数传递。
实验目的及要求 1.掌握C语言函数的定义方法、函数的声明及 函数的调用方法。 2. 了解主调函数和被调函数之间的参数传递 方式。 熟悉文件系统控件及其应用。
教学过程 ● 讲解实验目的及布置实验任务 ● 检查、指导与解答问题 ● 实验思考及讨论内容 ● 预习内容
1.写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。若是输出yes,否则输出no。 实验内容及要求 (第一部分)程序编写与分析调试 完成下列题目: 1.写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。若是输出yes,否则输出no。
2.利用自定义函数编写程序,求下面的式子: Y=1+1/2+1/3……+1/n
3.根据程序执行过程及运行结果,分析程序功能。 int function(int x, int y) { int z; z=x>y?x:y; return z; } main() { int a,b,m; scanf(“%d,%d”,&a,&b); m=function(a,b); printf(“m=%d\n”,m);
(第二部分)自编程序上机验证 验证作业
预习内容: 函数嵌套、递归调用
{ int j; for(j=2;j<=n-1;j++) if(n%j==0) return 0; return 1; } 实验题 1 参考程序 int sushu(int n) { int j; for(j=2;j<=n-1;j++) if(n%j==0) return 0; return 1; } main() { int a; scanf("%d",&a); if(sushu(a)==1) printf(〝Yes\n"); else printf(〝no\n"); }
{ int i; float s=1.0; for(i=2;i<=n;i++) s=s+1.0/n; return s; } 实验题 2 参考程序 float sum(int n) { int i; float s=1.0; for(i=2;i<=n;i++) s=s+1.0/n; return s; } main() { int a; float y; scanf("%d",&a); y=sum(a); printf(〝y=%f\n",y); }
实验自我分析 实验记录要求撰写如下内容: 班级、学号、姓名、实验次数、日期 实验题目。 完成情况。 能否对实验所以涉及的知识点掌握?有那些不足,将不足之处加以记录。 分析在掌握知识点方面存在问题的原因。 编制和调试程序出现的问题。如何解决出现的问题?对没有解决的问题将详细记录。
实验记录与自我分析 《C程序设计》 班 级 学号 姓名 实验日期 实验项目 完成情况 是否掌握本次实验所涉及的知识点? 有那些不足? 班 级 学号 姓名 实验日期 实验项目 完成情况 是否掌握本次实验所涉及的知识点? 有那些不足? 存在问题的原因? 编制和调试程序过程中出现的问题及如何解决的? 对有待解决的问题详细记录。 审 阅 注:若记载内容较多时,可另附页。
conver(array); printf(“转置数组是:\n”); for (i=0;i<N;i++) { for (j=0;j<N;j++) printf(“%5d”,array[i][j]); printf(“\n”); } 本例题用数组作为函数参数,大家要注意数组作为函数参 数时的用法。
2.写一函数,是给定的一个二位数组(3×3)转置,即行列互换。
字符串处理函数 char str[]={〝china\nbeijing〞}; puts(str); 1.Puts (字符数组) 输出结果:
char str[9] ; gets(str); 2. gets(字符数组) 作用:从键盘输入一个字符串到字符数组,并将得到的函数值作为字符数组的起始地址。 char str[9] ; gets(str);
char str1[]=〝computer〞; char str2[]=〝 c program〞; 3. strcat(字符数组1,字符数组2) 作用:将字符2连接到字符串1的后面,结果放在字符数组1中。 char str1[]=〝computer〞; char str2[]=〝 c program〞; Printf(〝%s〞,strcat(str1,str2)); 输出结果: computer c program
strcpy(str1,str2,2)是将str2的前两个字符复制到字符数组1中 作用:将字符串2复制到字符数组1中。 char str1[10]; char str2[]=〝china〞; strcpy(str1,str2)); strcpy(str1,str2,2)是将str2的前两个字符复制到字符数组1中
strcmp(〝ABCDEF〞,〝ABCXHK〞); 作用:将字符串比较。 strcmp(〝ABCDEF〞,〝ABCXHK〞); 停止比较 说明是:字符串2>字符串1) 该函数值是:相等时为0 大于时为 正整数 小于时为负整数
char str1[10]=〝china〞; 6. strlen(字符数组) 作用:测试字符串实际长度,不包括\0。 Printf(〝%d〞,strlen(str1)); 输出结果为:5
7. strlwr(字符串) 作用: 将字符串中的大写字母转换成小 写字母。 如: Printf(〝%s〞,strlwr(〝ABcdEf〞)); 则输出结果为:abcdef
8. strupr(字符串) 作用: 将字符串中的小写字母转换成大 写字母。 如: Printf(〝%s〞,strupr(〝ABcdEf〞)); 则输出结果为:ABCDEF