《C语言程序设计》实验报告实验序号:2 实验项目:数据类型、运算符和表达式一、实验目的及要求1. 掌握C基本数据类型的基本概念、基本属性2. 学会如何书写一个整型、字符型、实型常量3. 掌握C算术运算符的基本概念、基本属性、运算规则二、实验设备(环境)及要求使用Visual C++ 6.0;windows系列操作系统的环境三、实验内容与步骤1.输入下列源程序,进行修改、编译、连接和运行程序:main ( ){ char c1,c2;c1=97;c2=98;printf("%c,%c\n",c1,c2);printf("%d,%d\n",c1,c2);} 运行结果是: 两行结果的不同是由什么引起的: 程序中缺少了#include,致使程序无法将Turbo C预先提供的标准输入输出相关的头文件stdio.h包含到程序之中来2.输入下列源程序,进行修改、编译、连接和运行分析++运算符程序:main ( ){ int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d \n",i,j,m,n);} 运行结果是: 分析前++和后++的不同: m=++i表示先给i+1,再参与运算; n=j++表示先计算n=j,再给j+1。
3.输入下列源程序,进行修改、编译、连接和运行分析++和--运算符程序:main ( ){ int i,j;i=8;j=10;printf("%d,%d \n", i,j);printf("%d,%d \n",i++,j--);printf("%d,%d \n", i,j);printf("%d,%d \n", ++ i,-- j);} 运行结果是: 分析运行结果: 第一行:输出i,j;第二行:输出i, j然后i自增1,j自减1第三行:输出上一行i,j自增、自减的结果;第四行:先给i自增1,给j自减1,然后输出结果4.输入并运行下面的程序:#includevoid main(){ char c1,c2,c3; c1=getchar(); c2=getchar(); c3=getchar(); putchar(c1); putchar(c2); putchar(c3);}观察以下不同输入时的输出,分析不同输出的原因↙ 表示回车)(1)123↙(2)12↙(3)1↙ 2↙运行结果是:(1)(2) (3)分析运行结果:getchar函数的意思是先把通过putchar,c1,c2,c3从键盘输入进行暂存,在按下enter后才开始执行putchar;该程序首先书写了3个putchar,相当全部输入,然后全部输出。
5.把以上程序改写如下,用于上面相同的输入运行,分析不同输出的原因includevoid main(){ char c1,c2,c3; c1=getchar(); putchar(c1); c2=getchar(); putchar(c2); c3=getchar(); putchar(c3);}运行结果是: (1)(2)(3)分析运行结果:getchar函数的意思是先把通过putchar,c1,c2,c3从键盘输入进行暂存,在按下enter后才开始执行putchar;该程序首先书写1个putchar,连续一个geichar,相当输入一个,立即输出一个6.输入并运行下面的程序,分析格式控制对输出的影响includevoid main(){ int a=-1,b=98; double x=152.6752445; printf("a=%d,%ld,%u,%o,%x\n",a,a,a,a,a); printf("b=%d,%5d,%-5d,%c,%5c,%-5c\\\n",b,b,b,b,b,b); printf("x=%f,%e\n",x,x); printf("x=%.2f,%15.2f,%-15.2f,%15.9f,%2f\n",x,x,x,x,x);}运行结果截图:分析运行结果:1、把a依次转化成十进制整数,长整型,无符号十进制,八进制,十六进制;2、把b依次转化成十进制整型,空格左补齐占五列,空格右补齐占五列,输出其ASCII码,输出其ASCII码并右空格补齐占五列 3、把x用小数形式输出,整数部分不变,小数占满六位,把x有指数形式输出;整数不变,小数占两位(不含小数点),;整数左补齐占十五位,小数两位;整数右补齐占十五位,小数两位;整数左补齐占十五位,小数九位;整数不变,小数六位。
7.输入并运行下面的程序:#includevoid main(){ int a,b; double x; float y; scanf("%d,%d",&a,&b); printf("a=%d,b=%d\n",a,b); scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);} 观察以下不同输入时的输出,分析间隔符号对输入的影响↙ 表示回车)(1)1,2↙ 1,2↙(2)1 2↙ 1 2↙(3)1↙ 1↙ 2↙运行结果截图:(1)(2)(3)分析运行结果:scanf("%d,%d",&a,&b):要求在输入数据时用,隔开否则出错;scanf("%d%d",&a,&b);要求连续输入数据,否则出错8.转义字符的使用main(){ int a,b,c; a=5; b=6; c=7; printf(“ ab c\tde\rf\n”);printf(“hijk\tL\bM\n”);}运行结果截图:9.大小写转换main(){ char a,b; a='a'; b='b'; a=a-32; b=b-32; printf("%c,%c\n%d,%d\n",a,b,a,b); }运行结果截图:10.参考例题2-2完成题目:设圆半径r=1.5 圆柱高h=3求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积,输出结果要有文字说明,如The area is 7.06. (其中π=3.1415926,采用第二章例题2-2的#define来定义;圆周长2πr、圆面积πr2、圆球表面积4πr2、圆球体积4/3πr3、圆柱体积πr2h)测试结果:rhcircleareasurfaceglobecolumn1.533.452.56【思考问题】1、思考问题:数据类型、运算符、表达式等在C语句中充当什么成分?什么是标识符?整型、实型、字符型常量的书写法是怎样的?整型、实型、字符型变量怎样创建?字符串怎样表示?如何求表达式的值?混合表达式的求值规则是怎样的?四、分析与讨论对上机实践结果进行分析,上机的心得体会。
五、教师评语签名:日期:成绩附源程序清单:10.#include#define PI 3.14159#define R 1.5#define r 3.45#define H 3void main(){ printf("circle=%f\n",2*PI*R); printf("area=5%f\n",PI*R*R); printf("surface=5%f\n",4*PI*R*R); printf("globe=5%f\n",3/4*PI*R*R*R); printf("column=5%f\n",PI*R*R*H); printf("circle=%f\n",2*PI*r); printf("area=5%f\n",PI*r*r); printf("surface=5%f\n",4*PI*r*r); printf("globe=5%f\n",3/4*PI*r*r*r); printf("column=5%f\n",PI*r*r*H);} 。