《c语言上机实验(共11页).doc》由会员分享,可在线阅读,更多相关《c语言上机实验(共11页).doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 实验3 (1) 程序#include int main()int a=3,b=5,c=7,x=1,y,z;a=b=c;x+2=5;z=y+3;return 0;程序错误;提示语言-Configuration: fd - Win32 Debug-Compiling.fd.cppC:Documents and SettingsAdministrator桌面fd.cpp(2) : error C2447: missing function header (old-style formal list?)执行 cl.exe 时出错.fd.exe - 1 error(s), 0
2、 warning(s)修改为:#include int main()int a=3,b=5,c=7,x=1,y,z;a=b=c;x=5+3;z=y+3;return 0;分析结果:在赋值和运算中是从右到左。分析:A 变量名可以是数字,英文字母(大小写均可)。下划线。B大小写可以区分是成不同文件。C 赋值运算的特点是自右向左的。实验4(1) 整数除的危险性#include int main()int a=5,b=7,c=100,d,e,f;d=a/b*c;e=a*c/d;f=c/b*a;程序在运行结果为:0 0 0;分析原因:A 5/7*100,结果是5/7等于0,再0乘上100等于0。B 5*
3、100/7,结果是5*100等于500,再500/7等于0。C 100/7*5 结果是100/7等于0,再0*5等于0。结论:原因在于,当整除不成立时,结果为0,所以结论会影响下一次的运行。(2) #include main()int a=5,b=8;printf(“a+=%d”,a+);printf(“a=%d”,a);printf(“+b=%d”,+b);printf(“b=%d”,b);得到结论为 分析结果:i+“先引用,后增值”:+i“先增值,后引用”所以 a+是5,因为先引用,a是6,因为是增值的结果,+b是9,是因为先增值,b是9,是因为后引用的结果。(3)对这些表达式进行测试分析
4、。b+a+ab+(a+)+ab+a+(+a)b+a+a+编程:#include main()int a=1,b=1;printf(“b+a+a=%d”, b+a+a);结果:#include main()int a=1,b=1;printf(“b+(a+)+a=%d”, b+(a+)+a);结果:#include main()int a=1,b=1;printf(“b+a+(+a)=%d”, b+a+(+a);结果:#include main()int a=1,b=1;printf(“b+a+a+=%d”, b+a+a+);结果:#include main()int a=1,b=;printf
5、(“b+a+a=%d”, b+a+a); (4) 对这些表达式进行测试分析。i,ji+1,j+1i+,j+i,+ji+j编程:#include main()int i=1,j=1;printf(“i=%d”,i); printf(“j=%d”,j);结果:#include main()int i=1,j=1;printf(“i+1=%d”,i+1); printf(“j+1=%d”,j+1);结果:#include main()int i=1,j=1;printf(“i+=%d”,i+); printf(“j+=%d”,j+);结果:#include main()int i=1,j=1;pri
6、ntf(“+i=%d”,+i); printf(“+j=%d”,+j);结果:#include main()int i=1,j=1;printf(“i+j=%d”,i+j); 结果:-Configuration: Cpp1 - Win32 Debug-Compiling.Cpp1.cppC:Documents and SettingsAdministrator桌面Cpp1.cpp(5) : error C2105: + needs l-valueC:Documents and SettingsAdministrator桌面Cpp1.cpp(6) : warning C4508: main :
7、function should return a value; void return type assumed执行 cl.exe 时出错.Cpp1.exe - 1 error(s), 0 warning(s)结论:程序是错误的。1分析结果:整除有危险性。A因为小数不能除大的数字,会显示0。还有结果一定是整数。B算数运算的方向是自左向右。2分析结果:Ai+“先引用,后增值”:+i“先增值,后引用”所以 a+是5,因为先引用,a是6,因为是增值的结果,B+b是9,是因为先增值,b是9,是因为后引用的结果。3分析结果:A可靠性低B不容易读懂 实验 5printf (“long”,sizeof(lo
8、ng);编程:#include int main()int i=0;printf (long: %d bytesn,sizeof(long);return 0;结果:(2)编写程序来测试基本数据类型的取值范围下。编程:#include int main()char c0,c1,c2,c4,c5,c6;c0=-129,c1=-128,c2=-127,c4=128,c5=127,c6=126;printf(%dn%dn%dn%dn%dn%dn,sizeof(c0),sizeof(c1),sizeof(c2),sizeof(c4),sizeof(c5),sizeof(c6);结果为;gjhjhgjh
9、。(1) 编写程序来测试基本数据类型的有效长度和精度编程:#include int main()float d1=0.,d2=.;printf(%lf,%lfn,d1,d2);结果:(2) 编写程序来测试不同类型之间的转换所在出现的截取高位,丢失精度和变得不可知等问题。编程:#include int main()float f1=2.,f2=.;int i1,i2;i1=f1;i2=f2;printf(%d,%dn,i1,i2);结果:(3) 编写程序来测试字符型数据的算术特征编程:#include int main()char c1=35,c2=A,c3;c3=c1+c2;printf(%d
10、,%cn,c3,c3);结果:;(4) 编写程序来测试转移字符的用法如printf(7,7,7”);编程:#include int main()printf(7,7,7);在程序中只是会输出两个,。因为7显示的是所在高度,所以只会显示,。实验6(1)设计一个程序来测试printf()函数中数据参数被引用的顺序Int a=1;Printf(“%d,%d%d,a+,a+,a+”);编程: #include int main()int a=1;printf(%d,%d,%d,+a,+a,+a);结果: 分析结果:因为程序输出是从右向左进行的。(2) 设计一个程序来测试printf()函数中格式的意义
11、。举例:Double d=.;Printf (“%e”,d);编程:#include int main()double d=.;printf (%e,d);结果:。(3) 设计一个程序来测试printf()函数定义域与精度的方法。编程:#include int main()printf(%12.5fn,123.);printf(%12fn,123.);printf(%12.5gn,123.);printf(%5.10s%sn,”abcdefghijkm”,”a”);printf(%12.8dn,12345);return 0;结果:(4)设计一个程序来测试scanf()函数中格式的意义。举例:
12、double x,y;scanf(%f,%lf,&x,&y);printf(%f,%lf,&x,&x);printf(%f,%lf,&y,&y);编程:#include int main()double x,y;scanf(%f,%lf,&x,&y);printf(%f,%lf,&x,&x);printf(%f,%lf,&y,&y);结果:(1) 设计一个程序来测试用scanf()输入含有字符型数据的多项时,数据项之间的分割问题。举例如下:Char c1,c2,c3;Int a1,a2,a3;Scanf(“%d%d%d,&a1,&a2,&a3”);printf(“%d%d%d,a1,a2,a3
13、”); Scanf(“%c%c%c,&c1,&c2,&c3”);printf(“%c%c%c,c1,c2,c3”);Scanf(“%c%c%c,&c1,&c2,&c3”);printf(“%c%c%c,c1,c2,c3”);编程:#include int main()char c1,c2,c3;int a1,a2,a3;scanf(%d%d%d,&a1,&a2,&a3);printf(%d%d%d,a1,a2,a3); scanf(%c%c%c,&c1,&c2,&c3);printf(%c%c%c,c1,c2,c3);scanf(%c %c %c,&c1,&c2,&c3);printf(%c%c%c,c1,c2,c3);return 0结果:(2) 编写一个程序来测试getchar()和putchar的用法。程序:#include int main()char ch1,ch2,ch3;ch1=getchar();ch2=getchar();ch3=getchar();putchar(ch1);putchar(ch2);putchar(ch3);putchar(n);return 0;程序结果:专心-专注-专业