兰大《面向对象程序设计》21秋平时作业1
试卷总分:100 得分:100
一、单选题 (共 13 道试题,共 52 分)
1.只有( )变量才能说明为extern变量。
A.全局变量
B.静态变量
C.寄存器变量
D.自动变量
2.关于构造函数特点的描述中,错误的是( )
A.定义构造函数必须指出类型
B.构造函数的名字与该类的类名相同
C.一个类中可定义0至多个构造函数
D.构造函数是一种成员函数
3.switch 语句能够改写为( )语句。
A.for
B.if
C.do
D.while
4.列特征中不是面向对象程序设计语言所特有的是( )
A.数据封装
B.继承
C.多态性
D.模板
5.obj是类A的一个对象,执行语句 const A& aA= obj; ,则下列说法正确的是( )。
A.类A的拷贝构造函数会被调用
B.类A的赋值函数会被调用
C.&aA的值就是 &obj
D.语句obj.f( );等价于语句a
E.f( )
6.下列关于基类和派生类关系的叙述中,正确的是()。
A.每个类最多只能有一个直接基类
B.派生类中的成员可以访问基类中的任何成员
C.基类的构造函数必须在派生类的构造函数体中调用
D.派生类除了继承基类的成员,还可以定义新的成员
7.若要求从键盘读入含有空格字符的字符串,应使用函数()
A.getc()
B.gets()
C.getchar()
D.scanf()
8.类中定义的成员默认为( )访问属性
A.public
B.private
C.protected
D.friend
9.有如下定义:int a[5]={1,3,5,7,9},*p=a;下列表达式中不能得到数值 5 的是()
A.a[2]
B.a[3]
C.*(p+2)
D.*p+4
10.一个类的静态数据成员所表示属性
A.是类的或对象的属性
B.只是对象的属性
C.只是类的属性
D.类和友元的属性
11.有以下程序 fun(char p[][10]) {int n=0,i; for(i=0;i<7;i++) if(p[i][0]=='T') n++; return n; } main() { char str[][10]={“Mon”, “Tue”, “Wed”, “Thu”,”Fri”,”Sat”,”Sun”}; printf(“%d\n”,fun(str)); } 程序执行后的输出结果是()
A.1
B.2
C.3
D.0
12.派生类的对象对其基类中( )可直接访问
A.公有继承的公有成员
B.公有继承的私有成员
C.公有继承的保护成员
D.私有继承的公有成员
13.下列关于this指针的说法,哪个是正确的( )。
A.this指针一定指向常量型数据
B.this指向的数据不可更改
C.静态成员函数中也可以访问this指针
D.this指针本身可直接作为成员函数的返回值
二、多选题 (共 2 道试题,共 8 分)
14.下列选项不是关键字的是()。
A.bool
B.goto
C.good
D.son
15.类的基本特征()
A.封装
B.继承
C.安全
D.多态
三、判断题 (共 10 道试题,共 40 分)
16.在访问权限省略时,默认为public。
17.继承可以使得对象以外的部分不能随意存取对象的内部数据,从而实现信息隐藏。
18.抽象类不会产生实例,所以不需要有构造函数。( )
19.声明一个函数不需要产生任何代码,定义一个函数是也不需要任何代码。
20.同名的变量或函数定义在不同的名字的命名空间来解决冲突问题。
21.类对象的类型转换是由强制转换和构造函数完成。
22.虚函数声明只能出现在类声明的函数原型中。
23.继承可以使得对象以外的部分不能随意存取对象的内部数据,从而实现信息隐藏。
24.虚函数是用virtual 关键字说明的成员函数。( )
25.析构函数不能被继承。( )