c语言程序设计实验指导答案

c语言程序设计实验指导答案

ID:1787998

大小:87.00 KB

页数:17页

时间:2017-11-13

c语言程序设计实验指导答案_第1页
c语言程序设计实验指导答案_第2页
c语言程序设计实验指导答案_第3页
c语言程序设计实验指导答案_第4页
c语言程序设计实验指导答案_第5页
资源描述:

《c语言程序设计实验指导答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二:变量类型与输入输出1.a=34,a=53,b=1234,b=4660☆因为0x1234超出了字符类型的表示范围,因此打印的结果看起来奇怪。2.输入:a回车输出:****ch1=a,97********ch2=10,****解释ch2的输出:由于输入a回车,因此ch2的值就接受了这个回车,而回车的ascii码的值等于10,因此出现这种结果。如果要修改,需要在ch2=getchar()之前加入一句:getchar();☆☆☆3.把scanf(“%d”,a)改为scanf(“%f”,&a)4.把scanf(“%f”,&a)改为scanf(“%lf”,&a),因为a是double类型的。☆☆☆

2、5.4242123.540000123.5400001.235400e+0021.235400e+0026.正确的形式:a=3.12,b=9.0c=10.0注意的事项是在scanf()中,””中的内容按照原样输入,尽管在实践中没有按照此题那样进行类似输入。7.此题不用看8.#include#definePI3.14159intmain(){doubleradius,high,volume;printf("pleaseinputtheradiusandhigh!");scanf("%lf%lf",&radius,&high);volume=PI*radius*radius*hi

3、gh;printf("thevolumeis:%lf",volume);return0;}9#includeintmain(){inti;printf("pleaseinputthevalue!");scanf("%d",&i);printf("%u,%o,%x",i,i,i);//分别以无符号、八进制、十六进制return0;}10#include17intmain(){charch;printf("pleaseinputthecharacter!");scanf("%c",&ch);printf("itsASCIIcodeis:%d",ch);/*字符型

4、就是短整形因此用%d格式控制就可打印asciicode*/return0;}1112easy忽略实验三:运算符与表达式1.输出:a=2,b=1,i=2,这是因为++放在后面是“先使用后自加”。☆☆☆☆☆2.输出:f=5.750000,(int)f=5,这是因为利用了强制类型转换(int)3.输出:a=3,b=2,c=3,d=3解释:a和b值不同的原因是在给a赋值的时刻,2,3是用括号包围的,而b没有,而逗号表达式的值等于最后面的那个值。☆☆☆☆☆4.输出:-264原因是首先执行a-=a*a也就是a=12-(12*12)=-132,然后a+=a因此变为-264☆☆5.输出:a=2,b=0,c=2

5、,d=1这是因为在执行b=a++&&c++时,由于首先使用a的当前值为0,而在“&&”运算符中当左侧的操作数为0时会发生“短路”现象,即不再计算右侧的”c++”直接就可以判定b=0,因此在这一步中c的值并没有发生变化,而运算完此步a=1。而在下一步d=a++

6、

7、++c中,同样会发生短路现象,因为此时首先利用a的当前值1直接就可以判定d=1,而不再执行++c☆☆☆☆☆6.输出:3,18输出:3,3还是逗号运算符和赋值运算符的问题☆☆☆☆☆7.把s=1/2*a*b改为s=1.0/2*a*b千万不要忘了在c语言中1/2=0☆☆☆☆☆8.easy!9.#includeintmain(

8、){charch;printf("pleaseinputthelowercharacter!");ch=getchar();ch-=32;putchar(ch);return0;}101112easy!!实验四:顺序结构程序设计1.其中的两处错误发生在:scanf(“%d”,r)应该改为scanf(“%f”&r);另外一处发生在语句s=3.14*r*r和语句scanf(“%d”,r)次序颠倒,因为一个变量只有先有值之后才能使用。2.执行结果为3,5,8,-858993444,因为d没有赋初值因此打印出一个看起来非常奇怪的值。☆☆☆☆3.输出74.输入27输出27,这是因为ch1=’2’,ch2

9、=’7’17输入27输出4,这是因为ch1=’2’,ch2=’‘(空格),而空格的ascii码为32,’0’的ascii码为48因此算出结果为45输出1,1☆6.输出6,7,只需要知道++的前缀和后缀的区别即能做出此题。☆☆☆☆7.sum=d1+d2+d3+d4+d5;avg=(float)sum/5;/*需要强制类型转换*/8.#includeintmain(){inta,b,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。