资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实验实验 7 和和实验实验 8 今天完成,主要是今天完成,主要是验证验证性性 实验实验,下次,下次实验实验开始做考开始做考试试系系统统 实验实验 7 函数函数实验实验 完成实验完成实验 1、2、3、5、6、8、9、11、12,其余选作,其余选作 一、一、 实验目的实验目的 (1) 理解函数定义的方法。 (2) 掌握函数实参与形参的对应关系,以及函数”参数传递”的方式。 (3) 掌握函数的嵌套调用和递归调用的方法; (4) 掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法。 二、二、 实验任务实验任务 1基本内容 【题目 1】以下程序是求 3 个数中的最大值,请完善程序并上机验证。 #include void main() int a,b,c,m; int max(int x,int y); /* 函数声明*/ printf(“input a,b,c=“); scanf(“%d,%d,%d“, m=max(max(a,b),c); printf(“最大值是:%dn“,m); int max(int x,int y) /*函数定义*/ int z; z=(xy)?x:y; return z; 【题目 2】程序填空:子函数中判断一个大于 1 的整数是否是素数,数据由主函数中 输入,并在主函数中显示结果。 #include void main() int number; int prime(int number); printf(“请输入一个正整数:n“); scanf(“%d“, if ( prime(number) ) printf(“n %d 是素数:“,number); else printf(“n %d 不是素数:“,number); int prime(int number) /*请注意区别 main 函数和 prime 函数中的 number 变量*/ int flag=1,n; for (n=2; flag=1 int f(int a, int b); p=f(i,i+=1); printf(“%dn“,p); int f(int a, int b) int c; if(ab) c=1; else if(a=b) c=0; else c=-1; return(c); 将程序中第 4 行语句:p=f(i,i+=1); 改为以下语句,比较程序结果: p=f(i+=1,i); 实践说明,函数的参数求值顺序是:从右向左:从右向左 【题目 4】编程在主函数中输入和输出字符串,在子函数中实现一个字符串按反序存 放。 【题目 5】用子函数计算 4 名学生的平均分。标注“error”处有错误,请改正。 #include #define N 4 float average(float array) /* 注意数据类型的一致 */ int i; float aver,sum=0; for (i=0;i void main() int a3=0,2,4,6,8,10,12,14,16,sum; int func(int a3); /*函数声明*/ sum=func(a); /*error*/ printf(“n sum=%dn“,sum); int func(int a3) /*error*/ int i,j,sum=0; for(i=0;i int fun1(int x, int y) int temp; if (x int a=4,b=6; int max(int a,int b) int c; c=ab?a:b; return c; void main() int a=9; printf(“%dn“,max(a,b); 【题目 12】以下是一个求 1-10 累加和的错误程序,请改正。 #include void main() int i,s; int sum(int j); for(i=1;i void convert(int n) int i; if (i=n/10)!=0) /*_*/ convert(i); putchar(n%10+0); /*_*/ void main() int number; printf(“n 输入整数:“); scanf(“%d“, printf(“n 输出字符是:“); if (number void main() int x=1,y=2, *p, *q; p= /* error*/ q= /* error*/ printf(“x=%d,y=%dn“,x,y); printf(“ printf(“p=%d,q=%dn“,p,q); printf(“p=%d,q=%dn“,*p,*q); 【题目 2】请预测程序的结果,并上机运行程序,验证结果。 #include void main() int a=1,3,5,7,9,11,13; int *p=a; printf(“1-%dn“,*p); printf(“2-%dn“,*(+p); printf(“3-%dn “,*+p); printf(“4-%dn “,*(p-); printf(“5-%dn “,*p-); printf(“6-%dn“,*p+); printf(“7-%dn“,+(*p); printf(“8-%dn“,(*p)+); p= printf(“9-%dn “,*p); printf(“10-%dn“,*(+p); p+; printf(“11-%dn “,*p); 【题目 3】请预测程序的结果,并上机运行程序,验证结果。 #include void main() int a6=1,2,3,4,5,6; int *p,i,s=1; p=a; for(i=0;i void main() char a=“abcdef“; char *b=“ABCDEF“; int i; for(i=0;i void main() int cle=0; char *p,s101; printf(“请输入一行字符:“); gets(s); p=s; while(*p!=0) if(*p=A) i=*p1; *p1=*p2;*p2=i; void main() int n1,n2; printf(“请输入两个整数:“); scanf(“%d%d“, swap( printf(“%d,%dn“,n1,n2); 【题目 7】程序功能:求两个数中的最大值。 要求:阅读以下程序,将空格处补充完整,并上机调试运行。 #include int * max(int *x,int *y) if(*x*y) return x; else return y; void main() int a,b; printf(“请输入两个整数 a,b:“); scanf(“%d,%d“, printf(“最大值是:%dn“, *max( 【题目 8】将数组 a 中的 10 个整数按相反顺序存放,完善程序。 #include #define N 10 void inv(int *x, int n) /*理解掌握本函数的算法*/ int t,i; for(i=0;i void main() int num10,i,dnum10,di; int *p; p=num; for(i=0;i int len(char *str) void main() char str1024; gets(str); printf(“%d“,len(str); 【题目 13】编写函数 convert,把字符串中的小写字母转换成大写字母。 要求:在 main 函数中输入字符串,并输出转换后的字符串。分析下面的代码,将省略 号的部分补充完整并上机验证。 #include void convert(char *p) void main() char str100; gets(str); convert(str); puts(str); 三、实验结果(用截图说明)三、实验结果(用截图说明) 四、调试心得(选作)四、调试心得(选作)
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号