谭浩强C程序设计第三版课后答案整本书.docx
- 文档编号:1505248
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:19
- 大小:25.36KB
谭浩强C程序设计第三版课后答案整本书.docx
《谭浩强C程序设计第三版课后答案整本书.docx》由会员分享,可在线阅读,更多相关《谭浩强C程序设计第三版课后答案整本书.docx(19页珍藏版)》请在冰豆网上搜索。
谭浩强C程序设计第三版课后答案整本书
C程序设计(第三版)课后习题参考解答
1.6写一个程序,输入a,b,c三个值,输出其中最大者。
解:
main()
{inta,b,c,max;
printf(“请输入三个数a,b,c:
\n”);
scanf(“%d,%d,%d”,&a,&b,&c);
max=a;
if(max
max=b;
if(max max=c; printf(“最大数为: %d”,max); } 第2章程序的灵魂——算法 2.1什么叫结构化的算法? 为什么要提倡结构化的算法? 解: 由一些基本结构顺序组成的算法称为结构化的算法。 由于在基本结构之间不存在非顺序的跳转,流程的转移只存在于一个基本结构范围之内,因而提高了算法的质量。 2.7什么叫结构化程序设计? 它的主要内容是什么? 解: 结构化程序就是用高级语言表示的结构化算法。 它的主要内容包括“自顶向下,逐步细化”的分析方法和“模块化设计”的解决方法,以及“结构化编码”的实现方法。 第3章数据类型、运算符与表达式 3.3请将下面各数用八进制和十六进制数表示: (1)10 (2)32(3)75(4)-617 (5)-111(6)2483(7)-28654(8)21003 解: (1)(10)10=(12)8=(A)16 (2)(32)10=(40)8=(20)16 (3)(75)10=(113)8=(4B)16 (4)(-617)10=(176627)8=(FD97)16 此题可以这样考虑: 带符号数在计算机中采用补码表示,正数的补码与原码相同,负数的补码=模+真值。 若使用16位存储,模为216=65536。 -617的补码为65536+(-167)=64919=(176627)8=(FD97)16 (5)(-111)10=(177621)8=(FF91)16 (6)(2483)10=(4663)8=(9B3)16 (7)(-28654)10=(110022)8=(9012)16 (8)(21003)10=(51013)8=(520B)16 3.4将以下三各整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。 变量的类型 25 -2 32769 int型 long型 sort型 signedchar(8位) unsignedint型 unsignedlong型 unsignedshort型 unsignedchar型 注: 如果没有学过二进制和补码,此题可以不做。 解: 各数据在内存中的存储形式如下表所示: 变量的类型 25 -2 32769 int型 00…0 8位 111111*********0 15 100…001(溢出) 14 long型 00…0 24 11…1110 31 00…0100…001 1614 short型 00…0 8 111111*********0 15 100…001(溢出) 14 signedchar(8位) 00000001(溢出) unsignedint型 00…0 8 11…110 15 100…001 14 unsignedlong型 00…0 24 11…110 31 00…0100…001 1614 unsignedshort型 00…0 8 11…110 15 100…001 8 unsignedchar型 其中int和short类型,其取值范围是-32768~32767。 32769在这两种类型中实际表示负数,它是一个负数的补码,对其再求一次补码可得其真值,即-(65536-32769)=-32767。 char和unsignedchar为8位,若将int或long类型数据赋给这种类型,则截取数据低8位。 同理,若将long赋给int,则截取低16位。 3.5字符常量和字符串常量有什么区别? 解: 字符常量是一个字符,用单引号括起来。 字符串常量是由0个或若干个字符组合而成,用双引号括起来,存储时自动在字符串最后加一个结束符号’\0’。 3.6写出以下程序运行的结果: #include voidmain() {charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’; printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3); printf(“\t\b%c%c”,c4,c5); } 解: 程序运行的结果为: aabbccabc AN 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’,并输出。 解: main() {charcl=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(“密码是%c%c%c%c%c\n,c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.8例2.6能否改成如下: main() {intc1,c2;(原为charc1,c2) c1=97; c2=98; printf(“%c%c\n”,c1,c2); printf(“%d%d\n”,c1,c2); } 解: 可以。 因为在可输出的字符范围内,用整型和用字符型作用相同。 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4..7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 解: (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {inti,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 运行结果为: 9,11,9,10 3.11写出下面赋值的结果。 格中写了数值的是要将它赋给其他类型的变量,将所有空格填上赋值后的数值。 int 99 42 char ‘d’ ⅹ unsignedint 76 65535 float 53.65 longint 68 解: int 99 100 76 53 68 42 -1 char ‘c’ ‘d’ ‘L’ ‘5’ ‘D’ ‘*’ ⅹ unsignedint 99 1 5535 float 99.000000 100.000000 76.000000 53.65 68.000000 42. .000000 longint 99 1 5535 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 第4章最简单的C程序设计——顺序程序设计 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51247,n=128765,c1=’a’,c2=’b’,想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 要求输出的结果如下: a=□3□□b=□4□□c=□5 x=1.200000,y=2.400000,z=-3.600000 x+y=□3.60□□y+z=-1.20□□z+x=-2.40 u=□51247□□n=□□□128765 c1=’a’□or□97(ASCII) c2=’b’□or□98(ASCII) 解: main() { inta,b,c; longintu,n; floatx,y,z; charc1,c2; a=3;b=4;c=5; x=1.2;y=2.4;z=-3.6; u=51247;n=128765; c1=’a’;c2=’b’; printf(“\n”); printf(“a=%2d□□b=%2d□□c=%2d\n”,a,b,c); printf(“x=%.6f,y=%.6f,z=%.6f\n”,x,y,z); printf(“x+y=□%.2f□□y+z=%.2f□□z+x=%.2f\n”,x+y,y+z,z+x); printf(“u=%6ld□□n=%9ld\n”,u,n); printf(“c1=’%c’or%d(ASCII)\n”,c1,c1); printf(“c2=’%c’or%d(ASCII)\n”,c2,c2); } 4.5请写出下面程序的输出结果: main() {inta=5,b=7; floatx=67.8564,y=-789.124; charc=’A’; longn=1234567; unsignedu=65535; printf(“%d%d\n”,a,b); printf(“%3d%3d\n”,a,b); printf(“%f,%f\n”,x,y); printf(“%-10f,%-10f\n”,x,y); printf(“%8.2f,%8.2f,%4f,%4f,%3f,%3f\n”,x,y,x,y,x,y); printf(“%e,%10.2e\n”,x,y); printf(“%c,%d,%o,%x\n”,c,c,c,c); printf(“%ld,%lo,%x\n”,n,n,n); printf(“%u,%o,%x,%d\n”,u,u,u,u); printf(“%s,%5.3s\n”,”COMPUTER”,”COMPUTER”); } 运行结果: 5□7 □□5□□7 67.856400,-789.124023 67.856400□,-789.124023 □□□67.86,□□-789.12,67.8564,-789.1240,67.856400,-789.124023 6.785640e+01,□□-7.9e+02 A,65,101,41 1234567,4553207,d687 65535,177777,ffff,-1 COMPUTER,□□COM 可以发现,输出数据中若有负
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 谭浩强 程序设计 第三 课后 答案