CC语语言言程程序序设设计计实实验验指指导导书书桂林电子科技大学信息科技学院2017.03C语言程序设计实验指导书1前言上机实验的目的和要求一上机实验的目的上机实验的目的,绝不仅仅是为了验证教材和讲课的内容,或者验证自己所编程序正确与否。学习程序语言,上机实验的目的如下:1加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,通过多次上机,就能自然、熟练地掌握语法规定。2了解和熟悉C语言程序开发环境。熟悉一两种环境(计算机系统的软件和硬件条件),再遇到其他的系统时便会触类旁通,很快学会。3学会上机调试程序,也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能够正确地运行。要真正掌握计算机应用技术,就不仅应当了解和熟悉有关理论和方法,而且要求自己动手实践能力强。4在做实验时千万不要在程序通过后就认为万事大吉,完成任务了,应当在通过的程序上做一些调试和修改,看看会得到什么结果。多动脑筋思考,将会对你有很大帮助。二上机实验前的准备工作1了解所用的计算机系统的性能和使用方法;2复习和掌握与本实验有关的教学内容;3准备好上机所用的程序,切忌自己不思考、不编制程序或抄袭别人的程序;4准备好调试和运行时所需的数据。三上机实验的步骤1调出C语言编译系统,进入C语言工作环境;2输入自己编制好的程序;3检查输入是否有错,及时更正;4进行编译和连接;5运行程序,分析结果。四、实验结束,整理实验报告实验报告应包括以下内容:1上机题目;2程序清单;3运行结果;4对结果的分析和本次获得的经验和体会。C语言程序设计实验指导书2实验一C语言程序初步数据类型、运算符和表达式一实验目的1熟悉C语言运行环境——MicrosoftVisualC++6.0中文版。2掌握C语言程序的书写格式和C语言程序的结构,初步了解C源程序的特点。3掌握C语言上机步骤,了解如何编辑、编译、调试和运行一个C程序的方法。4掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对他们赋值的方法。5掌握不同的类型数据之间赋值的规律。二实验内容1C语言上机步骤⑴开机,启动MicrosoftVisualC++6。⑵建立工程文件:在“文件”菜单中选择“新建”命令项,在弹出的“新建”对话框的“工程”选项卡中选择“Win32ConsoleApplication”选项,在“工程”框中输入工程文件名sy1,在“c:位置”下拉框中输入或选择文件夹,单击“确定”;在以下弹出的两个对话框中分别单击命令按钮“完成”和“确定”。⑶建立C++源文件:在“工程”菜单中选择“添加到工程”—“新建”命令项,在弹出的“新建”对话框的“文件”选项卡中选择“C++SourceFile”,在右边的“文件”框中输入文件名sy11后单击“确定”。⑷输入源程序:在弹出的文件编辑窗口中输入下面的源程序:#includestdio.hvoidmain(){printf(Hello,World!\n);printf(WelcometotheClanguageworld!\n);printf(Everyonehasbeenwaitingfor.\n);}⑸编译:用“编译”菜单的“编译”命令项对源文件sy11.cpp进行编译,如果程序有语法或语义错误,在屏幕下面的窗口会出现错误信息;这时候要修改源程序、保存后重新编译。直到修改了全部错误,屏幕下面的窗口会出现下面的信息:C语言程序设计实验指导书3表示已通过编译,生成了目标程序sy11.obj。⑹调试:接下来进行调试,操作如下图所示。完成调试后,生成可执行程序文件sy1.exe。⑺运行:最后用“编译”菜单的“!执行sy1.exe”命令项运行可执行程序文件sy1.exe。运行结果如下:2用同样的方法,完成下面程序的运行1输入并运行下面的程序,运行后记录并分析结果。#includestdio.hmain(){charc1,c2;/*第2行*/c1=97;c2=98;/*第3行*/printf(%c%c\n,c1,c2);}在此基础上:⑴在程序最后增加一个语句,再运行,并分析结果。C语言程序设计实验指导书4printf(%d%d\n,c1,c2);⑵将第2行改为:intc1,c2;再次运行,并分析结果。⑶再将第3行改为:c1=305;c2=340;再使之运行,分析运行结果。2输入并运行下面的程序#includestdio.hmain(){charc1='a',c2='b',c3='c',c4='\101',c5='\116';printf(a%cb%c\tc%c\tabc\n,c1,c2,c3);printf(\t\t\b%c%c\n,c4,c5);}在上机前先用人工分析程序,写出应得结果,上机后将二者对照。三分析与讨论1下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败的原因。2总结C程序的结构和书写规则。四思考题1请写出C语言程序的构成和运行C语言程序的一般步骤。2编写一个C语言程序,输入a、b、c三个数,输出其中最大者。试想,如果求四个数中的最大者,则程序该如何编写。五注意事项1当程序在编译时发现很多错误,此时应从上到下逐一改正,或改一个错误,就重新再编译,因为有时一个错误会引起很多错误信息。2当需要用比较复杂的逻辑表达式时,要避免发生优先级上的错误,可以使用最高优先级的运算符()将其括起来,这样既增加可读性,又不会出现不必要的错误。C语言程序设计实验指导书5实验二顺序结构与输入/输出方法一实验目的1学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。2掌握C语言中赋值语句的使用。3掌握C语言中各种数据的输入/输出方法,能正确使用各种格式转换符。4理解C语言程序的顺序结构。二实验内容上机调通以下程序。1输入下面的程序#includestdio.hmain(){inti,j,m,n;i=8;j=10;m=++i;/*第5行*/n=j++;/*第6行*/printf(%d,%d,%d,%d\n,i,j,m,n);}运行程序,注意i、j、m、n各变量的值;然后分别作以下改动并运行:⑴将第5、6行改为如下以后再运行:m=i++;n=++j;⑵将程序改为:#includestdio.hmain(){inti,j;i=8;j=10;printf(%d,%d\n,i++,j++);/*第5行*/}⑶在⑵的基础上,将第5行printf语句改为:printf(%d,%d\n,++i,++j);⑷再将printf语句改为:C语言程序设计实验指导书6printf(%d,%d,%d,%d\n,i,j,i++,j++);⑸将程序改为:#includestdio.hmain(){inti,j,m=0,n=0;i=8;j=10;m+=i++;n-=--j;printf(i=%d,j=%d,m=%d,n=%d\n,i,j,m,n);}2运行以下程序,并分析其输出结果#includestdio.hmain(){shorti;i=-2;printf(\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n,i,i,i,i);}【注意】在VC++6.0中,short和int类型的数据在内存中占用4个字节。3按格式要求输入、输出数据。#includestdio.hmain(){inta,b;floatx,y;charc1,c2;scanf(a=%d,b=%d,&a,&b);scanf(%f,%e,&x,&y);scanf(%c%c%c,&c1,&c1,&c2);/*第8行*/printf(a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n,a,b,x,y,c1,c2);}运行该程序,按如下方式在键盘上输入数据:a=3,b=785,71.82aA请同学们写出输出的结果。C语言程序设计实验指导书7【思考】程序第8行中,为什么变量c1要输入两次?4运行以下程序,并分析其输出结果#includestdio.hmain(){floatf;f=3.1415;printf(\n%f,%4.3f,%5.3f,%-10.3f,%10.3f\n,f,f,f,f,f);}4运行以下程序,并分析其输出结果#includestdio.hmain(){inta,b;floatc,d;charc1,c2;a=61;b=62;c=31.5;d=-68.87;c1='a';c2='A';printf(\n);printf(a=%d,b=%d\n,a,b);printf(c=%f,d=%f\n,c,d);printf(c=%e,d=%e\n,c,d);printf(c1=%c,%c\n,c1,c2);}【注意】在VC++6.0中,实数的指数形式是:±X.XXXXXXe±XXX5以下程序的功能是从键盘输入一个整型数,一个实型数和一个字符型数,并把他们在屏幕上输出。完成以下填空,并把程序调通,写出当输入为45,34.5,A回车时程序的运行结果。#includestdio.hmain(){inta;floatb;charc;scanf(%d,%f,%c,);printf(a=\n,a);printf(b=\n,b);printf(c=\n,c);}6指出以下程序的错误并改正,并上机把程序调通。#includestdio.hmain()C语言程序设计实验指导书8{inta;scanf(%f,a);printf(a=%f,a);charc;c=A;printf(%f,c)}三思考题1编写程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数和printf函数输出这两个字符。并思考以下问题:⑴变量c1,c2应定义为字符型或整型?还是二者皆可?⑵要求输出c1和c2的ASCII码,应如何处理?用putchar函数还是printf函数?⑶整型变量和字符型变量是否在任何情况下都可以互相代替?2设圆半径r=2,圆柱高h=3,求圆周长,圆柱底面积,圆柱体积。用scanf输入数据,用printf输出计算结果,输出时要求有文字说明,取小数点后两位数字。C语言程序设计实验指导书9实验三逻辑运算和选择结构程序设计一实验目的1掌握C语言表示逻辑量的方法(0代表“假”,1代表“真”);2学会正确使用逻辑运算符和逻辑表达式;3熟练掌握if语句和switch语句。二实验内容1已知三个数a,b,c,找出最大值放在max中。#includestdio.hmain(){inta,b,c,max;printf(请输入3个整数(中间用逗号分开):);scanf(%d,%d,%d,&a,&b,&c);if(a=b)max=a;elsemax=b;if(cmax)max=c;printf(max=%d\n,max);}若输入下列数据,分析程序的执行顺序并写出输出结果。序号输入的3个整数a、b、c输出max11,2,321,3,232,1,342,3,153,1,263,2,12输入某学生的成绩,经处理后给出学生的等级,等级如下:90分以上(包括90):A80~90分(包括80):B70~80分(包括70):C60~70分(包括60):D60分以下:E方法一:用嵌套的if语句#includestdio.hmain()C语言程序设计实验指导书10{intscore;chargrade;printf(请输入学生成绩:);scanf(%d,&score);if(score100||score0)printf(\n输入成绩错误!\n);else{if(score=90)grade='A';elseif(score=80)grade='B';elseif(score=70)grade='C';elseif(score=60)grade='D';elsegrade='E';printf(\n成绩等级是%c\n,grade);}}输入测试数据,调试程序。测试数据要覆盖所有路径,注