ImageVerifierCode 换一换
格式:DOCX , 页数:140 ,大小:66.36KB ,
资源ID:9451721      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9451721.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言程序设计第五版习题答案解析.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c语言程序设计第五版习题答案解析.docx

1、c语言程序设计第五版习题答案解析完美 WORD 格式习题解析与答案第 1 章 C语言概述一 简答题1概述 C语言的主要特点。【解答】(1)语言简洁、紧凑,使用方便、灵活。(2)数据类型丰富,表达能力强。(3)运算符多样。C语言中的运算符包含的范围非常广泛。(4)具有结构化的控制语句。如 if else 语句、 while 语句、 do while 语句、 switch语句、 for 语句。(5)允许直接访问物理地址。C语言中含有的位和指针运算, 能够直接对内存地址进行访问操作。(6)所生成的目标代码质量高,可移植性好。2构成 C语言程序的基本单位是什么 ?它由哪几部分组成 ?【解答】 函数是构

2、成 C语言程序的基本单位。一个完整的 C程序一般由文件包含、 宏定义、函数说明、变量和一个或若干个函数组成。3语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;( 2)编译;(3)连接,生成 EXE文件;(4)执行。二运行程序写结果1输入下面程序并运行。main()int a1 ,a2,x;a1=100;a2=50;x=a1-a2;printf (x=%d n, x) ;【解答】运行结果为:x=502输入下面程序并运行。main()int a1 ,a2,x;a1=10;a2=20;x=a1*a2;printf (a1=%d, n, a1,a2);printf (x=%d n, x) ;【

3、解答】运行结果为:a1=10,a2=20x=2003输入下面程序并运行。专业整理 知识分享完美 WORD 格式#include main()printf(*n);printf( *n);printf( *n);printf( *n);printf( *n);printf( *n);【解答】运行结果为: *思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。三编程题1参照本章例题,编写一个程序,用于显示如下信息:*I love C programs!*【分析与提示】要有文件包含语句 #include 。C 语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数 sc

4、anf 和 printf 等来实现的。这些函数的说明都包括在 stdio.h 文件中。main 是主函数的名称。用括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“ ; ”结束。注意显示的信息有三行,所以要用到换行符“ n”。参考代码:#include main()printf(*n);printf( I love C programs! n);printf(*n);专业整理 知识分享完美 WORD 格式第2章 数据类型及其运算一简答题1C语言中的数据类型主要有哪几类?【解答】 短整型 (short int )整型 整 型 (int )长整型 (long i

5、nt )基本类型 字符型 (char) 单精度 (float)实型(浮点型)双精度 (double)枚举类型 (enum)数组类型构造类型 结构体类型 (struct)共用体类型( union )指针类型空类型( void )2 字符常量与字符串常量有什么区别?【解答】 字符常量用单括号括起, 字符串常量用双括号括起; 字符常量存储时占 1 个字节,字符串常量存储时除了 n 个字符外, 还有系统加上的字符串终止符 0 ,所以字符串常量存储时占 n+1 个字节。3 C语言中的常量包括哪几类?各自是如何构成的?【解答】 C语言中的常量是一些其值预先定的量,并且在程序执行过程中其值不再发生变化。常量

6、的分类遵循基本数据类型分类原则, C语言编译系统自动将其存放在于类型相应的内存单元中。其类别包含整形常量、浮点常量、字符常量、字符串常量和枚举常量。整形常量又分为十进制整形常量、 八进制整形常量、 十六进制整形常量。 浮点常量分成十进制形式和指数形式。 C语言中的,字符常量是用单括号括起来的一个字符或是字符序列,而字符串常量是用一对双括号括起来的零个或者多个字符组成的序列。4 简述指针、变量的指针、变量的值、指针变量与指针变量的值的含义是什么?【解答】 C 语言中将地址又称为“指针” 。一个变量所分配的内存空间首字节地址,称为该变量的指针 ( 地址), 变量的值就被放入所分配的地址单元中。地址

7、一旦被分配,就不会再改变,所以, 指针是一个常量。既然是常量就可以把它赋给一个变量。用来存放指针的变量,被称为指针变量。 一个指针变量的值是变量的地址, 一个指针变量可以被赋予不同的指针值。5 下面哪些是不合法的常量?说明不合法的理由。123,3.1415926 ,0892,M, n,0xabc ,0.618E-6 ,”Morning”, 3.8e-3.14【解答】非法常量有:0892含有非八进制数字 8 和 93.8e-3.14 非法指数形式浮点常量:规定 e 后面的指数必须为整数。6下面对变量定义的语句哪些不正确?为什么?请改正。(1) char c1,int a2; (2) INT a,

8、b; FLOAT x,y; (3) a,b:char;(4) char if; (5) int a,b (6) Int a:b:c;(7) int a,x; float x,y;【解答】(1) char c1,int a2;专业整理 知识分享完美 WORD 格式错误。定义不同类型的变量时,应用分号彼此分开。改正为: char c1; int a2;(2) INT a,b; FLOAT x,y;错误。 C语言中表示类型名的关键字必须小写。改正为: int a,b; float x,y;(3) a,b:char;错误。 C语言中变量定义格式为:类型名 变量名;改正为: char a,b;(4) c

9、har if;错误。变量名不能与 C语言的关键字重名。改正为: char f1;(5) int a,b错误。变量定义以语句形式出现,应以分号结尾。改正为: int a,b;(6) Int a:b:c;错误。类型名不能有大写字母,相同类型名之间用逗号分隔。改正为: int a,b,c;(7) int a,x; float x,y;错误。在同一程序位置上,同一变量名不能重复定义充当两个不同的变量。改正为: int a,x; float x1,y;7 下述字符串常量的长度是多少?在内存中存储时各自占用的单元数又是多少?(1) “Hello! ” ( 2) “ABC ?” ( 3) “ 765+123

10、=?”【解答】(1)“Hello! ” 字符串长度为 6,占用内存字节数为 7。(2)“ABC ?” 字符串长度为 9,占用内存字节数为 10。因为其中 n 064? 各自只占一个字符的位置。(3) “ 765+123=?” 该字符串不是合法的,因为 765 表示的值太大,超出合法的 ASCII 字符集的范围。二运行程序写结果1以下程序的执行结果是。main()int i,j ;i=15 ;printf( “%d,%d”, i+,i -) ;【解答】 14,152以下程序的执行结果是 。main()int a=20,b=10,c,*p1,*p2;p1=&a;p2=&b;c=(-*p1)/(*p

11、2)+6;专业整理 知识分享完美 WORD 格式printf(a=%d,b=%dn,a,b);printf(*p1=%d,*p2=%dn,*p1,*p2);printf(c=%dn,c);【分析与提示】p1 aa 20P2 bb 10【解答】 a=20,b=10*p1=20,*p2=10c=43以下程序的执行结果是 。#include main()char a= G,b= o,c= o,d= d;a=a+32;b=b-6;c=c+3;d=d+8;printf(%c%c%c%cn,a,b,c,d);【分析与提示】从 ASCII 代码表可以看出,字符“ G”、“o”、“o”、“d”的 ASCII

12、代码值为 71、111、101,因此, G+32、o-6 、o+3、 d+8 的值分别是 103、105、114、108,它们所对应的字符分别是“ g”、“i ”、“r ”、“l ”。常用结论:(1)在 C语言中,字符数据可以按其 ASCII 代码值参加整数运算。 由于英文字母在 ASCII代码表中是按顺序排列的,所以在计算 o+3 代表的字母时,可从字符 o其顺序向后取 3 个字母,该字母是“ r ”。(2)从 ASCII 代码表可以看出“小写字母” - “对应大写字母”的结果是 32,因此可推算出如下等式:大写字母的 ASCII 值+32=对应小写字母的 ASCII 值;小写字母的 ASC

13、II值-32= 对应大写字母的 ASCII 值。【解答】 girl4以下程序的执行结果是 。#include main()int x;x=-3+4*5-6;printf(x1=%dn,x);x=3+4%5-6;专业整理 知识分享完美 WORD 格式printf(x2=%dn,x);x=-3*4%-6;printf(x3=%dn,x);【分析与提示】 x1=11(4*5 是 20,-3+20 是 17,17-6 等于 11)x2=1 (4%5等于 4,3+4 等于 7,7-6 等于 1)x3=0 (-3*4 等于-12 ,-12%-6 等于 0)【解答】 x1=11x2=1x3=05以下程序的执

14、行结果是 。#include main()printf(%dn,NULL);printf(%d,%cn,49,49);printf(%d,%c,%on,48+10,48+10,48+10);【分析与提示】0(NULL的 ASCII 码值是 0)49,1(数字 1 的 ASCII 码值是 49)58,:,72 (48+10 等于 58,正好是“: ”的 ASCII 码值,八进制表示是 72)【解答】 049,158,:,72三、改错题1 请修改下列程序,使其能够通过编译。#include Void Main()int a=6;b=8;int c;c=a*b;printf( %d,c);【答案】错

15、误的地方有 3 处:(1)第 2 行关键字应该小写; (2)定义 b 时前面应该用逗号;(3)打印语句的格式应该用双引号括起来。正确的程序如下 :#include void main()int a=6,b=8;int c;c=a*b;专业整理 知识分享完美 WORD 格式printf(%d,c);2 请修改下列程序,使其能够正确运行。#include void main();float f=7.12;char c= ”c”;printf( “%d n”,int(f%3);printf( “%c”,c);【答案】错误的地方有 3 处:(1)第 2 行 main(); 不应该有分号; (2)定义

16、charc=”c” ;时, 字符常量应该用单引号; (3)打印语句 printf( “%d n”,int(f%3); 的格式有错,应该在 f 前的 int 用括号括起来 , 因为实型数据不能执行取余运算。正确的程序如下 :#include void main()float f=7.12;char c=c;printf(%dn,(int)f %3);printf(%c,c);第 3 章 顺序结构程序设计一 简答题1程序有哪三种基本结构?【解答】程序的三种基本结构为:顺序结构、选择结构和循环结构。2C语言的语句有哪几类?表达式语句与表达式有什么不同?【解答】 C语句可分为以下五类:表达式语句、函数

17、调用语句、控制语句、复合语句和空语句。其中表达式语句与表达式的区别在于表达式语句是表达式加上“; ”组成。二、填空题1 符号 & 是运算符, &a 是指。2C语言中的空语句就是。3Scanf 函数中的 “格式字符” 后面应该是, 而不应该是。4若想输出字符 %,则应该在“格式字符”的字符串中用表示。5int x=7; 执行 x+=x- =x+x; 后 x 的值是。6int a=10,b=20;a+=b;b=a-b;a- =b; 的功能是。答案: 1地址、变量 a 的内存地址。2 一个分号。3变量地址,变量名。4 连续 2 个%号。专业整理 知识分享完美 WORD 格式5 -146交换 变量 a

18、,b 的值,打印出 a=20,b=10 。三运行程序写结果1. 以下程序的执行结果是 。#include main()double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;printf(%dn,d*y);【解答】 02以下程序的执行结果是 。main()double d;float f;long l;int i;i=f=l=d=20/3;printf(%d %ld %f %fn,i,l,f,d);【解答】 6 6 6.000000 6.0000003以下程序的执行结果是 。main()int k=17;printf(%d,%o,%xn,k,k,k);【解答】 17,

19、21,114以下程序的执行结果是 。#include main()char a,b,c,d;a=A,b=B,c=C,d=D;printf(%1cn,a);printf(%2cn,b);printf(%3cn,c);printf(%4cn,d);【分析与提示】可以用 %c格式输出的,也可以用 %d格式输出,所以与 md近似, m指出了要输出数据的宽度。若数据位数小于 m,则左端补空格,若数据位数大于 m,则按实际位数输出。【解答】 ABC专业整理 知识分享完美 WORD 格式D5以下程序的执行结果是 。#include main()char c1,c2;scanf(%c%c,&c1,&c2);p

20、rintf(c1=%c,c2=%c,c3=%d,c4=%d,c1+,-c2,c1,c2);【解答】运行输入: AB运行结果为: c1=A,c2=A,c3=65,c4=666以下程序的执行结果是 。#include main()char c1,c2;scanf(%c,%c,&c1,&c2);+c1;-c2;printf(c1=%c,c2=%cn,c1,c2);【分析与提示】例如当输入 B,C,B,C 的 ASCII 码值为 66,67,执行 +c1; -c2;后,c1 为 66+1 变成 67 即 C,c2 为 67-1 变成 66 即 B。【解答】运行输入: B,C,运行结果为: c1=C,c

21、2=B7以下程序的执行结果是 。main()char ch=a;int a=98;unsigned b=1000;long c=123456789;float x=3.14;double y=1.2345678;printf(1)a=%d,a=%c,ch=%d,ch=%cn,a,a,ch,ch);printf(2)b=%un,b);printf(3)c=%ldn,c);printf(4)x=%f,y=%fn,x,y);printf(5)x=%e,y=%en,x,y);printf(6)y=%-10.2fn,y);【解答】 (1)a=98,a=b,ch=97,ch=a(2)b=1000(3)c=

22、123456789(4)x=3.140000, y=1.234568(5)x=3.14000e+00,y=1.23457e+00(6)y=1.238以下程序的执行结果是 。专业整理 知识分享完美 WORD 格式#includemain()int a,b;float x;scanf(%d,%d,&a,&b);x=a/b;printf(nx=%fn,x);【解答】运行输入: 2,2,运行结果为: 1.0000009当输入 12345,a 时,给出程序的运行结果,执行结果是 。#includemain()int a;char c;scanf(%3d,%c,&a,&c);printf(n%d,%dn,

23、a,c);【分析与提示】 md,m指出了要输出数据的宽度。若数据位数小于 m,则左端补空格,若数据位数大于 m,则按实际位数输出。 a 的 ASCII 码值是 97。【解答】 12345,9710分析下面程序,在键盘上输入数据 才能使得变量 a=10,b=20,c1=A,c2=a,x=1.5 ,y=-3.75 ,z=67.8 。程序如下 :#includemain()int a,b;float x,y,z;char c1,c2;scanf(%5d%5d%c%c%f%f%*f,%f,&a,&b,&c1,&c2,&x,&y,&z);printf(a=%d,b=%d,c1=%c,c2=%c,x=%f

24、,y=%f,z=%f,a,b,c1,c2,x,y,z);【分析与提示】按 %5d 格式输入 a 与 b 的值时,要先键入三个空格,然后再键入 10 与20。%*f 是用来禁止赋值的。在输入时,对应 %*f 位置可以随意输入一个数(我们输入 1.5 ,该数不会赋值给任何变量的) 。【解答】运行输入: 10 20Aa1.5 -3.75 1.5,67.8 11 一 个 程 序 中 , 使 用 了 多 个 scanf 函 数 输 入 数 据 , 用a=3,b=7,x=8.5,y=71.82,c1= A,c2= a 输入到每个变量,应该如何输入数据?main()int a,b;float x,y;专业整

25、理 知识分享完美 WORD 格式char c1,c2;scanf(a=%d,b=%d,&a,&b);scanf( x= %f,y=%e,&x,&y);scanf( c1= %cc2=%c,&c1,&c2);printf(a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn,a,b, x,y,c1,c2);【分析与提示】在使用多个 scanf 函数输入数据时,第一个输入行末尾输入的回车被第二个 scanf 函数吸收, 因此在第二、 三个 scanf 函数的双引号后放置一个空格以抵消上行输入的回车键。若没有一个空格,则按上面输入的数据会出错。【解答】运行输入: a=3, b=4X=8,

26、 y=71.82C1=AC2=a运行结果: a=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a四编程题1由键盘输入 1 个字母,输出其 ASCII 码值。【分析与提示】 将一个字符常数赋给一个字符变量, 并不是把该字符本身放到内存单元中去, 而是将该字符的 ASCII 代码放到内存单元中, 因此, 字符型数据也可以像整型数据那样使用,可以用来表示一些特定范围内的整数。所以 int 型与 char 型变量的值可以互换,分别用 %c和%d不同格式输出就行了。但是注意这种转换是有条件的。因为, char 变量在内存占一个字节,而 int 整型变量占 2 个字节。当 in

27、t 型高位字节是 0 时,char 与 int 可以互换;若不是 0,则不可以互换。例如,用 %c格式输出时,取低位字节,高位字节被舍弃。参考代码:#include stdio.hmain()char ch;ch=getchar();printf(%c,%d,ch,ch);【解答】运行输入: B 运行结果: B,662从键盘上输入一个大写字母,把它转换成小写字母,然后显示出来。【分析与提示】大写字母转换小写时 ASCII 码值 +32,相反的,小写字母转换成大写字母时 ASCII 码值-32 。参考代码:#include main()char x1,x2;printf(x1=?n);scanf(%c,&x1);x2=x1+32;专业整理 知识分享完美 WORD 格式printf(%c,%cn,x1,x2);【解答】运行输入: A 运行结果: A,a3从键盘上输入两个实型数,求两数的和、差、积,输出结果时要求小数部分占两位。【提示】结果要求保留 2 位小数,所以输出的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1