版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、广西科技大学实验报告 C语言程序设计 成绩GuangxiUniversity of Science and Technolog成绩C语言程序设计实验报告院 (系): 计算机学院 专 业: 通信工程 班 级: 通信132班学生姓名: 王睿 学 号: 201300402042 上 课 时 间:2013-2014(1) 指 导 老 师: 王智文 广西科技大学实验报告 C语言程序设计 实验一 C程序运行环境及简单程序的运行一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。(2)了解在该系统上如何编辑、编译、连接和运行一个C 程序。(3)通过运行简单的C 程序,初步了解C 程序的
2、特点。二、实验内容1.下列程序的功能为:计算x*y的值并将结果输出,程序中有8处错误,尝试改正并上机调试之(程序以文件名sy1_2.cpp存盘)。#include void main int x=2;y=3;aA=x*yprint (a=%d,a);printf(n);2.下列程序的功能为:输入圆的半径,计算圆面积并将结果输出;程序中有9处错误,尝试改正并上机调试之(程序以文件名sy1_3.cpp存盘)。#include stdio.h; int mian();float r; area; printf(input r:n); scanf(%f,r);area=3.14159r*r;print
3、f(r=%f , area=%fn,area);3.编写一个程序实现输入三个整数,显示出其中的最大值。三、实验分析与总结 总结程序的结构和书写规则。 阅读:附件A-在Visual C+环境下运行C程序的方法。特别提示:当程序在编译时发现很多错误,此时应从上到下逐一改正,或改一个错误,就重新再编译,因为有时一个错误会引起很多错误信息。四、相关实验程序列表1#include void main() int x=2,y=3,a;a=x*y;printf (a=%d,a);printf(n);2#include ; int main()float r, area; printf(input r:n);
4、 scanf(%f,r);area=3.14159*r*r;printf(r=%f , area=%fn,area);3#includeint main()int max(int x,int y,int z);int a,b,c,d;scanf(%d,%d,%d,&a,&b,&c);d=max(a,b,c);printf(max=%dn,d);return 0;int max(int x,int y,int z)int w;if(xy)w=x;else w=y;int q;if(wz)q=w;else q=z;return(q);五、实验心得通过这次学习,我学会了编辑、编译、连接和运行一个C
5、程序,初步了解了C 程序的特点,我感到很高兴,我会努力把基础学好。实验二基本数据类型、运算和表达式一、实验目的(1)掌握C 语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。(2)掌握不同的类型数据之间赋值的规律。(3) 学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+)和自减(-)运算符的使用。(4)进一步熟悉C 程序的编辑、编译、连接和运行的过程。二、实验内容1.变量定义,按要求完成程序下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。#include stdio.hmain(); /*定义整型变量a 和b*/; /
6、*定义实型变量i 和j*/a=5;b=6;i=3.14; j=i*a*b;printf(a=%d,b=%d,i=%f,j=%fn, a, b, i, j);具体操作步骤(1)将代码补充完整;(2)在VC+上运行通过并写出运行结果。2.在显示屏上显示指定字符要求编写一个程序,在显示屏上显示如下内容(全为半角字符,且不包含空格):C:ABC.TXT提示 注意转义字符在程序中的使用。3.赋值表达式与赋值语句,写出程序运行结果阅读下面程序,写出运行结果:#include stdio.hmain() float a;int b, c;char d, e;a=3.5;b=a;c=330;d=c;e=141
7、;printf(%f,%d,%d,%c,%c, a,b,c,d,e);运行结果为:提示赋值语句具有类型转换的功能,但可能会改变数据。4. 基本运算,写出程序运行结果阅读下面程序,写出运行结果:#include stdio.hmain() int a, b, c;float d=15, e, f;a=35%7;b=15/10;c=b+;e=15/10;f=d/10;printf(%d,%d,%d,%f,%f,%f, a,b,c,d,e,f);运行结果为:提示除法分整除与普通除法之分。三、实验分析与总结 总结如何定义程序的数据类型,运算符的优先级别,赋值表达式的作用。程序4中的b+改写为+b后的结
8、果会变化吗?四、相关实验程序列表1#include stdio.hint main()int a=5;int b=6;float i=3.14;float j=i*a*b;printf(a=%d,b=%d,i=%fn, a, b, i);printf(j=%fn,j);return 0;2#include stdio.hint main()printf(C:ABC.TXT);3#include stdio.hmain() float a;int b, c;char d, e;a=3.5;b=a;c=330;d=c;e=141;printf(%f,%d,%d,%c,%c, a,b,c,d,e);
9、4#include stdio.hmain() int a, b, c;float d=15, e, f;a=35%7;b=15/10;c=b+;e=15/10;f=d/10;printf(%d,%d,%d,%f,%f,%f, a,b,c,d,e,f);五、实验心得通过这次学习我学会了整型和实型的变量,以及对它们赋值的方法和使用C 的有关算术运算符,以及包含这些运算符的表达式,我会巩固所学到的知识,继续努力。实验三基本输入与输出一、实验目的(1)熟练掌握putchar、getchar、printf、scanf 函数的使用方法。(2)掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。二
10、、实验内容1.字符的输入与输出编程实现由键盘输入一个字符后,在屏幕上输出该字符。参考程序:#include stdio.hmain() char ch;ch = getchar();putchar(ch);2.加法计算编程实现由键盘输入一个加法式,输出正确的结果。(两个加数均为整数)。参考程序:#include stdio.hmain() int a, b;scanf(%d%*c%d, &a,&b);printf(%d, a+b);3.求圆的面积由键盘输入圆半径r,请计算该圆的面积。(注:取3.14159,结果保留两位小数位;另外,程序只要能对r 在0 到10000 范围的情况输出正确答案即可
11、)。参考程序:#include stdio.hmain() float area,r;scanf(%f,&r);area=3.14159*r*r;printf(%0.2f,area);运行结果为:4. 计算摄氏温度值从键盘输入一个华氏温度值,要求按格式输出其对应的摄氏温度值,精确到小数点后两位。数学公式描述为:参考程序:#includemain() float f,c;scanf(%f,&f);c=5.0/9*(f-32);printf(%.2f,c);运行结果为:三、实验分析与总结各实验运行结果及分析。 程序2中%*c的含义是什么?(3) 程序4中c=5.0/9*(f-32),为什么要用5.
12、0,如果改为5,运行结果将会是什么?四、相关实验程序列表1#include stdio.hint main() char ch;ch = getchar();putchar(ch);putchar(n);2#include stdio.hmain() int a, b;scanf(%d%*c%d, &a,&b);printf(%dn, a+b);3#include stdio.hmain() float area,r;scanf(%f,&r);area=3.14159*r*r;printf(%0.2fn,area);4#includemain() float f,c;scanf(%f,&f);
13、c=5.0/9*(f-32);printf(%.2fn,c);五、实验心得通过这次学习,我熟悉了putchar、getchar、printf、scanf 函数的使用方法以及各种类型数据的输入输出,能够正确使用各种格式转换符,我感受到了学习c语言的乐趣。实验四顺序结构程序设计一、实验目的(1)熟练掌握顺序结构程序设计的设计方法。(2)掌握各赋值语句的正确使用方法。(3)学习进一步调试程序。二、实验内容1.sizeof运算符的使用方法以下程序用于测试C中不同类型数据所占内存字节数,运行并体会sizeof运算符的使用方法。/sizeof运算的结果为一个int型的整数,表示其求解对象的存储所占的内存字
14、节数。#include void main()int a=1;printf(Size of char is %dn, sizeof(char); printf(Size of short is %dn, sizeof(short);printf(Size of int is %dn, sizeof(int);printf(Size of long is %dn, sizeof(long);printf(Size of float is %dn, sizeof(float);printf(Size of double is %dn, sizeof(double);printf(Size of b
15、ool is %dn, sizeof(bool);printf(n); printf(Size of a is %dn, sizeof(a);/变量的类型所占内存字节数printf(Size of 2.0*10 is %dn, sizeof(2.0*10);/表达式运算结果的类型所占字节数Size of char is 1Size of short is 2Size of int is 4Size of long is 4Size of float is 4Size of double is 8Size of bool is 1Size of a is 4Size of 2.0*10 is 8
16、size of Liu Dehua is 10Press any key to continueprintf(size of Liu Dehua is %dn, sizeof(Liu DehSize of char is 1Size of short is 2Size of int is 4Size of long is 4Size of float is 4Size of double is 8Size of bool is 1Size of a is 4Size of 2.0*10 is 8size of Liu Dehua is 10Press any key to continue参考
17、结果2.分析程序的输出结果阅读并分析以下程序的输出结果,上机调试,对比实际的输出与分析的结果是否一致。#include void main()char ch=65;int a=1234; long g=12345678;float f=123.456789; double d=9.87654321E5;printf(%d,%c,%5d,%3cn,ch,ch,ch,ch); printf(%08d,%0+8d,%8d,%o,%7x,%10ld,%ld n,a,a,a,a,g,g); printf(%010.3f,%-10.3f,%10.3f,%f,%e,%gn,f,f,f,f,f,f); pri
18、ntf(%0+15.5lf,%-15.5lf,%15.5lf,%lf,%len,d,d,d,d,d);printf(%10sn%20sn%-10.3sn%sn,Hello,world!,Hello,world!,Hello,world!,Hello,world!);参考结果65,A, 65, A65,A, 65, A00001234,+0001234, 1234,2322, bc614e, 12345678,2367460000123.457,123.457 , 123.457,123.456787,1.234568e+002,123.457+00987654.32100,987654.321
19、00 , 987654.32100,987654.321000,9.876543e+005Hello,world!Hello,world!HelHello,world!3.程序修改下列程序的功能为:按下列公式计算并输出x的值。其中a和b的值由键盘输入。 x=2ab/(a+b)2请纠正程序中存在的错误,使程序实现其功能。 #include void main() int a,b; float x; scanf(%d,%d,a,b);x=ab/(a+b)(a+b); printf(x=%dn,x);4. 编写与调试程序写一个程序测试一下把带小数的float和double型数据用printf函数输出
20、时,小数部分是截断还是四舍五入?三、实验分析与总结 各实验运行结果及分析。 程序1中Liu Dehua的sizeof的值为什么是10还不是9?四、相关实验程序列表1#include void main()int a=1;printf(Size of char is %dn, sizeof(char); printf(Size of short is %dn, sizeof(short);printf(Size of int is %dn, sizeof(int);printf(Size of long is %dn, sizeof(long);printf(Size of float is %
21、dn, sizeof(float);printf(Size of double is %dn, sizeof(double);printf(Size of bool is %dn, sizeof(bool);printf(n); printf(Size of a is %dn, sizeof(a);/变量的类型所占内存字节数printf(Size of 2.0*10 is %dn, sizeof(2.0*10);/表达式运算结果的类型所占字节数printf(size of Liu Dehua is %dn, sizeof(Liu Dehua);/字符串所占内存字节数2#include void
22、 main()char ch=65;int a=1234; long g=12345678;float f=123.456789; double d=9.87654321E5;printf(%d,%c,%5d,%3cn,ch,ch,ch,ch); printf(%08d,%0+8d,%8d,%o,%7x,%10ld,%ld n,a,a,a,a,g,g); printf(%010.3f,%-10.3f,%10.3f,%f,%e,%gn,f,f,f,f,f,f); printf(%0+15.5lf,%-15.5lf,%15.5lf,%lf,%len,d,d,d,d,d);printf(%10sn%
23、20sn%-10.3sn%sn,Hello,world!,Hello,world!,Hello,world!,Hello,world!);3#include void main() int a,b; float x; scanf(%d,%d,&a,&b); x=(float)a*b/(a+b)*(a+b); printf(x=%fn,x); 4#include int main()float a=1.5555555555;double b=1.5555555555;printf(%f,%fn,a,b);return 0;五、实验心得通过这次学习,我基本掌握了顺序结构程序设计的设计方法以及各赋值
24、语句的正确使用方法,我会努力熟悉他们以便更好地设计程序。实验五选择结构程序设计一、实验目的(1)了解C 语言表示逻辑的方法(以0 代表“假”,以非0 代表“真”)。(2)学会正确使用逻辑运算符和逻辑表达式。(3)熟练掌握if 语句和switch 语句。(4)结合程序掌握一些简单的算法。二、实验内容1.判断点是否在圆上由键盘输入一个点的坐标,要求编程判断这个点是否在单位圆上,点在圆上输出Y,不在圆上输出N。使用小数点后3位精度进行判断。提示(1)平面上的点与圆的关系分为在圆内、在圆上、在圆外三种,本题要求判断是否在圆上;(2)判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度(本题为0.
25、001)的方法实现。参考程序:#include stdio.h#include math.hmain() float a,b;scanf(%f,%f,&a,&b);if(fabs(a*a+b*b-1)99999999) place=9;else if(n9999999) place=8;else if(n999999) place=7;else if(n99999) place=6;else if(n9999) place=5;else if(n999) place=4;else if(n99) place=3;else if(n9) place=2;else place=1;printf(%
26、ldn,place);3.程序修改下列程序的功能为:输入1个字母后,输出该字母的前序字母、该字母、该字母的后序字母,例如:输入g,则输出fgh;输入a,则输出zab;输入M,则输出LMN;输入Z,则输出YZA。#include void main() char ch,c1,c2; printf(Enter a character:); ch=getchar(); if(ch=a)|(ch=A & a=Z) a=a+32;putchar(a);现在,题目要求处理5 个字符,怎么做呢?请自己思考5. 简单计算器下面程序是实现一个简单的运算器(保留两位小数点),如果由键盘输入10+50,计算机可以输
27、出结果60.00;如果输入86,计算机输出48.00;如果输入20/4,计算机输出5.00;如果输入8-6,计算机输出2.00,请在空处填上适当的代码,运行通过后并提交。#include stdio.hmain() float a,b,c;char op;scanf(%f%c%f, );switch (op) case +: ;case -:;case *:;case /: ;default: printf(error);return ;printf(result= , c);6. 编写与调试程序输入三角形的三边长a、b、c,求其面积三角形的面积公式为:Area=,其中S=(a+b+c)/2。
28、(要求判断边长值的合法性与三角形的可构成性)。参考程序:#include stdio.h#include math.h /数学函数库头文件void main()double a,b,c,s,area; printf (请输入三角形三边长:n);scanf(%lf,%lf,%lf,&a,&b,&c);if(a=0|b=0|cc & b+ca & a+cb) /任意两边之和对于第三边s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c); /double sqrt(double x):求平方根值printf(area=%lfn,area);elseprintf(不能构成
29、三角形!n);三、实验分析与总结 各实验运行结果及分析。 程序1中误差精度(设置为0.00001),怎样修改程序?程序4中要求反序输出大写字母,怎样修改程序?四、相关实验程序列表1#include stdio.h#include math.hmain() float a,b;scanf(%f,%f,&a,&b);if(fabs(a*a+b*b-1)1e-3)printf(Yn);else printf(Nn);2#include main() int n,place;scanf(%ld,&n);if(n99999999) place=9;else if(n9999999) place=8;el
30、se if(n999999) place=7;else if(n99999) place=6;else if(n9999) place=5;else if(n999) place=4;else if(n99) place=3;else if(n9) place=2;else place=1;switch(place)case 9:printf(%ldn);break;case 8:printf(%ldn);break;case 7:printf(%ldn);break;case 6:printf(%ldn);break;case 5:printf(%ldn);break;case 4:prin
31、tf(%ldn);break;case 3:printf(%ldn);break;case 2:printf(%ldn);break;case 1:printf(%ldn);break;default:(enter date error!n);3#include void main() char ch,c1,c2; printf(Enter a character:); ch=getchar(); if(ch=b)&(ch=B)&(ch=Y) c1=ch-1; c2=ch+1; else if(ch=A)|(ch=a) c1=ch+25;c2=ch+1; else if(ch=Z)|(ch=z
32、) c2=ch-25;c1=ch-1;else printf(reEnter a character:); putchar(c1); putchar(ch); putchar(c2); putchar(n);4#includemain()char a,b,c,d,e;scanf(%c%c%c%c%c,&a,&b,&c,&d,&e);if(a=Z & a=A) a=a+32;if(a=Z & a=A) a=a+32;if(a=Z & a=A) a=a+32;if(a=Z & a=A) a=a+32;if(a=Z & a=A) a=a+32;printf(%c%c%c%c%c,a,b,c,d,e)
33、;5#include stdio.hint main() float a,b,c;char op;scanf(%f%c%f,&a,&op,&b);switch (op) case +:c=a+b;break;case -:c=a-b;break;case *:c=a*b;break;case /:c=a/b;break;default: printf(error);break;printf(result=%.2f,c);6#include stdio.h#include math.h /数学函数库头文件void main()double a,b,c,s,area; printf (请输入三角形
34、三边长:n);scanf(%lf,%lf,%lf,&a,&b,&c);if(a=0|b=0|cc & b+ca & a+cb) /任意两边之和对于第三边s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c); /double sqrt(double x):求平方根值printf(area=%lfn,area);elseprintf(不能构成三角形!n);五、实验心得通过这次学习我了解C 语言表示逻辑的方法,学会了正确使用逻辑运算符和逻辑表达式,基本掌握了掌握if 语句和switch 语句,我会尽快熟悉它们,培养独立思考的能力。实验六循环结构程序设计(一)一、实验目的
35、(1)熟悉掌握用while 语句、do-while 语句和for 语句实现循环的方法。(2)掌握在程序设计中用循环实现一些常用算法(如穷举、迭代、递推等)。二、实验内容1.计算阶乘输入正整数n,计算n!,结果用长整型数表示(注n!=1*2*3*.*n)。参考程序:#includemain() long i,n=1,a;scanf(%ld,&a);for(i=1;i=a;i+) n=n*i;printf(%ldn,n);2.计算数列和有数列1,3,5,7,9,11,现要求由键盘输入n,计算输出该数列的前n 项和。参考程序:#includemain() long n,sum=0,i,t=1;sca
36、nf(%ld,&n);for(i=1;i=n;i+) sum=sum+t;t=t+2;printf(%ldn,sum);或#include main() long n,sum;scanf(%ld,&n);sum=n*n;printf(%ld,sum);3.累加一行字符中的数字由键盘输入一行字符(总字符个数从1个至100个均有可能,以回车符表示结束),将其中每个数字字符所代表的数值累加起来,输出结果。提示(1)可以使用下面程序段逐个读入键盘输入的一行字符char ch;while(ch=getchar()!=n)(2)数字字符转为对应的数值可用a=ch-0参考程序:#includemain()
37、char c;int s=0,a;while(c=getchar()!=n) if(c=0&c=9) a=c-48;s=s+a;printf(%d,s);4. 求最大公约数由键盘输入两个正整数m、n(m、n 用长整数表示),计算它们的最大公约数。提示公约数是既能整除m 又能整除n 的数,题目要求满足这一条件的最大的一个。参考程序:#includemain() long r,m,n,temp;scanf(%ld,%ld,&m,&n);while(m!=0) r=n%m;n=m;m=r;printf(%ldn,n);或#includemain() long m,n,t,i,s;scanf(%ld,
38、%ld,&m,&n);t=mn?n:m;for (i=t;i=1;i-) if (m%i=0&n%i=0) s=i; break; printf(%d,s);5. 计算数列和有数列:,编程实现,由键盘输入n,计算输出数列前n 项和。(结果保留四位小数)。参考程序:#includemain() int i,t,n;float a=2,b=1,s=0;scanf(%d,&n);for(i=1;i=n;i+) s=s+a/b;t=a;a=a+b;b=t;printf(%.4fn,s);6. 百万富翁一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划。该计划如下:我每天给你m 元,而你第一天只需
39、给我一分钱。第二天我仍给你m 元,你给我2 分钱。第三天,我仍给你m 元,你给我4分钱。依次类推,你每天给我的钱是前一天的两倍,直到一个月(38)天。百万富翁很高兴,欣然接受这个契约。现要求,编写一个程序,由键盘输入m,计算多少天后,百万富翁开始亏钱。参考程序:#include #include main() int n,m,i;scanf (%d,&m);for (i=1;i=0) break;printf(%d,i-1);三、实验分析与总结 各实验运行结果及分析。 程序2中将数列1,3,5,7,9,11,改为1,9,17,25,33,41,怎样修改程序? 程序5中自己换一个数列(如:),怎
40、样修改程序?四、相关实验程序列表1#includemain() long i,n=1,a;scanf(%ld,&a);for(i=1;i=a;i+) n=n*i;printf(%ldn,n);2#includemain() long n,sum=0,i,t=1;scanf(%ld,&n);for(i=1;i=n;i+) sum=sum+t;t=t+2;printf(%ldn,sum);#includemain() long n,sum=0,i,t=1;scanf(%ld,&n);for(i=1;i=n;i+) sum=sum+t;t=t+8;printf(%ldn,sum);3#include
41、main() char c;int s=0,a;while(c=getchar()!=n) if(c=0&c=9) a=c-48;s=s+a;printf(%d,s);4#includemain() long r,m,n,temp;scanf(%ld,%ld,&m,&n);while(m!=0) r=n%m;n=m;m=r;printf(%ldn,n);5#includemain() int i,t,n;float a=2,b=1,s=0;scanf(%d,&n);for(i=1;i=n;i+) s=s+a/b;t=a;a=a+b;b=t;printf(%.4fn,s);修改#includem
42、ain()int sign=1;int i,n;float a=1,b=1,s=0,pi=0;scanf(%d,&n);for(i=1;i=n;i+)pi=pi+s;s=s+a/b;b=b+3;s=s*(-sign);printf(%.4fn,s);6#include #include main() int n,m,i;scanf (%d,&m);for (i=1;i=0) break;printf(%d,i-1);五、实验心得通过这次学习我掌握了用while 语句、do-while 语句和for 语句实现循环的方法以及在程序设计中用循环实现一些常用算法,我感受到了算法在程序设计中的重要性。实
43、验七循环结构程序设计(二)一、实验目的(1)进一步熟悉掌握用while 语句、do-while 语句和for 语句实现循环的方法。(2)掌握在程序设计中使用多重循环。二、实验内容1.打印菱形由键盘输入正数n,要求输出2*n+1 行的菱形图案。要求菱形左边紧靠屏幕左边。*参考程序:#include stdio.h#include math.hmain() int n,i,j,k;scanf(%d,&n);for(i=1;i=2*n+1;i+) k=abs(n+1-i);for(j=1;j=k;j+) printf( );for(j=1;j=2*n+1-2*k;j+) printf(*);prin
44、tf(n);2.找出满足要求的数字输出1 到9999 中能被7 整除,而且至少有一位数字是5 的所有数字。输出时一行一个数字,且按由小到大的顺序输出。提示判断一个数中是否有数字5,首先要掌握拆数字的方法,一种可行算法如下:一个整数a,使用a%10,可以得到a 的个位数,然后使用a=a/10,可以将a 中的个位数字除去,上述过程重复则可以得到原数a 中其它位上的数字。参考程序:#include stdio.hmain() int i, j;for(i=7; i=9999; i=i+7) j=i;while(j!=0) if(j%10=5) break;j=j/10;if(j!=0) printf
45、(%dn, i);3.求水仙花数输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。如:153=13+53+33。三、实验分析与总结 各实验运行结果及分析。四、相关实验程序列表1#include stdio.h#include math.hmain() int n,i,j,k;scanf(%d,&n);for(i=1;i=2*n+1;i+) k=abs(n+1-i);for(j=1;j=k;j+) printf( );for(j=1;j=2*n+1-2*k;j+) printf(*);printf(n);2#include stdio.hmain() int
46、 i, j;for(i=7; i=9999; i=i+7) j=i;while(j!=0) if(j%10=5) break;j=j/10;if(j!=0) printf(%dn, i);3#include void main() int i,j,k,n; printf(water flower numbles is;); for (n=100;n1000;n+) i=n/100; j=(n-i*100)/10; k=n%10; if(n=i*i*i+j*j*j+k*k*k) printf(%dn,n); 五、实验心得通过这次学习我巩固了上次学到的用while 语句、do-while 语句和f
47、or 语句实现循环的方法,基本学会了在程序设计中使用多重循环。实验八 数 组一、实验目的(1)掌握一维数组和二维数组的定义、赋值和输入输出方法。(2)掌握与数组有关的算法。(3)掌握字符数组和字符串函数的使用。二、实验内容1.倒序由键盘输入10 个整数,倒序输出。(数字间由一个空格分隔)。2.打印矩阵由键盘输入一个34 的矩阵,要求输出它的转置矩阵。参考程序:#includemain() int a34,b43,i,j;for(i=0;i3;i+)for(j=0;j4;j+) scanf(%d,&aij);bji=aij;for(i=0;i4;i+) for(j=0;j3;j+)printf(
48、%d ,bij);printf(n);3.冒泡排序由键盘输入10 个数,用“冒泡法”对10 个数从小到大排序,并按格式要求输出。代码如下,请填充完整。数字间由一个空格分隔。#incude stdio.hmain() int a10, i, j, t;for(i=0;i10;i+)scanf(%d,_) ;for( _) for(j=0;j_;j+)if (_)_for(i=0;i10;i+)printf(%d ,ai);参考程序:#includemain() int a10;int i,j,t;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i9;i+) for(j=
49、0;jaj+1) t=aj; aj=aj+1; aj+1=t; for(i=0;i10;i+)printf(%d ,ai);4.统计不同数字个数由键盘输入20 个整数,统计不同数字的个数。参考程序:#includestdio.hmain() int a20;int i,t,p=0;for(i=0;i20;i+) scanf(%d,&ai);for(t=0;t=0;i-) an1-1-i=si-0;gets(s);n2=strlen(s);for(i=n2-1;i=0;i-) bn2-1-i=si-0;if(n1n2) max=n1;else max=n2;for(i=0;i0) printf(
50、%d,cmax);for(i=max-1;i=0;i-)printf(%d,ci);三、实验分析与总结 各实验运行结果及分析。(2)程序1中改为n个数,怎样修改程序?四、相关实验程序列表1#includestdio.h#includemath.hmain() int a10;int i;for(i=0;i=0;i-)printf(%dn,ai);return 0;2#includemain() int a34,b43,i,j;for(i=0;i3;i+)for(j=0;j4;j+) scanf(%d,&aij);bji=aij;for(i=0;i4;i+) for(j=0;j3;j+)prin
51、tf(%d ,bij);printf(n);3#includemain() int a10;int i,j,t;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i9;i+) for(j=0;jaj+1) t=aj; aj=aj+1; aj+1=t; for(i=0;i10;i+)printf(%d ,ai);4#includestdio.hmain() int a20;int i,t,p=0;for(i=0;i20;i+) scanf(%d,&ai);for(t=0;t=0;i-) an1-1-i=si-0;gets(s);n2=strlen(s);for(i=n2-
52、1;i=0;i-) bn2-1-i=si-0;if(n1n2) max=n1;else max=n2;for(i=0;i0) printf(%d,cmax);for(i=max-1;i=0;i-)printf(%d,ci);五、实验心得通过这次学习我掌握了与数组有关的算法以及字符数组和字符串函数的使用。明白了一维二维数组的使用方法,我会继续努力。实验九字符数组的应用一、实验目的(1)掌握字符数组和字符串函数的使用。(2)掌握与字符串处理有关的算法。二、实验内容1.定义存贮字符串的字符数组#include string.hvoid main() char s80; /*定义字符数组s*/strc
53、py(s, abcdefghijklmn);printf(%s, s);2.字符串的输入与输出下面程序实现从键盘读入字符串,然后输出到屏幕,请填充必要的语句。#include stdio.hvoid main()char s50;printf(Whats your name?);gets(s); /*由键盘读入字符串*/printf(Your name is , );printf(%s, s); /*打印字符串*/3.字符串的合并从键盘输入3 个字符串(每个字符串以回车符做为结束标志),将3 个字符串以输入先后顺序合并到字符串s中,请填空使用程序完整。#include stdio.h#incl
54、ude string.hmain()char s100=;char a30;gets(a); strcat(s, a);gets(a); strcat(s, a);gets(a); strcat(s, a);/*可以写多行代码*/printf(%s, s);4.回文串读入一行字符串(不多于80 个字符,以回车结束),判断该字符串是否为回文串(即从左向右拼写与从右向左拼写是一样的),是输出Y,否则输出N。参考程序:#include stdio.h#include string.hmain() int i, len;char buf100;gets(buf);len = strlen(buf);f
55、or(i=0; i=len/2)printf(Y);elseprintf(N);5.寻找字符串由键盘输入两个字符串(假设第一个字符串必包含第二个字符串,如第一个字符串为ABCDEF,第二个为CDE,则CDE 包含在ABCDEF 中),现要求编程输出第二字符串在第一行字符串中出现的位置。(如果第二个字符串在第一个字符串中出现多次,则以最前出现的为准)提示方法1:建立双重循环,外层循环变量指示第一个串的查找起始位置,内层循环从起始位置开始判断第二个字符中是否出现在此处;方法2:使用字符串函数strstr()。参考程序:#include stdio.hmain() int i,j;char a80,
56、 b80;gets(a); gets(b);for(i=0;ai!=0;i+) for(j=0;bj!=0;j+)if(ai+j!=bj) break;if(bj=0) break;if (ai!=0) printf(%d,i+1);else printf(Not Found);三、实验分析与总结 各实验运行结果及分析。四、相关实验程序列表1#include stdio.hvoid main() char s80=a,b,c,d,e,f,g,h,i,g,k,l,m,n; /*定义字符数组s*/scanf(%s, abcdefghijklmn);printf(%s, s);2#include s
57、tdio.hvoid main()char s50;printf(Whats your name?);gets(s); /*由键盘读入字符串*/printf(Your name isn);printf(%s, s); /*打印字符串*/3#include stdio.h#include string.hmain()char s100=;char a30;gets(a); strcat(s, a);gets(a); strcat(s, a);gets(a); strcat(s, a);/*可以写多行代码*/printf(%s, s);4#include stdio.h#include strin
58、g.hmain() int i, len;char buf100;gets(buf);len = strlen(buf);for(i=0; i=len/2)printf(Y);elseprintf(N);5#include stdio.hmain() int i,j;char a80, b80;gets(a); gets(b);for(i=0;ai!=0;i+) for(j=0;bj!=0;j+)if(ai+j!=bj) break;if(bj=0) break;if (ai!=0) printf(%d,i+1);else printf(Not Found);五、实验心得通过这次学习我明白了字
59、符数组和字符串函数的使用以及字符串处理有关的算法。掌握了字符数组和字符串函数的使用。我会更加努力。实验十函数的基本应用一、实验目的(1)掌握定义函数的方法。(2)掌握函数实参与形参的对应关系,以及“值传递”的方式。(3)掌握函数的嵌套调用和递归调用的方法。(4)掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法。二、实验内容1.函数定义下面是使用辗转相除法,求最大公约数的程序,请补充完整程序中函数的定义与调用。#include stdio.hint f(int m, int n)int r;while (r=m%n)!=0)m=n;n=r;return n;main()int a, b
60、, n;scanf(%d%d, &a, &b);printf(%dn, f(a, b) );2.编写函数计算阶乘下面程序实现由键盘读入整数n,计算并输出n!,请补充完整计算阶乘的函数。#include stdio.hlong fanc(int a) long i,n=1;for(i=1;i=a;i+) n=n*i;return n;main() int n;scanf(%d, &n);printf(%ld, fanc(n);3.函数中的变量写出下面程序的运行结果:int f1(int x) static int z=3,y=0;y+;z+;return(x+y+z);main() int a=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度农村房产买卖合同(含农村土地整治权)
- 2025年度互联网兼职劳务合同规范指引3篇
- 二零二五年度无人驾驶内部股东股权转让合同范本3篇
- 2025年度高端台球室设备租赁与维护服务合同3篇
- 二零二五年度农村墓地墓区墓碑维修与加固服务合同
- 2025北京房屋出租合同
- 2025劳务人员合同范文
- 二零二五年度文化产业发展合伙合同协议2篇
- 二零二五年度农业科技成果转化农业购销合同3篇
- 2025年度农村土地流转与农业废弃物资源化利用服务合同
- GB/T 24183-2009金属材料制耳试验方法
- GB/T 1535-2017大豆油
- 植物细胞信号转导课件
- 第二章-地方理论-《旅游目的地管理》课件
- 河北省唐山市药品零售药店企业药房名单目录
- 水上运输大型构件安全交底
- 《保障农民工工资支付条例》口袋书课件
- 2020 新ACLS-PCSA课前自我测试-翻译版玉二医【复制】附有答案
- 危险化学品安全周知卡氧气
- DB13∕T 5517-2022 大田作物病虫草害防控关键期植保无人飞机作业技术规程
- 《编译原理》考试试习题及答案(汇总)
评论
0/150
提交评论