2013.11.C语言半期考试卷讲评(一、二题).pptx

2013.11.C语言半期考试卷讲评(一、二题).pptx

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2013.11.C语言半期考试卷讲评(一、二题)

C语言期中试卷讲评 一、写出以下程序段的运行结果 1. int a = 0xA1, b = 4; int c = a++, d = ++b; printf(a=%d,b=%d,, a, b); printf(c=%d,d=%d, c, d); 1.解答 a=16*10+1=161 c=161 a=162 d=5 b=5 输出为: a=162,b=5,c=161,d=5 一、写出以下程序段的运行结果 2. float f = 41.0, c; double t = 3.14159, v; c = 5 / 9 * (f - 32); f *= 2.0 + 1.0; t += 2.0; v = t / 10; printf(f=%f,, f); printf(c=%f,, c); printf(t=%f,, t); printf(v=%.4f, v); 2.解答 5/9是整数相除,值为0 所以c=0*(f-32)=0 f=41.0*(2.0+1.0)=123.0 t=t+2.0=5.14159 v=t/10=0.514159 输出为: f=123.000000,c=0.000000,t=5.141590,v=0.5142 一、写出以下程序段的运行结果 3. int a=256; char b=a; char c=128; printf(%d,,b); printf(%d,c); 3.解答 a的二进制补码:00000000 b的二进制补码为a的低八位故b=0 128的二进制补码为c默认为signed char,最高位为符号位,故为负数 其绝对值的原码是:1再取反十进制为128 故c=-128 输出为: 0,-128 一、写出以下程序段的运行结果 4. char a, c; int b, d; getchar(); scanf(%c%d%c%d, a,b,c,d); printf(a=%c,, a); printf(b=%d,, b); printf(c=%c,, c); printf(d=%d,, d); 假设程序段的输入为: 1023.45回车 4.解答 getchar()输入一个字符1 a=‘0’;b=23;c=‘.’;d=45 输出为: a=0,b=23,c=.,d=45, 一、写出以下程序段的运行结果 5. float f=2.345; int b=5; double a; a = (double)((int)f+5); f = a||(5-b++); printf(a=%lf,, a); printf(b=%d, b); 5.解答 a=2+5=7; f= a||(5-b++); 该项表达式根据a的值即可判断值为1,没有执行(5-b++)的判断 f=1, b=5值不变 输出为: a=7.000000,b=5 一、写出以下程序段的运行结果 6. int a = 20, b = 10; if (a=b) printf(1,); else printf(2,); if (0=ab) printf(3); else printf(4); 6.解答 a=b为赋值表达式, a=20,表达式的值为20,为真,故执行: printf(1,); 0=a为真,故值为1,1b为真, 故0=ab表达式的值为1, 执行printf(3); 输出为: 1,3 一、写出以下程序段的运行结果 7. char a=a, z=Z; int i=D-b; putchar(a+i); putchar(z-i); 7.解答 i = ‘D’ - ’b’ =‘D’-’d’+2 a + i =‘A’+2=‘C’ z-i =‘z’-2=‘x’ 输出为: Cx 一、写出以下程序段的运行结果 8. int i, j; for(i=1;i4;i++) { for(j=0;j=i;j++) { if (j%2==0) continue; if (i%2==0) break; printf(%d,%d, i, j); } }   8.解答 只有当i和j都有奇数时才输出,且j=i 输出为: 1,13,13,3 一、写出以下程序段的运行结果 9. int a,n,count=1; double sn=0,tn=0; scanf(%d,%d,a,n); do { tn=a%2?1:a/(a+1); sn=sn*10+tn; a=a/2; }while(++countn); printf(%f, sn); 假设程序段的输入为: 9,4回车 9.解答 循环1: tn=1,sn=1,a=4,count=2 循环2:tn

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档