浙工大C++II考卷A

浙江工业大学2013年计算机学院课程统考

《C++程序设计II》课程2小时开卷考试A卷

考试对象:2012级实验班、计算机各班等

一、 单项选择题(30分,每小题2分)(请写答题纸)

1.关于派生类构造函数的初始化列表,不能包含_____。

A) 基类的构造函数

B) 派生类中内嵌对象的初始化

C) 基类中内嵌对象的初始化

D) 派生类中一般数据成员的初始化

2.关于友元函数,正确的是_____。 A) 友元函数的实现必须在类的内部

B) 友元函数是类成员函数

C) 友元函数破坏了类的封装性和隐藏性 D) 友元函数不能访问类的私有成员

3. 对于一个类,析构函数最多有____个。

A) 0 B) 1 C) 2 D) n

4. 关于常数据成员,正确的是_____。

A) 常数据成员可以不初始化,并且不能更新 B) 常数据成员必须被初始化,并且不能更新 C) 常数据成员可以不初始化,并且可以被更新 D) 常数据成员必须被初始化,并且可以被更新

5.定义类模板时使用关键字____。

A) const B) new C) delete D) template

6.关于静态数据成员,错误的是____ 。

A) 说明静态数据成员时要加修饰符static B) 静态数据成员并不在类定义中进行初始化

C) 引用静态数据成员时,可在静态数据成员名前加类名和作用域运算符:: D) 静态数据成员包含在对象空间中

7.关于成员函数,错误的是_____ 。

A) 成员函数一定是内联函数 B) 成员函数可以重载

C) 成员函数可以设置参数默认值 D) 成员函数可以是静态的

第1页

浙江工业大学2013年计算机学院课程统考

8.类对象被创建后,其成员函数总是含有一个隐含指针,称为_____。

A)类 B) 派生 C)基类 D) this

9.面向对象编程中的封装是指_____。

A) 数据和操作分别封装 B) 相容类型的数据一起封装 C) 数据和相关的操作一起封装 D) 相似功能的操作一起封装

10.关于操作符,正确的是_____。

A) C++所有的操作符都能被重载

B) 操作符被重载时,其优先级与结合性不变 C) 需要时,可以自定义一个新操作符

D) 操作符被重载时,其参数允许任何数据类型

11.下列关键字用以说明类中保护成员的是 _____。

A)public B) private C) protected D) friend

12.对于class A,数组定义A a[5];将自动调用A类的_____。

A)有参构造函数 B)无参构造函数 C)拷贝构造函数

D)赋值操作符重载函数

13.下列_____不是类成员函数。

A)构造函数 B)析构函数 C)友元函数 D)拷贝构造函数

14.class类定义中其成员若没有规定访问权限,则其默认为_____。

A) public B) protected C) private D) static

15.一个函数功能超简单,但要求被频繁调用,应选用_____。

A)内联函数 B)重载函数 C)递归函数 D)嵌套函数

第2页

浙江工业大学2013年计算机学院课程统考

二、写运行结果(30分,共4题)(请写答题纸)

1. (7分)

//=============================== // 关于静态成员

//=============================== #include using namespace std;

//------------------------------- classGoods{

static int totalWeight; int weight; public:

Goods(int w):weight(w){ totalWeight +=w; } Goods(constGoods&gd){ weight = gd.weight; totalWeight +=weight; }

~Goods(){ totalWeight -=weight; }

static int getTotal(){ return totalWeight; } };//----------------------------- intGoods::totalWeight=0;

//------------------------------- int main(){ Goods g1(10);

cout<

cout<

cout<

//=============================== // 关于指针与引用

//=============================== #include using namespace std;

//------------------------------- void swap1(int a, int b){ int tmp = a; a = b; b = tmp;

}//------------------------------ void swap2(int* a, int* b){ int tmp = *a;

第3页

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4