C++试题讲解(一)选择题
(2008-07-02 20:15:41)
标签:
常量指针函数作用域c面向对象程序设计it |
分类: C 程序设计 |
C++试题讲解(一)
平均分20.8,4个大题中得分率最高,为69%
一.选择题(共30分,每小题1分):每题只有一个正确选项,题项中的“
注:请注意题目要求,不要把题目填写在空格上。(有两位同学因为填写错误,选择题得了0分)
1.
A) 构造函数
注:可做友元的函数有普通函数和其它类的函数,所以不是本类内的成员函数。
2.
A)
标识作用域的级别的
C)
给定作用域的大小的
注: “::”左边一般为类名,右边一般为成员变量和成员函数,它的功能就是标识是属于哪个类的;如果左边什么都不加,表示全局变量。
3.
A) 名空间是为了支持大规模程序的逻辑设计、排解名字冲突应运而生的
B) 名空间定义的关键词为typename C) 名空间定义的关键词为namespace
D) 因为程序是跨文件的,所以名空间也是跨文件的
4.
A) 一个类中只能定义一个析构函数 B) 析构函数名与类名不同
C)
析构函数的定义只能在类体内
5.
A)
说明静态数据成员时前边要加修饰符static
B) 静态数据成员要在类体外进行初始化
C) 引用静态数据成员时,要在静态数据成员前加<类名>和作用域运算符
D) 静态数据成员不是所有对象所共用的
注:静态成员都是隶属于类的,是所有同类对象共享的
6.
A)
p=fl;
注:指向普通函数的指针
指向类中公有函数的指针的赋值与上相同 指针名=类名::函数名,即 p=A::max;
7.
A)
是类是与类的关系
C)
继承
注:友元关系可是一个类与另一个类的关系,也可以是一个类成员函数与另一个类的关系;利用友元的主要目的是提高程序的运行效率,通过友元访问类的私有数据(如同生活中通过人际关系得到内部消息或受益等)。
8.
A)
对象数组的下标是从0开始的
C)
对象数组的每个元素是同一个类的对象
D) 对象数组只能赋初值,而不能被赋值
9.
A)
指向字符常量的指针
C)
指向字符串常量的指针
注:使用const修饰指针时,由于const的位置不同,而含意不同。
下面定义的一个指向字符串的常量指针:
char * const prt1 = stringprt1;
// prt1只能指向stringprt1字符串,指针是常量,而字符串stringprt1的字符串可以修改
其中,ptr1是一个常量指针。因此,下面赋值是非法的。
ptr1 = stringprt2;
而下面的赋值是合法的:
*ptr1 = "m";
因为指针ptr1所指向的变量是可以更新的,不可更新的是常量指针ptr1所指的方向(别的字符串)。
下面定义了一个指向字符串常量的指针:
const char* ptr2 = stringprt1; //const写在前面,字符串是常量,指针不是常量
其中,ptr2是一个指向字符串常量的指针。ptr2所指向的字符串不能更新的,而ptr2是可以更新的。因此,
*ptr2 = "x";
是非法的,而:
10.
A) void
print()const;
C) void const
print():
11.
A)
它可以用来动态创建对象和对象数组
B) 使用它创建的对象或对象数组可以使用运算符delete删除
C)
使用它创建对象时要调用构造函数
D) 使用它创建对象数组时必须指定初始值
注:用new创建对象数组时会自动调用无参的构造函数(或者有缺省值的构造函数)
12.
A)
不带参数的构造函数
C)
带有两个以上参数的构造函数
注:构造函数可以将普通类型转换为对象
#include
#include
using namespace std;
class Example
{
public:
private:
};
Example::Example(int va)
{
void Example::print()
{ cout<<"a="<<>
void main()
{
}
程序运行结果:
Example(int va)...
Example(int va)...
a=3
13.
A)
一个派生类可以作另一派生类的基类
C) 派生类的成员除了它自己的成员外,还包含了它的基类的成员
D) 派生类中继承的基类成员的访问权限到派生类中保持不变
14.
A) 基类的构造函数
C) 派生类中一般数据成员的初始化
注:基类子对象的初始化是基类构造函数成员初始化列表的功能,而派生类不能完成这种功能。
15.
A)
简化程序
16.
A)
成员函数
注:重载函数:同名不同参(个数、类型、顺序)
17.
A)
动态联编是以虚函数为基础的
B) 动态联编是在运行时确定所调用的函数代码的
C)
动态联编调用函数操作是指向对象的指针或对象引用
D)
动态联编是在编译时确定操作函数的
注:动态联编是在运行时确定操作函数的,主要体现在继承里指向基类对象的指针或者引用指向派生类对象。
18.
A) 虚函数是一个static类型的成员函数 B) 虚函数是一个非成员函数
C) 基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数
D) 派生类的虚函数与基类的虚函数具有不同的参数个数和类型
19.
A) 可以说明虚函数
C)
可以定义友元函数
20.
A) 所有类成员
C) public的类成员
21.
A)
this指针必须显示说明
C)
成员函数拥有this指针
注:this指针是创建对象时,系统创建的一个特殊的指针,指向该对象,所以无须显示说明。(this指针是隶属于对象的,所以静态成员函数不拥有this指针,因为静态成员函数隶属于类)
22.
A)
系统可以提供默认的构造函数
C)
构造函数可以重载
23.
A)
静态成员不属于对象,是类的共享成员
B) 静态数据成员要在类外定义和初始化
C) 静态成员函数拥有this指针
D) 非静态成员函数也可以操作静态数据成员
24.
A)
dynamic
25.
A)
public成员
26.
A) 对象成员构造函数、基类构造函数、派生类本身的构造函数
B) 派生类本身的构造函数、基类构造函数、对象成员构造函数
C) 基类构造函数、派生类本身的构造函数、对象成员构造函数
D) 基类构造函数、对象成员构造函数、派生类本身的构造函数
注:先祖先,后客人,再自己;析构函数与此相反
27.
A)
类名
28.
A) A
fun(int);
注:抽象类可以定义指针和引用
29.
A)
一个普通基类不能派生类模板
C) 根据建立对象时的实际数据类型,编译器把类模板实例化为模板类
D) 函数的类模板参数须通过构造函数实例化
注:普通类可以从类模板派生,但不能从普通类派生出类模板
30.
A) ifstream infile(“d:\file.dat”, ios::in);
B) ifstream infile(“d:\\file.dat”, ios::in);
C) ofstream infile(“d:\file.dat”, ios::out);
D) fstream infile(“d:\\file.dat”, ios::in| ios::out);
注:打开文件写入数据可用“ios::out”,文件名书写时用到两个“\”,是因为转义字符“\\”代表一个“\”
得分较高的同学有:常中平 窦江盼 贾雷 马秀月 王螺霞 相晓雷 (注:没有男生)

加载中…