1307080601115贺杰安实验二简单的C程序设计和基本数据处理实验目的:1.掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。2.通过编程进一步理解和掌握运算符的确切含义和功能。3.理解和掌握运算符与运算对象的关系,优先级和结合方向。1.通过编程,掌握C语言的几种基本数据类型,int、char、flloat、double,以及由这些基本数据类型构成的常量和变量的使用方法。2.掌握基本输入/输出函数的使用方法,包括printf()、scanf()、getchar()、putchar()。3.掌握简单的C程序的查错方法。实验内容:一、输入程序,观察输出结果,并对输出结果作出合理的解释。1./*e1.cpp*/#include<stdio.h>voidmain(){floatx;doubley;x=213.82631;y=213.82631;printf("%-4.2f,-6.2e\n",x,y);//改变格式%m.n中m,n的值,理解数据对齐、m,n的含义}输出结果:213.83-6.2e解释:-6.2e是普通字符而不是格式字符,所以原样输出,输出213.83是因为代码指定域宽只有两位小数2./*e2.cpp*/#include<stdio.h>voidmain(){charch;intk;ch=’a’;k=10;printf(“%d,%x,%o,%c”,ch,ch,ch,ch,k);printf(“k=%%d\n”,k);}输出结果:97,61,141,ak=%d//用计算器验证数据用不同数制显示的结果解释:格式符%d是输出一个有符号的十进制数,所以a默认转换为他的ASCII码值97输出,%x是以十六进制数形式输出整数,ch的值为a。便将a的ASCII码值转换为十六进制数61输出,%o是以八进制数形式输出,同上输出141,%c是以字符形式输出所以输出a,后面无换行符,紧接着输出下一条输出语句的结果,%%d不是格式符但%%是输出%的命令所以输出%d3./*e3.cpp*/#include<stdio.h>voidmain(){floata1,a2;doubleb1,b2;a1=3141.59;a2=0.000001;b1=3141.59;b2=0.000001;printf(“%f,%lf\n”,a1+a2,b1+b2);}输出结果:3141.5900893141.5900001解释:溢出建议运行下面对比程序:#include<stdio.h>voidmain(){floata1,a2;a1=3141.59;//赋值应为3141.590000,将3141.59赋给浮点变量a1时,赋值前a1//的物理空间部分不可预知的内容连同赋给浮点变量a1。a2=0.000001;printf("(f)a1+a2=%f,(lf)a1+a2=%lf\n",a1+a2,a1+a2);printf("(f)a1=%f\n",a1);//,b1+b2);printf("(lf)a2=%lf\n",a2);//,b1+b2);}4./*e4.cpp*/#include<stdio.h>printf("x=%f,y=%f\n",x,y);voidmain(){floatx=5/2,y=5.0/2;}输出结果:2.0000002.500000解释:因为定义变量时x=5/2,而y=5.0/2二、编写程序1.编程(c1.cpp)定义3个整型变量x,y,z和一个实型变量averge,计算并输出3个整数的平均值averge,其中x=y=1,z=0。观察运行结果。再将x,y,z和averge改为实型变量,再观察运行结果。理解整除和不同类型数据进行混合运算的转化规律,对结果进行合理的解释。源程序:#include<stdio.h>#include<math.h>voidmain(){intx,y,z;floataverge;x=y=1;z=0;averge=(float)(x+y+z)/3;printf("averge=%f\n",averge);}输出结果:解释:%f只提供六位精确度,所以输出0.6666672.改写程序(c2.cpp),针对上一题要求,采用从键盘用scanf()函数输入x,y,z的值。要求输出结果的形式为averge=…。源程序:#include<stdio.h>#include<math.h>voidmain(){intx,y,z;floataverge;x=y=1;z=0;averge=(float)(x+y+z)/3;printf("averge=%f\n",averge);scanf("%d,%d,%d",x,y,z);averge=(float)(x+y+z)/3;printf("averge=%f\n",averge);}输出结果:解释:上一行表示输入的x,y,z分别是1,1,1下一行则是安%f格式符输出结果3.输入3个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,把b原来的值给c,把c中原来的值给a。源程序:#include<stdio.h>main(){inta,b,c,t;scanf("%d,%d,%d",a,b,c);t=b;b=a;a=c;c=t;printf("%d%d%d",a,b,c);}输出结果:三、调试示例。1.求华氏温度100。F对应的摄氏温度。计算公式:C=(5/9)(F-32),其中C表示摄氏温度,F表示华氏温度。源程序(有错误)#include<stdoi.h>voidmain(){intcelsius;fahr;fahr=100;celsius=5*(fahr-32)/9;printf("fahr=d,celsius=%d\n",fahr,celsius);}1)输入源程序。2)实验一中用菜单完成编译、连接和运行,现...