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

上传人:b****1 文档编号:2428104 上传时间:2022-10-29 格式:DOCX 页数:112 大小:64.71KB
下载 相关 举报
c语言程序设计第五版习题答案.docx_第1页
第1页 / 共112页
c语言程序设计第五版习题答案.docx_第2页
第2页 / 共112页
c语言程序设计第五版习题答案.docx_第3页
第3页 / 共112页
c语言程序设计第五版习题答案.docx_第4页
第4页 / 共112页
c语言程序设计第五版习题答案.docx_第5页
第5页 / 共112页
点击查看更多>>
下载资源
资源描述

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

《c语言程序设计第五版习题答案.docx》由会员分享,可在线阅读,更多相关《c语言程序设计第五版习题答案.docx(112页珍藏版)》请在冰豆网上搜索。

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

c语言程序设计第五版习题答案

习题解析与答案

第1章C语言概述

一.简答题

1.概述C语言的主要特点。

【解答】

(1)语言简洁、紧凑,使用方便、灵活。

(2)数据类型丰富,表达能力强。

(3)运算符多样。

C语言中的运算符包含的范围非常广泛。

(4)具有结构化的控制语句。

如if,else语句、while语句、dowhile语句、switch

语句、for语句。

(5)允许直接访问物理地址。

C语言中含有的位和指针运算,能够直接对内存地址进行

访问操作。

(6)所生成的目标代码质量高,可移植性好。

2.构成C语言程序的基本单位是什么?

它由哪几部分组成?

【解答】函数是构成C语言程序的基本单位。

一个完整的C程序一般由文件包含、宏定

义、函数说明、变量和一个或若干个函数组成。

3.C语言程序的运行一般要经过哪几个步骤?

【解答】

(1)编辑;

(2)编译;(3)连接,生成EXE文件;(4)执行。

二.运行程序写结果

1.输入下面程序并运行。

main()

inta1,a2,x;

a1=100;

a2=50;

x=a1-a2;

printf(″x=%dn″,x);

【解答】运行结果为:

x=50

2.输入下面程序并运行。

main()

{

inta1,a2,x;

a1=10;

a2=20;

x=a1*a2;

printf(″a1=%,dn″,a1,a2);

printf(″x=%dn″,x);

【解答】运行结果为:

a1=10,a2=20

x=200

1

三.编程题

1.参照本章例题,编写一个C程序,用于显示如下信息:

*************************

IloveCprograms!

*************************

【分析与提示】

①要有文件包含语句#include

C语言中没有数据的输入、输出等功能,

数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。

些函数的说明都包括在stdio.h文件中。

②main是主函数的名称。

用{}括起来的内容是函数体,函数体由若干条语句组成,

这是计算机要执行的部分,每条语句以分号“;”结束。

③注意显示的信息有三行,所以要用到换行符“n”。

参考代码:

#include

main()

{

printf("************************\n");

printf("IloveCprograms!

\n");

printf("************************\n");

}

第2章数据类型及其运算

一.简答题

1.C语言中的数据类型主要有哪几类?

【解答】短整型(shortint)

整型整型(int)

长整型(longint)

基本类型字符型(char)单精度(float)

实型(浮点型)

双精度(double)

枚举类型(enum)

数组类型

构造类型结构体类型(struct)

共用体类型(union)

指针类型

空类型(void)

2.字符常量与字符串常量有什么区别?

2

【解答】字符常量用单括号括起,字符串常量用双括号括起;字符常量存储时占1个字

节,字符串常量存储时除了n个字符外,还有系统加上的字符串终止符\0,所以字符串常量

存储时占n+1个字节。

3.C语言中的常量包括哪几类?

各自是如何构成的?

【解答】C语言中的常量是一些其值预先定的量,并且在程序执行过程中其值不再发生

变化。

常量的分类遵循基本数据类型分类原则,C语言编译系统自动将其存放在于类型相应

的内存单元中。

其类别包含整形常量、浮点常量、字符常量、字符串常量和枚举常量。

整形

常量又分为十进制整形常量、八进制整形常量、十六进制整形常量。

浮点常量分成十进制形

式和指数形式。

C语言中的,字符常量是用单括号括起来的一个字符或是字符序列,而字符

串常量是用一对双括号括起来的零个或者多个字符组成的序列。

4.简述指针、变量的指针、变量的值、指针变量与指针变量的值的含义是什么?

【解答】C语言中将地址又称为“指针”。

一个变量所分配的内存空间首字节地址,称

为该变量的指针(地址),变量的值就被放入所分配的地址单元中。

地址一旦被分配,就不会

再改变,所以,指针是一个常量。

既然是常量就可以把它赋给一个变量。

用来存放指针的变

量,被称为指针变量。

一个指针变量的值是变量的地址,一个指针变量可以被赋予不同的指

针值。

5.下面哪些是不合法的常量?

说明不合法的理由。

123,3.1415926,0892,?

M?

,?

n?

,0xabc,0.618E-6,”Morning,”3.8e-3.14

【解答】非法常量有:

0892——含有非八进制数字8和9

3.8e-3.14——非法指数形式浮点常量:

规定e后面的指数必须为整数。

6.下面对变量定义的语句哪些不正确?

为什么?

请改正。

(1)charc1,inta2;

(2)INTa,b;FLOATx,y;(3)a,b:

char;

(4)charif;(5)inta,b(6)Inta:

b:

c;

(7)inta,x;floatx,y;

【解答】

(1)charc1,inta2;

错误。

定义不同类型的变量时,应用分号彼此分开。

改正为:

charc1;inta2;

(2)INTa,b;FLOATx,y;

错误。

C语言中表示类型名的关键字必须小写。

改正为:

inta,b;floatx,y;

(3)a,b:

char;

错误。

C语言中变量定义格式为:

类型名变量名;

改正为:

chara,b;

(4)charif;

错误。

变量名不能与C语言的关键字重名。

改正为:

charf1;

(5)inta,b

错误。

变量定义以语句形式出现,应以分号结尾。

改正为:

inta,b;

(6)Inta:

b:

c;

错误。

类型名不能有大写字母,相同类型名之间用逗号分隔。

改正为:

inta,b,c;

3

(7)inta,x;floatx,y;

错误。

在同一程序位置上,同一变量名不能重复定义充当两个不同的变量。

改正为:

inta,x;floatx1,y;

7.下述字符串常量的长度是多少?

在内存中存储时各自占用的单元数又是多少?

(1)“Hello!

(2)“ABC?

”(3)“765+123=?

【解答】

(1)“Hello!

”字符串长度为6,占用内存字节数为7。

(2)“ABC?

”字符串长度为9,占用内存字节数为10。

因为其中\n\\

\064\?

各自只占一个字符的位置。

(3)“765+123=?

”该字符串不是合法的,因为\765表示的值太大,超出合法的

ASCII字符集的范围。

二.运行程序写结果

1.以下程序的执行结果是____。

main()

{

inti,j;

i=15;

printf(“%d,%d”,-i-+)+;,i

}

【解答】14,15

2.以下程序的执行结果是。

main()

{

inta=20,b=10,c,*p1,*p2;

p1=&a;

p2=&b;

c=(-*p1)/(*p2)+6;

printf("a=%d,b=%d\n",a,b);

printf("*p1=%d,*p2=%d\n",*p1,*p2);

printf("c=%d\n",c);

}

【分析与提示】

p1a

a20

P2b`

b10

【解答】a=20,b=10

*p1=20,*p2=10

c=4

3.以下程序的执行结果是。

#include

main()

4

{

chara=?

G?

b=?

o?

c=?

o?

d=?

d?

;

a=a+32;

b=b-6;

c=c+3;

d=d+8;

printf("%c%c%c%c\n",a,b,c,d);

}

【分析与提示】从ASCII代码表可以看出,字符“G”、“o”、“o”、“d”的ASCII代码值

为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值;小写字母的ASCII

值-32=对应大写字母的ASCII值。

【解答】girl

4.以下程序的执行结果是。

#include

main()

{

intx;

x=-3+4*5-6;

printf("x1=%d\n",x);

x=3+4%5-6;

printf("x2=%d\n",x);

x=-3*4%-6;

printf("x3=%d\n",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=11

x2=1

x3=0

5.以下程序的执行结果是。

#include

main()

{

printf("%d\n",NULL);

printf("%d,%c\n",49,49);

printf("%d,%c,%o\n",48+10,48+10,48+10);

5

}

【分析与提示】

0(NULL的ASCII码值是0)

49,1(数字1的ASCII码值是49)

58,:

72(48+10等于58,正好是“:

”的ASCII码值,八进制表示是72)

【解答】0

49,1

58,:

72

三、改错题

1.请修改下列程序,使其能够通过编译。

#include

VoidMain()

{

inta=6;b=8;

intc;

c=a*b;

printf(,%d?

c);

}

【答案】错误的地方有3处:

(1)第2行关键字应该小写;

(2)定义b时前面应该

用逗号;(3)打印语句的格式应该用双引号括起来。

正确的程序如下:

#include

voidmain()

{

inta=6,b=8;

intc;

c=a*b;

printf("%d",c);

}

2.请修改下列程序,使其能够正确运行。

#include

voidmain();

{

floatf=7.12;

charc=”c”;

printf(“n%”d,int(f%3));

printf(“%c”,c);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 交规考试

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

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