CPP程序设计
模拟考试 1--第2套试卷
1.c++系统预定了4个用于标准数据流的对象,下列选项中不属于此类对象的是(____) A.cout B.cin C.cerr D.cset
正确答案:【D】 分值:【1】
2.设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型为(____) A.float B.char C.int D.double
正确答案:【D】 分值:【1】
3.下列对析构函数的描述中,正确的是(____) A.一个类中只能定义一个析构函数 B.析构函数名与类名不同
C.析构函数的定义只能在类体内 D.析构函数可以有一个或多个参数
正确答案:【A】 分值:【1】
4.下列定义数组的语句中正确的是(____)
A.#define size 10 char str1[size],str2[size+2]; B.char str[]; C.int num['10'];
D.int n=5; int a[n][n+2];
正确答案:【A】 分值:【1】
5.关于this指针使用说法正确的是(____)
A.保证每个对象拥有自己的数据成员,但共享处理这些数据的代码 B.保证基类私有成员在子类中可以被访问。 C.保证基类保护成员在子类中可以被访问。 D.保证基类公有成员在子类中可以被访问。
正确答案:【A】 分值:【1】
6.所谓多态性是指(____)
A.不同的对象调用不同名称的函数 B.不同的对象调用相同名称的函数 C.一个对象调用不同名称的函数 D.一个对象调用不同名称的对象
正确答案:【B】 分值:【1】
7.派生类构造函数的执行顺序是先执行________ 的构造函数,然后执行成员对象的构造函数,最后执行________ 的构造函数。
正确答案:【基类 或 派生类】 分值:【1】
8.C++语言程序的注释可以出现在程序中的任何地方,一个注释以________ 作为开始和结束的标记。
正确答案:【/**/】 分值:【1】
9.下列程序在构造函数和析构函数中申请和释放类的数据成员int *a,申请时使用形参b初始化a,请填空。
class A {
public:
A(int b); ~A(); private: int *a; };
A::(int b) {________ ;} A::~A()
{________ ;}
正确答案:【a=new int(b) 或 delete a】 分值:【1】
10.C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是(____) A.增加了一些新的运算符
B.允许函数重载,并允许设置缺省参数 C.规定函数说明符必须用原型 D.引进了类和对象的概念
正确答案:【D】
11.下列有关模板和继承的叙述正确的是(____) A.模板和继承都可以派生出一个类系
B.从类系的成员看,模板类系的成员比继承类系的成员较为(____)稳定 C.从动态性能看, 继承类系比模板类系具有更多的动态特性
D.相同类模板的不同实例一般没有联系,而派生类各种类之间有兄弟父子等关系
正确答案:【D】
12.关于new运算符的下列描述中,错误的是(____) A.它可以用来动态创建对象和对象数组
B.使用它创建的对象或对象数组可以使用运算符delete删除 C.使用它创建对象时要调用构造函数
D.使用它创建对象数组时必须指定初始值
正确答案:【D】
13.下列运算符中,在C++语言中不能重载的是(____) A.* B.>= C.:: D./
正确答案:【C】
14.已知 int i=0, x=1, y=0 ; 在下列选项使i的值变成1的语句是(____) A.if( x&&y ) i++ ; B.if( x==y ) i++ ; C.if( x||y ) i++ ; D.if( !x ) i++ ;
正确答案:【C】
15.sizeof(float)是(____) A.一个双精度型表达式 B.一个整型表达式 C.一种函数调用
D.一个不合法的表达式
正确答案:【B】
16.下面叙述不正确的是(____)
A.基类的保护成员在派生类中仍然是保护的成员 B.基类的保护成员在公有派生类中仍然是保护的 C.基类的保护成员在私有派生类中仍然是私有的 D.对基类成员的访问必须是无二义性
正确答案:【A】
分值:【1】
分值:【1】
分值:【1】
分值:【1】
分值:【1】
分值:【1】
分值:【1】
17.决定C++语言中函数的返回值类型的是(____) A.return语句中的表达式类型
B.调用该函数时系统随机产生的类型 C.调用该函数时的主调用函数类型 D.在定义该函数时所指定的数据类型
正确答案:【D】 分值:【1】
18.下面对于友元函数描述正确的是(____) A.友元函数的实现必须在类的内部定义 B.友元函数是类的成员函数
C.友元函数破坏了类的封装性和隐藏性 D.友元函数不能访问类的私有成员
正确答案:【C】 分值:【1】
19.不能作为重载函数的调用的依据是(____) A.参数个数 B.参数类型 C.函数类型 D.函数名称
正确答案:【D】 分值:【1】
20.面向对象的模型中,最基本的概念是对象和________。
正确答案:【类】 分值:【1】
21.在VC中,若定义一个函数的返回类型为void,以下叙述正确的是(____) A.函数返回值需要强类型转换 B.函数不执行任何操作 C.函数本身没有返回值
D.函数不能修改实际参数的值
正确答案:【C】 分值:【1】
22.函数参数的默认值不允许为(____) A.全局常量 B.直接常量 C.局部变量 D.函数调用
正确答案:【C】 分值:【1】
23.下列的描述中(____)是错误的。
A.使用全局变量可以从被调用函数中获取多个操作结果 B.局部变量可以初始化,若不初始化,则系统默认它的值为0 C.当函数调用完后,静态局部变量的值不会消失 D.全局变量若不初始化,则系统默认它的值为0
正确答案:【B】 分值:【1】
24.已知 int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, *p = a ;则不能表示数组 a 中元素的式子是(____) A.*a B.*p C.a
D.a[ p-a ]
正确答案:【C】 分值:【1】
25.已知int a[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 } ; 则不能表示数组元素a[2][1]的地址是(____)
A.&a[2][1] B.*(a[2]+1)