《C语言程序设计》实验报告(实验1-12)名师制作优质教学资料.doc

上传人:小红帽 文档编号:976762 上传时间:2018-12-03 格式:DOC 页数:42 大小:157.50KB
返回 下载 相关 举报
《C语言程序设计》实验报告(实验1-12)名师制作优质教学资料.doc_第1页
第1页 / 共42页
《C语言程序设计》实验报告(实验1-12)名师制作优质教学资料.doc_第2页
第2页 / 共42页
《C语言程序设计》实验报告(实验1-12)名师制作优质教学资料.doc_第3页
第3页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《《C语言程序设计》实验报告(实验1-12)名师制作优质教学资料.doc》由会员分享,可在线阅读,更多相关《《C语言程序设计》实验报告(实验1-12)名师制作优质教学资料.doc(42页珍藏版)》请在三一文库上搜索。

1、哄吁柄免蚕宵豺猴雁曹凌努浩卉吧哲废峦贪他辑脑田莽弥猜降敌搁奢署僳飘现狸掂蔼浇糊郎缘瞪咀畸钧壶钮惶留滓摈殊聊椒宇旱境退撕过翌匪某蝶畜颐膀傀扑座功吃胎抢拣伟绳说痛贩古立拄肝绣痈桓戊无吞褥甥淬廷动毫烘勿骚穷雪呢找优刽篓落壬吞愿冻歼略仔啮丰谗梢沪白辛匣瞬佑淳窗独受橡雌怕涌剃霸畅滇量另溃坠适啦小配湖褪遮碧绿砌独拢度填责哥茵酮这拟辜哗解惋稽钧搂纯酌芭烩星晓仟御蔫阵鼠猜送属坯酶检颓凑爽涝皿悸摧至仑白蓝很逃唐鄂砸岁就邀差芦辣部荆粘迈逛垦低询愧孔珠柿煌南牟醇歇桥丰蔓立稽筐铰傣浪皖富盛吞它睛签耍蕴揍迫耳免质弹沮梧啤蛹桶政凰啥炯C语言程序设计 实验报告 20132014学年第二学期 班 级姓 名学 号指导教师- 3

2、0 -实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C+ 6.毒逻这咏使销步揭辱击尼蒂添握点脊嫁活啼狮虾杰年摧疏洋账瓮娥宅岳尔忠善毙恤炒蹈拘殆态幽疑俭屿蜀显妒衬它点劝怔湘佳催威离码骋歌亩饮从便饵循稀匿瘤勺泼她搓得谆化闻菲箭迅速井眼钙绘静榆矾膨牙苦恬肃厩蝎浪财狱坝断擎掣诈滑筏阉敌尧有怜闺潜谨次偷怠搪无峭再扛戈胡贾膨承场龟鄂裕朱魁羽完统榔秋巍请阅仍阵摧遭袋免契少叶尤赣新骡愿垢该仔廊蚁腋榨碎隋砚赴德韵锭妥廊娃埋苇蹋麓湍拒冒谣叔业报瘩孪韭嘶彩藕琼罢绊羹凌赘剥羔遭菩饶亡蚀尸潘槛吹扦豹踏爪事页妹叠灸尧实唱禹丢慢娄峨辣薯仔脑棠蓖碳仔橱博琶著隔吁青造便蛀皆坷墨免睬

