南华大学2009级研究生面向对象程序设计课程考试试卷答案

南华大学 2009 级硕士研究生课程考试试题

考试科目: 面向对象程序设计 所属学院 计算机学院 考试时间 考生姓名: 考生学号 任课教师 考试成绩 一、判断题:(每题 1 分,共 20 分)

( × )1.C++语言和C语言都是面向对象的程序设计语言。

( √ )2.编译C++源程序时,出现了警告错(Warning)也可以生成可执行文件。 ( × )3.标识符规定大小写字母没有区别。

( √ )4.变量的数据类型指出了变量在内存中存放的字节数。

( × )5.字符串常量与字符常量的区别仅表现在定义形式上的不同,一个用双撇号,另一个用单撇号。 ( √ )6.表达式中各操作数计算顺序取决于运算符的优先级和结合性。 ( √ )7.数组中所有元素的类型都是相同的。 ( × )8.任何循环语句都是至少执行一次循环体。

( × )9.指针是变量,它具有的值是某个变量或对象的地址值,它还具有一个地址值,这两个地址值是相等的。

( √ )10.创建引用时要用一个同类型的变量进行初始化。 ( × )11.函数可以没有参数,但是不能没有返回值。

( √ )12.函数调用方式有传值调用和引用调用两种,传值调用中又分传值和传址两种。 ( × )13.类中的成员函数都是公有的,数据成员都是私有的。 ( × )14.析构函数是一个函数体为空的成员函数。

( × )15.常数据成员在常成员函数中的值是不允许改变的,而在非常成员函数中是允许改变的。 ( √ )16.友元函数是说明在类体内的非成员函数,它可以访问类中的所有成员。 ( √ )17.this指针是系统生成的指向当前被某个成员函数操作对象的指针。 ( √ )18.使用new运算符创建的对象称为堆对象。 ( × )19.多重继承是指一个基类派生出多个派生类的情况

( √ )20.运算符重载只可以是类的成员函数和友元函数,不可以是普通函数。 二、填空题:(每空 1 分,共 20 分)

1.单目运算符&作用在变量名左边,表示该变量的地址值,单目运算符*作用在指针名的左边,表示取该变量的 值 。

2.使用关键字inline说明的函数称为 内联 函数,具有相同函数名但具有不同实现的函数称为 重载 函

数。

3.类体内成员有3个访问权限,说明它们的关键字分别是公有 、 私有 和 保护。

4.如果一个类中没有定义任何构造函数时,系统会自动提供一个默认 构造函数;同样,类中没有定义析构函数时,系统会自动提供一个默认 析构函数。

5.友元函数是被说明在 类体 内的 非 成员函数。友元函数可访问该类中的成员。

6.派生类的构造函数应该承担着对基类中数据成员 初始化 和对派生类自身数据成员 初始化 的双重任务。

7.静态联编支持的多态性称为 静态 多态性,它是在 编译 时进行的;动态联编支持的多态

性称为 动态 多态性,它是在 运行 时进行的。

8.在控制符中,用来指定八进制、十进制和十六进制的控制符分别是 oct 、 dec 和 hex 。 三、选择题:(每题 2 分,共 16 分) 1.下列变量名中,非法的是( C )。 A.A25 B.My_car C.My-str

D.abc

2.下列常量中,十六进制int型常量是( A )。 A.0x5f B.x2a C.046

D.7a

3.下列表达式中,其值为0的是( A )。 A.5/10

B.!0 C.2>4?0:1

D.2&&2||0

4.下列for循环语句的循环次数是( B )。 for(int i(0), j(5); i=3; i++, j--); A.3 B.无限 C.5

D.0

5.下列程序段执行后,j值是( B )。 for(int i(0), j(0); i<10; i++) if(i) j++; A.0 B.9 C.10

D.无限

6.下列关于定义一个指向double型变量的指针,正确的是( B A.int a(5);double *pd=a; B.double d(2.5),*pd=&d;C.double d(2.5),*pd=d;

D.double a(2.5),pd=d;

7.下列的成员函数中,纯虚函数是( A )。 A.virtual void f1() = 0 B.void f1() = 0; C.virtual void f1() {}

D.virtual void f1() == 0;

8.在下列读写函数中,进行写操作的函数是( C )。 A.get() B.read() C.put()

D.getline()

)。 四、写出程序运行结果(共 5 小题,共 24 分)

1.#include

void main() {

int a(10); while(--a) { }

if(a==5) break;

if(a%2==0&&a%3==0) continue; cout<

}

9 8 7

2.#include

int fun(int n) {

int p(1),s(0); for(int i(1);i

void main() {

int s=fun(4); cout<

3.#include int add(int,int =5); void main() {

int a(8);

cout<<\ cout<<\ cout<<\

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