1实验一C语言的运行环境和运行过程实验目的:1.掌握c程序设计编程环境visualc++,掌握运行一个c程序设计的基本步骤,包括编辑、编译、连接和运行。2.掌握c语言程序设计的基本框架,能够编写简单的c程序。3.了解程序调试的思想,能找出并改正c程序中的语法错误。实验内容:1.在“我的电脑”上新建一个文件夹,用于存放c程序,文件夹名字可以是学号姓名。2.调试示例,在屏幕上显示一个短句“HelloWorld!”。源程序#includestdio.hvoidmain(){printf(“HelloWorld!\n”);}运行结果:HelloWorld!基本步骤:(要求熟练掌握)1)启动VC++“开始”-“程序”-“MicrosoftVisualStudio6.0”-“MicrosoftVisualC++6.0”进入VC++编程环境。2)新建文件(*.cpp)“文件”-“新建”,单击“文件”选项卡,选择“C++SourceFiles”,修改文件保存“目录”和“文件”(文件名),单击“确定”。3)编辑和保存(注意:源程序一定要在英文状态下输入,即字符标点都要在半角状态下,同时注意大小写,一般都用小写)在编辑窗口输入源程序,然后执行“文件”-“保存”或“文件”-“另存为”4)编译(*.obj)用来检查语法错误“编译”-“编译”或Ctrl+F7,在产生的工作区队话框中,选择“是”。5)连接(*.exe)“编译”-“构件”或F76)运行“编译”-“执行”或Ctrl+F57)关闭程序工作区“文件”-“关闭工作区”8)打开文件“文件”-“打开”9)查看C源文件、目标文件和可执行文件的存放位置。源文件在保存目录下,目标文件和可执行文件在“保存目录\Debug”中3.编程,在屏幕上显示一个短句“thisismyfirstcprogram.”。4.调试示例,在屏幕上显示一个短句“welcometoyou!”。源程序(有错误的程序)#includestdio.h2voidmian(){printf(WelcometoYou!\n”)}运行结果(改正后的运行结果)WelcometoYou!操作步骤:1)按照实验2中介绍的步骤1)~3)输入上述源程序并保存。2)编译,“编译”-“编译”(Ctrl+F7),信息窗口中显示编译出错信息,如下图所示。3)找出错误,在信息窗口中依次双击出错信息,编辑窗口就会出现一个箭头指向程序出错的位置,一般在箭头的当前行或上一行,可以找到出错语句。第4行,出错信息:Welcome是一个未定义的变量,但Welcome并不是变量,出错的原因是Welcome前少了一个双引号。4)改正错误,重新编译,得下如下图所示出错信息。3出错信息:“}”前少了分号。5)再次改正错误,在“}”前即printf()后加上“;”(英文状态),生新编译,显示正确6)连接,“编译”-“构件”(F7),出现如下出错信息。出错信息:缺少主函数。7)改正错误,即把“mian”改为“main”后,重新连接,信息窗口显示连接正确。8)运行,“编译”-“执行”(Ctrl+F5),观察结果是否与要求一致。5.改错,改正下列程序中的错误,在屏幕上显示以下3行信息。****************Welcome****************4源程序(有错误的程序)#includestdio.hvoidmain(){Printf(“****************\n”);Printf(“Welcome”)Printf(“****************\n”);}实验报告要求将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。5实验二简单的C程序设计和基本数据处理实验目的:1.掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。2.通过编程进一步理解和掌握运算符的确切含义和功能。3.理解和掌握运算符与运算对象的关系,优先级和结合方向。4.通过编程,掌握C语言的几种基本数据类型,int、char、flloat、double,以及由这些基本数据类型构成的常量和变量的使用方法。5.掌握基本输入/输出函数的使用方法,包括printf()、scanf()、getchar()、putchar()。6.掌握简单的C程序的查错方法。实验内容:一、输入程序,观察输出结果,并对输出结果作出合理的解释。1./*e1.cpp*/#includestdio.hvoidmain(){floatx;doubley;x=213.82631;y=213.82631;printf(%-4.2f,-6.2e\n,x,y);}输出结果:解释:2./*e2.cpp*/#includestdio.hvoidmain(){charch;intk;ch=’a’;k=10;printf(“%d,%x,%o,%c”,ch,ch,ch,ch,k);printf(“k=%%d\n”,k);}输出结果:解释:3./*e3.cpp*/#includestdio.hvoidmain(){floata1,a2;doubleb1,b2;a1=3141.59;a2=0.000001;b1=3141.59;b2=0.000001;6printf(“%f,%lf\n”,a1+a2,b1+b2);}输出结果:解释:4./*e4.cpp*/#includestdio.hvoidmain(){floatx=5/2,y=5.0/2;printf(x=%f,y=%f\n,x,y);}输出结果:解释:二、编写程序。1.编程(c1.cpp)定义3个整型变量x,y,z和一个实型变量averge,计算并输出3个整数的平均值averge,其中x=y=1,z=0。观察运行结果。再将x,y,z和averge改为实型变量,再观察运行结果。理解整除和不同类型数据进行混合运算的转化规律,对结果进行合理的解释。源程序:输出结果:解释:2.改写程序(c2.cpp),针对上一题要求,采用从键盘用scanf()函数输入x,y,z的值。要求输出结果的形式为averge=…。源程序:7输出结果:解释:3.输入3个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,把b原来的值给c,把c中原来的值给a。源程序:输出结果:三、调示示例。1.求华氏温度100。F对应的摄氏温度。计算公式:C=(5/9)(F-32),其中C表示摄氏温度,F表示华氏温度。源程序(有错误)#includestdoi.hvoidmain(){intcelsius;fahr;fahr=100;celsius=5*(fahr-32)/9;printf(fahr=d,celsius=%d\n,fahr,celsius);}1)输入源程序。2)实验一中用菜单完成编译、连接和运行,现在介绍工具栏的使用方法。在工具栏或菜单栏上单击鼠标右键,出现如图所示的整个工具箱,在“编译”或“编译微型条”项前打上“√”。图中第1个按钮为“Compile”(编译,Ctrl+F7),第2个按钮为“Build”(构件,F7),第4个按钮为“BuildExecute”(执行,Ctrl+F5)。3)单击“编译”工具条中的第1个按钮,出现第一个错误信息:Cannotopenincludefile:'stdoi.h':Nosuchfileordirectory(不能打开stdoi.h)改正(应该是stdio.h)后,重新编译,新产生的第一个错误信息是:'fahr':undeclaredidentifier(“fahr”变量没有定义)改正:将fahr前的分号改为逗号,重新编译,编译正确。4)单击“编译”工具条中的第2个按钮,连接正确。5)单击“编译”工具条中的第4个按钮,运行结果为:fahr=d,Celsius=1008不符合题目的要求,仔细检查源程序,发现函数printf()中的d应为%d,改正的,重新连接和运行,运行结果与题目要求的结果一致,程序调试结束。2.改错,计算某个数x的平方y,并以算术公式的形式输出x和y的值.请不要删除源程序中的任何注释。输入输出示例(假设x的值为3):9=3*33*3=9#includestdio.hvoidmain(){inty;y=x*x;printf(“%d=%d*%d”,x);/*输出printf(“d*%d=%d”,y);}改正后的源程序:实验报告要求将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。9实验三选择结构程序设计实验目的1、了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);2、学会正确使用逻辑运算符和逻辑表达式;3、熟练掌握if语句和switch语句;4、熟练掌握switch语句中break语句的作用。实验内容1.调试示例,输入参数a,b,c,求一元二次方程ax2+bx+c=0的根。源程序(有错误的程序)#includestdio.h#includemath.hvoidmain(){doublea,b,c,d;printf(“输入一元二次方程a=,b=,c=\n”);scanf(“a=%lf,b=%lf,c=%lf”,&a,&b,&c);d=b*b-4*a*c;if(a==0){if(b=0){if(c==0)printf(“0==0参数对方程无意义!”);elseprintf(“c!=0方程不成立”);}elseprintf(“x=%0.2f\n”,-c/b);}elseif(d=0){printf(“x1=%0.2f\n”,(-b+sqrt(d))/(2*a));printf(“x1=%0.2f\n”,(-b-sqrt(d))/(2*a));}else{printf(“x1=%0.2f+%0.2fi\n”,-b/(2*a),sqrt(-d)/(2*a));printf(“x1=%0.2f-%0.2fi\n”,-b/(2*a),sqrt(-d)/(2*a));}}运行结果(改正后程序的运行结果)输入一元二次方程a=,b=,c=a=2.1,b=8.9,c=3.5x1=-7.22x2=-10.58运行结果(有错误的程序的运行结果)输入一元二次方程a=,b=,c=a=2.1,b=8.9,c=3.5x1=-7.22x2=-10.58对以上程序进行编译、连接、调试和运行如下:1)执行“编译”-“构件”,对以上程序进行编译、连接,没有出现错误信息。2)调试开始,设置三个断点(断点的作用,程序执行到断点处暂停,使用户可以观察当前的变量或其他表达式的值,然后继续运行),先把光标定位到要设置断点的位置,然后10单击编译工具条上的Inert/RemoveBreakpoint或F9,断点就设置好了,如果要取消断点,只要把光标放到要取消的断点处,单击,这个断点就取消了。3)单击编译工具条(goF5),程序运行,等待输入一元二次方程a、b、c的值,输入a=2.1,b=8.9,c=3.5.4)程序运行到第一个断点,在Watch窗口输入变量名a,b,c观察执行到第一个断点时变量a,b,c的值是否和(2)中输入一致。注意,变量可以在Watch1、Watch2、Wathc3、Watch4任何一个窗口输入,输入可以是变量,也可以是表达式。115)假设我们在输入的时候,输错了变量a的值,我们可以在Watch窗口重新赋值,改变原来的值,如我们在Watch窗口中输入表达式a=0,则a的值就改变为0了。单步执行,单击,箭头指向下一行,说明程序执行到这一行,再观察变量a,b,c的值,发现变量b的值已经改变,原来输入的是8.9,现在已改变为0,我们在2)中输入变量b的值是8.9,说明在程序的执行过程中肯定有一个地方改变了b的值,通过仔细观察、分析,发现if语句中误把相等“==”写成了赋值“=”,所以b=0了,单击(StopDebugging(Shift+F5)停止调试,把源程序中的“