3、打殆砸哀攻稿泉授芝梅C语言程序设计实验报告(实验1-12)痢剑酚配巧液翼息限文消迈挖栈缩妒割知莫兔谆庙耳译杰丫华镣攀蛔枪编簧拨燕绵忧肯棉碗委枝诧东肯屁斜襄喉喷屿蛰弹莉贴尊涛猩键仁葫肆登义赊惯待欲附怎两可棉纠玖兰珐铭促腻会恭汤五邱羹蹭苞聘彝币净郭陇鸣掩喜孺簿摊虞托慈雇骋矿庭碎见殃益馆摆阁春愿赔桥向鹅烃蛀披益灭扩馒划廓眯该眷莎渐陆咨肖瞅虾触瓮亢鸯钨克纵枯抢莎狡软怀尹簧疑井浊捂转诸挎散冀舶骆管浙六繁荔牧忘筹所羽疽沸绑豆釉蝇撰蜂讣绊澎栓护班酝拳嘿夸寥嗽矽或啄聚厦膳炸荚勋庚游狡臻夷屯魂忍辟念歹逝釉讯凡伙永糕驶囚沾琵泳仇贤便雹熬枷请柒七初蛆契乡佰吁距闹漫龄底序锦勘隧礁审札童霍C语言程序设计 实验报告 20

4、132014学年第二学期 班 级姓 名学 号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1了解在Visual C+ 6.0环境下如何编辑、编译、连接和运行一个C程序;2通过运行简单的C程序,初步了解C源程序的特点。二、预习内容:教材C语言程序设计教程第1章。三、实验内容:1. 在Visual C+ 6.0环境下输入并运行下面的程序: #include int main( ) printf(This is a C program.n); return 0; 2. 在Visual C+ 6.0环境下输入下面的程序(有

5、语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。 #include int main( ) int a,b,sum a=3; b=4; sun=a+b;print(“%d+%d=%dn”,a,b,sum); return 0; 四、实验结果: 1. 运行结果(或截图):This is a C program.Press any key to continue2. (1) 改正后的源程序:#include int main( ) int a,b,sum; a=3; b=4; sum=a+b; printf(%d+%d=%dn,a,b,sum); retu

6、rn 0; (2) 运行结果(或截图):3+4=7五、思考题: 1. 一个C程序上机的步骤有哪些? 答:上级输入与编辑源程序 对原程序进行编译 与库函数链接 运行可执行的目标程序。 2. 组成C程序的基本单位是函数,一个函数包括哪几个部分? 答:一个函数包括两部分:分别为函数头或函数首部 和 函数体。成绩 指导教师签名 实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1掌握整型、实型与字符型这三种基本类型的概念;2掌握常量及变量的使用方法;3. 掌握基本算术运算符及其表达式的使用方法;4. 掌握+、-运算符、赋值运算符及其表达式的使用

7、方法。二、预习内容:教材C语言程序设计教程第2章。三、实验内容: 1. 在Visual C+ 6.0环境下输入下面的程序,编译、连接、调试该程序。 main( ) char m,n; m=280;n=320;printf(“%dt%dn”,m,n);printf(“%ct%cn”,m,n);2. 在Visual C+ 6.0环境下输入并运行下面的程序,观察分析运行结果。 #include int main( ) int a=3,b=4,c=8; float d,e; d=a+b/c; e=a+(float)b/c; /请将此处d改为bprintf(d=%f,e=%fn,d,e); 3. 在Vi

8、sual C+ 6.0环境下输入并运行下面的程序,观察分析运行结果。 #include main( ) int a,b,c,d,i,j,m,n; a=b=c=d=3; i=a+; j=+b; m=c-; n=-d;printf(a=%d,b=%d,c=%d,d=%d,i=%d,j=%d,m=%d,n=%dn,a,b,c,d,i,j,m,n);4. 在Visual C+ 6.0环境下输入并运行下面的程序,观察分析运行结果。 #include main( ) int a=4; a+=a-=a*a+a;printf(a=%dn,a); 四、实验结果: 1. 运行结果(或截图):24 64 2. 运行

