C语言习题(前五章)参考答案.doc

下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。

2.下载的文档,不会出现我们的网址水印。

3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。

文档包含非法信息?点此举报后获取现金奖励!

下载文档到电脑,查找使用更方便

10

积分

还剩页未读,继续阅读

关 键 词:语言

习题

前五章

参考答案

资源描述:

C语言习题参考答案

第一部分 C语言基础

一、判断题

1.对 2.错 3.对 4.对 5.错 6.错

第二部分 数据类型、运算符及表达式

一、选择题

1.AD

2.B

3.(1)CD (2)BD(3)C (4) B

5.B

6.D /*赋值时,若有溢出,则只截取低位*/

7.(1)AB(2)BD(3)ABCD

8.C

9.D

10.C /*A,B赋值运算符左值只能是变量,不能是表达式或常量,D是逗号语句*/

12.B /*赋值运算符优先级比逗号表达式高*/

13.A

14.D /*八进制数中,合格字符只能是0~7*/

15.A /*二进制补码*/

16.A /*八进制数中,合格字符只能是0~7*/

17.D

19.B

20.D

21.B /*赋值运算符右值的数据类型强制转换为左值的数据类型*/

22.ABD

23.D

24.C

25.ABD

二、填空题

1. 1 , -128~127 ; 2 , -32768~32767 ; 4 , -2147483648~2147483647; 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.

aabb[4个空格]cc[6个空格]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”,&i,&j,&x); 。

三、程序阅读

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",&a,&b);

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=%2d\n",a,b,c);

/*x=1.200000,y=2.400000,z=-3.600000*/

printf("x=%f,y=%f,z=%f\n",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.2f\n",x+y,y+z,

z+x);

/*u= 51274 n= 128765*/

printf("u=%6u n=%7ld\n",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%c\n",c1,c2);

}

(1)变量c1,c2定义为字符型或整型皆可

(2)输出c1和c2值的ASCII码用printf函数,即:

printf(“%d,%d\n”,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 /*②a>b>c 等价于(a>b)>c,所以值为0*/

二、填空题

3.(1)0 (2)1 (3)1

6.(x<0&&y<0)||(x<0&&z<0)||(y<0&&z<0)。

7. 0 。

9. 0 。

10. a=10,b=9,c=11 /*题目补充:x--=y++改成:x--==y++*/

三、判断题

1.对 3.对 4.对 5.对 6.对

10.错 /*整型和字符型通用*/

四、简答题

2. switch(s)

{

case 3…6: x=2; break;

case 9:

case 10: x=3; break;

case 1:

case 2:

case 7:

case 8:x=1;break;

default:x=0;

}

五、程序阅读题

1.Yes

2. *& /*只有遇到break或是switch的结束}才会跳出该层switch*/

六、程序判断题

1.c = (c>=’A’ | | c<=’Z’) ? c-32 : c+32 ;

改成:c = (c>=’A’ &&c<=’Z’) ? c+32 : c;

/*小写字母比对应的大写字母的ASCII码值大32*/

七、程序填空题

1. 题目错误!!

2. u = xvoid main ( )

{

int a,b;

scanf("%d%d",&a,&b);

if(a>100)

printf("a=%d\n",a);

if(b>100)

printf("b=%d\n",b);

if(a<=100&&b<=100)

printf("a+b=%d\n",a+b);

}

5. #include void main()

{

long n;

int a,b,c,d,e;

scanf(“%ld”, &n);

printf(“n=%ld\n”,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 %d\n”, a,b,c,d,e);

printf(“n的反序是:%ld\n”, 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的反序是:%ld\n”, 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的反序是:%ld\n”,e*100+d*10+c);

}

else if(d!=0)

{

printf(“n=%ld是一个二位整\n”,n);

printf(“每一位数字: %d %d \n”, d,e);

printf(“n的反序是:%ld\n”,e*10+d);

}

else

{

printf(“n=%ld是一个一位整\n”,n);

printf(“每一位数字: %d \n”, d);

printf(“n的反序是:%ld\n”,e);

}

}

第五部分 循环结构

一、选择题

1.C /*k=0属于赋值表达式,值为0,即假*/

2.C /*A B D均为求1~100的累加和,C是求2~101的累加和*/

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&&c<=z)||c>=A&&c<=Z)

letter++; /*c为英文字母,则letter个数加1*/

else if(c>=0&&c<=9)

number++; /*c为数字,则number个数加1*/

else if(c== )

space++;/*如果c为空格,则space个数加1*/

else

other++; /*其它字符,则other个数加1*/

}

printf("字母有%d个 数字有%d个 空格有%d个 其它字符有%d个\n",letter,number,space,other);

}

2.求 (即求1!+2!+3!+…+19!+20!)。

#include void main ( )

{

int i,j;

long s=0, n=1;

for(i=1; i<=20; i++)

{

n=1;

for(j=1; j<=i; j++)

n=n*j; /*n记录i!*/

s=s+n; /*s为所求的累加和*/

}

printf("s=%d\n",s);

}

3.提高题:打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。

#include void main ( )

{

int i,a,b,c,i_tmp;

for(i=100; i<=999; i++)

{

a=i/100; /*a记录百位数字*/

b=(i-a*100)/10; /*b记录十位数字*/

c=i%10; /*c记录个位数*/

i_tmp=a*a*a+b*b*b+c*c*c; /*i_tmp记录个位数的立方和*/

if(i_tmp==i)

printf("%d\n",i); /*i即为水仙数*/

}

}

