C语言程序设计教程课后习题答案

2026/4/29 18:29:09

'h'

unsigned int 66

float 55.78

long int 68 答 int 99 104 66 55 68 -1 char 'c' 'h' 'B'

'7' 'D'

unsigned int 99 104 66 55 68 65535

float 99.00 104.00 66.00 55.78 68.00 -1.00

long int 99 104 66 55 68 -1

4

★写出程序运行结果。

①void main() {int i,j; i=8,j=10;

printf(\}

②main()

{ int a=1,b=2,c=30;;

printf(\}

注意:a=b=c,a=b==c之间应为逗号,教材有误

运行结果: 9,11,9,10 运行结果: 30,1,0,0

③void main()

{int a=10,b=20,c=30,d; d=++a<=10||b-->=20||c++;

printf(\} 答

运行结果: 11,19

,30,1

5

★写出下面表达式的值(设a=10,b=4,c=5,d=1,x=2.5,y=3.5)。 ⑴a%=(b%=3)

⑵n++,a+=a-=a*=a

⑶(float)(a+c)/2+(int)x%(int)y ⑷a*=b+c ⑸++a-c+b++ ⑹++a-c+++b ⑺a

⑼a+b,18+(b=4)*3,(a/b,a%b)

⑽x+a%3*(int)(x+y)%2/4+sizeof(int) ⑾a

⑴0 ⑵0 ⑶9.500000 ⑷90 ⑸10 ⑹10 ⑺'A' ⑻2 ⑼4.5 ⑽1 ⑾0 ⑿20 ⒀0 6

下列每组表达式中,被执行后结果完全等价的是哪些(设a、b、m是已被赋值的整型变量)?

①m=(a=4,4*5)与m=a=4,4*5 ②(float)(a/b)与(float)a/b ③(int)a+b与(int)(a+b) ④m%=2+a*3与m=m%2+a*3

⑤m=1+(a=2)+(b=3)与a=2,b=3,m=1+a+b 答

①前面是赋值表达式,而后面的是一个逗号表达式,所以一定不同;

②前面的表达式中a/b结果为一整数,结果已经取整,精度可能受到影响,之后强制float后才为浮点型,后面的是先将a转换为float后再与b相除,其值保证了精度,所以不同。

③因为a、b均为整数,其前后两个表达式的计算结果是一致的。

④前一表达式是一算术表达式,而后者为一赋值表达式,此为一点不同;另外,前一表达式的m只被赋过一次值,后一表达式中的m曾两次被赋值,第一次赋值时与第一表达式中的值一致,第二次赋值后即不再相同。 ⑤前后表达式的计算结果应该是一致的:a=2, b=3, m=6 7

条件表达式x>0?x:-x的功能是什么? 答

如果x的值是一正数,则表达式的值为x值;如果x的值是一非正数,则表达式的值为-x。其实该表达式的值即为x的绝对值,C语言中提供了一个函数fabs(x)即可完成此功能,该函数包含在math.h头文件中。 8

用一个条件表达式描述从a、b、c中找出最大都赋给max. 答

max=a>(b>c?b:c)?a:(b>c?b:c); 9

★若x为int型变量,则执行以下语句后x的值为( )。 x=6;

x+=x-=x*x;

A. 36 B. -60 C. 60 D. -24 答 B. 10

★若有以下类型说明语句:


C语言程序设计教程课后习题答案.doc 将本文的Word文档下载到电脑
搜索更多关于: C语言程序设计教程课后习题答案 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219