面向对象程序设计-试卷(2012上)A 下载本文

???????????????????密??????????????????封?????????????????????????????线??????????????? 东莞理工学院(本科)试卷(A卷)

2011 --2012学年第二学期

_ _ _ _ _ _ _ _姓名: 学 __ 系别: 计算机系 年级专业: _ _ _ _ _ _ _ ___:_号《面向对象程序设计》试卷

开课单位: 计算机学院,考试形式:闭、开卷,允许带 入场

题序 得分 评卷人 一 二 三 四 五 六 总 分 一.单项选择题 (15小题,每小题2分,共30分,请将正确答案填写在以下对应的答题表格中) 题号 答案 题号 答案 1 11 2 12 3 13 4 14 5 15 6 7 8 9 10

1.下列关于C++函数的叙述中,正确的是____________。

A.每个函数至少要具有一个参数 B.每个函数都必须返回一个值 C.函数在被调用之前必须先声明 D.函数不能自己调用自己 2、下列关于类和对象的叙述中,错误的是___________。 A.一个类只能有一个对象 B.对象是类的具体实例

C.类是对某一类对象的抽象 D.类和对象的关系是一种数据类型与变量的关系 3、对于语句 cout<

A.“cout”是一个输出流对象 B.“endl”的作用是输出回车换行 C.“x”是一个变量 D.“<<”称作提取运算符 4、有如下类声明,则类MyDERIVED中保护的数据成员和成员函数的个数是___________。 class MyBASE { private: int k;

public: void set(int n){ k=n;}

int get( )const{ return k;} }; class MyDERIVED: protected MyBASE { protected: int j;

public: void set(int m, int n){ MyBASE::set(m); j=n;}

int get( ) const { return MyBASE::get( )+j; } }; A.4 B.3 C.2 D.1

5、下列关于C++标识符的命名不合法的是___________。

《面向对象程序设计》试卷 第1页 共7页

A. iPad B. name_LI C. A&B D. _a168 6、下面四个选项中,___________是用来声明虚函数的。 A.virtual B.public C.include D.using namespace 7、以下___________成员函数表示纯虚函数。 A.virtual int vf(int); B.void vf(int)=0;

C.virtual void vf()=0; D.virtual void vf(int){} 8.以下不属于对象基本特点的是__________。

A.耦合性 . B.多态性 . C.继承性 D.封装性 9.关于静态数据成员的描述中正确的是__________。

A.类的静态数据成员不是类的所有对象共享的数据 B.类的静态数据成员不能被类的成员函数调用 C.类的静态数据成员不能被类的构造函数调用 D.类的静态数据成员必须进行初始化 10.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是__________。

A.增加了一些新的运算符

B.允许函数重载,并允许设置缺省参数 C.规定函数说明符必须用原型 D.引进了类和对象的概念

11.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初实化并执行其他内部管理操作的函数是__________。

A.友元函数 B.虚函数 . C.构造函数 D.析构函数 12.下列说法正确的是__________。

A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义

D.类的内联函数必须在类体外通过加关键字inline定义 13.关于抽象类下面说法正确的是__________。

A.抽象类就是其中有函数定义但没有实现的类 B.抽象类是可以被实例化的 C.派生类不能成为抽象类

D.抽象类的子类必须实现父类中的纯虚函数

14.一个函数功能不太复杂但要求被频繁调用,应选用__________。

A.内联函数 B.重载函数 C.递归函数 D.嵌套函数 15.类的析构函数是在什么时候调用的? __________。

A.类创建时 B.创建对象时 C.删除对象时 D.不自动调用

二.填空题(每空2分,共20分)

1、表达式“101%4”的值是__________。

2. 表达式“2<3 && 6<9 ”的布尔值是__________。 3. 数组b[2][4][10]的元素共有__________个。

4、在用class定义一个类时,数据成员和成员函数的默认访问权限是__________。 5、含有__________的类称为抽象类。

6. 函数重载时要求同名函数的参数纯虚函__________或__________不同,否则无法确定是调用哪个函数。

《面向对象程序设计》试卷 第2页 共7页

7. 在C++语言的面向对象程序设计框架中,__________是程序的基本组成单元。 8. 在C语言的结构化程序设计中,__________是程序的基本组成单元。

9. 派生类的成员一般分为两部分,一部分是从__________,另一部分是自己定义的新成员

三.判断题(5小题,每小题2分,共10分)

1. 字符串\的长度是5。( )

2. 在c++中,运算符重载以后,其优先级和结合性可能改变。( ) 3. 类中所提供的成员函数可以直接访问类内全部私有成员。( ) 4. 私有继承中,基类中所有成员对派生类的对象都是不可见的。( ) 5. 构造函数和析构函数都不能被继承。( )

四.程序填空(每题6分,共18分)

根据程序的功能描述,将程序下划线空白处内容补充完整(每空白3分) 1.输入一个整数n,求出它的所有因子。

#include using namespace std; int main() { int n; cout << \ cin >> n; cout << \ \ Factors \ for (____________________) if (____________________ ) cout << k << \ \ cout << endl; return 0; }

2. 寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。

#include using namespace std;

bool symm(unsigned n) { //判断n是否为回文数 unsigned i = n; unsigned m = 0; while (i > 0) { ____________________; ____________________; }

return m ==n; }

int main() { for(unsigned m = 11; m < 1000; m++)

《面向对象程序设计》试卷 第3页 共7页