资源描述:
《实验6 数组程序设计答案.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验6数组程序设计一、实验目的1.掌握一维数组和二维数组的定义、赋值和输入输出的方法。2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法。二、实验内容1.改错题(1)下列程序的功能为:为指定的数组输入10个数据,并求这些数据之和。纠正程序中存在的错误,以实现其功能。程序以文件名sy6_1.c保存。#include#includevoidmain(){intn=10,i,sum=0;inta[10];for(i=0;i<10;i++){scanf("%d",
2、&a[i]);sum=sum+a[i];}printf("sum=%d",sum);}voidmain(){intn=10,i,sum=0;#includevoidmain(){intn=10,i,sum=0;inta[10];for(i=0;i<10;i++){scanf("%d",&a[i]);sum=sum+a[i];}printf("sum=%d",sum);}#includevoidmain(){intn=10,i,sum=0;inta[10];f
3、or(i=0;i<10;i++){scanf("%d",&a[i]);sum=sum+a[i];}printf("sum=%d",sum);}inta[n];for(i=0;i<10;i++){scanf("%d",a[i]);sum=sum+a[i];}printf("sum=%d",sum);}(2)下列程序的功能为:将字符串b连接到字符串a。纠正程序中存在的错误,以实现其功能。程序以文件名sy6_2.c保存。#includevoidmain(){chara[10]="w
4、el",b[]="come";inti,n=0;while(a[n])n++;for(i=0;b[i]!=' ';i++)a[n+i]=b[i];printf("%s",a);}#includevoidmain(){chara[]="wel",b[]="come";inti,n=0;while(!a[n])n++;for(i=0;b[i]!=' ';i++)a[n+i]=b[i];a[n+i]=’ ’;printf("%s",a);}(3)下列程序的功能为:找出一个二维
5、数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。纠正程序中存在的错误,以实现其功能。程序以文件名sy6_3.c保存。#include#defineN4#defineM4main(){inti,j,k,flag1,flag2,a[N][M],max,maxj;for(i=0;i6、for(j=0;jmax)if(a[i][j]>=max){max=a[i][j];maxj=j;}for(k=0,flag1=1;ka[k][maxj])flag1=0;if(flag1){printf("Thesaddlepointis:a[%d][%d]=%d",i,maxj,max);flag2=1;}}if(!flag2)printf("ThereisnosaddlepointintheMatrix
7、");}2.程序填空题(1)以下程序的功能是:采用二分法在给定的有序数组中查找用户输入的值,并显示查找结果。补充完善程序,以实现其功能。程序以文件名sy6_4.c保存。#include"stdio.h"#defineN10main(){inta[]={0,1,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
8、[mid]==k){printf("找到位置为:%d",mid+1);find=1;}if(a[mid]>k)___high=mid-1;_;else___low=mid+1;_____;}if(!finD.printf("%d未找到",k);`}(2)以下程序的功能是:求3个字符串(每串不超过20个字符)中的最大者。补充完善程序,以实现其功能。程序以文件名sy6_5.c保存。#include#include