2009年全国自考C++程序设计模拟试卷(四)
一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中
只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无
分。
1.当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中()
A.都是虚函数
B.只有被重新说明时才是虚函数
C.只有被重新说明为virtual时才是虚函数
D.都不是虚函数
2.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()
A.constchar*p=“ABCD”;
B.char*constp=“ABCD”;
C.charconst*p=“ABCD”;
D.constchar*constp=“ABCD”;
3.函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为()
A.1
B.2
C.4
D.5
4.设有函数模板
template
QSum(Qx,Qy)
{return(x)+(y);}
则下列语句中对该函数模板错误的使用是()
A.Sum(10,2);
B.Sum(5.0,6.7);
C.Sum(15.2f,16.0f);
D.Sum(“AB”,”CD”);
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中的函数
6.在面向对象的程序设计中,首先在问题域中识别出若干个()
A.函数
B.类
C.文件
D.过程
7.已知f1和f2是同一类的两个成员函数,但f1不能直接调用f2,这说明()
A.f1和f2都是静态函数
B.f1不是静态函数,f2是静态函数
C.f1是静态函数,f2不是静态函数
D.f1和f2都不是静态函数
8.下列有关模板和继承的叙述正确的是()
A.模板和继承都可以派生出一个类系
B.从类系的成员看,模板类系的成员比继承类系的成员较为稳定
C.从动态性能看,继承类系比模板类系具有更多的动态特性
D.相同类模板的不同实例一般没有联系,而派生类各种类之间有兄弟父子等关系
9.有关C++编译指令,以下叙述正确的是()
A.C++每行可以写多条编译指令
B.#include指令中的文件名可含有路径信息
C.C++的编译指令可以以#或//开始
D.C++中不管#if后的常量表达式是否为真,该部分都需要编译
10.在C++中不返回任何类型的函数应该说明为()
A.int
B.char
C.void
D.double
11.若Sample类中的一个成员函数说明如下:
voidset(Sample&a),则Sample&a的含义是()
A.指向类Sample的名为a的指针
B.a是类Sample的对象引用,用来作函数Set()的形参
C.将a的地址赋给变量Set
D.变量Sample与a按位与的结果作为函数Set的参数
12.下列关于静态数据成员的描述中正确的是()
A.静态数据成员是类的所有对象所共有的
B.静态数据成员要在构造函数内初始化
C.类的每个对象有自己的静态数据成员
D.静态数据成员不能通过类的对象调用
13.在编译指令中,宏定义使用哪个指令()
A.#if
B.#include
C.#define
D.#error
14.类的析构函数是对一个对象进行以下哪种操作时自动调用的是()
A.建立
B.撤销
C.赋值
D.引用
15.关于new运算符的下列描述中,错误的是()
A.它可以用来动态创建对象和对象数组
B.使用它创建的对象或对象数组可以使用运算符delete删除
C.使用它创建对象时要调用构造函数
D.使用它创建对象数组时必须指定初始值
16.如果类A被说明成类B的友元,则()
A.类B不一定是类A的友元
B.类B的成员即类A的成员
C.类A的成员即类B的成员
D.类A的成员函数不得访问类B的成员
17.假定一个类的构造函数为A(intaa,intbb){a=aa++;b=a*++bb;},则执行Ax(4,5);语句
后,x.a和x.b的值分别为()
A.4和5
B.4和20
C.4和24
D.20和5
18.下列运算符中,在C++语言中不能重载的是()
A.*
B.>