C实验报告6参考答案_精品文档.doc
- 文档编号:211886
- 上传时间:2022-10-06
- 格式:DOC
- 页数:5
- 大小:35.50KB
C实验报告6参考答案_精品文档.doc
《C实验报告6参考答案_精品文档.doc》由会员分享,可在线阅读,更多相关《C实验报告6参考答案_精品文档.doc(5页珍藏版)》请在冰豆网上搜索。
《高级语言程序设计》实验报告
班级:
学号:
姓名:
成绩:
实验6数组程序设计
一、实验目的
1.掌握一维数组和二维数组的定义、赋值和输入输出的方法。
2.掌握字符数组和字符串函数的使用。
3.掌握与数组有关的算法。
二、实验内容
1.改错题(在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。
)
(1)下列程序的功能为:
为指定的数组输入10个数据,并求这些数据之和。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy6_1.c保存。
该程序的输出结果:
#include
voidmain()
{intn=10,i,sum=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\n",sum);
}
该程序的输出结果:
(2)下列程序的功能为:
将字符串b连接到字符串a。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy6_2.c保存。
#include
voidmain()
{chara[]="wel",b[]="come";chara[20]="wel",b[]="come";
inti,n=0;
while(!
a[n])n++;while(a[n]!
='\0')n++;
for(i=0;b[i]!
='\0';i++)
a[n+i]=b[i];
a[n+i]=’\0’;
printf("%s\n",a);
}
(3)下列程序的功能为:
找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。
也可能没有鞍点。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy6_3.c保存。
#include
#defineN4
#defineM4
main()
该程序的输出结果:
{
inti,j,k,flag1,flag2,a[N][M],max,maxj;
for(i=0;i for(j=0;j scanf("%d",&a[i][j]); flag2=0; for(i=0;i { max=a[j][0];max=a[i][0]; for(j=0;j if(a[i][j]>max)if(a[i][j]>=max) { max=a[i][j]; maxj=j; } for(k=0,flag1=1;k if(max>a[k][maxj]) flag1=0; if(flag1) { printf("\nThesaddlepointis: a[%d][%d]=%d\n",i,maxj,max); flag2=1; } } if(flag2)if(! flag2) printf("\nThereisnosaddlepointintheMatrix\n"); } 2.程序填空题 (1)以下程序的功能是: 采用二分法在给定的有序数组中查找用户输入的值,并显示查找结果。 补充完善程序,以实现其功能。 程序以文件名sy6_4.c保存。 #include"stdio.h" #defineN10 main() { inta[]={0,1,2,3,4,5,6,7,8,9},k; intlow=0,high=N-1,mid,find=0; printf("请输入欲查找的值: \n"); scanf("%d",&k); while(low<=high) { mid=(low+high)/2; if(a[mid]==k) { printf("找到位置为: %d\n",mid+1);find=1; } if(a[mid]>k) _high=mid-1; else _low=mid+1_____; } if(! finD.printf("%d未找到\n",k);` } (2)以下程序的功能是: 求3个字符串(每串不超过20个字符)中的最大者。 补充完善程序,以实现其功能。 程序以文件名sy6_5.c保存。 #include #include voidmain() { 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)strcpy(string,str[2]); puts(string); } (3)下列程序的功能为: 从键盘输入20个整数,统计非负数个数,并计算非负数之和。 补充完善程序,以实现其功能。 程序以文件名sy6_6.c保存。 #include main() {inti,a[20],sum=0,count; count=0; for(i=0;i<20;i++) scanf("%d",&a[i]); for(i=0;i<20;i++) {if(a[i]<0) continue; sum+=a[i]; count++; } printf("s=%d\tcount=%d\n",sum,count); } 3.编程题(写出程序运行结果) (1)从键盘输入10个数,用选择排序法将其按由大到小的顺序排序;然后在排好序的数列中插入一个数,使数列保持从大到小的顺序。 程序以文件名sy6_7.c存盘。 #defineN11 #include voidmain() {inta[N],i,j,k,t,p; printf("请输入%d个整数 : \n",N); for(i=0;i scanf("%d",&a[i]); for(i=0;i {k=i; for(j=i+1;j if(a[k]>a[j]) k=j; if(k! =i) {t=a[k];a[k]=a[i];a[i]=t;} } printf("\n排序后: \n"); for(i=0;i printf("%5d",a[i]); printf("\n请输入插入整数: "); scanf("%d",&p); j=9; while(j>=0&&a[j]>p)//找插入位置 {a[j+1]=a[j];j--;} a[j+1]=p;//插入 printf("\n插入后: \n"); for(i=0;i printf("%5d",a[i]); printf("\n"); } (2)从键盘输入两个矩阵A、B的值,求C=A+B。 程序以文件名sy6_8.c存盘。 #include voidmain() { inta[2][3],b[2][3],c[2][3],i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%d",&b[i][j]); for(i=0;i<2;i++) for(j=0;j<3;j++) c[i][j]=a[i][j]+b[i][j]; for(i=0;i<2;i++) {for(j=0;j<3;j++) printf("%3d",c[i][j]); printf("\n"); } } (3)从键盘输入一个字符串,删除其中某个字符。 如输入字符串“abcdefededff”,删除其中的字符e,则输出的字符串为“abcdfddff”。 程序以文件名sy6_9.c存盘。 //方法一: #include #include voidmain() { inti,j; chars[80],c; printf("输入一行字符: "); gets(s); printf("输入要删除字符: "); scanf("%c",&c); for(i=0,j=0;s[i]! ='\0';i++) if(s[i]! =c) s[j++]=s[i]; s[j]='\0'; puts(s); } //方法二: #include #include voidmain() {charline[80]; charch; inti,j; intlen; printf("输入一行字符: "); gets(line); printf("输入要删除字符: "); ch=getchar(); i=0; while(line[i]! ='\0') {while(line[i]! ='\0'&&line[i]! =ch)i++; len=strlen(line); for(j=i;j line[j]=line[j+1]; line[j]='\0'; } puts(line); } 5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告 参考答案 精品 文档
![提示](https://static.bdocx.com/images/bang_tan.gif)