C程序设计第三版习题参考解答文档格式.docx
- 文档编号:16071616
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:117
- 大小:109.95KB
C程序设计第三版习题参考解答文档格式.docx
《C程序设计第三版习题参考解答文档格式.docx》由会员分享,可在线阅读,更多相关《C程序设计第三版习题参考解答文档格式.docx(117页珍藏版)》请在冰豆网上搜索。
max=a;
if(max<
b)
max=b;
c)
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型
注:
如果没有学过二进制和补码,此题可以不做。
各数据在内存中的存储形式如下表所示:
00…000011001
8位
111111*********0
15
100…001(溢出)
14
24
11…1110
31
00…0100…001
1614
short型
100…000011001
8
15
100011001
11111110
00000001(溢出)
8
11…110
100…001
24
8
00011001
00000001
其中int和short类型,其取值范围是-32768~32767。
32769在这两种类型中实际表示负数,它是一个负数的补码,对其再求一次补码可得其真值,即-(65536-32769)=-32767。
char和unsignedchar为8位,若将int或long类型数据赋给这种类型,则截取数据低8位。
同理,若将long赋给int,则截取低16位。
3.5字符常量和字符串常量有什么区别?
字符常量是一个字符,用单引号括起来。
字符串常量是由0个或若干个字符组合而成,用双引号括起来,存储时自动在字符串最后加一个结束符号’\0’。
3.6写出以下程序运行的结果:
{charcl=’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’,并输出。
{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能否改成如下:
{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写出程序运行的结果。
{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
100
53
-1
‘c’
‘L’
‘5’
‘D’
‘*’
99.000000
100.000000
76.000000
68.000000
42.000000
65535.000000
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)
{
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(“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请写出下面程序的输出结果:
{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);
prin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 第三 习题 参考 解答