C++ —— 总测试题(一)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_42994580/article/details/94451897

1. 下列的( D )是以引用作参数形式调用函数。

A. 形参是指针,实参是地址值
B. 形参和实参都是变量
C. 形参是数组名,实参是数组名
D. 形参是引用,实参是变量

2. 在下面有关析构函数的描述中,正确的是( A )。

A. 析构函数不能指定返回值类型
B. 析构函数名与类名完全一致
C. 析构函数可以有一个或多个参数
D. 一个类中可以定义多个析构函数

3. 友元函数( B )。

A. 是类的成员之一
B. 没有this指正
C. 可以用类名或对象名来调用
D. 只能用对象名调用

【解释】友元函数既可以是不属于任何类的非成员函数,也可以是另一个类的成员函数,但它可以访问该类的所有成员,包括私有成员,保护成员和公有成员。在类中声明友元函数,需在其函数名前加上关键字friend。此声明可以放在共有部分,也可以放在保护部分和私有部分。友元函数可以定义在类内部,也可以定义在类外部。

4. 对于类中定义的成员,其隐含的访问权限为( C )。

A. public
B. protected
C. private
D. static

5. 声明或定义一个内联函数时,必须在函数开始使用关键字(B)。

A. static
B. inline
C. const
D. extern

6. 重载函数在调用时选择的依据,(D)是错误的。

A. 参数个数
B. 参数的类型
C. 参数个数或者参数参数类型
D. 参数的返回值类型

7. 假设BC是一个类,在下面构造函数的原型声明中存在语法错误的是( B )。

A. BC(int a, int);
B. int BC(int, int);
C. BC(int, int);
D. BC(int, int y);

9. 下列静态成员的特性中,(D)是错误的。

A. 说明静态成员时,要加修饰符static
B. 静态数据成员要在类体外进行定义
C. 引用静态数据成员时,要在静态数据成员名前加<类名>及作用域运算符
D. 静态数据成员不是所有对象所共用的

10. 下列语句中错误的是( D )。

A. int *p = new int(10);
B. int *p = new int[10];
C. int *p = new int;
D. int *p = new int[40](10);

11. 下列函数定义形式合法的是( B )。

A. void prt(int x = 1, int y);
B. void prt(int x = 1, int y = 2);
C. void prt(int x, int y = 2, int z);
D. void prt(x = 1, y = 2);

12. 设p为一个指向类A对象obj的指针,类A中包含数据成员m。如果给m赋值5,(D)为正确的。

A. obj.p = 5;
B. obj->p = 5;
C. m = 5;
D. p->m = 5;

13. 在(A)情况下适宜采用内联函数 。

A. 函数代码少,被频繁使用
B. 函数代码多,被频繁使用
C. 函数体含有递归语句
D. 函数提含有循环语句

14. 说明const char * ptr; 中,ptr应该是(A)。

A. 指向字符常量的指针
B. 指向字符的常量指针
C. 指向字符串的指针
D. 指向字符串的常量指针

15. 关于new运算符的下列描述中,( D )是错的。

A. 它可以用来动态创建对象和对象数组
B. 使用它创建的对象或对象数组可以使用delete运算符删除
C. 使用它创建对象时要调用构造函数
D. 使用它创建对象数组时,必须指定初始值。

16. 下列关于构造函数的论述中,不正确的是(C

A. 构造函数的函数名与类名相同
B. 构造函数可以甚至默认值
C. 构造函数的返回类型缺省为int型
D. 构造函数可以重载

17. 在下列关于类概念的各描述中 (A)是错误的。

A. 类就是C语言中的结构体类型
B. 类是具有共同行为的若干对象的统一描述体
C. 类就是创建对象的样板
D. 类是抽象数据类型的实现

18. 采用函数重载的目的在于(D) 。

A. 实现共享
B. 减少空间
C. 提高速度
D. 减少命名冲突问题

19. 下列的各类函数中,(C)不是类的成员函数。

A. 构造函数
B. 析构函数
C. 友元函数
D. 拷贝构造函数

20. 假设已经有定义“const char *const name=”chen”;”,下面的语句中正确的是(D)。

A. name[3] = ‘q’;
B. name = “lin”;
C. name = new char[5];
D. cout << name[3];

21. 在程序代码:A::A(int a, int *b) { this->x = a; this->y = b; }中,this的类型是( D)

A. int
B. int *
C. A
D. A*

22. 在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的(A)。

A. 私有成员
B. 公有成员
C. 保护成员
D. 保护成员或私有成员

23. 关于this指针使用说法正确的是(A)。

A. 保证每个对象拥有自己的数据成员,但共享处理这些数据的代码
B. 保证基类私有成员在子类中可以被访问
C. 保证基类保护成员在子类中可以被访问
D. 保证基类公有成员在子类中可以被访问

24. C++中设置“派生”这一语法支持的主要原因是(A)。

A. 提高代码的可重用性
B. 提高程序的运行效率
C. 加强类的封装性
D. 实现数据的隐藏

25. 假设ClassY:publicX,即类Y是类X的派生类,则说明一个Y类的对象时和删除Y类对象时,调用构造函数和析构函数的次序分别为(A)。

A. X,Y;Y,X
B. X,Y;X,Y
C. Y,X;Y,X
D. Y,X;X,Y

26. 下列不能作为类的成员的是(B)。

A. 自身类对象的指针
B. 自身类对象
C. 自身类对象的应用
D. 另一个类的对象

27. 在C++中,使用流进行输入输出,其中用于输入的是(A)。

A. cin
B. cerr
C. cout
D. clog

28. 当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中(A)。

A. 都是虚函数
B. 只有被重新说明时才是虚函数
C. 只有被重新说明为virtual时才是虚函数
D. 都不是虚函数

29. 要采用动态多态性,说法正确的是(A)。

A. 基类指针调用虚函数
B. 派生类对象调用虚函数
C. 基类对象调用虚函数
D. 派生类指针调用虚函数

30. 以下基类中的成员函数表示纯虚函数的是(C)。

A. virtual void vf(int);
B. void vf(int) = 0;
C. virtual void vf() = 0;
D. virtual void tf(){};

31. C++语言中在C语言的基础上增加的特性不包括(A)。

A. 结构体
B. 引用
C. 类和对象
D. 静态成员函数

32. 函数模板中紧随template之后尖括号内的首类型参数前冠以保留字class。[ Y ]

33. 定义类的动态对象数组时,系统只能够自动调用该类的有参构造函数对其进行初始化。[ N ]

34. 表达式cout<<endl 还可表示为cout<<'\n&#39。[ Y ]

35. 假如一个类的名称为MyClass,使用这个类的一个对象初始化该类的另一个对象时,可以调用拷贝构造函数来完成此功能。 [ Y ]

36. 对赋值运算符进行重载时,应声明为友元函数。 [ N ]

37. 控制格式输入输出的操作中,函数setfill(char)是用来设置填充字符。 [ Y ]

38. C++语言支持的两种多态性分别是编译时的多态性和运行时的多态性。 [ Y ]

39. 设函数sum是由函数模板实现的,并且sum(3,6)和sum(4.6,8.0)都是正确的函数调用,则函数模板只能具有两个类型参数。[ N ]

40. 运算符重载可以改变操作数的优先级。[ N ]

41. 类模板是用来表达具有相同的处理方法的模板类。 [ Y ]

猜你喜欢

转载自blog.csdn.net/weixin_42994580/article/details/94451897
今日推荐