谭浩强C程序设计第三版习题部分参考解答一 联系客服

发布时间 : 星期二 文章谭浩强C程序设计第三版习题部分参考解答一更新完毕开始阅读

3.4

【3.4】将以下三各整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。 【解答】:各数据在内存中的存储形式如下表所示: 变量的类型 int型 long型 short型 signed char(8位) unsigned int型 unsigned long型 unsigned short型 unsigned char型 25 00? 000011001 8 位 -2 1111111111111110 15 11 ? 1110 31 1111111111111110 15 11111110 11 ? 110 15 11 ? 110 31 11 ? 110 15 11111110 32769 100 ? 001(溢出) 14 00? 0100 ? 001 16 14 100 ? 001(溢出) 14 00000001(溢出) 100 ? 001 14 00? 0100 ? 001 16 14 100 ? 001 8 00000001 00? 000011001 24 100? 000011001 8 100011001 00? 000011001 8 00? 000011001 24 00? 000011001 8 00011001 其中int和short类型,其取值范围是-32768~32767。32769在这两种类型中实际表示负数,它是一个负数的补码,对其再求一次补码可得其真值,char和unsigned char为8位,若将int或long类型数据赋给这种类型,则截取数据低8位。同理,若将long赋给int,则截取低16位。 3.6

【3.6】写出以下程序运行的结果: #include void main()

{ char cl=?a?, c2=?b?, c3=?c?, c4=?\\101?, c5=?\\116?; printf (“a%c b%c\\tc%c\\tabc\\n”, c1, c2, c3); printf (“\\t\\b%c %c”, c4, c5); }

【运行结果】: aa bb cc abc A N 3.7

【3.7】 要将“China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”。因此,“China”应译为“Glmre”。请编一程序,用赋初值的方法使c1,c2,c3,c4,c5这5个变量的值分别为?C?,?h?,?i?,?n?,?a?,经过运算,使c1,c2,c3,c4,c5的值分别变为?G?,?l?,?m?,?r?,?e?,

13

并输出。 【参考源程序】 #include void main() {

char c1='C', c2='h', c3='i', c4='n', c5='a'; c1+=4; c2+=4; c3+=4; c4+=4;

c5+=4;

printf(\} 3.9

【3.9】 求下面算术表达式的值。 (1) x+a%3*(int)(x+y)%2/4

设x=2.5,a=7,y=4..7 【解答】:2.5

(2) (float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 【解答】:3.5 3.10

【3.10】写出程序运行的结果。 【运行结果】9,11,9,10 3.11

【3.11】写出下面赋值的结果。格中写了数值的是要将它赋给其他类型的变量,将所有空格填上赋值后的数值。 【解答】:

int char unsigned int float long int 99 ?c? 99 99.000000 99 100 ?d? 100 100.000000 100 76 53 68 42 65535 76 ?L? 76 76.000000 53 ?5? 53 53.65 68 ?D? 68 68.000000 42 ?*? 42 42.000000 -1 无 65535 65535.000000

14

3.12

【3.12】 出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 【解答】

(1)24 (2)10

(3)60 (4)0

(5)0 (6)0

15

第4章 最简单的C程序设计——顺序程序设计

例题

1. 输出单个字符 #include main(){

char a='B',b='o',c='k';

putchar(a);putchar(b);putchar(b);putchar(c);putchar('\\t'); putchar(a);putchar(b); putchar('\\n');

putchar(b);putchar(c); }

【运行结果】: Book Bo ok

2. 输入单个字符。 #include void main( ) {

char c;

printf(\ c=getchar(); putchar(c); }

3. 输入三角形的三边长,求三角形面积。

area?已知三角形的三边长a,b,c,则该三角形的面积公式为:s(s?a)(s?b)(s?c),

其中s = (a+b+c)/2 【源程序】: #include

void main() {

float a,b,c,s,area;

16