当前位置:文档之家› 面向对象程序设计题库(C )

面向对象程序设计题库(C )


41. 重载函数在调用时选择的依据中,错误的是 (
)
A. 函数的参数
B. 参数的类型
C. 函数的名字
D. 函数的类型
42. 一个函数功能不太复杂,但要求被频繁调用,选用 (
.)
A. 内联函数
B. 重载函数
C. 递归函数
D. 嵌套函数
43. 下列不是描述类的成员函数的是 (
)
A. 构造函数
B. 析构函数
一、单项选择题
1. 在 C++语言中,对函数参数默认值描述正确的是:( D )
A) 函数参数的默认值只能设定一个
B) 一个函数的参数若有多个,则参数默认值的设定可以不连续
C) 函数参数必须设定默认值
D) 在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值
2. 假定 AB 为一个类,则执行 AB x ;语句时将自动调用该类的( B ) 。
实参定义为: int i; long f;
则正确的调用语句是( ). A) foo(i, &f); B) foo(i, f); C) foo(&i, f); D) foo(&i, &f); 14. C++中对于结构中定义的成员,其默认的访问权限为( )。 A) public B) protected C) private D) static 15. 下列关于类与对象的说法中,不正确的是( )。 A) 对象是类的一个实例 B) 任何对象只能属于一个具体的类 C) 一个类只能有一个对象 D) 类与对象的关系和数据类型与变量的关系相似 16. 下列关于构造函数的描述中错误的是( ) A) 构造函数可以设置默认参数 B) 构造函数在定义类对象时自动执行 C) 构造函数可以对静态数据成员进行初始化 D) 构造函数不可以重载 17. 类的析构函数的作用是( )。 A) 作为类的一般成员函数 B) 类的初始化 C) 对象的初始化 D) 对象的删除 18. 以下关于静态数据成员的描述正确的是( )。

A) 枚举
B) 类
C) 数组
D) 函数
29. 下列不是描述类的成员函数的是

A) 构造函数
B) 析构函数
C) 友元函数
D) 拷贝构造函数
30. 不能作为函数重载判断依据的是

A) 参数个数
B) 参数类型
C) 函数名称
D)返回值类型
31. 假定一个类的构造函数为 A(int aa,int bb){a=aa++;b=a*bb++;} ,则执行
4. 关于对象概念的描述中,( ) 是错误的。
A) 对象就是 C 语言中的结构变量;
B) 对象代表着正在创建的系统中的一个实体;
C) 对象是一个状态和操作(或方法)的封装体;
D) 对象之间的信息传递是通过消息进行的;
5. 下列给字符数组进行初始化中,( )是正确的。
A) char s1[ ]="12345abcd";
40. 下面关于友元函数的描述中错误的是( )。
A) 如果类 A 是类 B 的友元,那么类 B 也是类 A 的友元
B) 如果函数 fun()被说明为类 A 的友元,那么在 fun()中可以访问类 A 的私有成员
C) 友元关系不能被继承
D) 如果类 A 是类 B 的友元,那么类 A 的所有成员函数都是类 B 的友元函数
A) 静态数据成员可以在类体中进行初始化 B) 静态数据成员不可以被类的实例调用 C) 静态数据成员不能受 protected 控制符的作用 D) 静态数据成员可以直接用类名调用 19. 下面关于友元函数的描述中正确的是( )。 A) 友元函数的实现必须在类的内部定义 B) 友元函数是类的成员函数 C) 友元函数破坏了类的封装性和隐藏性 C) 友元函数不能访问类的私有成员 20. 下面关于友元函数的描述中错误的是( )。 A) 如果类 A 是类 B 的友元,那么类 B 也是类 A 的友元 B) 如果函数 fun()被说明为类 A 的友元,那么在 fun()中可以访问类 A 的私有成员 C) 友元关系不能被继承 D) 如果类 A 是类 B 的友元,那么类 A 的所有成员函数都是类 B 的友元函数
)
A. 类 A 的成员即类 B 的成员 B. 类 B 的成员即类 A 的成员
C. 类 A 的成员函数不得访问类 B 的成员 D. 类 B 不一定是类 A 的友元
51. 通过一个对象调用虚函数时,C++系统对该调用采用(
)。
A.动态联编
B.静态联编
C.不确定是哪种联编 D.函数重载
52. 在公有继承的情况下,基类成员在派生类中的访问权限 (
A) 静态数据成员可以在类体中进行初始化 B) 静态数据成员不可以被类的实例调用
C) 静态数据成员不能受 protected 控制符的作用 D) 静态数据成员可以直接用类名调用
39. 下面关于友元函数的描述中正确的是( )。
A) 友元函数的实现必须在类的内部定义 B) 友元函数是类的成员函数
C) 友元函数破坏了类的封装性和隐藏性 C) 友元函数不能访问类的私有成员
D) 4
7. 声明类 test 的拷贝构造函数的正确形式是 ( D ) 。
A) int test B) void test C) test(void) D) test(test&)
8. 关于 new 运算符的下列描述中,( ) 是错的。
A) 它可以用来动态创建对象和对象数组;
B) 使用它创建的对象或对象数组可以使用运算符 delete 删除;
hot+=100;
cout<<rad<<endl;
A) 0
B) 100
C) 200
D) 300
26. 下列关于 break 语句的叙述不正确的是

