《c++程序设计》第2部分 补充习题答案.doc
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《c++程序设计》第2部分 补充习题答案.doc》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+程序设计 c+程序设计第2部分 补充习题答案 c+ 程序设计 部分 补充 习题 答案
- 资源描述:
-
1、第2部分 补充习题第1章 面向对象程序设计概述一、选择题1、C+是( C )。 A 面向对象的程序设计语言 B 结构化程序设计语言 C 既是面向对象的程序设计语言又是结构化的程序设计语言 D 非结构化的程序设计语言2、C+语言属于( D )。 A 机器语言 B 低级语言 C 中级语言 D 高级语言3、下面关于对象概念的描述中,错误的是( A )。A 对象就是C语言中的结构变量B 对象代表着正在创建的系统中的一个实体C 对象是一个属性和操作(或方法)的封装体 D 对象之间的信息传递是通过消息进行的4、下面关于类概念的描述中,错误的是( D )。A 类是抽象数据类型的实现B 类是具有共同行为的若干
2、对象的统一描述体C 类是创建对象的样板 D 类就是C语言中的结构体类型5、下列关于C+类的描述中错误的是( C )。A 类与类之间可以通过一些手段进行通信和联络B 类用于描述事物的属性和对事物的操作C 类与类之间必须是平等的关系,而不能组成层次关系D 类与类之间可以通过封装而具有明确的独立性6、面向对象程序设计思想的主要特征中不包括( D )。A 封装性 B 多态性 C 继承性 D 功能分解,逐步求精二、填空题1、构成对象的两个主要因素是 属性 和 行为 ,其中 属性 用于描述对象的静态特征, 行为 用于描述对象的动态特征。2、类和对象的关系可表述为:类是对象的 抽象 ,而对象则是类的 实例
3、。3、封装包含两方面含义,一是用 对象 把 属性和操作这些属性的操作 包装起来,二将对象中某些部分 对外隐藏 。4、 继承 是指特殊类自动地拥有或隐含地复制其一般类的全部属性与操作。5、面向对象的软件工程包括的五个阶段为: 面向对象分析 , 面向对象设计 , 面向对象编程 , 面向对象测试 , 面向对象维护 。第2章 C+基础知识一、选择题1、下列关于C+语言的发展说法错误的是( C )。A C+语言起源于C语言 B C+语言最初被称为“带类的C”C 在1980年C+被命名 D 在1983年C+被命名2、C+语言是以 语言为基础逐渐发展而演变而成的一种程序设计语言。( B )A Pascal
4、B C C Basic D Simula673、下列关于C+与C语言关系的描述中错误的是( C )。A C+是C语言的超集 B C+是C语言进行了扩充C C+和C语言都是面向对象的程序设计语言 D C+包含C语言的全部语法特征4、下列C+标点符号中表示行注释开始的是( C )。A # B ; C / D 5、每个C+程序都必须有且仅有一个( B )。A 预处理命令 B 主函数 C 函数 D 语句6、C+对C语言做了很多改进,下列描述中哪一项使得C语言发生了质变,即从面向过程变成面向对象( D )。A 增加了一些新的运算符 B 允许函数重载,并允许设置默认参数 C 规定函数说明必须用原型 D 引
5、进类和对象的概念7、对定义重载函数的下列要求中,错误的是( D )。A 要求参数的个数不同 B 要求参数中至少有一个类型不同C 要求参数个数相同时,参数类型不同 D 要求函数的返回值不同8、在函数的返回值类型与返回值表达式的类型的描述中,错误的是( B )。A 函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的B 函数返回值的类型就是返回值表达式的类型C 函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成返回值类型D 函数返回值类型确定了返回值表达式的类型9、下列不正确的选项是( D )。A C+语言是一种既支持面向过程程序设计,又支持面向对象程序设计的混合型语言B 关键
6、字是在程序中起分割内容和界定范围作用的一类单词C iostream是一个标准的头文件,定义了一些输入输出流对象D 类与类之间不可以进行通信和联络10、下列表示引用的方法中,正确的是( A )。已知:int k=1000;A int &x=k; B char &y; C int &z=1000; D float &t=&k;二、填空题1、C+既可以用来进行面向 对象 程序设计,又可以进行面向 过程 程序设计。2、常量分成两种,一种是 直接 常量,另一种是 符号 常量。3、 引用 就是某一变量的别名,对其操作与对变量直接操作完全一样。4、按函数在语句中的地位分类,可以有以下3种函数调用方式: 函数
7、语句 , 函数表达式 , 函数参数 。5、函数与引用联合使用主要有两种方式:一是 函数的参数是引用 ;二是 函数的返回值是引用 。6、头文件由三部分内容组成: 头文件开头处的文件头注释 , 预处理块 , 函数和类结构声明 。三、程序阅读题1、分析下面的执行结果#includeusing namespace std;int main() int a,b,sum; / 定义a,b,sum三个整型变量 a=43; / 把整数常量赋给变量a b=37; sum=a+b; / a与b相加的和赋给变量sum coutThe sum issum; coutendl; / endl 是回车换行的作用retur
8、n 0; 2、分析以下程序的执行结果 #include using namespace std;int main() int a; int &b=a; /变量引用 b=10; couta=aendl; return 0; 3、下列程序的执行结果为#includeusing namespace std;void mian() int n=10; int* pn=&n; int* &rn=pn; (*pn)+; coutn=nendl; (*rn)+; cout”n=”nendl;4、下面程序的运行结果是#includeusing namespace std;void fun(int &a,int
9、 &b) int p; p=a; a=b; b=p;void exchange(int &a,int &b,int &c) if(ab)fun(a,b); if(ac)fun(a,c); if(bc)fun(b,c);int main() int a,b,c; a=12; b=639; c=78; exchange(a,b,c); couta=a,b=b,c=cendl; return 0;5、下面的程序输出结果为#includeusing namespace std;int main() int *ir; int i; ir=&i; i=17; coutint i=iendl; coutin
10、t ir=*irendl; 6、下面程序的输出结果为 #includeusing namespace std;int fun(char *s);int main()cout ”运算符,通过对象访问公有成员是使用“ . ”运算符。9、假定AB是一个类,则语句 AB(const AB &) 是该类拷贝构造函数的原形说明。10、析构函数在对象的 生命周期结束 时被自动调用,全局对象和静态对象的析构函数在 main函数执行完毕或调用exit函数结束时 调用。三、程序分析题1、写出程序的运行结果includeusing namespace std;Class MyClass public: int nu
11、mber; void set(int i); ;int number=3;void MyClass:set(int i) number=i;void main() MyClass my1; int number=10; my1.set(5); coutmy1.numberendl; my1.set(number); coutmy1.numberendl; my1.set(:number); coutmy1.number;2、分析以下程序的执行结果 #include class Sample int x; public: Sample(); Sample(int a)x=a; Sample(Sa
12、mple &a)x=a.x+1; void disp()coutx=xendl; ; void main() Sample s1(2),s2(s1); s2.disp(); 3、分析以下程序的执行结果 #include class Sample int x,y; public: Sample()x=y=0; Sample(int i,int j)x=i;y=j; void copy(Sample &s); void setxy(int i,int j)x=i;y=j; void print()coutx=x,y=yendl; ; void Sample:copy(Sample &s) x=s.
13、x;y=s.y; void func(Sample s1,Sample &s2) s1.setxy(10,20); s2.setxy(30,40); void main() Sample p(1,2),q; q.copy(p); func(p,q); p.print(); q.print(); 4、分析以下程序的执行结果#include class Sample public: int x; int y; void disp() coutx=x,y=yendl; ; void main() int Sample:*pc; Sample s; pc=&Sample:x; s.*pc=10; pc
14、=&Sample:y; s.*pc=20; s.disp(); 5、写出下面程序的执行结果#include class Sample int A; static int B; public: Sample(int a)A=a,B+=a; static void func(Sample s); ; void Sample:func(Sample s) coutA=s.A,B=Bendl; int Sample:B=0; void main() Sample s1(2),s2(5); Sample:func(s1); Sample:func(s2); 第4章 继承与组合一、选择题1、下面对派生类的
15、描述中,错误的是( D)。 一个派生类可以作为另一个派生类的基类 派生类至少有一个基类 派生类的成员除了它自己的成员外,还包含了它的基类的成员 派生类中继承的基类成员的访问权限到派生类中保持不变2、在多继承中,公用继承和私有继承对于基类成员在派生类中的可访问性与单继承的规则是(A )。 完全相同 完全不同 部分相同,部分不同 以上都不对3、下面叙述不正确的是( D )。 派生类一般都是公用派生 对基类成员的访问必须是无二义性的 赋值兼容规则也适用于多重继承的场合 基类的公用成员在派生类中仍然是公用的4、下面叙述不正确的是(A )。 基类的保护成员在派生类中仍然是保护的 基类的保护成员在公用派生
16、类中仍然是保护的 基类的保护成员在私有派生类中仍然是私有的 对基类成员的访问必须是无二义性的5、当保护继承时,基类的(B )在派生类中成为保护成员,不能通过派生类的对象来直接访问。 任何成员 公用成员和保护成员 公用成员和私有成员 私有成员6、若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的( D )。 任何成员 公用成员 保护成员 私有成员7、设置虚基类的目的是( B)。 简化程序 消除二义性 提高运行效率 减少目标代码8、继承具有(B ),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。 规律性 传递性 重复性 多样性9、在公用继承情
展开阅读全文