期中考试C+
更新时间:2023-03-18 08:06:01 阅读量: 综合文库 文档下载
一、单项选择题(20*2分)
1. 所谓多态性是指(B) A) 不同的对象调用不同名称的函数 B) 不同的对象调用相同名称的函数 C) 一个对象调用不同名称的函数 D) 一个对象调用不同名称的对象
2. 在int a=3,int *p=&a;中,*p的值是(D) A) 变量a的地址值 B) 无意义 C) 变量p的地址值 D) 3
3. 下列不能描述为类的成员函数的是(C)
A) 构造函数 B) 析构函数 C) 友元函数 D) 拷贝构造函数 4. 以下基类中的成员函数表示纯虚函数的是(A) A) virtual void tt()=0 B) voidtt(int)=0
C) virtual void tt(int) D) virtual void tt(int){}
5. 下面对静态数据成员的描述中,正确的是(B) A) 静态数据成员可以在类体内进行初始化
B) 静态数据成员可以直接用类名或者对象名来调用 C) 静态数据成员不能用private控制符修饰 D) 静态数据成员不可以被类的对象调用
6. 有关析构函数的说法不正确的是 ( B )。
A) 析构函数有且仅有一个 B) 析构函数和构造函数一样可以有形参 C) 析构函数的功能是用来释放一个对象 D) 析构函数无任何函数类型
7. 已知X类.则当程序执行到语句,X array[3];时,调用了( D )次构造函数。
A) 0 B) 1 C) 2 D) 3
8. 关于new运算符的下列描述中,( D )是错误的。 A) 它可以用来动态创建对象和对象数组
B) 使用它创建对象或对象数组,可以使用运算符DELETE删除 C) 使用它创建对象时要调用构造函数
D) 使用它调用对象数组时不许指定初始值
9. 可以用p.a的形式访问派生类对象p 的基类成员的a,其中a是( D )。
A)私有继承的公有成员 B)公有继承的私有成员 C)公有继承的保护成员 D)公有继承的公有成员 10. 下列描述中哪个是正确的( D)。 A) 私有派生的子类无法访问父类的成员
B) 类A的私有派生子类的派生类C无法初始化其祖先类A对象的属性,因为类A的成员对类C是不可访问的
C) 私有派生类不能作为基类派生子类
D) 私有派生类的所有子孙类将无法继续继承该类的成员 11. 下列关于构造函数说法不正确的是( C )。 A)构造函数必须与类同名 B)构造函数可以省略不写
C)构造函数必须有返回值 D)在构造函数中可以对类中的成员进行初始化
12. 在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是( D )。
A) 一元成员运算符 B) 二元成员运算符 C) 一元友元运算符 D) B)和C)都可能 13. 类CStudent的拷贝构造函数的声明语句为 D 。 A) CStudent&CStudent (constCStudent other) B) CStudentCStudent(constCStudent other) C) CStudent (CStudent *other) D) CStudent (constCStudent&other)
14. 对友元(friend)不正确的描述是: D 。 A) 友元关系既不对称也不传递。
B) 友元声明可以出现在private部分,也可以出现在public部分。 C) 整个类都可以声明为另一个类的友元。
D ) 类的友元函数必须在类的作用域以外被定义。
15. 关于纯虚函数和抽象类的描述中,错误的是 C 。 A) 纯虚函数是一种特殊的虚函数,它没有具体的实现。 B) 抽象类是指具有纯虚函数的类。
C) 一个基类说明中有纯虚函数,该基类的派生类不再是抽象类。 D) 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。
16. 关于动态内存分配,对delete运算符的下列说法中, C 是错误的
A) 应与new运算符配合使用。 B) 可以在类的成员函数中使用。
C) 对同一个指针变量可任意多次使用该运算符。
D) 若a是一个二维数组。则delete []a;可删除a所占用的存储空间。 17. 关于运算符重载下列叙述正确的是 A 。 A) 重载不能改变算数运算符的结合性。 B) 重载可以改变算数运算符的优先级。 C) 所有的C++运算符都可以被重载。 D) 运算符重载用于定义新的运算符。 18. 下列叙述中,正确的是 B 。
A) 虚函数必须在派生类中定义,基类不需定义。
B) 一个基类定义的虚函数,该类的所有派生类都继承并拥有该函数。 C) 派生类中重定义虚函数时,参数表必须改变。 D) 虚函数的返回类型必须是void。 19. 设有类的定义:class M{ public: int *v; M(){ }
M(inti){v=new int(i);}
};
以下定义该类的对象m,并对其成员v初始化的正确操作是 D 。
A) M m; m.v=10; B) M m; *m.v=10; C) M m; m.*v=10; D) M m(10);
20. 已知print()函数是一个类的常成员函数,它无返回值,下列表示中, A 是正确的。
A) void print( ) const B) const void print( ) C) voidconst print( ) D) void print (const)
二、判断题(0.5分*10)(对的打√,错的打╳)
1. 友元函数用于允许一个函数访问不相关类的私有部分。 ( √ ) 2. 构造函数可以被继承。 ( ╳ )
3. 动态的多态性可以通过基类指针调用虚函数实现。 ( √ ) 4. 重载函数必须有不同的参数列表。 ( √ )
5. 可以用delete释放不是用new运算符分配的内存。 ( ╳ ) 6. 类成员的默认访问模式是private。 ( √ )
7. 在类Time中的析构函数可以声明为:void ~Time(int); ( ╳ ) 8. Const数据成员在类的外部初始化。 ( ╳ ) 9. 只有单目运算符和双目运算符才能重载。 (╳ ) 10. C++中,在定义函数时的参数是“形参”,在调用函数时的参数是“实参”。 ( √ )
三、填空题(10*1分)
1. 继承的方式包含公有继承、私有继承和(保持继承)三种。 2. 面向对象的程序设计的主要特征包括抽象、封装、(继承)和(多态)。 3. 常引用的标识符是(const&),使用常引用的好处在于(保护数据,用作形参还能提高程序运行效率。),
4. 有一种类,不能定义对象,只能被继承,称之为(抽象类),这种类至少具有一个(纯虚函数)。
5. 在已经定义了整型指针p后,为了得到一个包括10个整数的数组并由p所指向,应使用语句(int *p = new int[`10] 。
6. 在C++中,访问一个指针所指向的对象的成员所用的指向运算符是( ->)。
7. C++语言支持的两种多态性分别是编译时的多态性和(运行(或动态))的多态性。
四、程序阅读题(4小题,共15分)
1、(3分) 下列程序的运行结果 1342 。 #include
using namespace std; class A {
public:
A(){cout<<\ ~A(){cout<<\};
class B:public A { public:
B(){cout<<\ ~B(){cout<<\};
void main() {
B b; }
2、(3分) 下列程序的执行结果为 n=11, n=12 #include
using namespace std; void main() {
int n=10; int* pn=&n; int* &rn=pn; (*pn)++;
cout<<\ (*rn)++;
cout<<”n=”< 3、(3分) 下列程序的执行结果为 A::a=1 A::a=1 A::a=1 。 #include using namespace std; class A { private: int a; public: A(int x): a(x){ } void Show() const { cout<< \ }; 。 class B: public A { private: int b; public: B(int x, int y): A(x), b(y){ } void Show() const { cout<< \ }; class C: public A { private: int c; public: C(int x, int y): A(x), c(y){ } void Show() const { cout<< \ }; int main() { A *p; A a(1); B b(1, 6); C c(1, 8); p = &a; p->Show(); p = &b; p->Show(); p = &c; p->Show(); system(\ return 0; } 4 、 (6分) 写出下列程序的执行结果,并说明该程序有什么问题,应该如何修改程序? Constructor of CBase. m_data=abcd Constructor of CDerived. m_data =abcd Destructor of CBase. m_data=abcd 问题在于析构过程中只调用了基类的析构函数。正确的析构应该是先执行CDerived的析构函数,再执行CBase的析构函数。在~CBase()加上virtual关键字即可。 classCBase {
正在阅读:
期中考试C+03-18
120个国学经典故事10-05
注塑机作业指导书12-20
恩施最全民俗文化 - 图文04-05
网络银行的发展与分析 209-19
中国xx集团投资有限公司“七必访”制度06-12
难忘的草原之旅作文800字07-12
机械制图习题集(第6版)参考答案01-21
换届选举典型案例05-01
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 期中
- 考试
- 2013马克思主义基本原理概论复习题(1)
- 2016年全国统一高考化学试卷(新课标)
- 聘请常年法律顾问协议书2015
- 区域代理销售协议书 - 0
- 签单技巧
- 2010年南开大学考博宏观经济学专业课试题
- Fluent经典问题及解答
- 2011新生见面会(2)
- 阿米妙收施用对水稻产量和品质影响的研究-扬州试验方案
- 封闭墙密闭墙设计施工措施
- 关于学士学位授权评估
- 干部在线学习 —贯彻落实《纲要》精神促进高等教育改革发展
- 关于PET材料公司与海南金盘饮料公司商务谈判计划
- 2017-2022年中国家用冰淇淋机行业运营格局分析及投资潜力研究预测报告目录
- 2014年高考备考1
- 基坑支护及降排水专项施工方案
- 河床开挖施工方案基坑稳定验算
- 甘肃省瓜州县第二中学八年级生物下册261远离烟酒教案新版苏教版
- 软件著作权说明书模板 - 图文
- 高中英语必修1(北师大版)Unit 3 Celebration 知识点总结