4

展开阅读全文

温馨提示:

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。

2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。

3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。

4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。

5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。

6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。

7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

关于本文

本文标题:C语言习题(前五章)参考答案.doc

链接地址:https://www.renrendoc.com/p-55154253.html

c语言switch逻辑用语,C语言习题(前五章)参考答案.doc相关推荐

  1. c语言switch逻辑用语,第一章 第二节用逻辑用语.doc

    第一章 第二节用逻辑用语 第一章 集合与常用逻辑用语 第二节 常用逻辑用语 第一部分 五年高考荟萃 2009年高考题 1.(2009浙江理)已知是实数,则"且"是"且&q ...

  2. c语言 若未给全局变量赋初值,自我测试练习参考-答案.doc

    . <C语言程序设计案例教程>自我测试练习参考答案 (主编:王明福) 第1章 初识C语言 一.单选题 1. 下面叙述错误的是( A ). A.C程序中可以有若干个main()函数 B.C程 ...

  3. c语言习题与实验doc,[教材]C语言程序设计习题与上机实验(全部答案).doc

    [教材]C语言程序设计习题与上机实验(全部答案).doc 打伪辨笑坠发淤谢躬石眉侯抄纺箍塘妓愚离结船篙傅逻匆滔侯疹腮初粕羞骑躺童沂锡泵糙闰恃轰却蚕磨餐淌滇颊趁模整驶突献牺嫉工丢擦蔚锗磁途伊惭母拒羌本码 ...

  4. c语言switch scanf语句,c语言switch语句 谢谢·!~!~

    c语言switch语句 谢谢·!~!~以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c语言switch语句 谢谢·!~ ...

  5. 数据结构 习题 第五章 多维数组和广义表 (C语言描述)

    最近在复习数据结构,所以想把平时上课做的习题做个总结,如果大家有遇到这方面的问题就可以参考一下了,废话不多说,直接开始吧. 1.单选题 稀疏矩阵一般的压缩存储方法有两种,即( D) A. 二维数组和三 ...

  6. PTA 浙大版《C语言程序设计(第4版)》题目集 参考答案(编程题)

    目录 PTA 浙大版<C语言程序设计(第4版)>题目集 参考答案(编程题) 本答案配套详解教程专栏 练习2-1 Programming in C is fun! (5 分) 练习2-3 输 ...

  7. c语言程序设计2试卷答案,《C语言程序设计》试卷2参考答案.doc

    <C语言程序设计>试卷2参考答案.doc <C语言程序设计>试卷二参考答案及评分标准 一.单项选择题(每小题1分,共30分/35分,信息安全专业1-35小题全做,其它专业只做1 ...

  8. 数据结构(C语言)第二版 第五章课后答案

    数据结构(C语言)第二版 第五章课后答案 1~5 A D D C A 6~10 C C B D C 11~15 B C A C A 1.选择题 (1)把一棵树转换为二叉树后,这棵二叉树的形态是(A) ...

  9. c语言程序设计函数题,C语言程序设计函数练习题及参考答案.doc

    C语言程序设计函数练习题及参考答案.doc C 语言程序设计练习题及参考答案 1. 定义一个函数 int funint a,int b,int c, 它的功能是 若 a,b,c 能构成等边三角形函数返 ...

最新文章

  1. ML之xgboost:基于xgboost(5f-CrVa)算法对HiggsBoson数据集(Kaggle竞赛)训练(模型保存+可视化)实现二分类预测
  2. 发送结构化数据Client端
  3. AS3读取XML文档
  4. Java Excel合并工具 v1.0
  5. 亚马逊深度学习库_汽车Linux,8位社交,与Amazon的深度学习以及更多新闻
  6. 打造素质魅力 树立个人威信30条准则
  7. grpc python 负载均衡_Ambassador 0.52 新特性:会话亲和性、负载均衡控制、gRPC-Web
  8. linux 杀掉僵尸进程 (zombie process, defunct)
  9. 澜沧江某水电站下坝址坝址初步设计
  10. python语言实现指纹识别_Python语言之指纹识别是目前最成熟的识别技术!Python能分分钟做出一个来!...
  11. 用Xposed框架拦截微信、人人、QQ等LBS应用的当前位置
  12. C# 使用DirectX中的Device类实现3D渲染
  13. 【App Inventor】飞机大战 APP
  14. cgb2008-京淘day04
  15. 最短路径之弗洛伊德算法(Floyd)——动态规划
  16. 深入浅出Google Clould Platform (1)----GCP 考证
  17. 数据分析——假设检验分析方法
  18. setMouseTracking(true)无法跟踪鼠标事件
  19. 解决由于intelRST问题导致无法安装ubuntu
  20. Device /dev/sdb1 excluded by a filter

热门文章

  1. 网络常用 snmp oid
  2. Linux基础——vim编辑器的使用
  3. CSS学习(第四天)(浮动,常见网页布局,清除浮动,PS切图)
  4. 重置vCenter Server Appliance 管理员密码
  5. JsonNode与java相互转换
  6. 增广拉格朗日乘子法ALM
  7. 仿淘宝详情页的商品详情
  8. csv的文件excel打开长数字后面位变0的解决方法
  9. less 可翻页查看(一页一页翻动)
  10. String 之substring的用法