1、 实验二 基本数据类型与输入输出2.1 实验目的1.掌握 C 语言基本数据类型以及常量的表示方法、变量的定义与使用规则。2.掌握 C 语言的算束运算、逗号运算的运算规则与表达式的书写方法。3.掌握各种输入输出函数的使用方法。2.2 实验内容1.上机调试(需作出必要的注释!)(1) 请说明以下程序的功能,然后上机验证。(1.1.1)软件操作。#includevoid main()printf(“t*n“);printf(“tb*n“);printf(“tbb*n“);(1.1.2)运行结果(1.1.3)程序分析。该程序主要功能是以给定形式输出几个简单的字符。(2) 请说明以下程序的功能,然后上机
2、验证。(1.2.1)软件操作。# includevoid mian()int x=010,y=10,z=0x10;char c1=M,c2=x4d,c3=115,c4=77 ,c;printf(“x=%o,y=%d,z=%xn“,x,y,z);printf(“x=%d,y=%d,z=%dn“,x,y,z);printf(“c1=%c,c2=%c,c3=%c,c4=%cn“,c1,c2,c3,c4);printf(“c1=%d,c2=%d,c3=%d,c4=%dn“,c1,c2,c3,c4);c=c1+32;print(“c=%c,c=%dn“,c,);(1.2.2)程序运行结果.c:docum
3、ents and settingsvm272sy3.cpp(5) : error C2018: unknown character 0xa3c:documents and settingsvm272sy3.cpp(5) : error C2065: c : undeclared identifierc:documents and settingsvm272sy3.cpp(11) : error C2065: print : undeclared identifierc:documents and settingsvm272sy3.cpp(11) : error C2059: syntax er
4、ror : )(1.2.3)错误程序分析。第一:void mian()中“mian”书写错误,应为“main”.第二:char c1=M,c2=x4d,c3=115,c4=77 ,c;中最后一个“c”前面的“, ”为中文符号,应用英文符号“,”第三:在 print(“c=%c,c=%dn“,c,);中“print”应为“printf”第四:在 print(“c=%c,c=%dn“,c,);中最后只有一个“c” ,本应由两个,所以应该改为“c,c” 。正确的应为:printf(“c=%c,c=%dn“,c,c);(1.2.4)改正后程序。# includevoid main()int x=010
5、,y=10,z=0x10;char c1=M,c2=x4d,c3=115,c4=77 ,c;printf(“x=%o,y=%d,z=%xn“,x,y,z);printf(“x=%d,y=%d,z=%dn“,x,y,z);printf(“c1=%c,c2=%c,c3=%c,c4=%cn“,c1,c2,c3,c4);printf(“c1=%d,c2=%d,c3=%d,c4=%dn“,c1,c2,c3,c4);c=c1+32;printf(“c=%c,c=%dn“,c,c);(1.2.5)改正后程序的运行结果。(1.2.6)正确程序的意义。主要是将所给证书和字符以各类进制形式输出(3) 请说明以下程
6、序的功能,然后上机验证。(1.3.1)软件操作。#includevoid main()int m=18,n=13;float a=27.6,b=5.8,x,;x=m/2+n*a/b+1/4;printf(“%fn“,x);(1.3.2)程序运行结果。C:Documents and SettingsAdministratorsu3.cpp(6) : warning C4305: initializing : truncation from const double to floatC:Documents and SettingsAdministratorsu3.cpp(6) : warning
7、C4305: initializing : truncation from const double to floatC:Documents and SettingsAdministratorsu3.cpp(6) : error C2059: syntax error : ;(1.3.3)错误程序分析。第一:float a=27.6,b=5.8,x,;中“float”是单精度型的关键字,而在这里应为双精度型“double”第二:float a=27.6,b=5.8,x,;在“x”后的“, ”应去掉。正确的应该为 double a=27.6,b=5.8,x;(1.3.4)改正后的程序。#incl
8、udevoid main()int m=18,n=13;double a=27.6,b=5.8,x;x=m/2+n*a/b+1/4;printf(“%fn“,x);(1.3.5)改正后程序的运行结果。(1.3.6)改正后程序的意义。该程序是输入两不同的整数 m,n,然后将运算 m/2+n*a/b+1/4 结果赋值给 x,最后以小数形式输出单双精度实数。(4)当输入是 8.5,2.5,5,分析程序运行结果,并上机验证。(1.4.1)软件操作。#includevoid main()float x,y;Int z;scanf(“%f,%f,%d,y=x-z%2*(int)(x+17)%4/2;pri
9、ntf(“x=%f,y=%f,z=%dn“,x,y,z);(1.4.2)程序运行结果。c:documents and settingsadministratorsy5.cpp(6) : error C2065: Int : undeclared identifierc:documents and settingsadministratorsy5.cpp(6) : error C2146: syntax error : missing ; before identifier zc:documents and settingsadministratorsy5.cpp(8) : error C214
10、6: syntax error : missing ) before identifier y(1.4.3)错误程序分析。第一:Int z;中“Int”第一个字母应为小写,应改正为“int” 。第二:scanf(“%f,%f,%d,中在地址符前少了一个符号“” ”,应该为scanf(“%f,%f,%d”,(1.4.4)改正后的程序。#includevoid main()float x,y;int z;scanf(“%f,%f,%d“,y=x-z%2*(int)(x+17)%4/2;printf(“x=%f,y=%f,z=%dn“,x,y,z);(1.4.5)改正后程序的运行结果(1.4.6)该
11、程序的意义。说明函数 scanf()的格式及作用。2.填空题(1)以下程序输入 3 个整数值给 a,b,c,程序把 b 中的值给 a,把 c 中的值给 b,把 a 中的值给 c,交换后输出 a,b,c 的值。例如,输入 a=10,b=20,c=30,交换后 a=20,b=30,c=10。#includevoid main()int a,b,c,t;printf(“Enter a,b,c: “);scanf(“%d%d%d“,t=a;a=b;b=c;c=t;printf(“%d,%d,%dn“,a,b,c);(2) 以下程序输入一个大写字母,要求输出对应的小写字母。#includevoid ma
12、in()char upperc,lowerc;upperc=getchar();lowerc=upperc+32;printf(“大写字母“);putchar(upperc);printf(“小写字母“);putchar(lowerc);putchar(n);注:该程序中 printf(“小写字母“);putchar(lowerc);putchar(n);中小写字母后的第一个后括号为中文符号,应改正为英文符号,改正后为 printf(“小写字母“);putchar(lowerc);putchar(n);3思考题(2)分析程序,写出运行结果,并上机验证(3.2.1)软件操作。#includevo
13、id main()int i=3,j=5,k,l,m=19,n=-56;k=+i;l=j+;m=i+;n-=-j;printf(“%d,%d,%d,%d,%d,%d,n“,ij,k,l,m,n)(3.2.2)程序运行结果。C:Documents and SettingsAdministratorsy3.cpp(9) : error C2065: ij : undeclared identifierC:Documents and SettingsAdministratorsy3.cpp(10) : error C2143: syntax error : missing ; before (3.2
14、.3)错误程序分析。第一:printf(“%d,%d,%d,%d,%d,%d,n“,ij,k,l,m,n)中 i 和 j 中间应该还有一个符号“,”,改正后为 printf(“%d,%d,%d,%d,%d,%d,n“,i,j,k,l,m,n).第二:printf(“%d,%d,%d,%d,%d,%d,n“,ij,k,l,m,n)最后结尾处少了一个结束符“;” ,改正为 printf(“%d,%d,%d,%d,%d,%d,n“,ij,k,l,m,n);(3.2.4)改正后程序。#includevoid main()int i=3,j=5,k,l,m=19,n=-56;k=+i;l=j+;m=i+;n-=-j;printf(“%d,%d,%d,%d,%d,%d,n“,i,j,k,l,m,n);(3.2.5)改正后程序运行结果。(3.2.6)改正后程序意义。考察自增、自减运算符的用法。