C语言习题前五章参考答案.pdf_第1页
C语言习题前五章参考答案.pdf_第2页
C语言习题前五章参考答案.pdf_第3页
C语言习题前五章参考答案.pdf_第4页
C语言习题前五章参考答案.pdf_第5页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言习题参考答案 第一部分 C语言基础 一、判断题 1对 2错 3对 4对 5错 6错 第二部分 数据类型、运算符及表达式 一、选择题 1AD 2B 3(1)CD (2)BD(3)C (4) B 5B 6D /*赋值时,若有溢出,则只截取低位*/ 7(1)AB(2)BD(3)ABCD 8C 9D 10C /*A,B赋值运算符左值只能是变量,不能是表达式或常量,D是逗 号语句*/ 12B /*赋值运算符优先级比逗号表达式高*/ 13A 14D /*八进制数中,合格字符只能是07*/ 15A /*二进制补码*/ 16A /*八进制数中,合格字符只能是07*/ 17D 19B 20D 21B /*赋值运算符右值的数据类型强制转换为左值的数据类型*/ 22ABD 23D 24C 25ABD 二、填空题 1. 1 , -128127 ; 2 , -3276832767 ; 4 , -21474836482147483647 ; 4 , 。 3. 单引号, 双引号 。 4. 优先级 , 结合性 。 6. 2.5 。 7. 3.5 。 11. 24 , 10 , 60 , 0 , 12 , 0 12. double 。 14. 9 。 16. 1.5 , 1 。 18. 2 , -2 。/*余数符号仅由被除数的符号决定*/ 三、判断题 1.错 /*如常量*/ 3.错 /*如float只能准确表示7位有效数字,多余的位数是近似表示*/ 4.错 5.对 6.对 10.错 四、简答题 4写出下列各数的二进制补码(写成16为二进制形式):32: 0000 0000 0010 0000 1: 1111 1111 1111 1111 32768:1000 0000 0000 0000 2002: 0000 0111 1101 0010 128: 1111 1111 1000 0000 0: 0000 0000 0000 0000 五、程序阅读 1. aabb4个空格cc6个空格c A 6 2. 9,11,9,10 第三部分 顺序结构 一、选择题 2.D 3.B /*假设int占2个字节*/ 4.D 5.C 7.C 8.B 9.D 10.B 11.C /*D,scanf函数的格式符中不能规定小数位数*/ 12.A /*格式控制符:%2d%2d%3d,输入时,前两个空格对应的数字赋给 a,紧挨着的两个空格的位置赋给b*/ 13.C 14.D 15.D 二、填空题 6. % 8. -10 12 410.34回车 题目补充:scanf函数的调用形式为: scanf(“%d%d%f”, 。 三、程序阅读 1. a=3 b=7 8.5 71.82A a回车 3. 12345,-1.98e+002, 6.50 4. D, /*除了X、E、G(可用大写字母表示)外,其他格式字符必须用小写 字母;*/ 6. 12#,12 # 3.1415926后接94个0# 四、程序填空题 6.6 五、编程题 1. #include void main ( ) int a,b,t; scanf(“%d%d“, t=a; a=b; b=t; printf(“%d %d n“,a,b); 2. #include void main ( ) int a=3,b=4,c=5; float x=1.2,y=2.4,z=-3.6; unsigned u=51274; long n=128765; char c1=a,c2=b; /*a= 3 b= 4 c= 5*/ printf(“a=%2d b=%2d c=%2dn“,a,b,c); /*x=1.200000,y=2.400000,z=-3.600000*/ printf(“x=%f,y=%f,z=%fn“,x,y,z); /*x+y= 3.60 y+z=-1.20 z+x=-2.40*/ printf(“x+y=%5.2f y+z=%5.2f z+x=%5.2fn“,x+y,y+z, z+x); /*u= 51274 n= 128765*/ printf(“u=%6u n=%7ldn“,u,n); /*c1=a or 97(ASCII)*/ printf(“c1=%c or%3d(ASCII)n“,c1,c1); /*c2=b or 98(ASCII)*/ printf(“c2=%c or%3d(ASCII)n“,c2,c2); 4. #include void main ( ) char c1,c2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); printf(“%c%cn“,c1,c2); (1)变量c1,c2定义为字符型或整型皆可 (2)输出c1和c2值的ASCII码用printf函数,即: printf(“%d,%dn”,c1,c2); (3)char c1,c2 与 int c1,c2 不是无条件地等价,char型变量最大只能表 示8位,int型变量可以表示16位。 第四部分 选择结构 一、选择题 1.D 2.B /*!运算符的优先级比%高*/ 4.C 5.D 6.B 7.B 8.D 9.A /*if子句x=y;y=x;是两条语句,没加,导致else找不到匹配的if.*/ 10.D /*条件表达式的结合性为从右向左*/ 11.A 13.C 14.B /*只有遇到break或是switch的结束才会跳出该层switch*/ 15.D /*题目补充:(-y=x+)改为 (-y=x+)*/ 16.B 17.D 18.D /*题目补充:int i=0;改成int i=10;*/ 19.A /*条件表达式的结合性为从右向左*/ 20.C /*abc 等价于(ab)c,所以值为0*/ 二、填空题 3.(1)0 (2)1 (3)1 6. (x=A | | c=A scanf(“%d%d“, if(a100) printf(“a=%dn“,a); if(b100) printf(“b=%dn“,b); if(a void main() long n; int a,b,c,d,e; scanf(“%ld”, printf(“n=%ldn”,n); a=n/10000; /*最高位*/ b=(n-a*10000)/1000; /*千位数*/ c=(n-a*10000-b*1000)/100; /*百位数*/ d=(n-a*10000-b*1000-c*100)/10; /*十位数*/ e=n%10; /*个位数*/ if(a!=0) printf(“n=%ld是一个五位整n”,n); printf(“每一位数字:%d %d %d %d %dn”, a,b,c,d,e); printf(“n的反序是:%ldn”, e*10000+d*1000+c*100+b*10+a); else if(b!=0) printf(“n=%ld是一个四位整n”,n); printf(“每一位数字:%d %d %d %d n”, b,c,d,e); printf(“n的反序是:%ldn”, e*1000+d*100+c*10+b); else if(c!=0) printf(“n=%ld是一个三位整n”,n); printf(“每一位数字:%d %d %d n”, c,d,e); printf(“n的反序是:%ldn”,e*100+d*10+c); else if(d!=0) printf(“n=%ld是一个二位整n”,n); printf(“每一位数字: %d %d n”, d,e); printf(“n的反序是:%ldn”,e*10+d); else printf(“n=%ld是一个一位整n”,n); printf(“每一位数字: %d n”, d); printf(“n的反序是:%ldn”,e); 第五部分 循环结构 一、选择题 1.C /*k=0属于赋值表达式,值为0,即假*/ 2.C /*A B D均为求1100的累加和,C是求2101的累加和*/ 3.B /*i=0在第一次循环时不满足,即跳出循环*/ 5.B /*x=9时,x%3=0,即输出-x即8;然后再执行for中的-x,即x=7;不输 出;x再变成6,输出-x即5,*/ 6. ABCD均为死循环 7.C /*as) printf(“%dd”,n); 5.下面程序接受键盘上的输入,直到按键为止,这些字符被原样输 出,但若有连续的一个以上的空格时只输出一个空格,请填(3)空使程序 完整。 main ( ) char cx , front=0 ; while (【1 】!=n) /*填:(cx=getchar() 读取字符*/ if (cx!= ) putchar(cx) ; if (cx= ) if (【2 】) /*填:front!= 如前一个字符不为空格*/ putchar(【3 】); /*填: 输出一个空格*/ front=cx ; /*front用来记录前一个字符*/ 六、编程题 1.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的 个数。如:fqwegq4253!_=rfgs;l234 #include void main ( ) char c; int letter=0, number=0, space=0,other=0; while(c=getchar()!=n) if(c=a long s=0, n=1; for(i=1; i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论