ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:19.03KB ,
资源ID:6501256      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6501256.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(湖北理工学院C语言实验四.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

湖北理工学院C语言实验四.docx

1、湖北理工学院C语言实验四实验四 数 组实验课程名:C语言程序设计专业班级: 学号: 姓名: 实验时间: 实验地点: K4-102 指导教师: 杨慧 一、实验目的和要求1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法;2. 掌握字符数组和字符串函数的使用;3. 掌握与数组有关的算法(特别是排序算法)。二、实验内容1. 调试下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。#include #define N 10void main( ) int i,aN,av;for(i=0;iN;i+) scanf(%d,ai);for(i

2、=0;iN;i+) printf(%d,ai); if(i%3=0) printf(n);for(i=0;i!=N;i+)av+=ai;printf(av=%fn,av);解答:(1) 源代码:#include void main( ) int i,n,a10; float avg; n = 10; for(i=0;in;i+) scanf(%d,&ai); for(i=0;in;i+) printf(%d ,ai); if(i+1)%3=0) printf(n); avg=0; for(i=0;in;i+) avg+=ai; avg/=10; printf(avg = %fn,avg);(2

3、) 运行结果:(3)运行结果分析:2. 下面程序是输入5个数据,然后求它们的和并输出结果。#include void main( )int i, a5, sum = 0; scanf(%d,%d,%d,%d,%d, a ); for (i = 0; i = 4; i +) sum += ai; printf(sum = %d n, sum);该程序中有哪些错误?如何修改?写出正确运行后的结果。解答:(1) 源代码:#include void main() int i, a5,sum = 0; scanf(%d %d %d %d %d,&a0,&a1,&a2,&a3,&a4); for(i=0;

4、i=4;i+) sum+=ai; printf(sum=%dn,sum);(2)运行结果: (3)运行结果分析:3. 有一个3行4列的距阵,现要求编程求出其中最大的那个元素的值,以及它所在的行号与列号。下面程序的初始说明和输出语句如下所示,请补充完成该程序。#include void main( ) int i, j, row, colum, max; static int a34 = 1,2,3,4, 9,8,7,6, -10,10,-5,2; printf( Max = %d, Row = %d, Colum = %d n, max, row, colum);解答:(1) 源代码:#inc

5、lude void main() int i, j, row=0, colum=0, max; int a34=1,2,3,4,9,8,7,6,-10,10,-5,2; max=a00; for(i=0;i=2;i+) for(j=0;jmax) max=aij; row=i; colum=j; printf(max=%d,row=%d,colum=%dn,max,row,colum);(2)运行结果: (3)运行结果分析:4. 数组中已存互不相同的10个整数,从键盘输入一个整数,输出与该值相同的数组元素下标。解答:(1) 源代码:#include void main( ) int i, x,

6、 a10=1,2,3,4,5,6,7,8,9,10; scanf(%d,&x); for ( i=0; i10; i+ ) if(x=ai) printf(%d,i); break; if(i=10) printf(not foundn); (2)运行结果: (3)运行结果分析:5. 编写程序,任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。解答:(1) 源代码:#include #define SIZE 20void main() printf(请输入10个整数:n); int aSIZE; int n=10,i,j,k,

7、b; for(i=0;in;i+) scanf(%d,&ai); for(i=0;in;i+) for(j=i+1;jn;j+) if(aiaj) b=ai; ai=aj; aj=b; printf(排序后的数为:n); for(i=0;in;i+) printf( %d ,ai); printf(n); printf(请输入要插入的一个数:n); int c; scanf(%d,&c); n=n+1; for(i=0;i=ai) for(j=n-1;ji;j-) aj=aj-1; ai=c; printf(插入后的数组为:n); for(k=0;kn;k+) printf( %d ,ak);

8、 printf(n); return; (2)运行结果: (3)运行结果分析:6. 输入十个互不相同的整数并存在数组中,找出最大元素,并删除。解答:#include int main() int a10; int i,k; for(i=0;i10;i+) scanf(%d,&ai); k=0; for(i=1;i10;i+) if(akai) k=i; for(i=k;i9;i+) ai=ai+1; for(i=0;i9;i+) printf(%4d,ai);(1)运行结果:(2)运行结果分析:7. 以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩

9、,用输入负数结束输入。请填空:#include void main( ) float x1000, sum=0.0, ave, a; int n=0, i; printf (Enter mark : n) ; scanf(%f, &a); while (a=0.0 & n1000) sum+= ; xn= ; n+; scanf(%f, &a); ave= ; printf (Output : n); printf (ave = %fn, ave); for (i=0; in; i+) if ( ) printf(%fn, xi);解答:(1) 源代码:#include void main(

10、) float x1000, sum=0.0, ave, a; int n=0, i; printf (Enter mark : n); scanf(%f, &a); while (a=0.0 & n1000) sum+=a ; xn=a ; n+; scanf(%f, &a); ave= sum/n ; printf (Output : n); printf (ave = %fn, ave); for (i=0; in; i+) if (xiave ) printf(%fn, xi); (2)运行结果: (3)运行结果分析:8. 综合编程题:打印如下杨辉三角形1 1 1 1 2 1 1 3

