曹计昌C程序设计课后习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章习题

1.4

原码:对于一个二进制数X,如果规定其最高位为符号位,其余各位为该数的绝对值,并且规定符号位值为0表示正,为1表示负,采用这种方式的二进制编码称为该二进制数X的原码。

补码:正数的补码等于正数的原码,负数的补码为其原码除符号位不动外,其余各位变反再加1所得。

反码:对于正数而言,反码与原码相同;对于负数而言,反码符号位的定义与原码相同,但需要将对应原码的数值位按位变反。

1.5和:10101010

差:00010000

1.6和 01073

差 -0337

1.7和 0x1AABA

差 -0x5320

1.8

(251)10=(11111011)2=(373)8=(FB)16

1.10

在16位机中,[157]补= 0000000010011101

[-153]补= 1111111101100111

157-153=157+(-153)

= (0000000010011101) 2+(1111111101100111) 2=(0000000000000100) 2=(4) 10

1.14

算法设计:用变量s存储累加和,k表示计数

描述为:

(1)定义变量s,k。

(2)s清零,k赋初值1。

(3)判断k<101?如果是,顺序执行(4);否则转步骤(5);(4)k加到累加和变量s中,k加1;转步骤(3)。

(5)输出累加和s。

(6)结束。

开始

结束

int s=0,k=1;

k<101?

s=s+k;

k=k+1;

输出s

N

Y

1.16

第二章习题

2.2

(1) x, ++, +, y

(2)-, 0xabL

(3)2.89e+12L

(4)”String+\” FOO\””

(5)x, *, *, 2

(6)”X??/”

(7)a, ?, b

(8)x, --, +=, y

(9)intx, =, +, 10

(10)”String”, “FOO”

2.3

不是表识符的如下:

4th 首字母为数字 sizeof关键字

x*y *不是字母、数字、下划线

temp-2 -不是字母、数字、下划线

isn’t’不是字母、数字、下划线

enum 关键字

2.4

合法常数:

.12 0.L 1.E-5 3.F 浮点型常量

2L 33333 0377UL 0x9cfU 整型常量

“a”“”字符串常量

‘\45’‘\0’‘\a’字符常量

非法常数:

‘‘’必须用转义序列

0x1ag 十六进制没有g

E20 没有尾数部分

‘\18’要用八进制数

‘\0xa’ 格式错误,可以是’\xa’

“3’4””需要转义序列

‘”’需要转义序列

2.5

(1)int a, b=5;

(2)double h;

(3)int x=2.3; 0.3 会被截取。

(4)const long y=1; 必须赋初值

(5)float a= 2.5*g; g 没有定义。

(6) int a=b=2; 在 turbo C 中编译出错:未定义的符号’b’在main函数中。

2.6

(1)4

(2)0

(3)1

(4)6

(5)8

(6)0

(7)3.00

(8)1

(10)0

2.7答案不确定

(1)a==b==c c未定义

(2)正确

(3)正确

(4)正确

(5)a*++-b 表达式缺值

(6)a||b^i ^运算的操作数必须是整型,而i不是(7)i*j%a %运算的操作数必须是整型,而a不是(8)正确

(9)正确

(10)int(a+b)应该改成(int)(a+b)

2.9

(1)0

(2)-2

(3)65535

(4)5

(5)60

(6)113

(7)-2

(8)-1

(10)3

2.10

unsigned long encrypt(unsigned long x)

{

unsigned long x0,x1,x2,x3,x4,x5,x6,x7;

x0=(x & 0x0000000F) << 8;

x1=(x & 0x000000F0);

x2=(x & 0x00000F00) << 8;

x3=(x & 0x0000F000);

x4=(x & 0x000F0000) << 8;

x5=(x & 0x00F00000);

x6=(x & 0x0F000000) >> 24;

x7=(x & 0xF0000000);

return(x0|x1|x2|x3|x4|x5|x6|x7);

}

2.11

#include

void main()

{

unsigned long in;

相关文档
最新文档