c语言部分习题参考答案(4--7)

loading 分享 2026-7-22 下载文档

C语言部分习题参考答案

第4章 数据类型及表达式

4.1若a,b为整型变量,则下列表达式正确的是那些?

a=-21 正确 a=-0123 正确 以0开头的是八进制整型常量 a=0×12ab 错误十六进制整型常量以0x开头 b=a 正确 a必须先有确定的值

a=b+a=3 错误 a=b+a=3 等价于 a=(b+a)=3 等价于 a=((b+a)=3) b=a=3 正确 b=a=3 等价于b=(a=3) 4.2 写出下列整型数据在内存中的存储形式。(用十六进制表示) 15 0xf -32760 0x8008 127 0x7f -32768 0x8000 -128 0xff80 3487 0xd9f 4.3下列那些是合法的单字符常量? 合法单个字符常量:(1)直接形式:例‘A’;(2)八进制 ‘\\ddd’;(3) 十六进制 ‘\\xhh’;(4)转义字符:以‘\\’开头。

‘A’合法; ‘\\084’不合法; 八进制中无“8”这个数码 ‘\\x34’,‘\\n’合法; ‘\\m’ 不合法; “0”不合法;“0”为字符串 ‘ab’不合法;单引号内为两个字符 ‘\\t’合法。 4.4设有如下的数据描述: int a=4,b=5; float x=65.789;

char c1='A',c2='\\375';

(1) a*100+b*10+2 => 4*100+5*10+2 => 452

(2) c1*(a=x) => 65*(a=x) => 65*65 => 4225 其中:x为float,需转化为int,舍弃小数点,表

达式的值等于a的值

(3) b/a+(int)(x+a)á => 1+(int)69.789á => 1+69e => 1+4 =>5 (4) c1? => 65%(-3) => 2

(5) a+=a-=a%=a 等价于 a+=(a-=(a%=a))等价于 a+=(a-=0)等价于 a+=0 等价

于 a=a+0 等价于 0 a为0,表达式为0 (6) (a*=b,a*2),a+6 等价于 (a=a*b,a*2),a+6 等价于 (a=20,a*2),a+6 等

价于 (a=20,40),a+6 等价于 40,a+6 等价于 表达式的值为26 ,a为20 4.5 结果为:9,11

4.6 (1)(x*x+y*y)/(x-y),v*t+1/2.0*a*t*t

(2) 3.14*R*R,3/4.0*3.14*R*R*R (3) 2*(a+b),(a+b+c)/3.0,8*x+7*y+5*(12-x-y) (4) sin(x+0.5)*sin(x+0.5)+3*cos(2*x+4)+atan(x) 4.8

(1) 赋值表达式的值:4;c=4,a=4;

(2) 赋值表达式的值:65533;d=65533,b=-3; (3) 赋值表达式的值:‘.’;b=-3,c2=‘.’; (4) 赋值表达式的值:‘>’;c1=‘>’,c2=‘z’; (5) 赋值表达式的值:‘A’;c1=‘A’,x=65.789; (6) 赋值表达式的值:65533,d=65533,c2=‘z’; (7) 赋值表达式的值:1;a=1,b=-3。

1

第5章 顺序结构程序设计

5.2 D 5.3 B B 5.4 B 5.5 A 5.6以下程序的输出结果为:

i:dec=-4,oct=177774,hex=fffc,unsigned=65532 5.9正确的数据输入形式是:

a=3 b=7x=8.5 y=71.82c1=A c2=a↓ 5-11 编程题:

(1)输入一个三位数,将它反向输出,例如输入258,输出852。

输入a(三位数)bai=a/100shi=a/10ge=ab=bai+shi*10+ge*100N-S流程图:输出b 源程序参考:main()

{ int a,b,ge,shi,bai;

printf(\ scanf(\ bai=a/100; shi=a/10; ge=a;

b=bai+shi*10+ge*100; printf(\}

(2)根据圆柱体的高和半径,求圆柱体的表面积和体积。

输入r,hs=2πr2+2πrhv=πr2hN-S流程图参考:输出s,v

源程序参考:#define PI 3.14

main()

{ float r,h,s,v;

printf(\ scanf(\ s=2*PI*r*r+2*PI*r*h; v=PI*r*r*h;

printf(\}

2

第6章 选择结构程序设计

6.1 (1)D (2)B (3)D (4)B (5)B (6)B 6.2 (1)3,3,3,3

(2)x:y u=z (3)0.600000 (4)**1**

**3**

(5) c= =t t=50 (6) < = =

/*6.5*/

输入a,b1 0 a2+b2>100 c=(a*a+b*b)/100 c=a+b输出c

main() { int a,b,c;

printf(\ scanf(\

if(a*a+b*b>100) c=(a*a+b*b)/100; else c=a+b; printf(\}

/*6.4*/

main() /*方法一*/ { float a,b,c,max;

printf(\

scanf(\ max=a;

if(max

main() /*方法二*/ { float a,b,c,max;

printf(\

scanf(\ max=a

输入a,b,c max=a; max

main() /*方法三*/ { float a,b,c,max;

printf(\

scanf(\ if(a>b) max=a; else max=b; if(max

输入a,b,c a max=a max

#include \main() { float x,y;

printf(\ scanf(\

if(x<3) y=2*x*x*x+3*x+5;

else if(x<6) y=pow((x-3)/(x+5),3);

else y= sqrt(x+2*sin(3*x));

printf(\}

输入x Y x<3 N Y y=2x3+3x+5 x< 6 N 3?x?3? y????x?5? y?x?2sin3x 输出y /*6.7*/

main() {int x,flag;

printf(\ scanf(\ flag=0;

if(x%3= =0) flag=flag+3; if(x%5= =0) flag=flag+5; if(x%7= =0) flag=flag+7; switch(flag)

{ case 0: printf(\不能被3,5,7任一个整除\\n\ break; case 3: printf(\能被3整除\\n\ break; case 5: printf(\能被5整除\\n\ break; case 7: printf(\能被7整除\\n\ break; case 8: printf(\能被3,5整除\\n\ break; case 10: printf(\能被3,7整除\\n\ break; case 12: printf(\能被5,7整除\\n\ break; case 15: printf(\能被3,5,7整除\\n\ break; } }

4


c语言部分习题参考答案(4--7).doc 将本文的Word文档下载到电脑
搜索更多关于: c语言部分习题参考答案(4--7) 的文档

Copyright © 2018-2023 第一范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号