内容发布更新时间 : 2025/1/1 10:44:40星期一 下面是文章的全部内容请认真阅读。
浙江工业大学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
//------------------------------- 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 //------------------------------- void swap1(int a, int b){ int tmp = a; a = b; b = tmp; }//------------------------------ void swap2(int* a, int* b){ int tmp = *a; 第3页