c++面向对象程序设计试题和答案(经典题目)
更新时间:2023-10-03 00:39:01 阅读量: 综合文库 文档下载
一、 填空题(每空1分,共14分) 1、 观看以下程序:
class point{ public:
void show() {cout<<”point”< void main() { point p1; point *p; p=&p1; ______p1.show()_________//通过对象p1访问show函数 _______p.show()_______//通过指针p访问show函数 } 2、 在C++类中可以包含___公共___、___保护_____和___私有__三种具有不同访问控制 权的成员。 3、 定义类时,在类头中将使用关键字__class _____来表示类定义的开始。 4、 如果一个类中至少有一个纯虚函数,则该类称为_______抽象类_________。 5、 C++类的组成包括数据成员和______成员函数________,友元__是___(是、不是) 该类的成员函数。 6、 友员函数是用关键字_____friend_______修饰的非成员函数。 7、 若有: int i; int &j=i; i=10; j=i+1; 则i=____11_____,j=___11______。 8、 new的功能是_______分配内存空间______,delete的功能是______释放内存空间______________。 系名____________班级____________姓名____________学号____________ 密封线内不答题 二、 选择题(每小题1.5分,共30分) 1、下列特性中不是面向对象程序设计语言所特有的是( D )。 (A)数据封装 (B)继承(C)多态性 (D)模板 2、( B )是给变量取一个别名,它引入了变量的同意词。 (A)指针 (B)引用 (C)枚举 (D)结构 (D)protected 3、类成员的访问权限中,( )只能被本类的成员函数和其友元函数访问。 (A)share (B)public (C)private (A)构造函数名字和类名相同 (B)构造函数在创建对象时自动执行 (C)构造函数无任何函数返回类型 (D)构造函数有且只有一个 5、派生类可以访问其基类的( )。 (A)公有成员 (C)私有派生 (B)保护成员 (D)公有和保护成员 4、关于构造函数,下列说法不正确的是( )。 6、下列关于运算符重载的描述中,错误的是( )。 (A)运算符重载不可以改变操作数的个数 (B)运算符重载不可以改变运算符的功能 (C)运算符重载不可以改变结合方向 (D)运算符重载不可以改变运算优先级 7、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是( ) (A)面向过程 (B)面向对象 (C)安全性 (D)复用性 8、对于类中定义的成员,其隐含访问权限为( )。 A.public B.protected C.private D.static 9、下面有关重载函数的说法中正确的是( ) (A)重载函数必须具有不同的返回值类型; (B)重载函数形参个数必须不同; (C)重载函数必须有不同的形参列表 (D)重载函数名可以不同; 10、有如下的对类“CSample”的说明,其中( )是错误的。 class CSample { A.int a=23; B.CSample(); public: C.CSample(int val); D.~ CSample(); 11、在int a=3,int *p=&a;中,*p的值是( ) A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 12、每个类( )构造函数。 (A)只能有一个 (B)只可有公有的 ——第2页—— (C)可以有多个 (D)只可有缺省的 13、在一个类中可以对一个操作符进行( )重载。 (A)1 种 (B)2 种以下 (C)3 种以下 (D)多种 14、在公有继承的情况下,基类非私有成员在派生类中的访问权限( ) (A) 受限制 (B)保持不变 (C)受保护 (D)不受保护 15、应在下列程序划线处填入的正确语句是( ) #include ___void fun(){cout<<\__}; 号_学class Derived:public Base __{ void fun() ___{_____________//显示调用基类的函数fun() ___题 cout<<\___答} 名_不}; 姓_内(A)fun(); (B)Base.fun(); (C)Base::fun(); ___线16、执行下面的程序将输出( ) ___封#include }; ___class DERIVED:public BASE{ 名系 char c; public: DERIVED(char n):BASE(n+1),c(n){} ~DERIVED(){cout< int main() {DERIVED a('X'); D)Base->fun(); ( return 0; } (A)XY (B)YX (C)X (D)Y 17、下面描述中,表达错误的是( ) (A)公有继承时基类中的public成员在派生类中仍是public的 (B)公有继承是基类中的private成员在派生类中仍是private的 (C)公有继承时基类中的protected成员在派生类中仍是protected的 (D)私有继承时基类中的public成员在派生类中是private的 18、定义析构函数时,应该注意( ) (A)其名与类名完全相同 (B)返回类型是 void 类型 (C)无形参,也不可重载 (D)函数体中必须有 delete 语句 19、对于在类中定义的静态数据成员,下面正确的说法是( ) A.该类的每个对象中都有一个静态数据成员 B.对象创建时产生 C.在类外进行初始化 D.既可以在类外初始化,也可以在类内初始化 20、C++中声明常量的关键字是( )。 A. const B. extern C. public D. enum 三、 改错题(每处2分,共6分) 1、 使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但 该程序运行有问题,请改正main函数中的错误,使程序的输出结果为: member=0 member=5 menber=10 源程序文件main.cpp清单如下: #include { public: MyClass(int i){member=i;} void SetMember(int m){member=m;} int GetMember()const{return menber;} void print()cont{cout<<\private: ——第4页—— int member; }; voed main() { MyClass obj1; //更正_____________________________ obj1.print(); MyClass obj2(3); obj1.member=5; //更正__________________________ MyClass.SetMember(10); //更正_______________________ obj1.print(); obj2.print(); } 四、 写出下列程序的执行结果(每小题5分,共20分) 1、 #include Sample(int i){n=i;} friend int add(Sample &s1,Sample &s2); }; int add(Sample &s1,Sample &s2) { return s1.n+s2.n; } void main() { Sample s1(10),s2(20); cout< 执行结果是: 2、 系名____________班级____________姓名____________学号____________ 密封线内不答题
正在阅读:
转基因主粮监管政策的国际比较01-25
对我国缓刑存在的问题和现状的一些看法07-06
城市建设中的历史文化遗产保护问题01-24
博览建筑毕业设计开题报告08-16
非英语专业学生的语言流损现象及其对大学英语教学的启示03-09
甲醇及其下游产品的技术进展及经济分析05-12
关于清欠物业费的考核办法05-06
西林变频器故障代码08-26
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- c++
- 程序设计
- 试题
- 题目
- 面向
- 对象
- 答案
- 经典