C++语言程序设计课后答案(郑莉第4版)资料Word文件下载.docx
《C++语言程序设计课后答案(郑莉第4版)资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++语言程序设计课后答案(郑莉第4版)资料Word文件下载.docx(138页珍藏版)》请在冰豆网上搜索。
当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。
由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。
1-4什么是对象?
什么是面向对象方法?
这种方法有哪些特点?
从一般意义上讲,对象是现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。
对象是构成世界的一个独立单位,它具有自己的静态特征和动态特征。
面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位,由一组属性和一组行为构成。
面向对象的方法将数据及对数据的操作方法放在一起,作为一个相互依存、不可分离的整体
--对象。
对同类型对象抽象出其共性,形成类。
类中的大多数数据,只能用本类的方法进行处理。
类通过一个简单的外部接口,与外界发生关系,对象与对象之间通过消息进行通讯。
这样,程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。
通过实现继承与多态性,还可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。
面向对象方法所强调的基本原则,就是直接面对客观存在的事物来进行软件开发,将人们在日常生活中习惯的思维方式和表达方式应用在软件开发中,使软件开发从过分专业化的方法、规则和技巧中回到客观世界,回到人们通常的思维。
1-5什么叫做封装?
封装是面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。
1-6面向对象的软件工程包括哪些主要内容?
面向对象的软件工程是面向对象方法在软件工程领域的全面应用,它包括面向对象的分析
(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)和面向对象的软件维护(OOSM)等主要内容。
1-7简述计算机内部的信息可分为几类?
计算机内部的信息可以分成控制信息和数据信息二大类;
控制信息可分为指令和控制字两类;
数据信息可分为数值信息和非数值信息两类。
1-8什么叫二进制?
使用二进制有何优点和缺点?
二进制是基数为2,每位的权是以2为底的幂的进制,遵循逢二进一原则,基本符号为0
和1。
采用二进制码表示信息,有如下几个优点:
1.易于物理实现;
2.二进制数运算简单;
3.机器可靠性高;
4.通用性强。
其缺点是它表示数的容量较小,表示同一个数,二进制较其他进制需要更多的位数。
1-9请将以下十进制数值转换为二进制和十六进制补码:
(1)2
(2)9(3)93
(4)-32(5)65535(6)-1解:
(1)
(2)10=(10)2=
(2)16
(2)(9)10=(1001)2=(9)16
(3)(93)10=(1011101)2=(5D)16
(4)(-32)10=(11100000)2=(E0)16
(5)(65535)10=(1111111111111111)2=(FFFF)16
(6)(-1)10=(1111111111111111)2=(FFFF)16
1-10请将以下数值转换为十进制:
(1)(1010)2
(2)(10001111)2(3)(0101111111000011)2
(4)(7F)16(5)(2D3E)16(6)(F10E)16解:
(1)(1010)2=(10)10
(2)(10001111)2=(143)10(3)(0101111111000011)2=(24515)10(4)(7F)16=(127)10
(5)(2D3E)16=(11582)10(6)(F10E)16=(61710)10
1-11简要比较原码、反码、补码等几种编码方法。
原码:
将符号位数字化为0或1,数的绝对值与符号一起编码,即所谓"
符号──绝对值表示"
的编码。
正数的反码和补码与原码表示相同。
负数的反码与原码有如下关系:
符号位相同(仍用1表示),其余各位取反(0变1,1变0)。
补码由该数反码的最末位加1求得。
第二章 C++简单程序设计
2-1C++语言有那些主要特点和优点?
C++语言的主要特点表现在两个方面,一是全面兼容C,二是支持面向对象的方法。
C++是一个更好的C,它保持了C的简洁、高效、接近汇编语言、具有良好的可读性和可移植性等特点,对C的类型系统进行了改革和扩充,因此C++比C更安全,C++的编译系统能检查出更多的类型错误。
C++语言最重要的特点是支持面向对象。
2-2下列标识符哪些是合法的?
Program,-page,_lock,test2,3in1,@mail,A_B_C_D
Program,_lock,test2,A_B_C_D是合法的标识符,其它的不是。
2-3例2.1中每条语句的作用是什么?
#include
voidmain(void)
{
cout<
<
"
Hello!
\n"
;
cout<
Welcometoc++!
}
#include// 指示编译器将文件iostream.h中的代码
//嵌入到该程序中该指令所在的地方
voidmain()//主函数名,void表示函数没有返回值
{//函数体标志
//输出字符串Hello!
到标准输出设备(显示器)上。
//输出字符串Welcometoc++!
在屏幕输出如下:
Welcometoc++!
2-4使用关键字const而不是#define语句的好处有哪些?
const定义的常量是有类型的,所以在使用它们时编译器可以查错;
而且,这些变量在调试时仍然是可见的。
2-5请写出C++语句声明一个常量PI,值为3.1416;
再声明一个浮点型变量a,把PI的值赋给a。
constfloatPI=3.1416;
floata=PI;
2-6在下面的枚举类型中,Blue的值是多少?
enumCOLOR{WHITE,BLACK=100,RED,BLUE,GREEN=300};
Blue=102
2-7注释有什么作用?
C++中有哪几种注释的方法?
他们之间有什么区别?
注释在程序中的作用是对程序进行注解和说明,以便于阅读。
编译系统在对源程序进行编译时不理会注释部分,因此注释对于程序的功能实现不起任何作用。
而且由于编译时忽略注释部分,所以注释内容不会增加最终产生的可执行程序的大小。
适当地使用注释,能够提高程序的可读性。
在C++中,有两种给出注释的方法:
一种是延用C语言方法,使用"
/*"
和"
*/"
括起注释文字。
另一种方法是使用"
//"
,从"
开始,直到它所在行的行尾,所有字符都被作为注释处理。
2-8什么叫做表达式?
x=5+7是一个表达式吗?
它的值是多少?
任何一个用于计算值的公式都可称为表达式。
x=5+7是一个表达式,它的值为12。
2-9下列表达式的值是多少?
1.201/4
2.201%4
3.201/4.0
1.50
2.1
3.50.25
2-10执行完下列语句后,a、b、c三个变量的值为多少?
a=30;
b=a++;
c=++a;
a:
32;
b:
30;
c:
32;
2-11在一个for循环中,可以初始化多个变量吗?
如何实现?
在for循环设置条件的第一个"
前,用,分隔不同的赋值表达式。
例如:
for(x=0,y=10;
x<
100;
x++,y++)
2-12执行完下列语句后,n的值为多少?
intn;
for(n=0;
n<
n++)
n的值为100
2-13写一条for语句,计数条件为n从100到200,步长为2;
然后用while和do„while
语句完成同样的循环。
for循环:
for(intn=100;
=200;
n+=2);
while循环:
intx=100;
while(n<
=200)n+=2;
do„while循环:
intn=100;
do
n+=2;
}while(n<
=200);
2-14if(x=3)和if(x==3)这两条语句的差别是什么?
语句if(x=3)把3赋给x,赋值表达式的值为true,作为if语句的条件;
语句if(x==3)首先判断x的值是否为3,若相等条件表达式的值为ture,否则为false。
2-15什么叫做作用域?
什么叫做局部变量?
什么叫做全局变量,如何使用全局变量?
作用域是一个标识符在程序正文中有效的区域。
局部变量,一般来讲就是具有块作用域的变量;
全局变量,就是具有文件作用域的变量。
2-16已知x、y两个变量,写一条简单的if语句,把较小的的值赋给原本值较大的变量。
if(x>
y)x=y;
else//y>
x||y==xy=x;
2-17修改下面这个程序中的错误,改正后它的运行结果是什么?
#includevoidmain()inti
intj;
i=10;
/*给i赋值
j=20;
/*给j赋值*/
cout<
"
i+j=<
i+j;
/*输出结果*/return0;
解:
改正:
#include
intmain(