1.3实验一熟悉C语言的VC++6.0编程环境一、实验目的与要求1.学会使用VisualC++集成开发环境。2.掌握简单C程序的编写、编辑、编译、连接和运行。3.初步学会VisualC++环境下简单调试C程序的方法。二、实验内容1.程序运行题(1)打开VC++6.0环境。(2)在VC++6.0环境的编辑窗口中,输入如下程序保存为myexp1_1.cpp。(3)选择【组建】【编译myexp1_1.cpp】(可按快捷键CTRL+F7)命令对程序进行编译。(4)选择【组建】【组建】(按快捷键F7)命令对程序进行连接。(5)单击【!】按钮或选择【组建】【执行】菜单项(按快捷键F5),运行程序。(6)判断结果正确与否。#includestdio.hvoidmain(){inta,b,sum;a=123;b=456;sum=a+b;printf(“a+b=%d\n”,sum);}填写运行结果:关闭上面的程序,按上面的步骤再次输入如下的程序,进行编译、连接和运行,写出运行结果。#includestdio.hvoidmain(){intm=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf(“%f\n”,x);}填写运行结果:思考:把前面的语句x=m/2+n*a/b+1/2;改为x=m/2.0+n*a/b+1.0/2;运行结果将会是什么?2.程序改错题程序改错1:⑴输入如下错误的程序,然后进行编译和连接,仔细检查并修改错误,再进行编译连接,直到没有错误为止。⑵运行程序,#includestdio.hvoidmian(){printf(“WearestudyingClanguage!\n)}程序改错2输入并运行下面一个需要在运行时输入数据的程序,程序要求从键盘输入三个实数,输出它们的和。#includestdio.hmian(){floata,b,c,sum;printf(Inputa,b,c:)scanf(%f%f%f,&a,&b,c);sum=a+b+c;printf(\nsum=%f\n,sum);}⑴输入该程序,然后进行编译和连接,如果出错,仔细检查并修改错误,再进行编译连接,直到没有错误为止。⑵运行程序,按照输入输出示例提示输入a、b、c三个变量的值,变量值之间用空格分隔,输入完毕按回车键【Enter】。⑶查看运行结果,判断结果正确与否。输入输出示例:Inputa,b,c:356sum=14.0再次运行程序并按如下的格式输入数据,观察结果是否正确?为什么?Inputa,b,c:3,5,6sum=?思考:改正程序的错误后,把printf语句中的%f改成%d,再运行程序,有什么结果?3.程序完整题Inputa,b,c:3.5,5.5,6.5结果:完整题1二整数整除程序模板如下:输入输出示例:思考:把上述inta,b,div;改成floata,b,div;scanf(%d%d,&a,&b);中的%d改成%f,同时把输出语句中的%d改成%f,运行程序后,再用前面的数据输入,结果会发生如何变化?为什么有这样的变化?完整题2仿照教材中例1-2程序,在横线地方填写语句,输入圆柱体的半径和高,计算并输出圆柱体的体积和表面积。#includestdio.hvoidmain(){;/*定义变量*/printf(请输入圆的半径和高:\n);/*在屏幕上显示提示信息*/scanf(%f%f,&r,&h);/*从键盘输入半径和高给变量r*/#includestdio.hvoidmain(){inta,b,div;printf(Inputa,b:);/*提示输入二个数*/scanf(%d%d,&a,&b);/*从键盘输入二个数存储在变量a,b中*//*除法运算,相除的结果放在变量div中*//*用%d输出结果*/}Inputa,b:35div=0Inputa,b:53div=1Inputa,b:3,5div=Inputa,b:5,3div=;/*计算体积*/;/*计算表面积*/printf(v=%f,s=%f\n,v,s);/*输出体积和表面积*/}输入与输出:试一试:如果把上述程序中所有的%f改成%d,再次运行程序,仍然输入“5.08.0”,输出结果会是什么?分析结果。把上述程序中的第一个\n去掉,再编译运行程序,有什么变化?试说出\n的作用。请输入圆的半径和高:5.08.0输出结果?2.5实验二编写几个简单的C程序一、实验目的与要求1.掌握C语言基本数据类型的概念,理解数据类型与运算的关系。2.掌握简单变量的定义,算术表达式和赋值表达式的使用。3.掌握基本输出语句的使用。4.进一步熟悉C程序的编辑、编译、连接和运行的过程。5.掌握简单C程序查错方法,编写几个简单程序。6.实验4学时二、实验内容1.程序验证或填空(1)编译和运行下面程序,查看执行的结果:#includestdio.hintmain(void){intsi=-1;floatf=5;doubledf=3;printf(si=%d,f=%f,f=%lf\n,si,f,df);return0;}若把输出语句中的格式控制中的格式说明符的顺序改变一下,会有什么结果?再把%lf修改为%f,运行会有什么结果?(2)分析程序,并上机运行验证运行结果#include“stdio.h”voidmain(){printf(“\t*\n”);printf(“\t\b***\n”);printf(“\t\b\b*****\n”);}(3)运行程序,并分析结果。#include“stdio.h”voidmain(){inta=10,x=5,y=6;a+=a*=6;x=y++;y=++x;a=x+++y;printf(“%d,%d,%d\n”,a,x,y);(4)不用第3个变量,实现将二个数进行对调,请填空。#include“stdio.h”voidmain(){inta,b;scanf(“%d%d”,&a,&b);printf(“a=%db=%d\n”,a,b);a=;b=;a=;printf(“a=%db=%d\n”,a,b);}2.程序改错改正下面程序中的多处错误。计算某个数x的平方y,并分别以“y=x*x”和“x*x=y”的形式输出x和y的值。x的值由键盘输入。输出示例(假设x的值为3):9=3*33*3=9源程序(有错误的程序)#includestdi0.hintmain(void){inty;y=x*x;printf(%d=%d*%d,x);/*输出printf(d*%d=%d,y);}3.一般编程题编程题1编写程序,输入二个整数,计算它们的和、差、积、商和余数,并按5+11=16这样的输出格式输出结果。编程题2编写程序,输入二个实数,计算它们的和、差、积、商,并按32.24=12.2+20.04这样的输出格式输出结果。实数分别定义为单精度实数或双精度实数。编程题3编写程序,从键盘输入一个大写字母,改用小写字母输出。编程题4求华氏温度150℉对应的摄氏温度。计算公式如下,其中:c表示摄氏温度,f表示华氏温度。329595fc要求输出结果为:fahr=150,celsius=66思考:如果使用公式9)32(5fc计算华氏温度150℉所对应的摄氏温度,计算结果是否一样?为什么?编程题5编写程序,从键盘输入学生的三门课成绩,求其平均成绩(保留小数点后1位)。4.较难编程题编程题1当n为三位十进制整数时,分别求出n的个位数字(digit1)、十位数字(digit2)和百位数字(digit3)的值。输出示例:n为整数152时,它的个位数字是2,十位数字是5,百位数字是1提示:n的个位数字digit1的值是n%10,十位数字digit2的值是(n/10)%10,百位数字digit3的值是n/100。编程题2将从键盘输入的实型十进制数分离为整数部分和小数部分后输出。如输入233.55,输出为:233.55=233+0.55。编程题3计算定期存款的本金与利息之和。设银行定期存款的年利率rate为2.25%,存款期为n年,存款本金为money元,具体的数字由键盘输入,编程计算n年后的本金与利息之和(提示,利用pow函数)。3.5实验三选择结构程序设计一、实验目的与要求1.理解C语言表示逻辑量的方法,学会正确使用逻辑运算符和逻辑表达式。2.掌握利用if结构实现选择结构的方法。3.掌握利用switch结构实现多分支选择结构。4.结合程序掌握一些简单的算法,学习调试程序5.实验4学时二、实验内容1.程序改错题改正下面程序中的错误。输入实数x,计算并输出下列分段函数f(x)的值(保留1位小数)。)100(1xx)(xfy这里增加了一个题目)100(xx输入输出示例1(改正后程序的运行结果)Enterx:100f(100.00)=0.1输入输出示例2(改正后程序的运行结果)Enterx:23f(23.00)=23.0源程序(有错误的程序)#includestdio.h#includemath.hvoidmain(void){doublex;printf(Enterx:\n);scanf(=%f,x);if(x=100){y=1/sqrt(x)}else(x!=100){y=x;}printf(f(%.2f)=%.1f\n,x,y);}2.一般编程题编程题1输入任意三个整数a,b,c,求3个数中的最大值和最小值。编程题2输入x,计算并输出下面分段函数f(x)的值(保留2位小数)。请调用sqrt函数求平方根,调用pow函数求幂。)0(12)1(2xxxx)(xf)0(xx输入输出示例(共运行3次)Enterx:10f(10.00)=3.16Enterx:-0.5f(-0.50)=-2.75Enterx:0f(0.00)=0.00成本编程题3有一函数:x(-5x0)y=x-1(x=0)x+1(0x10)编写程序,要求用scanf函数输入x的值,输出y的值。具体要求如下:(1)用if语句实现分支,自变量和函数值均用实数类型。(2)自变量用scanf函数输入,给一些输入提示。(3)运行程序,输入x的值(分别为-5x0,x=0,0x10)三种情况,检查输出的y值是否正确。编程题4某服装店经营成套服装的买卖,同时也允许单件销售。若一次购买不少于70套,则每套90元;若不足70套,则每套110元;只买上衣每件70元;只买裤子每条60元。请编写程序假设用户买入x件上衣和y条裤子,请编写程序计算相应的应付款是多少?编程题5编写程序实现:输入一个整数,判断它能否被3、5、7整除,同时输出如下信息。(1)能同时被3、5、7整除;(2)能同时被其中的哪二个数整除;(3)能被其中的哪一个数整除;(4)不能被3、5、7任一个数整除。3.较难编程题编程题1请用switch语句编程计算员工每月的薪水。(exph3_1.cpp)已知某公司员工的保底薪水为500,某月所接工程的利润profit(整数)与提成的关系如下(计量单位:元):profit≤1000没有提成;1000<profit≤2000提成10%;2000<profit≤5000提成15%;5000<profit≤10000提成20%;10000<profit提成25%。分析:为使用switch语句,必须将利润profit与提成的关系,转换成某些整数与提成的关系。分析本题可知,提成的变化点都是1000的整数倍(1000、2000、5000、……),如果将利润profit整除1000,则相邻两个区间的重叠。为解决相邻两个区间的重叠问题,最简单的方法就是:利润profit先减1(最小增量),然后再整除1000即可:profit≤1000对应01000<profit≤2000对应12000<profit≤5000对应2、3、45000<profit≤10000对应5、6、7、8、910000<profit对应10、11、12、……编程题2编写程序实