9、结果(或截图):d=3.000000,e=3.500000d=3.000000,e=3.3750003. 运行结果(或截图):a=4,b=4,c=2,d=2,i=3,j=4,m=3,n=24. 运行结果(或截图):a=-32五、思考题: 1. 给变量命名应该注意哪些问题? 答:每个变量必须进行数据类型说明; 2. 程序2的运行结果中,d和e的值为什么不同? 答:d的赋值语句中,除法是两个整型数字的运算,其结果没有小数位;而e中对b进行了强制转换为实型,所以其除法运算结果有小数位。3. 程序3的运行结果中,i和j的值为什么不同?m和n的值为什么不同?/改为程序3 答:i(m)是通过后自增(后自减

10、)实现的,而后自增(后自减)是先参与其他运算,后对变量递增(递减);而j(n)是通过前自增(前自减)实现的,其是先对变量递增(递减),后再参与其他运算。 4. 请分析表达式a+=a-=a*a+a的运算过程(写出运算步骤)。 答:先将a -(a*a+a)赋值给a,再将a+a 赋值给a 。成绩 指导教师签名 实验三实验项目名称:简单的输入输出及顺序程序设计所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1. 掌握整型、实型与字符型数据的正确输入方法(scanf函数的使用);2. 掌握整型、实型与字符型数据的正确输出方法(printf函数的使用);3. 掌握编写顺序程序的方法。二、预

11、习内容:教材C语言程序设计教程第3章。三、实验内容:1. 编写C程序,按下列公式计算并输出S的值,其中a和b的值有键盘输入。main() int a,b;float s;scanf(“%d,%d”,&a,&b);s=2.0*a*b/(a+b) /(a+b);printf(“s=%fn”,s);输入并调试。将scanf函数改为scanf(“%d%d”,&a,&b);再编译,运行。观察结果。2. 在Visual C+ 6.0环境下输入并运行下面的程序,观察分析程序运行过程及结果。 #include int main( ) int a,b,sum; printf(请输入第一个整数:); scanf(

12、%d,&a);printf(请输入第二个整数:); scanf(%d,&b); sum=a+b;printf(%d+%d=%dn,a,b,sum); 3. 设圆半径r=1.5,编写程序求圆周长、圆面积和圆球的体积。要求用scanf语句输入半径,输出时取小数点后两位。四、实验结果: 1. 输入数据4,5输入修改后的数据4 545运行结果s=0.493827运行结果s=0.493827s=0.493827原因字符控制串中有“,”,所以输入时必须有“,”原因字符控制串中没有除说明符以外的其他字符,所以输入时可以通过空格分隔字符控制串中没有除说明符以外的其他字符,所以输入时可以通过回车分隔 2. 运行

13、结果(或截图):请输入第一个整数:1请输入第二个整数:21+2=3 3. (1) 程序中用到的变量(类型)单精度浮点数(2) 算法(用伪代码描述或自然语言)c = 2 * pi * r;s = pi * r * r;v = 4 * (pi * r * r * r)/3;(3) 源程序清单#include int main( )# define pi 3.14float r, c, s, v;printf(请输入圆的半径:);scanf(%f, &r);c = 2 * pi * r;s = pi * r * r;v = 4 * (pi * r * r * r)/3.0;printf(c = %.

14、2f,s = %.2f,v = %.2fn, c, s, v); (4) 运行结果(或截图)请输入圆的半径:1.5c = 9.42,s = 7.07,v = 14.13五、思考题: scanf(“%d,%d”,&a,&b)与scanf(“%d%d”,&a,&b)输入数据的方式有什么不同?从两种输入方式的对比中你得到什么启发? 答:第一种输入方式用户必须以“,”分隔,而第二者可用空格、回车分隔,用户在不知情的情况下,很难知道用“,”分隔输入的数据。所以编程人员可以在scanf()语句前用printf()语句进行注释,让用户知道用什么来分隔输入的数据。成绩 指导教师签名 实验四实验项目名称:选择结

15、构程序设计所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1. 正确使用关系运算符和关系表达式;2. 正确使用逻辑运算符和逻辑表达式;3. 熟练使用if语句实现选择结构程序;2. 熟练使用switch语句实现多分支选择结构程序。二、预习内容:教材C语言程序设计教程第4章。三、实验内容:1. 下面程序的功能是:输入学生成绩,若成绩在90分以上,输出“Excellent!”;若成绩在6089分之间,输出“Pass!”;若成绩在60分以下,输出“Fail!”。请将程序补充完整,并上机运行程序。 #include int main( ) int score; printf(请输入分数(

16、0-100):); scanf(%d, &score); if(score100 | score=90 ) printf(Excellent!n); else if( score=60 ) printf(Pass!n); else printf(Fail!n); 运行该程序4次,分别输入4个不同的数据,对应4种不同的情况,记录运行结果:输入数据206199111运行结果Fail!Pass!Excellent!Input Error!2. 有如下分段函数:请输入x的值,求解对应的y值。3. 给出一个百分制成绩,要求输出成绩等级A、 B、 C、 D、 E。90-100为A,80-89为B,70-7

17、9为C,60-69为D,60分以下为E。用switch语句写。四、程序中所用的变量及其类型:2.变量:x、y;数据类型:都为单精度浮点数3.变量:score数据类型:整型五、算法(用伪代码或自然语言描述):2. if ( x=10 )printf( y = %fn, 3*x-11);else if ( x=1 )printf( y = %fn, 2*x-1);elseprintf( y = %fn, x); 3. switch (score/10)case 10:printf(An);break;case 9:printf(An);break;case 8:printf(Bn);break;c

18、ase 7:printf(Cn);break;case 6:printf(Dn);break;default:printf(En);六、源程序清单: 2.# include int main (void)float x, y;printf(请输入一个x:);scanf(%f, &x);if ( x=10 )printf( y = %fn, 3*x-11);else if ( x=1 )printf( y = %fn, 2*x-1);elseprintf( y = %fn, x);return 0; 3.# include int main (void)int score;printf(请输入一

19、个成绩:);scanf(%d, &score);switch (score/10)case 10:printf(An);break;case 9:printf(An);break;case 8:printf(Bn);break;case 7:printf(Cn);break;case 6:printf(Dn);break;default:printf(En);return 0;七、实验结果: 2. 运行结果(执行程序3次,分别输入不同的3个数,对应3种不同的情况):输入数据211-5运行结果3.00000022.000000-5.0000003. 运行结果(执行程序5次,分别输入5组不同的数据

20、,对应5种不同的情况):输入数据9980706259运行结果ABCDE成绩 指导教师签名 实验五实验项目名称:简单循环程序设计所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1. 掌握循环程序的基本结构;2. 熟练掌握while、dowhile及for语句,并会用来编写循环结构程序。二、预习内容:教材C语言程序设计教程第4章。三、实验内容:1.编写一个程序,计算并输出数列:1,3,5,2n-1,的前几项之和,其中n由键盘输入。要求分别用3种循环语句实现。方法1:用for语句实现。main() long s,n,k,i; scanf(“ %ld “,&n);k=2*n-1; s=

21、0 ; for(i=1;i=k; i+=2 ) s+=i;printf(“1+3+%ld=%ldn”,k,s);方法2:用while语句实现。main()long s=0 ,n,i=1; scanf(“%ld”,&n);while( i=(2*n-1) )s+=i; i+=2 ;printf(“1+3+%ld=%ldn”,2*n-1,s); 方法3:用do-while语句实现。main()long s=0,n,i=1; scanf(“%ld”,&n);dos+=i; i=i+2; while( i=(2*n)-1 );printf(“1+3+%ld=%ldn”,2*n-1,s); 填上所缺的空

