11-16 D A C B C C
三、程序的填空、程序的执行(每题4分,共20分。) 24、counter operator + (counter c) 25、virtual 26、23,23 27、ABC 28、XY
四、编程题(12分) 29、
#include
virtual float area() const { return 0; } };
class triangle: public base { protected:
float bian,height; public:
triangle(float a=0, float h=0) virtual float area() const { return bian*height/2; } };
class square: public base
第 17 页
bian=a; height=h; } { { protected:
float bian; public:
square(float a=0) { bian=a; } virtual float area() const { return bian*bian; } };
class circle: public base { protected:
float radius; public:
circle(float r=0) { radius=r; } virtual float area() const
{ return 3.14*radius*radius; } };
int main()
{ triangle t(3,4); square s(5); circle c(2); base *p;
p=&t; cout<<\ p=&s; cout<<\ p=&c; cout<<\ return 0; }
《面向对象程序设计C++》期末考试试卷(A)
班级: 姓名: 学号: 分数:
第 18 页
题号 得分 一 二 三 四 总分 试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。
(答题纸在本套试卷的第10页上)
一、选择题(每小题2分,共40分) 1、C++是( )。
A. 面向对象的程序设计语言 B. 面向过程的程序设计语言
C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言 D. 非结构化的程序设计语言
2、面向对象程序设计思想的主要特征中不包括( )。
A. 封装性 B. 多态性 C. 继承性 D. 功能分解,逐步求精 3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入: Microsoft Visual Studio 6.0! 所得的结果是str=( )。
A. Microsoft Visual Studio 6.0! B. Microsoft
C. Microsoft Visual D. Microsoft Visual Studio 6.0 4、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是( )。
A. testDefaulParam(5); B. testDefaulParam(5,8); C. testDefaulParam(5,'#'); D. testDefaulParam(0,0,'*'); 5、下列语句中,将函数int sum(int x, int y)正确重载的是( )。 A. float sum(int x, int y); B. int sum(int a, int b); C. float sum(float x, float y); D. double sum(int y, int x); 6、下列表示引用的方法中,( )是正确的。 已知:int a=1000;
A. int &x=a; B. char &y; C. int &z=1000; D. float &t=&a;
第 19 页
7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( )。
A. 内联函数 B. 重载函数 C. 递归调用 D. 嵌套调用 8、下列有关C++类的说法中,不正确的是( )。 A. 类是一种用户自定义的数据类型
B. 只有类中的成员函数或类的友元函数才能存取类中的私有成员 C. 在类中,如果不做特别说明,所有成员的访问权限均为私有的 D. 在类中,如果不做特别说明,所有成员的访问权限均为公用的
9、已知X类,则当程序执行到语句:X array[3];时,调用了( )次构造函数。 A. 0 B. 1 C. 2 D. 3 10、下面说法中,正确的是( )
A. 一个类只能定义一个构造函数,但可以定义多个析构函数 B. 一个类只能定义一个析构函数,但可以定义多个构造函数 C. 构造函数与析构函数同名,只要名字前加了一个求反符号(~)
D. 构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以
11、已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,( )是正确的。
A. void print( ) const; B. const void print( ); C. void const print( ); D. void print(const); 12、下面描述中,表达错误的是( )
A. 公用继承时基类中的public成员在派生类中仍是public的 B. 公用继承时基类中的private成员在派生类中仍是private的 C. 公用继承时基类中的protected成员在派生类中仍是protected的 D. 私有继承时基类中的public成员在派生类中是private的 13、设置虚基类的目的是( )。
A. 简化程序 B. 消除二义性 C. 提高运行效率 D. 减少目标代码
第 20 页
相关推荐: