C++课本习题答案1-5 联系客服

发布时间 : 星期一 文章C++课本习题答案1-5更新完毕开始阅读db1df18702d276a200292e31

《面向对象程序设计(C++版)》习题答案

董正言

本文档中包含书中所有习题的答案,其中的程序都在VC++6.0系统中通过编译,并可以正确运行。

第一章

1.1 面向对象程序设计方法有哪些基本特征?

答:面向对象程序设计方法的基本特征有:抽象、封装、继承、多态。

1.2 从着手开始编写一个程序,到形成一个可执行文件,通常需要经过哪几个步骤? 答:一个由高级语言编写的程序从开始编码到可以运行需要经过编辑、编译和链接几步。 1.3 C++程序的入口点是什么?

答:C++程序的入口点是main函数。

第二章

2.1 在C++程序中,以下_C_是合法的标识符。 A、Cat.100 B、321day C、_100num D、int

2.2 在基于32位系统的VC++6.0编译器中,以下数据类型各占多少个字节? A、char B、int C、float D、long E、double

答:在基于32位系统的VC++6.0编译器中,char型数据为1个字节,int型数据为4个字节,float型数据为4个字节,long型数据为4个字节,double型数据为8个字节。 2.3 C++系统采用什么编码存储字符数据,该编码的长度是多少? 答:C++系统采用ASCII码存储字符数据,该编码的长度是1个字节。 2.4 写出定义以下变量的程序语句: 1、ASCII码值为65的字符型变量 2、值为10000的无符号整型变量 3、一个双精度浮点型变量 解:1: char ch=65;

2: unsigned int i=10000; 3: double f;

2.5、在程序中经常出现的标识符cout和cin是什么?它们有什么功能?

答:cout是C++系统预定义的标准输出流对象,代表标准输出设备---显示器,在控制台应用程序中可以利用它向显示器输出字符串。cin是C++系统预定义的标准输入流对象,代表标准输入设备---键盘,在控制台应用程序中可以利用它从键盘输入数据。 2.6 程序中可能出现各种形式的数值常量,请写出以下语句的输出结果: 1、cout<<0144; 2、cout<<0x64;

3、cout<<0xB3L; 4、cout<<1234E-2; 5、cout<<(char)65;

解:几条语句的输出结果如下:

1、100 2、100 3、179 4、12.34 5、A

2.7 C++中如何定义符号常量,和C语言定义符号常量的方法有什么不同?

答:C++使用关键字const定义符号常量,而C语言使用预编译指令#define定义符号常量。由关键字const定义的符号常量具有数据类型,在程序运行期间占据存储空间;而由预编译指令#define定义的符号常量没有数据类型,在程序运行期间也不占据存储空间。 2.8 假设var1和var2都是整型写出以下C++表达式的值。 1、11/3 2、11%3

3、var1=(var2=10)+5 4、var1=(var2=10)++ 解:上面表达式的值分别是: 1、3 2、2 3、15 4、10

2.9 写出下面语句段的输出结果。 int i=5,j=10; i*= --j; cout<<\解:上面程序段的输出为:i=45

2.10 假设i,j,k是整型变量,而且i=5,j=10,k=20,写出下列表达式的值。 1、 ik 2、 ik 3、 !i>k

4、 !(i>j)&&(j>k)

解:上面表达式的值分别是: 1、0(或false) 2、1(或true) 3、0(或false) 4、0(或false)

2.11 假设i和j是整型变量,i的值为10,j的值为3。请写出下列语句的输出结果。

1、 cout<<(i & j) ; 2、 cout<<(i | j) ; 3、 cout<<(i ^ j) ; 4、 cout<<(i << j) ; 5、 cout<<(i >> j) ;

6、 cout<<(~i | i) ;

解:上面语句的输出分别为: 1、2 2、11 3、9 4、80 5、1 6、-1

2.12 请写出下列语句的输出结果。

cout<<\解:上面语句的输出为:Welcome to C++!

2.13 假设i和j是整型变量,执行下列语句后,i的值是多少? i =(j = 10, j * 3) ;

解:执行上面的语句后,i的值为30。

2.14 假设i和j是整型变量,j的值为10,则执行下列语句后,i的值是多少? i=j<10?1:2 ;

解:执行上面的语句后,i的值为2。 2.15 下面表达式的结果是什么类型? 1、(10L+20)*0.5 2、(10L+20)*(1/2)

3、static_cast(1.234)*10L 解:上面表达式的结果分别是: 1、15.0 2、0 3、12.34

第三章

3.1 编写一段程序,提示用户输入一个英文字母,使用if语句判断用户输入的字母是大写字母还是小写字母,然后输出相关信息。 解:程序代码如下: #include using namespace std; void main() { char ch; cout<<\请输入一个大写或小写的英文字母\ cin>>ch; if(ch>='A'&&ch<='Z') cout<<\您输入的是大写字母\ if(ch>='a'&&ch<='z') cout<<\您输入的是小写字母\}

3.2 以下程序段输出若干行字符串“How are you!”,行数由用户的输入的整数决定,如

用户输入0,则输出一行字符串“Hello!”,请找出下面程序中存在的语法错误。 int n; cout<<\请输入一个整数:\ cin>>n; if(n=0) cout<<\ else for(int i=0;i

解:上面程序段中共有2处语法错误。第一处是语句if(n=0)应改为if(n==0);第二处是循环控制语句for后面不应该有分号。

3.3 编写一段程序,连续输入若干个学生的考试成绩,根据成绩判断其所在的等级,并输出

相关信息。判断成绩等级的规则如下:

A级 90≤分数≤100

B级 80≤分数<90

等级= C级 70≤分数<80 D级 60≤分数<70

E级 分数<60

例如,如果第3个学生的成绩为82分,则应输出一行字符串“学生3的成绩为B等”。 要求使用while循环和switch选择语句。 解:程序代码如下: #include using namespace std; void main() { int numbers; float score; cout<<\请输入学生人数\ cin>>numbers; for(int i=1;i<=numbers;i++) { cout<<\请输入第\个学生的成绩(在0到100之间的实数)\ cin>>score; if(score>=90) cout<<\第\个学生的成绩为A级!\ else if(score>=80) cout<<\第\个学生的成绩为B级!\