C语言程序设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

科目:C语言程序设计老师:姓名:学号:专业:化学工程与工艺实验二(1)输入下面的程序,进行编译,记录编译时出现的信息,分析出现这些错误信息的原因;按照自己的分析改正错误后,再进行编译,链接和运行。/*****test1.c*****/main()(printf(thisisaerroneousprogram);)编译时出现的信息:Compiling...yang.cppd:\杨洪棋c++练习\test\yang.cpp(4):errorC2065:'printf':undeclaredidentifierd:\杨洪棋c++练习\test\yang.cpp(4):errorC2143:syntaxerror:missing')'before';'d:\杨洪棋c++练习\test\yang.cpp(4):errorC2072:'main':initializationofafunctiond:\杨洪棋c++练习\test\yang.cpp(5):errorC2059:syntaxerror:')'执行cl.exe时出错.yang.obj-1error(s),0warning(s)出现这些错误信息的原因:该程序缺少命令行,还有函数体要用“{}”括起来,而不是“()”改正/*****test1.c*****/#includestdio.hmain(){printf(thisisaerroneousprogram.);}运行结果thisisaerroneousprogram.(2)下面程序的目的是计算两个整数的积。请输入下面的程序,进行编译,记录编译时出现的信息,分析出现这些信息的原因。按照自己的分析改正错误后,再进行编译。链接和运行。/*****test2.c*****/#includestdio.hmain(){a=3,b=5;c=a*b;printf(Theproductis:,c)}编译时出现的信息:--------------------Configuration:test1-Win32Debug--------------------Compiling...hong.cppd:\杨洪棋c++练习\test1\hong.cpp(5):errorC2065:'a':undeclaredidentifierd:\杨洪棋c++练习\test1\hong.cpp(5):errorC2065:'b':undeclaredidentifierd:\杨洪棋c++练习\test1\hong.cpp(6):errorC2065:'c':undeclaredidentifierd:\杨洪棋c++练习\test1\hong.cpp(8):errorC2143:syntaxerror:missing';'before'}'d:\杨洪棋c++练习\test1\hong.cpp(8):warningC4508:'main':functionshouldreturnavalue;'void'returntypeassumed执行cl.exe时出错.hong.obj-1error(s),0warning(s)出现这些错误信息的原因:该程序没有对啊,不a,b,c定义,还有程序执行部分缺少输出格式,printf结束时缺少一个“;”改正后/*****test2.c*****/#includestdio.hmain(){inta,b,c;a=3;b=5;c=a*b;printf(Theproductis:%d\n,c);}编译时出现的信息--------------------Configuration:test1-Win32Debug--------------------Linking...test1.exe-0error(s),0warning(s)运行结果Theproductis:15实验三(1)分析下面字符的功能分析它们是否可以用在变量名中,并编译程序上机测试之。!#%……&*()—+=;“`\|?,./[]{}:~测试程序如下intmain(void){Inta?b,c/d;}同理得出:所有的都不能用在变量名中。因为C语言规定只有合法的标识符才可以作为变量名。(2)分析下面的程序找出其中的错误,分析错误原因,将其与实验过程中出现的信息进行对比。#includestdio.hintmain(){inta=3,b=5,c=7,x=1,y,z;a=b=c;x+2=5;z=y+3;return0;}编译时出现的信息:--------------------Configuration:test-Win32Debug--------------------Compiling...yang.cppD:\杨洪棋c++练习\test\test\yang.cpp(6):errorC2106:'=':leftoperandmustbel-value执行cl.exe时出错.yang.obj-1error(s),0warning(s)出现这些错误信息的原因:x+2不能出现在等式的左边,还有y一个没有赋值的变量。改正后#includestdio.hmain(){inta,b,c,x,y,z;a=3;b=5;c=7;x=1;a=b=c;x=5-2;y=b;z=y+3;return0;}编译时出现的信息:--------------------Configuration:test-Win32Debug--------------------Linking...test.exe-0error(s),0warning(s)实验四(1)整除的危险性#includestdio.hmain(){inta=5,b=7,c=100,d,e,f;d=a/b*c;e=a*c/d;f=c/a*b;printf(d=%d,e=%d,f=%d\n,d,e,f);}整除的危险性:使程序无法输出正确的结果,因为d=a/b*c的输出结果为0,而0不可以作为分母,所以程序不能输出正确的结果。(2)分析下面的程序:试比较x++与++x之间的区别。#includestdio.hmain(){inta=5,b=8;printf(a++=%d\n,a++);printf(a=%d\n,a);printf(++b=%d\n,++b);printf(b=%d\n,b);}得出结果:x++是先进行计算后在加,++x是先加后计算。(3)分析下列表达式的值编写测试程序对这些表达式的值进行比较,并使各表达式在相同的初始条件下执行。b+a+++a=18b+(a++)+a=18b+a+(++a)=19b+a+++a++=18程序为:#includestdio.hintadd1(inta,intb){intf;f=b+a+++a;returnf;}intadd2(inta,intb){inth;h=b+(a++)+a;returnh;}intadd3(inta,intb){intg;g=b+a+(++a);returng;}intadd4(inta,intb){intm;m=b+a+++a++;returnm;}main(){inta=5,b=8,i,j,k,l;i=add1(a,b);j=add2(a,b);k=add3(a,b);l=add4(a,b);printf(i=%d,j=%d,k=%d,l=%d\n,i,j,k,l);}表达式的值:b+a+++a=18b+(a++)+a=18b+a+(++a)=19b+a+++a++=18(4)分析下列表达式哪些是错误的,为了验证自己的判断,编写一个测试程序。i,ji+1,j+1i++,j++++i,++ji+++++j只有i+++++j是错误的。#includestdio.hmain(){inti,j;i=5;j=6;printf(%d,%d\n,i,j);printf(%d,%d\n,i+1,j+1);printf(%d,%d\n,i++,j++);printf(%d,%d\n,++i,++j);printf(%d\n,i+++++j);}--------------------Configuration:sdsds-Win32Debug--------------------Compiling...dsds.cppD:\杨洪棋c++练习\test\sdsds\dsds.cpp(11):errorC2105:'++'needsl-valueD:\杨洪棋c++练习\test\sdsds\dsds.cpp(12):warningC4508:'main':functionshouldreturnavalue;'void'returntypeassumed执行cl.exe时出错.dsds.obj-1error(s),0warning(s)实验5(1),编写一个用于测试所使用系统中的基本数据类型所占内存宽度的程序。#includestdio.hmain(){printf(&d=%d\n,sizeof(int));}Int所占内存的宽度为4(2).编写程序来测试基本数据类型的取值范围。#includestdio.hmain(){charc0,c1,c2,c4,c5,c6;inta,b,c,d,e,f;printf(c0=%d,c1=%d,c4=%d,c5=%d,c6=%d\n,a,b,c,d,e,f);}(3).编写一个程序来测试数据类型的有效数字长度和精度。#includestdio.hmain(){floatd1,d2;d1=0.123456789;d2=12345678901234567890.123456789;printf(%lf,%lf\n,d1,d2);}(4)编写程序来测试不同类型数据之间转换所出现的截去高位、丢失精度和变得不可知等问题#includestdio.hmain(){doublef1,f2;f1=2.1234567;f2=12345678901234567.123456789;inti1,i2;i1=(int)f1;i2=(int)f2;printf(%d,%d\n,i1,i2);}(5)编写程序来测试字符型数据的算术特征#includestdio.hmain(){charc1=35,c2='A',c3;c3=c1+c2;printf(%d,%c\n,c3,c3);}(6)编写程序来测试转义字符的用法#includestdio.hmain(){printf(\t,\t,\t);}实验6(1).设计一个程序测试printf()函数中数据参数被引用的顺序。#includestdio.hmain(){inta=1;printf(%d,%d,%d\n,++a,++a,++a);}可以看出数据参数是从后面被引用的。输出结果:4,3,2(2).设计一个程序来测试printf()函数中格式符的意义#includestdio.hmain(){doubled=123456789.234567;printf(%e\n,d);}输出结果:1.234568e+008(3)设计一个程序来测试printf()函数定义域宽与精度的方法所设计的程序要能证明以下内容。A,域宽小于实际宽度时的情况。B,默认的域宽与精度各是多少。C,精度说明大于或小于实际精度时的处理。D,float与double的最大精度。E,符号位的处理方式。F,多余的小数位被截断还是舍入。(4).设计一个程序来测试scanf()函数中格式符的意义#includestdio.hmain(){doublex,y;scanf(%lf,%lf\n,&x,&y);printf(%f,%lf\n,&x,&x);printf(%f,%lf\n,&y,&y);}输出结果:3.03.00.0000000.0000000.0000000.000000(5)设计一个程序来测试用scanf()输入含有字符型数据的多个项时,数据项之间的分隔问题。#includestdio

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功