




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上 科目:C语言程序设计 老师: 姓名: 学号: 专业:化学工程与工艺 实验二(1) 输入下面的程序,进行编译,记录编译时出现的信息,分析出现这些错误信息的原因;按照自己的分析改正错误后,再进行编译,链接和运行。/*test1.c*/ main() ( printf(this is a erroneous program); )编译时出现的信息:Compiling.yang.cppd:杨洪棋c+练习testyang.cpp(4) : error C2065: printf : undeclared identifierd:杨洪棋c+练习testyang.cpp(4) :
2、 error C2143: syntax error : missing ) before ;d:杨洪棋c+练习testyang.cpp(4) : error C2072: main : initialization of a functiond:杨洪棋c+练习testyang.cpp(5) : error C2059: syntax error : )执行 cl.exe 时出错.yang.obj - 1 error(s), 0 warning(s)出现这些错误信息的原因:该程序缺少命令行,还有函数体要用“”括起来,而不是“()”改正/*test1.c*/#includemain() prin
3、tf(this is a erroneous program.); 运行结果this is a erroneous program.(2) 下面程序的目的是计算两个整数的积。请输入下面的程序,进行编译,记录编译时出现的信息,分析出现这些信息的原因。按照自己的分析改正错误后,再进行编译。链接和运行。/*test2.c*/#includemain()a=3,b=5;c=a*b;printf(The product is:,c)编译时出现的信息:-Configuration: test1 - Win32 Debug-Compiling.hong.cppd:杨洪棋c+练习test1hong.cpp(5
4、) : error C2065: a : undeclared identifierd:杨洪棋c+练习test1hong.cpp(5) : error C2065: b : undeclared identifierd:杨洪棋c+练习test1hong.cpp(6) : error C2065: c : undeclared identifierd:杨洪棋c+练习test1hong.cpp(8) : error C2143: syntax error : missing ; before d:杨洪棋c+练习test1hong.cpp(8) : warning C4508: main : fun
5、ction should return a value; void return type assumed执行 cl.exe 时出错.hong.obj - 1 error(s), 0 warning(s)出现这些错误信息的原因:该程序没有对啊,不a,b,c定义,还有程序执行部分缺少输出格式,printf结束时缺少一个“;”改正后/*test2.c*/#includemain()int a,b,c;a=3;b=5;c=a*b;printf(The product is:%dn,c);编译时出现的信息-Configuration: test1 - Win32 Debug-Linking. test
6、1.exe - 0 error(s), 0 warning(s)运行结果The product is:15实验三(1) 分析下面字符的功能分析它们是否可以用在变量名中,并编译程序上机测试之。! # % & * () + = ; “ | ? , ./ : 测试程序如下int main(void) Int a? b, c/d;同理得出:所有的都不能用在变量名中。因为C语言规定只有合法的标识符才可以作为变量名。(2) 分析下面的程序找出其中的错误,分析错误原因,将其与实验过程中出现的信息进行对比。#includeint main() int a=3,b=5,c=7,x=1,y,z; a=b=c; x
7、+2=5; z=y+3; return 0;编译时出现的信息: -Configuration: test - Win32 Debug-Compiling.yang.cppD:杨洪棋c+练习testtestyang.cpp(6) : error C2106: = : left operand must be l-value执行 cl.exe 时出错.yang.obj - 1 error(s), 0 warning(s)出现这些错误信息的原因:x+2不能出现在等式的左边,还有y一个没有赋值的变量。改正后#includemain()int a,b,c,x,y,z;a=3; b=5; c=7;x=1;
8、a=b=c;x=5-2;y=b;z=y+3;return 0; 编译时出现的信息:-Configuration: test - Win32 Debug-Linking. test.exe - 0 error(s), 0 warning(s)实验四(1) 整除的危险性#includemain() int a=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=%dn,d,e,f);整除的危险性:使程序无法输出正确的结果,因为d=a/b*c的输出结果为0,而0不可以作为分母,所以程序不能输出正确的结果。(2) 分析下面的
9、程序:试比较x+与+x之间的区别。#includemain() int a=5,b=8; printf(a+=%dn,a+); printf(a=%dn,a); printf(+b=%dn,+b); printf(b=%dn,b);得出结果:x+是先进行计算后在加,+x是先加后计算。(3) 分析下列表达式的值编写测试程序对这些表达式的值进行比较,并使各表达式在相同的初始条件下执行。b+a+a=18b+(a+)+a=18b+a+(+a)=19b+a+a+=18程序为:#includeint add1(int a,int b) int f; f=b+a+a; return f;int add2(i
10、nt a,int b) int h; h=b+(a+)+a; return h;int add3(int a,int b) int g; g=b+a+(+a); return g; int add4(int a,int b) int m; m=b+a+a+; return m; main() int a=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=%dn,i,j,k,l);表达式的值:b+a+a=18b+(a+)+a=18b+a+(+a)=19b+a+a+=
11、18(4) 分析下列表达式哪些是错误的,为了验证自己的判断,编写一个测试程序。i,j i+1,j+1 i+,j+ +i,+j i+j只有i+j是错误的。#includemain()int i,j;i=5;j=6;printf(%d,%dn,i,j);printf(%d,%dn,i+1,j+1);printf(%d,%dn,i+,j+);printf(%d,%dn,+i,+j);printf(%dn,i+j);-Configuration: sdsds - Win32 Debug-Compiling.dsds.cppD:杨洪棋c+练习testsdsdsdsds.cpp(11) : error C
12、2105: + needs l-valueD:杨洪棋c+练习testsdsdsdsds.cpp(12) : warning C4508: main : function should return a value; void return type assumed执行 cl.exe 时出错.dsds.obj - 1 error(s), 0 warning(s)实验5(1) ,编写一个用于测试所使用系统中的基本数据类型所占内存宽度的程序。#includemain()printf(&d=%dn,sizeof(int);Int所占内存的宽度为4(2) .编写程序来测试基本数据类型的取值范围。#inc
13、ludemain()char c0,c1,c2,c4,c5,c6;int a,b,c,d,e,f;printf(c0=%d,c1=%d,c4=%d,c5=%d,c6=%dn,a,b,c,d,e,f);(3) .编写一个程序来测试数据类型的有效数字长度和精度。#includemain()float d1,d2;d1=0.;d2=.;printf(%lf,%lfn,d1,d2);(4) 编写程序来测试不同类型数据之间转换所出现的截去高位、丢失精度和变得不可知等问题 #includemain()double f1,f2;f1=2.;f2=.;int i1,i2;i1=(int)f1;i2=(int)
14、f2;printf(%d,%dn,i1,i2);(5) 编写程序来测试字符型数据的算术特征#includemain()char c1=35,c2=A,c3;c3=c1+c2;printf(%d,%cn,c3,c3);(6) 编写程序来测试转义字符的用法#includemain()printf(t,t,t);实验6(1) .设计一个程序测试printf()函数中数据参数被引用的顺序。#includemain()int a=1;printf(%d,%d,%dn,+a,+a,+a);可以看出数据参数是从后面被引用的。输出结果:4,3,2(2) .设计一个程序来测试printf()函数中格式符的意义#
15、includemain()double d=.;printf(%en,d);输出结果:1.e+008(3) 设计一个程序来测试printf()函数定义域宽与精度的方法所设计的程序要能证明以下内容。A,域宽小于实际宽度时的情况。B,默认的域宽与精度各是多少。C,精度说明大于或小于实际精度时的处理。D,float与double的最大精度。E,符号位的处理方式。F,多余的小数位被截断还是舍入。(4) .设计一个程序来测试scanf()函数中格式符的意义#includemain()double x,y;scanf(%lf,%lfn,&x,&y);printf(%f,%lfn,&x,&x);printf
16、(%f,%lfn,&y,&y);输出结果:3.0 3.0 0. 0. 0. 0. (5) 设计一个程序来测试用scanf()输入含有字符型数据的多个项时,数据项之间的分隔问题。#includemain()char c1,c2,c3;int a1,a2,a3;scanf(%d%d%d,&a1,&a2,&a3);printf(%d%d%dt,a1,a2,a3);scanf(%c%c%c,&c1,&c2,&c3);printf(%c%c%ct,c1,c2,c3);scanf(%c %c %c,&c1,&c2,&c3);printf(%c%c%cn,c1,c2,c3); 输入结果:3 3 3adca
17、d c输出结果:333 adc adc(6) 编写一个程序来测试getchar()和putchar()的用法#includemain()char c;while(c=getchar()!=n)if(c=a&c=z)c=c-a+A;putchar(c);putchar(n);实验7(1) .编写一个用于测试关系表达式意义和取值的程序分析结果:0,0,1,1 0,0,1,1,1,1#includemain()int a=3,b=5,c=5;printf(%d,%d,%d,%dt,a=b,a=c,a!=b,a!=c);printf(%d,%d,%d,%d,%d,%dt,a=b,a=c,a=b,a=c
18、,ab,ac);输出结果:0,0,1,1 0,0,1,1,1,1(2) 阅读下面的程序并分析其运行结果讲运行结果与上机结果进行比较分析结果:1.23 OK!#includemain()float x;scanf(%lf,&x);/*从键盘上输入数据1.23*/if(x=1.23)printf(OK!n);输出结果:1.23 OK!(3) 编写一个用于测试逻辑表达式的意义和取值的程序程序的执行结果:0,1,0,1 1,1,1,0 #includemain()int a=3,b=5,c=5;printf(%d,%d,%d,%dt,a=b&a=c,a!=b&a!=c,a=b&a=c,a=b&a=b)
19、,!(a=c),!(a=b);输出结果:0,1,0,1 1,1,1,0(4) 编写程序来测试下例逻辑表达式的值0&a=0 1|a=1 0|a=a 1&a=a 1&a=a a|!a=1 a|a=aa&a=a !(a|b)=!a&!b !(a&b)=!a|!b!(!a)=a程序的执行结果:0,1,1,1,1,1,1,0#includemain()int a,b,c,d,e,f,g,h,i,j;c=0&a=0;d=1|a=1;e=0|a=a;f=1&a=a;g=a|!a=1;h=a|a=a;i=a&a=a;j=!(a|b)=!a&!b;printf(%d,%d,%d,%d,%d,%d,%d,%dn,
20、c,d,e,f,g,h,i,j);输出结果:0,1,1,1,1,1,1,0(5) 分析下面程序段的执行结果并编写验证自己所做推断的程序程序执行的结果:1 0#includemain()int a=3,b=5,c=5;printf(%dt,a5|(a=b&b5&(a=b|bc,printf(OK!);输出结果:1 0实验9#includeint main(void)double e=1.0,x=1.0,y,detax;int i=1;printf(n please enter a error:);scanf(%lf,&detax);y=1/x;while(y=detax)x=x*i;y=1/x;
21、e=e+y;+i;printf(%12.10lfn,e);(1) 设计一组detax,使程序能分别按照下面的要求运行。不进入循环:ydetax;只循环一次:y=detax;只循环两次:y=detax;进入死循环:ydetax;如果把原程序while语句之前的y=1/x语句去掉,观察程序的运行结果将发生什么变化答:去掉之后将不执行while语句,直接输出结果。输入的detax=y就可以测试出缺少了上述语句。若把原程序的+i换成i+,观察程序的运行结果发生这样的变化答:没有发生什么变化。把原程序中的while结构改成do-while结构,#includeint main(void)double e
22、=1.0,x=1.0,y,detax;int i=1,n=0;printf(n please enter a error:);scanf(%lf,&detax);y=1/x;do x=x*i;y=1/x;e=e+y;+i;n+;while(ydetax);printf(%12.10lf,%dn,e,n);讲y=1/x去掉,讲没有输出结果。其他的没有什么变化。实验10阅读下面程序,画出程序流程图或N-S图,指出程序的功能。#include main() int i,j,k; long sum=0; for(i=19;i=20;i+) for(j=2;j3,输出结果为0C外循环,内循环各1次,i=
23、19,j=2;输出结果:7569D. 外循环1次,内循环2次;i=19,j=1;输出结果:10092E外循环2次,内循环1次;i=18,j=2;输出结果:10018F外循环19次,内循环3次,i=2,j=0;输出结果:46284G外循环20次,内循环2次;i=1,j=1;输出结果:39720H外循环21次,内循环3次;i=0,j=0输出结果:46354(2)为了了解每循环一次时循环体中变量的变化。#include main() int i,j,k; long sum=0; for(i=0;i=20;i+) for(j=0;j=3;j+) printf(%d,%dn,i,j); sum+=(i+
24、1)*(i+1)*(j+2); printf(sum is:%dn,sum);(3)将内/外循环的控制表达式对换,观察程序的执行结果是否有变化,并计算内/外循环共执行多少次。与对换之前相比,有何变化。 #include main() int i,j,k=0,m=0; long sum=0; for(j=1;j=3;j+) k+; for(i=1;i=20;i+) m+; sum+=(i+1)*(i+1)*(j+2); printf(sum is:%dn,sum); printf(%d,%dn,k,m);程序执行的结果没有发生变化。外循环循环了3次,内循环循环了20次。(4)将程序修改如下#include main() int i,j,k; long sum=0; for(j=2;j=3;j+) k=j+2; for(i=19;i=20;i+) sum+=(i+1)*(i+1)*k; printf(sum is:%dn,sum);观察程序的执行结果没有发生变化
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 果树病虫害防治中农药使用污染问题及对策探讨
- 公路养护单位人力资源管理的激励措施与机制
- DB13-T1735-2013物流采购服务质量规范
- 新疆巴州地区梅毒发病预测与控制模型的研究
- 2024-2025学年高中地理第二章中国的主要自然灾害第三节中国的海洋灾害学案中图版选修5
- 位检测合同范例
- 买断工龄合同范本
- 树根修剪施工方案
- 主播延期合同范例
- 公路开挖合同范例
- 2025年无锡职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 2025年北京戏曲艺术职业学院高职单招数学历年(2016-2024)频考点试题含答案解析
- 2025年青海西宁广播电视台招聘20人高频重点提升(共500题)附带答案详解
- 2025年内蒙古兴安盟突泉县选聘生态护林员450人历年高频重点提升(共500题)附带答案详解
- 胸腔闭式引流护理
- 2025年兴湘集团全资子公司招聘笔试参考题库含答案解析
- 蒙医学中的推拿暖宫疗法与妇科保健技巧
- 湖北省生态环保有限公司招聘笔试冲刺题2025
- 西门子自动化培训
- DB51T 2722-2020 四川省行政执法文书标准
- 压力测试报告
评论
0/150
提交评论