C++程序设计模拟试卷(六)
C++程序设计模拟试卷(六)
一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中
只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无
分。
1. 当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中()
A. 都是虚函数
B. 只有被重新说明时才是虚函数
C. 只有被重新说明为virtual时才是虚函数
D. 都不是虚函数
答案:A
解析:在基类声明为virtual的函数为虚函数,在派生类中只要有相同的函数(函数名相
同、返回值相同、形参类型和个数相同)即使不用virtual说明,也都是虚函数。
2. 以下基类中的成员函数表示纯虚函数的是()
A. virtual void vf(int)
B. void vf(int)=0
C. virtual void vf()=0
D. virtual void yf(int){}
答案:C
解析:纯虚函数是特殊的虚函数,没有函数体,形式为:virtual返回类型函数名(形参
列表)=0;因此选C项。
3. 下面对静态数据成员的描述中,正确的是()
A. 静态数据成员可以在类体内进行初始化
B. 静态数据成员可以直接用类名或者对象名来调用
C. 静态数据成员不能用private控制符修饰指针函数的作用
D. 静态数据成员不可以被类的对象调用
答案:B
解析:静态成员可用类名或者对象名来调用,静态数据成员必须在类外进行初始化。静态
成员可以用public、private和protected修饰。所以选B项。
4. 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体
也就是()
A. 类
B. 对象
C. 函数体
D. 数据块
答案:A
解析:类即数据和操作的组合体,数据是类的静态特征,操作是类具有的动作。
5. 类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A对象的指针
,则p->A::func()将()
A. 调用类A中的函数func()
B. 调用类B中的函数func()
C. 根据p所指的对象类型而确定调用类A中或类B中的函数func()
D. 既调用类A中函数,也调用类B中的函数
答案:A
解析:指向类成员指针的使用,A::func()是明确调用A类的func函数,所以不管p指向基
类或者派生类对象,都执行基类虚函数。注意p->A::func()和p->fun();进行区分。如果使用p- >fun(),因为p指向派生类对象,由动态多态性可知要调用派生类的虚函数。
6. 在面向对象的程序设计中,首先在问题域中识别出若干个()
A. 函数
C. 文件
D. 过程
答案:B
解析:面向过程的和面向对象都具有、函数、文件和过程这些概念,而面向对象程序才有
类和对象的特征。所以选择B。
7. 在下列成对的表达式中,运算结果类型相同的一对是()
A. 7.0/2.0和7.0/2
B. 5/2.0和5/2
C. 7.0/2和7/2
D. 8/2和6.0/2.0
答案:A
解析:小数默认的类型为double类型,整数除以整数结果是取整的结果。A、B、C和D项的第一项分别是double、double、double和int类型的,第二项分别是double、int、int和double类型,所以选择A项。
8. 下列不具有访问权限属性的是()
A. 非类成员
B. 类成员
C. 数据成员
D. 函数成员
答案:A
解析:类成员包括成员函数和数据成员,都可以使用访问权限public、private和protected来修饰,而普通的变量不能使用访问权限来说明。
9. 以下有关继承的叙述正确的是()
A. 构造函数和析构函数都能被继承
B. 派生类是基类的组合
C. 派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员
D. 基类的公有成员一定能被派生类的对象访问
答案:C
解析:构造函数和析构函数不能被派生类继承,A项错误。派生类是基类的扩展,B项错。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论