您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > C语言实验报告参考答案
四川师范大学计算机科学学院《C语言程序设计》实验手册2010年2月1年级:专业:班级:姓名:学号:指导教师:2《C语言程序设计》实验课程简介课程名称:C语言程序设计实验课程性质:专业必修课课程属性:专业必修课学时学分:学时32学分1开课实验室:软件实验室面向专业:网络工程、软件工程、计算机科学与技术一、课程的任务和基本要求C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。二、实验项目【实验一】最简单的C程序---顺序程序设计【实验二】逻辑运算和判断选取控制【实验三】循环结构程序设计(一)【实验四】循环结构程序设计(二)【实验五】函数【实验六】数组(一)【实验七】数组(二)【实验八】指针【实验九】结构体、共用体和文件【实验十】C程序综合性实验三、有关说明1、与其它课程和教学环节的联系:先修课程:计算机文化后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程2、教材和主要参考书目:(1)教材:《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目:《C语言程序设计》谭浩强主编,清华大学出版社,2003年。3三、实验内容实验一最简单的C程序---顺序程序设计(验证性实验2学时)(一)、实验目的1.熟悉win-tc程序运行环境2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法3.掌握C语言中使用最多的一种语句——赋值语句4.掌握数据的输入输出方法,能正确使用各种格式控制符(二)、实验内容1.写出下列程序的运行结果(1)#includestdio.hvoidmain(){printf(“*****************\n”);printf(“Thisisacprogram.\n”);printf(“****************\n”);}运行结果及分析:运行结果为:Printf函数语句表示输出引号内的字符串,最后的\n表示换行,将程序中的\n去掉后,运行结果及分析:运行结果为:去掉\n后不换行连续显示(2)#includestdio.hvoidmain(){inta=100,b=20,sum,sb;sum=a+b;sb=a/b;printf(sum=%d,sb=%d,sum,sb);}运行结果及分析:sum=100+20=120;sb=100/20=5.(3)#includestdio.hvoidmain(){4charc1,c2;c1=97;c2=98;printf(%c,%c\n,c1,c2);printf(%d,%d\n,c1,c2);printf(%c%c\n,c1+1,c2+2);}运行结果及分析:运行结果为:声明c1,c2是字符型常量,第一个输出函数以字符格式输出c1,c2,97,98对应的是a,b的ASCII代码,所以输出的是“a,b”之后换行,第二个输出函数表示已十进制数形式输出c1,c2,故输出结果就是97.98,换行,第三个输出函数中表示以字符函数形式输出c1+1,c2+2,是b,d的ASCII代码值。(4)#includestdio.hvoidmain(){inti=8,j=10,m,n;m=++i;n=j++;printf(%d,%d,%d,%d,i,j,m,n);}运行结果及分析:运行结果为:m=++i,当++运算符在前面时,先自增再将值赋给了m。而++在后面时是先将值赋给了n再自增。再将本程序的第3行改为m=i++;n=++j;运行结果及分析:x/%分析同上2.程序填空任意输入一个有五位数字的正整数x,分别输出每一数位上的数字(由高到低分别用b5,b4,b3,b2,b1表示),请将程序补充完整。#includestdio.hmain(){intb1,b2,b3,b4,b5;①x;Scanf(“%ld”,&x);b5=②;b4=(x/1000)%10;b3=③;b2=(x/10)%10;b1=④;printf(“thenumberis⑤\n”,x);printf(“itsbitis:%d,%d,%d,%d,%d\n”,b5,b4,b3,b2,b1);5}程序分析:①longint②x/10000③(x/100)%10④x%10⑤%ld3.程序改错(注意:题中的编号为行序号,并非程序本身)计算任意一个半径为r的圆的面积和周长(结果保留两位小数)(1)#includestdio.h(2)main(){(3)floatr;p=3.14,c,area;(4)printf(“inputr:”);(5)scanf(“%f”,r);(6)c=2p*r;(7)area=p*r*r(8)printf(“c=%-7.2f,area=%-7.2f”,c,area);(9)}错误语句的行号:(3)改正后的语句全行:floatr,p=3.14,area;错误语句的行号:(5)改正后的语句全行:scanf(“%f”,&r);错误语句的行号:(6)改正后的语句全行:c=2*p*r;错误语句的行号:(7)改正后的语句全行:area=p*r*r;改错分析:6实验二逻辑运算和判断选取控制(验证性实验2学时)(一)、实验目的1.了解逻辑量在C语言中的表示方法2.学会使用逻辑运算符和逻辑表达式3.熟练掌握if语句和switch语句(二)、实验内容1.写出下列程序的运行结果(1)#includestdio.hvoidmain(){inta,b,x=10,y=9;a=(--x==y++)?--x:++y;b=y;printf(“%d,%d\n”,a,b);}运行结果及分析:运行结果为--x先自减=9=y,所以逻辑运算结果为1,故取值取--x=8,y只进行了一次自增运算,所以y=9.(2)#includestdio.hvoidmain(){inta=2,b=-1,c=2;If(ab)if(b0)c=0;elsec+=1;printf(“%d\n”,c);}运行结果及分析:运行结果为:由于第一个if选择的ab条件不成立故后面的语句统统不运行,所以c=2。(3)#includestdio.hvoidmain(){inta=0,b=0,c=0;if(++a0||++b0)++c;printf(“\na=%d,b=%d,c=%d”,a,b,c);}运行结果及分析:运行结果为:先判断++a0,故++b不再运算,条件成立,计算++c。故a=1,b=0,c=1。7(4)#includestdio.hvoidmain(){intx=-1;switch(x){default:printf(“a”);case1:printf(“b”);case2:printf(“c”);}}运行结果及分析:运行结果为:由于x=-1,所以运行default后面的语句,由于没有break语句,所以继续运行,所以三个语句都运行了。在case1:printf(“b”);后加上break;语句,结果如何?修改程序并上机调试。运行结果及分析:运行结果为:分析同上2.程序填空输入两个整数,从用户处获取这两个整数,显示其中较大的数,在其后跟随“islarger”。如果这两个数相等,显示“Thesenumbersareequal.”。请在_____内填入正确内容。#includestdio.hvoidmain(){inta,b;printf(“pleaseinputtwonumbers,a,b!“);scanf(“%d%d”,&a,&b);if(①)printf(“%dislarger”,a);elseif(_______②____________)printf(“Thesenumbersareequal”);else___________③_____________________;}填空①:ab填空②:a==b填空③:printf(“%dislarger”,b);结果分析:显示较大的数字83.编写程序(1)编写一个程序,读入5个整数,然后确定并显示这组数中的最大整数和最小整数。程序清单:#includestdio.hintmax(intx,inty,intz);intmin(intx,inty,intz);main(){inta,b,c,d,e,max1,min1;printf(Pleaseinputfiveintergers:\n);scanf(%d%d%d%d%d,&a,&b,&c,&d,&e);max1=max(a,b,c);max1=max(max1,d,e);min1=min(a,b,c);min1=min(min1,d,e);printf(Thesefivenumbersare:%d,%d,%d,%d,%d\n,a,b,c,d,e);printf(max=%d\nmin=%d,max1,min1);getch();}intmax(intx,inty,intz){intp;p=xy?x:y;p=pz?p:z;return(p);}intmin(intx,inty,intz){intp;p=xy?x:y;p=pz?p:z;return(p);}程序编写注意事项:9(2)编写程序,读取一个整数,判断并显示出这个整数是奇数还是偶数。(提示:使用求模运算符。偶数是2的倍数。任何2的倍数除以2时,余数均为零。)程序清单:#includestdio.hmain(){longinta;printf(Pleaseinputainteger:\n);scanf(%ld,&a);if(a%2==0)printf(\n\n%ld:Thisisanevennumber\n);elseprintf(\n\n%ld:Thisisaoddnumber\n);getch();}程序编写注意事项:(3)编写一个程序,从键盘中输入3个不同的整数,然后显示这3个整数的和、平均数、积、最小数和最大数。(用if语句)屏幕中的对话内容如下所示:程序清单:#includestdio.hintmax(intx,inty,intz);intmin(intx,inty,intz);main(){inta,b,c,max1,min1longintsum,pro;floataverage;printf(Pleaseinputthreediffrentintegers:);scanf(%d%d%d,&a,&b,&c);sum=a+b+c;average=sum/3;pro=a*b*c;max1=max(a,b,c);min1=min(a,b,c);printf(Sumis%ld\nAverageis%f\nProductis%ld\nSmallestis%d\nLargestis%d\n,sum,average,pro,min1,max1);getch();}Inputthreedifferentintegers:132714Sumis54Averageis18Productis4914Smallestis13Largestis2710intmax(intx,inty,intz){intp;p=xy?x:y;p=pz?p:z;return(p);}intmin(intx,inty,intz){intp;p=xy?x:y;p=pz?p:z;return(p);}程序编写注意事项:11实验三循环结构程序设计(一)(验证性实验2学时)(一)、实验目的1.熟悉用while语句、do-wile语句和for语句实现循环的方法2.掌握在程序设计中用循环方法实现的算法(二)、实验内容1.写出下列程序的运行结果(1)#incl
本文标题:C语言实验报告参考答案
链接地址:https://www.777doc.com/doc-2907943 .html