C实验报告6参考答案_第1页
C实验报告6参考答案_第2页
C实验报告6参考答案_第3页
C实验报告6参考答案_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.高级语言程序设计实验报告班级:学号:姓名:成绩:实验 6 数组程序设计一、实验目的1 掌握一维数组和二维数组的定义、赋值和输入输出的方法。2 掌握字符数组和字符串函数的使用。3 掌握与数组有关的算法。二、实验内容1改错题( 在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。)( 1)下列程序的功能为:为指定的数组输入 10 个数据,并求这些数据之和。纠正程序中存在的错误,以实现其功能。程序以文件名sy6_1.c 保存。#include<stdio.h>void main()该程序的输出结果:int n=10,i,sum=0;int an;int a 10;for(i=

2、0;i<10;i+)scanf("%d",ai);scanf("%d", &ai );sum=sum+ai;printf("sum=%dn",sum);( 2)下列程序的功能为:将字符串b 连接到字符串 a。纠正程序中存在的错误,以实现其功能。程序以文件名sy6_2.c 保存。#include<stdio.h>该程序的输出结果:void main( ) char a="wel",b="come"char a20 ="wel",b="come

3、"int i,n=0;while(!an) n+;while( an != '0' ) n+;for(i=0;bi!='0'i+)an+i=bi;an+i= 0;printf("%sn",a);( 3)下列程序的功能为:找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。纠正程序中存在的错误,以实现其功能。程序以文件名 sy6_3.c 保存。#include<stdio.h>#define N 4#define M 4main().int i,j,k,flag1,flag2,aNM,ma

4、x,maxj;该程序的输出结果:for (i=0;i<N;i+)for (j=0;j<M;j+)scanf("%d",&aij);flag2=0;for (i=0;i<N;i+)max=aj0;max=ai 0;for (j=0;j<M;j+)if (aij>max)if (aij >=max)max=aij;maxj=j;for (k=0,flag1=1;k<N&&flag1;k+)if (max>akmaxj)flag1=0;if (flag1)printf("nThe saddle po

5、int is:a%d%d=%dn",i,maxj,max);flag2=1;if ( flag2)if ( ! flag2)printf("nThere is no saddle point in the Matrixn");2程序填空题( 1)以下程序的功能是:采用二分法在给定的有序数组中查找用户输入的值,并显示查找结果。补充完善程序,以实现其功能。程序以文件名sy6_4.c 保存。#include "stdio.h"#define N 10main()int a =0,1,2,3,4,5,6,7,8,9,k;int low=0,high=N

6、-1,mid,find=0;printf(" 请输入欲查找的值:n");scanf("%d",&k);while (low<=high)mid=(low+high)/2;if(amid=k)printf(" 找到位置为:%dn",mid+1);find=1;if(amid>k)_ high=mid-1;else_ low=mid+1 _;.if(!finD. printf("%d未找到 n",k);(2)以下程序的功能是:求3 个字符串(每串不超过20 个字符)中的最大者。补充完善程序,以实现其

7、功能。程序以文件名sy6_5.c 保存。#include<stdio.h>#include<string.h>void main()char string20,str320;int i;for (i=0;i<3;i+)gets(stri);if ( strcmp(str0,str1)>0) strcpy(string,str0);else strcpy(string,str1);if (strcmp(string,str2)<0) strcpy(string,str2);puts(string);(3)下列程序的功能为:从键盘输入20 个整数, 统计非

8、负数个数,并计算非负数之和。补充完善程序,以实现其功能。程序以文件名sy6_6.c 保存。#include <stdio.h>main() int i,a20,sum=0,count;count=0;for(i=0;i<20;i+ )scanf("%d",&ai);for(i=0;i<20;i+) if(ai<0) continue;sum+=ai;count+;printf("s=%dt count=%dn",sum,count);3编程题 (写出程序运行结果)( 1)从键盘输入10 个数,用选择排序法将其按由大到

9、小的顺序排序;然后在排好序的数列中插入一个数,使数列保持从大到小的顺序。程序以文件名sy6_7.c 存盘。#define N 11#include<stdio.h>void main() int aN,i,j,k,t,p;printf(" 请输入 %d 个整数:n",N);for(i=0;i<N-1;i+)scanf("%d",&ai);for(i=0;i<N-2;i+)/选择排序 k=i;for(j=i+1;j<N-1;j+)if(ak>aj).k=j;if(k!=i) t=ak;ak=ai;ai=t;pri

10、ntf("n排序后 :n");for(i=0;i<N-1;i+)printf("%5d",ai);printf("n请输入插入整数:");scanf("%d",&p);j=9;while(j>=0 && aj>p)/ 找插入位置aj+1=aj;j-;aj+1=p;/ 插入printf("n插入后 :n");for(i=0;i<N;i+)printf("%5d",ai);printf("n");( 2)从键盘输

11、入两个矩阵A 、B 的值,求 C=A +B 。程序以文件名sy6_8.c 存盘。3574810A13B61316126#include <stdio.h>void main()int a23,b23,c23,i,j;for(i=0;i<2;i+)for(j=0;j<3; j+)scanf("%d",&aij);for(i=0;i<2;i+)for(j =0;j<3; j+)scanf("%d",&bij);for(i=0; i<2; i+)for(j =0;j<3; j+)cij=aij+b

12、ij;for( i=0;i<2;i+) for(j=0;j<3;j+) printf("%3d",cij);printf("n");( 3)从键盘输入一个字符串,删除其中某个字符。如输入字符串“abcdefededff”,删除其中的字符e,则输出的字符串为“abcdfddff ”。程序以文件名sy6_9.c 存盘。/方法一:#include<stdio.h>#include<string.h>void main()int i,j;.char s80,c;printf(" 输入一行字符:");gets(s);printf(" 输入要删除字符:");scanf("%c",&c);for(i=0,j=0;si!='0'i+)if (si!=c)sj+=si;sj='0'puts(s);/方法二:#include<stdio.h>#include<string.h>void main()char line80 ;char ch;int i,j;int len;printf(" 输入一行字符 :");gets(line) ;pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论