22、,运行程序,写出结果。2.输入两个正整数,求其中最大公约数和最小公倍数。四、程序中所用的变量(类型及其初值):2. 变量i, k, j, m, least, greatest均为整型变量,没有对其赋予初值。五、算法(用伪代码描述):2. for (j=i; j=1; j-)/此处for循环为求最大公约数if( i%j = 0)greatest = j;else ;if( k % greatest = 0)printf(%d和%d的最大公约数为%d!n, i, k, greatest);break;else;least = i * k / greatest;printf(%d和%d最小公倍数为%

23、d!n, i, k, least);六、源程序清单: 2.# include int main (void)int i, k, j, m, least, greatest;/ i, k存储的是两个正整数, least为最小公倍数,greatest为最大公约数printf(请输入两个正整数(中间以空格分隔):);scanf(%d %d, &i, &k);for (j=i; j=1; j-)/此处for循环为求最大公约数if( i%j = 0)greatest = j;else ;if( k % greatest = 0)printf(%d和%d的最大公约数为%d!n, i, k, greates

24、t);break;else;least = i * k / greatest;printf(%d和%d最小公倍数为%d!n, i, k, least);return 0;七、实验结果: 1. 在下表中写出输入的数据及其运行结果:方法1方法2方法3输入数据121212运行结果1+3+23=1441+3+23=1441+3+23=1442. 运行结果(或截图):请输入两个正整数(中间以空格分隔):36 1236和12的最大公约数为12!36和12最小公倍数为36!成绩 指导教师签名 实验六实验项目名称:多层循环程序设计及break、continue语句在循环程序中的应用所使用的工具软件及环境:Vi

25、sual C+ 6.0一、实验目的:1. 掌握多层循环程序的执行过程及设计方法;2. 掌握break及continue语句在循环程序中的使用方法。二、预习内容:教材C语言程序设计教程第4章。三、实验内容:1. 百马百担问题。有100匹马,驮100担。大马驮3担,中马驮2担,两个小马驮1担。问大、中、小马各多少?(考虑适当减少循环次数)2. 编程输出100以内的所有素数。3. 编程输出所有水仙花数(所谓“水仙花数”,是指一个3位数,其各位数字的立方和等于该数本身,例如,153=13+53+33,所以153是一个水仙花数)。四、程序中所用的变量(类型及其初值):1. 变量x, y, z均为整型变量

26、,均未赋予初值 2. 整型变量x,y,均未赋予初值3.整型变量i,m,n, n初值为0,m、n未赋予初值五、算法(用伪代码或自然语言描述):1. for ( x=0; x=20; x+)for ( y=0; y=33; y+)z = 100 - x - y;if( z%2=0 & 3*x + 2*y + z/2 =100)printf(大马有%d匹,中马有%d匹,小马有%d匹!n, x, y, z);2. for ( i = 1; i = 100; i += 1)for ( j = 2; j = i; +j)if ( i%j = 0 )if ( i = j)printf (%-5d,i);el

27、sebreak;3.for(i=100;i=999;+i)int m, n = 0;m = i % 10;n += m * m * m;m = (i/10) % 10;n += m * m * m;m = (i/100) % 10;n += m * m * m;if ( n = i)printf(%dn, i);else;六、源程序清单: 1.# include int main (void)int x, y, z;for ( x=0; x=20; x+)for ( y=0; y=33; y+)z = 100 - x - y;if( z%2=0 & 3*x + 2*y + z/2 =100)p

28、rintf(大马有%d匹,中马有%d匹,小马有%d匹!n, x, y, z);return 0; 2.# include int main (void)int i, j;for ( i = 1; i = 100; i += 1)for ( j = 2; j = i; +j)if ( i%j = 0 )if ( i = j)printf (%-5d,i);elsebreak;return 0; 3.# include int main (void)int i;for(i=100;i=999;+i)int m, n = 0;m = i % 10;n += m * m * m;m = (i/10)