11、3 1 1 4 6 4 1 1 5 10 10 5 1 解答:(1) 源代码:#include void main() int i,j,a66; for(i=0;i6;i+) ai0=1; aii=1; for(i=2;i6;i+) for(j=1;j=i-1;j+) aij=ai-1j-1+ai-1j; for(i=0;i6;i+) for(j=0;j=i;j+) printf(%3d,aij); printf(n); (2)运行结果: (3)运行结果分析:9. 调试下列程序,使之具有如下功能:任意输入两个字符串(如:“abc 123”和“china”),并存放在a,b两个数组中。然后把较短

12、的字符串放在a数组,较长的字符串放在b数组。并输出。#include #include void main() char a10,b10; int c,d,k,ch; scanf(%s,&a); scanf(%s,&b); printf(a=%s,b=%sn,a,b); c=strlen(a); d=strlen(b); if(cd) for(k=0;kd;k+) ch=ak;ak=bk;bk=ch; printf(a=%sn,a); printf(b=%sn,b); 解答:(1) 源代码:#include#includevoid main() char a100,b100; char str

13、1100,str2100; scanf(%s%s,str1,str2); strcpy(a,strlen(str1)strlen(str2)?str1:str2); printf(a = %sn,a); printf(b = %sn,b);(2)运行结果: (3)运行结果分析:10. 阅读下面的程序,然后回答后面的问题:#include #include void main( ) char s180, s240; int i = 0, j = 0; printf( n Please input string1:); scanf(%s, s1); printf( n Please input s

14、tring2:); scanf(%s, s2); while (s1i!= 0 ) i+; while (s2j!= 0 ) s1i+=s2j +; s1i= 0; printf(n New string: %s, s1);编辑、运行该程序,然后分别输入Country 和side。请问:程序执行的结果是什么?该程序的功能是什么?解答:(1)源代码:(2)运行结果: (3)运行结果分析:11. 填空完成下面程序,使其功能是对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。程序如下:

15、#include void main ( ) char str1100,str2100; int i,s; printf(n Input string 1:n);gets(str1); printf(“n Input string 2:n”);gets(str2); i= (1) ; while(str1i=str2i)&(str1i!= (2) ) i+; s= (3) ; printf(%dn,s); 解答:(1) 源代码:#include void main ( ) char str1100,str2100; int i,s; printf(n Input string 1:n);get

16、s(str1); printf(n Input string 2:n);gets(str2); for(i=0;i+) if(str1i=str2i) continue; else break; s=str1i-str2i; printf(%dn,s); (2)运行结果: (3)运行结果分析:12. 填空完成下面程序,使其的功能是统计从终端输入字符中每个大写字母的个数。用#号作为输入结束标志。程序如下: #include #include void main ( ) int num26,i; char c; for (i=0;i26;i+) numi=0; while ( (1) != #)

17、/* 统计从终端输入的大写字母个数*/ if (isupper(c) numc-65 (2) ; for (i=0;i26;i+) /* 输出大写字母和该字母的个数*/ if (numi)printf(%c:%dn,i (3) ,numi); 解答:(1) 源代码:#include #include void main ( ) int num26,i; char c; for (i=0;i26;i+) numi=0; while ( c=getchar()!= #) if (isupper(c) numc-65+=1; for (i=0;i26;i+) if (numi) printf(%c:

18、%dn,i+65,numi);(2)运行结果: (3)运行结果分析:13. 编写程序,输入若干个字符串,求出每个字符串的长度,并打印最长一个字符串的内容。以“stop”作为输入的最后一个字符串。解答:(1) 源代码:#include #include void main( ) char a50100; int i=0,max=0,k; while (gets(ai)&strcmp(ai,stop) i+; if (strlen(ai)max) max=strlen(ai); k=i; printf(The longest string is:n%sn,ak); (2)运行结果: (3)运行结果

19、分析:14.编写程序,输入字符串s1和s2以及插入位置f,在字符串s1中的指定位置f处插入字符串s2。如:输入BEIJING、123和位置3,则输出:BEI123JING123。解答:(1) 源代码:#include #include #include char* insert(char *s1,char *s2,int f) char *s3,*p1=s1,*p2=s2; int i,j,k; j=strlen(s2); k=strlen(s1); s3=new charj+k+f+1; for(i=0;if;i+,p1+) s3i=*p1; for(i=f;if+j;i+,p2+) s3i

20、=*p2; for(i=f+j,p1=s1;ik+j+f;i+,p1+) s3i=*(p1+f); s3j+k+f=0; return s3; void main() char s120,s220,*p; int f; printf(Input: ); gets(s1); printf(Add: ); gets(s2); printf(At: ); scanf(%d,&f); p=insert(s1,s2,f); printf(The result is: %s,p); deletep; getch(); (2) 运行结果:三、结论(写本次实验的收获)通过本次试验,我掌握一维数组和二维数组的定义、赋值和输入输出的方法,字符数组和字符串函数的使用和掌握与数组有关的算法

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1