A) break 语句可用于循环体中,它将使执行流程跳出本层循环体;
break 语句可用于 switch 语句中,它将使执行流程跳出当前的 switch 语句;
C) 300
D) 200
10. 下列关于构造函数的描述中,错误的是 ( B ) 。
A) 构造函数可以设置默认参数;
B) 构造函数在声明对象时自动执行;
C) 构造函数可以对静态数据成员进行初始化;
D) 构造函数可以重载;
第 1 页 共 25 页
11. 下面关于重载函数的说明中正确的是( )。 A) 重载函数必须具有不同的返回类型。 B) 重载函数形参的个数必须不同 C) 重载函数必须具有不同的形式参数表 D) 重载函数名可以不同
B) char s2[3]="xyz";
C) char s3[][3]={ 'a', 'x', 'y'};
D) char s4[2[3]={"xyz","mnp"};
6. 在 int a[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是 (
)。
A) 3
B) 2
C) 6
第 2 页 共 25 页
21. 下列属于 C++语句的是

A) ;
B) a=17
C) a+5
D) cout<<’\n’
22. 执行语句 k=30;j=k++;后 k 和 j 的值分别为

A) k=30,j=30
B) k=30,j=31
C) k=31,j=30
D) k=31,j=31
23. 若 X 是一个 bool 型变量,则 X && 5<3 的值
A) 构造函数可以设置默认参数 B) 构造函数在定义类对象时自动执行
C) 构造函数可以对静态数据成员进行( )。
A) 作为类的一般成员函数 B) 类的初始化 C) 对象的初始化 D) 对象的删除
38. 以下关于静态数据成员的描述正确的是( )。
C. 友元函数
D. 拷贝构造函数
44. 构造函数不具备的特征的是 (
)
A. 构造函数的函数名与类名相同
B. 构造函数可以重载
C. 构造函数可以设置默认参数
D. 构造函数可以指定返回类型
第 4 页 共 25 页
45. 通常,拷贝构造函数的参数是 (
)
A. 某个对象名 B. 某个对象的成员名
C. 某个对象的引用名 D. 某个对象的指针名
B) p 是一个指向某个数组中第 10 个元素的指针,该元素是 double 型变量;
C) p[5]表示某个数组的第 10 个元素的值;
D) p 是一个具有 10 个元素的指针数组,每个元素是一个 double 型指针;
33. 下面的函数声明中, 哪一个是” void BC(int a, int b);”的重载函数?
49. 已知 print ()函数是一个类无返回值的常成员函数,下列表示中正确的是( )。
A.void print()const B.const void print()
C.void const print ; D.void print (const );
50. 如果类 A 被说明成类 B 的友元,则 (
46. 继承机制的作用是 (
)
A. 信息隐藏 B. 数据封装 C. 代码重用
D. 数据抽象
47. 类的析构函数的作用是 (
)
A.一般成员函数 B.类的初始化 C.对象的初始化 D.删除对象创建的所有对象
48. 类的析构函数是在 (
) 调用的。
A. 类创建时
B. 创建对象时 C. 删除对象时 D. 不自动调用
相关主题