您的位置:首页 > 理论基础 > 数据结构算法

谭浩强 《C程序设计》 第三版 第三章习题答案 (修正)

2010-02-11 20:03 393 查看
第三章习题答案

 

3.1
不同的计算机语言所容许定义和使用的数据结构不同的。处理同一类问题,如果数据结构不同,算法也会不同。例如:对10个整数排序和对由10个整数构成的数组排序的算法是不同的。因此,在考虑算法时必须注意数据结构。应当综合考虑算法和数据结构,选择最
佳的数据结构和算法。
3.2
在C语言中,要求对所有用到的变量作强制定义,也就是“先定义,后使用”,这样做的目的如下:
(1)
凡未被事先定义的,系统不把它认作变量名,这就能保证程序中变量名使用得正确。
(2)每一个变量被指定为一个确定类型,在编译时就能为其分配相应的存储单元。
(3)指定每一个变量属于一个类型,这就便于在编译时据此检查在程序中要求对该变量进行的运算是够合法。
3.3 略
3.4如下表:
VC变量的类型

 
25
-2
2147483649
int

 (4B=32bit)
0000 0000 0000 0000 0000 0000 0001 1001
1111 1111 1111 1111 1111 1111 1111 1110
1000 0000 0000 0000 0000 0000 0000 0001
long

 (4B=32bit)
0000 0000 0000 0000 0000 0000 0001 1001
1111 1111 1111 1111 1111 1111 1111 1110
1000 0000 0000 0000 0000 0000 0000 0001
short

(2B=16bit)
0000 0000 0001 1001
1111 1111 1111 1110
0000 0000 0000 0001
signed char

(1B=8bit)
0001 1001
1111 1110
0000 0001
unsigned int (4B=32bit)
0000 0000 0000 0000 0000 0000 0001 1001
1111 1111 1111 1111 1111 1111 1111 1110
1000 0000 0000 0000 0000 0000 0000 0001
unsigned long

(4B=32bit)
0000 0000 0000 0000 0000 0000 0001 1001
1111 1111 1111 1111 1111 1111 1111 1110
1000 0000 0000 0000 0000 0000 0000 0001
unsigned short

(2B=16bit)
0000 0000 0001 1001
1111 1111 1111 1111 1111 1111 1111 1110
0000 0000 0000 0001
unsigned char

(1B=8bit)
0001 1001
1111 1110
0000 0001
3.5  ‘a’是字符常量,”a”是字符串常量,但二者究竟有什么区别?C规定:在每一个字符串常量的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。
3.6运行结果:

aa bb  
cc      abc
       
A N
Press any key to continue

3.7  程序代码:

void main()
{
        
char c1='C',c2='h',c3='i',c4='n',c5='a';
        
printf("%c%c%c%c%c/n",c1+=4,c2+=4,c3+=4,c4+=4,c5+=4);
}

运行结果:

Glmre
Press any key to continue

3.8
 运行结果:

ab
97 98
Press any key to continue

3.9 
2.5;

    
3.5;
3.10 
9,11,9,10;
3.11 

int
99
100
76
53
68
42
-1
char
‘c’
‘d’
‘L’
‘5’
‘D’
‘0’
ASCII为-1
unsigned 
int
99
100
76
53
68
42
4294967295
float
99.000000
100.00000
76.000000
53.65
68.000000
42.0000000
-1.000000
long int
99
100
76
53
68
42
-1
int 99 
0 000 0000 0000 0000 0000 0000 0110 0011
char ‘d’ 0 110 0100
unsigned int 76 0000 0000 0000 0000 0000 0000 0100 1100
3.12
a=12
1. 
a+=a;  a=24;
2. 
a-=2;  a=10;
3. 
a*=2+3;  a=a*(2+3);  a=60;
4. 
a/=a+a;  a=a/(a+a);   a=0;
5. 
a%=(n%=2),n=5;  a%=(n=n%2); a%=1; a=a%1; a=0;
6. 
a+=a-=a*=a;
a+=a-=(a=a*a); a+=a-=144;a=144;
a+=(a=a-144); a=0;
a+=0;

a=a+0; a=0;

声明:以上只是参考答案,难免有所疏漏或错误,竭诚希望得到大家的批评指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息