c++程序设计习题解答.docx
《c++程序设计习题解答.docx》由会员分享,可在线阅读,更多相关《c++程序设计习题解答.docx(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、i.22.37.53.77.87.93101103程序设计教程用C+语言编程(第二版习题解答)目录第1章概述第2章 基本数据类型和表达式第3章 程序的流程控制语句第4章 过程抽象函数第5章 构造数据类型第6章 数据抽象类第7章 操作符重载第8章继承派生类第9章类属(泛型)机制模板第10章 输入/输出(I/O) 第11章异常处理第12章 实例面向对象的Windows应用程序框架第1章概述1、筒述冯诺依曼计算机的工作模型。答:冯诺依曼计算机的工作模型是:待执行的程序从外存装入到内存中,CPU从内存中逐条 地取程序中的指令执行;程序执行中所需要的数据从内存或从外设中获得,程序执行中产生的 中间结果保
2、存在内存中,程序的执行结果通过外设输出。2、简述寄存器、内存以及外存的区别。答:寄存器主要用于记录下一条指令的内存地址、当前指令的执行状态以及暂时保存指令的计 算结果供(几)条指令使用,其作用主要是减少访问内存的次数,提高指令的执行效率。内存用于存储计算机程序(指令和数据),内存由许多存储单元构成,每个存储单元都有 个地址,对存储单元的访问是通过其地址来进行的,与寄存器相比,内存的容量耍大得多,但 指令访问内存单元所花费的时间比访问寄存器要多得多。外存是大容量的低速存储部件,用于永久性地存储程序、数据以及各种文档等信息,存储 在外存中的信息通常以文件形式进行组织和访问,外存储了在容量和速度上与
3、内存不同,另 个区别在于内存中存储的是正在运行的程序和正在使用的数据,外存中存储的则是大量的、并 非正在使用的程序和数据。3、CPU能执行哪些指令?答:CPU所能执行的指令通常有:算术指令:实现加、减、乘、除等运算。比较指令:比较两个操作数的大小。数据传输指令:实现CPU的寄存器、内存以及外设之间的数据传输。执行流程控制指令:用于确定下一条指令的内存地址,包括转移、循环以及子程序调用/返回等 指令。4、什么是软件?软件是如何分类的?答:计算机软件是计算机系统中的程序以及有关的文档。程序是对计算任务的处理对象(数据) 与处理规则(算法)的描述;文档是为了便于大理解程序所需的资料说明,供程序开发与
4、维护 使用。软件通常可以分为系统软件、支撑软件和应用软件。系统软件居于计算机系统中最靠近硬 件的级,它与具体的应用领域无关,其他软件一般要通过系统软件发挥作用,如操作系统属 于系统软件。支撑软件是指支持软件开发与维护的软件,一般由软件开发人员使用,如软件开 发环境就是典型的支撑软件。应用软件是指用于特定领域的专用软件,如人口普查软件、财务 软件等。5,什么是虚拟机?答:在由硬件构成的计算机(称为“裸机”)之上,加上些软件就得到了一个比它功能更强的 计算机,称为“虚拟机”。6、十进制数0.1的二进制表示是什么?答:(0.1)10 = (0.0001100H.)2.它是无限循环小数。也就是说,十进
5、制数0.1无法精确用二进制 表示!7、简述程序设计范型。答:基于不同的计算模型来对计算进行描述就形成了不同的程序设计范型。典型的程序设计范 型有:过程式、对象式、函数式以及逻辑式等。过程式程序设计是种以功能为中心、基于功能分解和过程抽象的程序设计范型。个过 程式程序由一些子程序构成,每个子程序对应个子功能,它实现了功能抽象。对象式程序设计是种以数据为中心、基于数据抽象的程序设计范型。一个面向对象程序 由一些对象构成,对象是由一些数据及可施于这些数据上的操作所组成的封装体。函数式程序设计是围绕函数来进行的,计算过程体现为系列的函数应用。逻辑程序设计是把程序组织成一组事实和一组推理规则,在事实基础
6、上运用推理规则来实 施计算。8、简述程序设计的步骤。答:程序设计一般遵循以下步骤:明确问题;系统设计;用某种语言进行编程;测试与调试;运行与维护9、低级语言与高级语言的不同之处是什么?答:低级语言是指与特定计算机体系结构密切相关的程序语言,它是特定计算机能够直接理解 的语言(或与之直接对应的语言),包括机器语言和汇编语言。低级语言的优点在于:写出的程 序效率比较高,包括执行速度快和占用空间少。其缺点是:程序难以设计、理解与维护,难以 保证程序的正确性。高级语言是指人容易理解和有利于人对解题过程进行描述的程序语言。高级语言的优点在 于:程序容易设计、理解与维护,容易保证程序正确性。高级语言的缺点
7、是:用其编写的程序 相对于用低级语言编写的程序效率要低,翻译成的目标代码量较大。10、简述编译与解释的区别。答:编译是指把高级语言程序首先翻译成功能上等价的机器语言程序或汇编语言程序,然后执 行目标代码程序,在目标代码程序的执行中不再需要源程序。解释则是指对源程序中的语句进行逐条翻译并执行,翻译完了程序也就执行完了,这种翻 译方式不产生目标程序。一般来说,编译执行比解释执行效率要高。11、简述C+程序的编译执行过程。在你的C+开发环境中运行1.3.2节中给出的简单C+ 程序。答:首先可以利用某个编辑程序把C+源程序输入到计算机中,并作为文件保存到外存中,文 件名为”.叩p”和“*.h”。然后利
8、用某个C+编译程序对保存在外存中的C+源程序进行编译, 编译结果作为目标文件保存到外存,文件名为“*.obj。然后再通过个联接程序把由源文件 产生的目标文件以及程序中用到的一些系统功能所在的目标文件联接起来,作为一个可执行文 件保存到外存,文件名为“*.exe。最后通过操作系统提供的应用程序运行机制,把可执行文 件装入内存,运行其中的可执行程序。在Visual C+ 6.0环境中,首先要建立一个project (项目);其次往该project中添加、编辑 程序模块(源文件);然后选择菜单Build中的Build.或Rebuild AH;最后选择菜单Build中 的Execute .运行程序。1
9、2、C+的单词分成哪些种类?答:构成C+的单词有:标识符、关键词、字面常量、操作符以及标点符号等。13、下面哪些是合法的C+标识符?extern, _book, Car, car_l, calr, lcar, friend, carl_Car, Car_Type, No.1, 123 答:合法的 C+标识符:book, Car, car l, calr, carl Car, Car Type第2章 基本数据类型和表达式1、C+提供了哪些基本数据类型?检査你的计算机上各种类型数据所占内存空间的大小(字 节数)。答:C+提供了以下5种基本数据类型:整数类型、实数类型、字符类型、逻辑类型以及空值 类
10、型。一台计算机上各种数据类型的数据所占用的内存大小(字节数)可以通过“sizeofi(类 型名)”来计算。2、下面哪些是合法的C+字面常量,它们的类型是什么?-5.23, le+50,-25,105,20.20,e5,le-5,-0.0e5,* n-000, red, *r*S, f,3.141 falseToday is Monday.n,答:字面常量是指在程序中直接写出常量值的常量。-5.23, le+50,-25, 20 , .20, le-5, -0.0e5, n,000, A,5, r, f , Today is Monday.,都是字面常量。其中: 整数类型常量:-25, 20,
11、-000 实数类型常量:-5.23, le+50 , .20, le-5, -0.0e5 字符常量:,n I A,5, r, f 字符串常量:Today is Monday. ,3、什么是符号常量?符号常量的优点是什么?答:符号常量是指有名字的常量,在程序中通过常量的名字来使用这些常量。程序中使用符号 常量有以下优点:1)增加程序易读性2)提高程序对常量使用的一致性3)增强程序的易维护性4、如何理解变量?变量定义和声明的作用是什么?答:在程序中,其值可以改变的量称为变量。变量可以用来表示可变的数据。 程序中使用到的每个变量都要有定义。变量定义指出变量的类型和变量名,另外还可以为 变量提供个初值
12、。C+中使用变量之前,必须对使用的变量进行声明(变量定义属于种声明,即:定义性 声明),变量声明指出了一个变量的类型,使得编译程序能对变量的操作进行类型检查并 做相应的类型转换。整个程序中,某变量的定义只能由一个,但它的声明可以有多个。5、什么是表达式?其作用是什么?答:表达式是由操作符、操作数以及圆括号所组成的运算式。在程序设计语言中,对数据操作 的具体实施是通过表达式来描述的。6、操作符的优先级和结合性分别是指的什么?答:运算符的优先级和结合性决定表达式中各个运算符的运算次序。操作符的优先级规定了相 邻的两个操作符谁先运算:优先级高的先计算;如果相邻的两个操作符具有相同的优先级, 则需根据
13、操作符的结合性来决定先计算谁,操作符的结合性通常分为左结合和右结合:左 结合表示从左到右计算,右结合表示从右到左计算。7、表达式中的类型转换规则是什么?下面的表达式计算时如何进行操作数类型转换?(1) 3/5*12.3(2) a+10*5.2(3) 12U+3.0F*24L答:表达式中类型转换规则是:基于单个操作符依次进行转换。1)3与5同类型,不转换,结果为0,转换成double型后与12.3做乘法。2) 10转换成double型与5.2做乘法,a,转换成double型后与前者结果做加法。3) 3.0F与24L均转换成double型后做乘法,12U转换成double型后与前者结果做加法。8、
14、将下列公式表示成C+的表达式:(1) 田招4ac(可利用C+标准库中的求平方根的函数:sqrt(x)2a(2) ys(s -a)(s-b)(s -c), 1+2.5+ c答:1) (-l*b+sqrt(b*b-4*a*c)/(2*a)2) sqrt (s* (s-a) * (s-b) * (s-c)3) (a*b)/(c*d)*(3/(1+(b/(2.5+c)+(4*pi*r*r*r/3)9、写出下列条件的C+表达式(1)i能被j整除。(2) ch为字母字符。(3) m为偶数。(4) n是小于100的奇数。(5) a、b、c构成三角形的三条边。答:1) i% j=02) (ch=a)&(ch=
15、A)&(ch=Z)3) m%2=04) (n0) & (b0) & (c0) & (a+bc) & (b+ca) & (c+ab) 或(a+b) c) & (abs (a-b) 0) & (b0) & (c0)可以不用判断10、在你的计算机上运行下面的程序:#include using namespace std; int main() double a=3.3, b=l.1; int i=a/b;cout i endl;return 0;结果与你预期的是否相符?如果不符,请解释它的原因。答:运行结果为2。由于十进制小数3.3和1.1无法用double型精确表示。通过查看结果内存内 的内容,最
16、终结果比3.0略小,所以强制转换成int型后结果为2。11、不引进第三个变量,如何交换两个整型变量的值?答:方法一:a=bAa;b=aAb;a=bAa;方法二:a=a+b;b=a-b;a=a-b;12、举例说明把int类型转成float类型可能会丢失精度。答:如果int型与float型都是4个字节,由于在float型的数据表示中,有若干位用来表示指数, 因此,尾数的位数不到4个字节(根据IEEE标准,只有23个二进制位)。如果个int型的数 大于23位(二进制),则无法用float型精确表示。例如:intx=0x01000001;float y=x; /x的最后一位1不是被截掉就是被舍入!co
17、ut x endl setprecision(30) y endl;第3章 程序的流程控制语句1、编写个程序,将华氏温度转换为摄氏温度。转换公式为:c= 3(仔32),其中,C为摄氏温度,f为华氏温度解:#include using namespace std;int main() double c, f;cout Please input an F-tcmperature : endl;cin f;c = (f-32)*5/9;cout ”The C-temperature is : M c endl;return 0;2、编写个程序,将用24小时制表示的时间转换为12小时制表示的时间。例如
18、,输入20 和16 (20点16分),输出8:16pm;输入8和16 (8点16分),输出8:16am。解:#include using namespace std;int main() int hour, minute;char noon;cout Please input a time in 24-hour format: endl;cout hour: ; cin hour;if (hour23) cout The input hour is wrong! endl;return -1;if(hour12) hour=hour- 12;noon =,p;elsenoon = a;cout
19、 minute: ; cin minute;if (minute59) cout The input minute is wrong! endl;return -1;cout endl The time in 12-hour format is : hour : minute; if(noon = p)cout pm endl;elsecout am endl;return 0;3、编写个程序,分别按正向和逆向输出小写字母az。解:#include using namespace std;int main() char c;for (c=a; c-a*; c)cout c ;cout endl
20、;return 0;4、编写个程序,从健盘输入个正整数,判断该正整数为几位数,并输出其位数。解:#include using namespace std;int main() unsigned int gzint;int count = 0;while (1) cout ”Please input an integer(greater than zero): M endl;cin gzint;if(gzint=0)cout Your input is wrong! Please input again.* endl;elsebreak;while (gzint!=0) gzint = gzin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 程序设计 习题 解答
限制150内