资源描述:
《C实验报告6参考答案.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《高级语言程序设计》实验报告班级:学号:姓名:成绩:实验6数组程序设计一、实验目的1.掌握一维数组和二维数组的定义、赋值和输入输出的方法。2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法。二、实验内容1.改错题(在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。)(1)下列程序的功能为:为指定的数组输入10个数据,并求这些数据之和。纠正程序中存在的错误,以实现其功能。程序以文件名sy6_1.c保存。该程序的输出结果:#includevoidmain(){intn=10,i,s
2、um=0;inta[n];inta[10];for(i=0;i<10;i++){scanf("%d",a[i]);scanf("%d",&a[i]);sum=sum+a[i];}printf("sum=%d",sum);}该程序的输出结果:(2)下列程序的功能为:将字符串b连接到字符串a。纠正程序中存在的错误,以实现其功能。程序以文件名sy6_2.c保存。#includevoidmain(){chara[]="wel",b[]="come";chara[20]="wel",b[]="come";
3、inti,n=0;while(!a[n])n++;while(a[n]!=' ')n++;for(i=0;b[i]!=' ';i++)a[n+i]=b[i];a[n+i]=’ ’;printf("%s",a);}(3)下列程序的功能为:找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。纠正程序中存在的错误,以实现其功能。程序以文件名sy6_3.c保存。#include#defineN4#defineM4main()5该程序的输出结果:{inti,j,k,
4、flag1,flag2,a[N][M],max,maxj;for(i=0;imax)if(a[i][j]>=max){max=a[i][j];maxj=j;}for(k=0,flag1=1;ka[k][maxj])flag1=0;if(fl
5、ag1){printf("Thesaddlepointis:a[%d][%d]=%d",i,maxj,max);flag2=1;}}if(flag2)if(!flag2)printf("ThereisnosaddlepointintheMatrix");}2.程序填空题(1)以下程序的功能是:采用二分法在给定的有序数组中查找用户输入的值,并显示查找结果。补充完善程序,以实现其功能。程序以文件名sy6_4.c保存。#include"stdio.h"#defineN10main(){inta[]={0,1
6、,2,3,4,5,6,7,8,9},k;intlow=0,high=N-1,mid,find=0;printf("请输入欲查找的值:");scanf("%d",&k);while(low<=high){mid=(low+high)/2;if(a[mid]==k){printf("找到位置为:%d",mid+1);find=1;}if(a[mid]>k)_high=mid-1;else_low=mid+1_____;}5if(!finD.printf("%d未找到",k);`}(2)以下程序的功能是:求3个
7、字符串(每串不超过20个字符)中的最大者。补充完善程序,以实现其功能。程序以文件名sy6_5.c保存。#include#includevoidmain(){charstring[20],str[3][20];inti;for(i=0;i<3;i++)gets(str[i]);if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);elsestrcpy(string,str[1]);if(strcmp(string,str[2])<0)st
8、rcpy(string,str[2]);puts(string);}(3)下列程序的功能为:从键盘输入20个整数,统计非负数个数,并计算非负数之和。补充完善程序,以实现其功能。程序以文件名sy6_6.c保存。#includemain(){inti,a[20],sum=0,count;count=0;for(i=0;i<20;i