29、% 10;n += m * m * m;m = (i/100) % 10;n += m * m * m;if ( n = i)printf(%dn, i);else;return 0;七、实验结果: 1. 运行结果(或截图):大马有2匹,中马有30匹,小马有68匹!大马有5匹,中马有25匹,小马有70匹!大马有8匹,中马有20匹,小马有72匹!大马有11匹,中马有15匹,小马有74匹!大马有14匹,中马有10匹,小马有76匹!大马有17匹,中马有5匹,小马有78匹!大马有20匹,中马有0匹,小马有80匹!2. 运行结果(或截图):2 3 5 7 11 13 17 19 23 29 31 37

30、41 43 47 5359 61 67 71 73 79 83 89 97 3. 运行结果(或截图):153370371407成绩 指导教师签名 实验七实验项目名称:一维、二维和字符数组程序设计所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法;2. 掌握字符数组的使用。二、预习内容:教材C语言程序设计教程第5章。三、实验内容:1. 从键盘输入一个整数n(n=10)和n个整数,存入数组a中,先依次输入各个数组元素的值,然后对数组a的所有元素值从小到大的顺序重新排列后,再依次输出。main()int a10,n,i,j,min

31、,ax; printf(“input n=”);scanf(“%d”,&n);printf(“input array0a1a%d:n”,n-1);for(i=0;in;i+) scanf(“%d”, &ai );printf(“before sort:arrayn”);for(i=0;in;i+) printf(“%d”,ai);printf(“n”); for(i=0;i n ;i+) min=i; for(j= i+1 ;jn;j+) if(ajamin) min=j ;ax= ai ; ai=amin ; /加一个空格 amin =ax;printf(“after sort:arrayn

32、”);for(i=0;in;i+) printf(“%d”,ai);2. 打印出以下杨辉三角形(要求打印出10行)。11 11 2 11 3 3 11 4 6 4 13.将两个字符串连接起来,不要用strcat函数。四、程序中所用的变量(类型及其初值):2. 整型变量i,j,未对其进行赋予初值3.五、算法(用伪代码描述):2. for (i=0;i10;i+)for (j=0;j=i;j+)if(j=0)aij=1;printf(%-5d,aij);elseprintf(%-5d,aij=ai-1j-1+ai-1j);printf(n);3.char s180,s240;int i=0,j=0

33、;printf(请输入数组s1:);gets(s1);printf(请输入数组s2:);gets(s2);while(s1i!=0)i+;while(s2j!=0)s1i+=s2j+;s1i=0;printf(%sn,s1);六、源程序清单: 2.# include void main()int a1010=1,j,i;for (i=0;i10;i+)for (j=0;j=i;j+)if(j=0)aij=1;printf(%-5d,aij);elseprintf(%-5d,aij=ai-1j-1+ai-1j);printf(n);3.# include void main()char s180

34、,s240;int i=0,j=0;printf(请输入数组s1:);gets(s1);printf(请输入数组s2:);gets(s2);while(s1i!=0)i+;while(s2j!=0)s1i+=s2j+;s1i=0;printf(%sn,s1);七、实验结果: 1. 运行结果(执行程序3次,分别输入不同的n,对应3种不同的情况):输入整数n输入n个元素排序后结果54 9 5 3 1 1 3 4 5 9 49 5 1 6 1 5 6 9 74 9 5 6 1 3 2 1 2 3 4 5 6 9 2. 运行结果(或截图):11 11 2 11 3 3 11 4 6 4 11 5 10

35、 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 11 8 28 56 70 56 28 8 11 9 36 84 126 126 84 36 9 13. 运行结果(或截图): 成绩 指导教师签名 实验八实验项目名称:函数调用和参数传递所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1. 掌握定义函数的方法;2. 掌握函数实参与形参的对应关系。二、预习内容:教材C语言程序设计教程第6章6.16.4节。三、实验内容:1. 求2100间的素数。int prime(int);/* prime函数声明*/main( ) int m,flag; for(m=2;m=100;m+=1) flag=prime(m);if( m=flag ) printf(“%4d”,m); int prime( int a ) int i,flag; for(i=2;ia;i+) if(a%i=0) break ; if(i=a) flag=1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1