课后答案——C++语言程序设计教程(第二版)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.1习题1解答

1.

(1)机器语言是计算机直接理解执行的语言,由一系列(二进制)指令组成,其助记符构成了汇编语言;接近人的自然语言习惯的程序设计语言为高级语言。

(2)结构化程序设计方法主要内容有:自顶向下,逐步求精;面向对象方法将现实世界中的客观事物描述成具有属性和行为的对象,抽象出共同属性和行为,形成类。

(3)C++程序开发通常要经过5个阶段,包括:编辑,编译,连接,运行,调试。首先是编辑阶段,任务是编辑源程序,C++源程序文件通常带有.c p p扩展名。接着,使用编译器对源程序进行编译,将源程序翻译为机器语言代码(目标代码),过程分为词法分析、语法分析、代码生成3个步骤。

在此之前,预编译器会自动执行源程序中的预处理指令,完成将其他源程序文件包括到要编译的文件中,以及执行各种文字替换等。

连接器的功能就是将目标代码同缺失函数的代码连接起来,将这个“漏洞”补上,生成可执行文件。程序运行时,可执行文件由操作系统装入内存,然后CPU从内存中取出程序执行。若程序运行进程中出现了错误,还在需要对程序进行调试。

(4)对象与对象之间通过消息进行相互通信。

(5)类是具有相同属性和行为的一组对象的抽象;任何一个对象都是某个类的一个实例。(6)多态性是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。

(7)面向对象的软件开发过程主要包括面向对象的方法分析、面向对象的设计、面向对象的编程、面向对象的测试和面向对象的维护。

(8)泛型程序设计是指在程序设计时,将数据类型参数化,编写具有通用性和可重用的程

序。

(9)#include是一条预处理指令(语句),在编译(或预处理)时由编译器(或预编译器)执行,其功能是将iostream文件包含(复制)到指令处。

(10)C++中使用cin作为标准输入流对象,通常代表键盘,与提取操作符>>连用;使用cout作为标准输出流对象,通常代表显示设备,与<<连用。

2.简答题

(1)叙述机器语言、汇编语言、高级语言的特点。

机器语言是计算机直接执行的语言,由二进制的0和1构成的一系列指令组成;

汇编语言是机器语言的助记符;

高级语言是接近人的自然语言习惯的编程语言,通过编译变成机器语言。

(2)结构化的语言与面向对象的语言是截然分开的吗?

不是截然分开的,面向对象的程序设计中也包含过程,含有结构化的思想。

(3)C编写的程序不加修改就可以在C++编译器中编译。

(5)C++程序通过编译变成带扩展名.obj的目标文件;再通过连接变成带扩展名.exe的可执行文件。

(6)如果要求不使用include包含头文件,有什么办法使程序正常编译运行?

在相应的文件夹(子目录)中,找到需要包含的头文件,将头文件复制到包含处。

3.单选

C++语言程序能够在不同操作系统下编译、运行,说明C++具有良好的移植性。

(可以说C++语言完全兼容C语言,但是在这不能说C++语言程序能兼容不同的操作系统;对于计算机硬件,一般使用“兼容”一词,对于程序使用“移植”)。

(3)#include语句在程序运行前就执行了。

(4)C++程序运行时总是起始于main();

(5)用C++写程序时一个语句可分几行写。

(6)面向对象编程方法有:对象、继承、类等。

1.2习题2解答

1.

(1)C++的基本数据类型可分为5大类:逻辑型(或布尔型)、字符型、整形、实型、空值型。分别用关键字bool,char,int,float/double,void定义。长度分别为1,1,4,4/8,不定字节。整型、字符型的默认符号修饰为signed。

(2)十进制数值、八进制数值、十六进制数值的前缀分别为1~9,0,0x(或0X)。(3)一个整数值的数据类型为int,一个带小数点的数据类型为double。

(4)C++预定义的常用转义序中,在输出流中用于换行、空格的转义序列分别为\n,\t。(5)布尔型数值只有两个;true,false。在C++的算术运算式中,分别当作1,0。(6)字符由单引号’’括起来,字符串由双引号“”括起来。字符只能有1个字符,字符串可以有多个字符。空串的表示方法为“\0”(或“”)。

(7)标识符以英文字母,下划线开头。

(8)定义变量的同时赋初值的方法有赋值运算符=,括号。定义常变量初值的方法有赋值运算符=,括号。

(9)关系运算符操作数的类型可以是任何基本数据类型,对其中的实数类型不能进行直接比较。(if(a

(-10)&&与||表达式按从左到右的顺序进行计算,以&&连接的表达式,如果左边的计算结果为false(或0),右边的计算不需要进行,就能得到整个逻辑表达式的结果:false;

以||连接的表达式,如果左边的计算结果为true(或非0),就能得到整个逻辑表达式的结果:true。

(11)>>运算符将一个数右移n位,相当于将该数除以2n,<<运算符将一个数左移n位,相当于将该数乘以2N。

(12)所有含赋值运算的运算符左边要求是左值。

(13)前置++、――的优先级高于后置++、――。

(14)按操作数数目分,运算符的优先级从高到低排列为单目、双目、三目,按运算符的性分,优先级从高到低排列为算术、移位、关系、按位、逻辑。

(15)在表达式中会产生副作用的运算符有++、--、各类赋值。

1.3习题3解答

1.

(1)if语句中的表达式可以是任意表达式(关系表达式、逻辑表达式、算术表达式、常量)。

1.4习题4解答

1.

(1)一个C++程序就是由一个个函数组成的即使是最简单的程序也有一个main()函数。(2)函数执行过程中通过return语句将函数值返回,当一个函数不需要返回值,此时需要使用void作为类型名。

(3)在C++中,如果函数定义在后,调用在先,需要进行函数原型声明,告诉编译器函数的(返回)类型,函数名,形式参数。其格式和定义函数时的函数头的形式基本相同,它必须以分号;结尾。

(4)函数调过程的3个步骤为:函数调用(或参数传递),函数体执行,返回。

相关文档
最新文档