PTA c++ 选择判断题总结

不知不觉一年就又结束了,整理完才感叹我已经做过这么多题了吗,希望能帮到你,加油呀(有一些可能有重复)

有什么问题记得留言哦

1.C++对C语言作了很多改进,下列描述中()使得C语言发生了质变,从面向过程变成了面向对象。D (2分)

增加了一些新的运算符;
允许函数重载,并允许设置缺省参数;
规定函数说明必须用原型;
引进了类和对象的概念;

2.cout 是由I/O 流库预定义的(B )。 (2分)

对象
包含文件
常量

3.重载函数在调用时选择的依据中,错误的是(D)。 (2分)
函数的参数
参数的类型
函数的名字
函数的类型

4.对定义重载函数的下列要求中,( C)是错误的。 (2分)
要求参数的个数不同
要求参数中至少有一个类型不同
要求函数的返回值不同
要求参数个数相同时,参数类型不同

5.关于new运算符的下列描述中,(D)是错误的。 (2分)
它可以用来动态创建对象和对象数组;
使用它创建的对象或对象数组可以使用运算符delete删除;
使用它创建对象时要调用构造函数;
使用它创建对象数组时必须指定初始值;

6.关于delete运算符的下列描述中,(C)是错误的。 (2分)
它必须用于new返回的指针;
使用它删除对象时要调用析构函数;
对一个指针可以使用多次该运算符;
指针名前只有一对方括号符号,不管所删除数组的维数。

7.以下程序中,new语句干了什么。(C) (2分)
int** num;
num = new int* [20];
分配了长度为20的整数数组空间,并将首元素的指针返回。
分配了一个整数变量的空间,并将其初始化为20。
分配了长度为20的整数指针数组空间,并将num[0]的指针返回。
存在错误,编译不能通过。

8.以下程序存在的问题是:(C) (2分)
void fun()
{
int *num1, *num2;
num1 = new int[10];
num2 = new int[20];
num1[0] = 100;
num2[0] = 300;
num1 = num2;
delete [] num1;
}
num2不能给num1赋值
num2最初指向的空间没有释放
num1最初指向的空间没有释放
程序没有问题

9.设void f1(int * m,long & n);int a;long b;则以下调用合法的是(B)。 (2分)
f1(a,b);
f1(&a,b);
f1(a,&b);
f1(&a,&b);

10.一个函数功能不太复杂,但要求被频繁调用,选用( A)。 (2分)
内联函数
重载函数
递归函数
嵌套函数

11.重载函数在调用时选择的依据中,错误的是(D)。 (2分)
函数的参数
参数的类型
函数的名字
函数的类型

12.在( C )情况下适宜采用inline定义内联函数。 (2分)
函数体含有循环语句
函数体含有递归语句
函数代码少、频繁调用
函数代码多、不常调用

13.下面说法正确的是(B)。 (2分)
内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
类的内联函数必须在类体内定义
类的内联函数必须在类体外通过加关键字inline定义

14 对定义重载函数的下列要求中,(C )是错误的。 (2分)
要求参数的个数不同
要求参数中至少有一个类型不同
要求函数的返回值不同
要求参数个数相同时,参数类型不同

15 命名空间应用于: (B)(2分)
在类外定义类的成员函数
避免各个不同函数、变量等的名称冲突
提高代码的执行速度
以上答案都正确

16 如果在函数中定义的局部变量与命名空间中的变量同名时,(B)被隐藏。 (2分)
函数中的变量
命名空间中的变量
两个变量都
两个变量都不

17 如果程序中使用了using命令同时引用了多个命名空间,并且命名空间中存在相同的函数,将出现: (2分)
A
编译错误
语法错误
逻辑错误
无法判定错误类型

18 要说明标识符是属于哪个命名空间时,需要在标识符和命名空间名字之间加上:A (2分)

::
->
.
( )

19 如果默认参数的函数声明为“ void fun(int a,int b=1,char c=‘a’,float d=3.2);”, 则下面调用写法正确的是( )。 (2分)
B
fun();
fun(2,3);
fun(2, ,‘c’,3.14)
fun(int a=1);

20 给定以下类声明,哪个成员函数可能改变成员变量data? (D)(2分)
class A {
public:
void f1 (int d);
void f2 (const int &d);
void f3 (int d) const;
private:
int data;
};
f1
f2
f3
f1和f2

21 在下列关键字中,用以说明类中公有成员的是(A )。 (2分)
public
private
protected
friend

22 有关类和对象的说法下列不正确的有(C )。 (2分)
对象是类的一个实例
任何一个对象只能属于一个具体的类
一个类只能有一个对象
类与对象和关系与数据类型和变量的关系相似

23 类成员的默认访问属性是:(A) (2分)
private
protected
public
以上答案都不对

24 在面向对象的软件系统中,不同类对象之间的通信的一种构造称为(D) (2分)
属性
封装

消息

25 有关类和对象的说法下列不正确的有( C)。 (2分)
对象是类的一个实例
任何一个对象只能属于一个具体的类
一个类只能有一个对象
类与对象和关系与数据类型和变量的关系相似

26 类的实例化是指(B )。 (2分)
定义类
定义对象
调用类的成员函数
访问对象的数据成员

27 关于成员函数特征的描述中,(B )是错误的。 (2分)
成员函数可以重载
成员函数一定是内联函数
一个类可以没有成员函数
成员函数可以设置参数的默认值

28 如果类定义中没有使用 private、protected、或public 关键字,则所有成员( C) (2分)
都是 public 成员
都是 proctected 成员
都是 private 成员
不一定

29 在面向对象系统中,对象是基本的运行时实体,它 (C) 。 (2分)
只能包括数据(属性)
只能包括操作(行为)
把属性和行为封装为一个整体
必须具有显式定义的对象名

30 在面向对象系统中,对象的属性是(C)。 (2分)
对象的行为特性
和其他对象相关联的方式
和其他对象相互区分的特性
与其他对象交互的方式

31 下列对重载函数的描述中,( A)是错误的。 (2分)
重载函数中不允许使用默认参数
重载函数中编译根据参数表进行选择
不要使用重载函数来描述毫无相干的函数
构造函数重载将会给初始化带来多种方式

32 有关类和对象的说法下列不正确的有( C)。 (2分)
对象是类的一个实例
任何一个对象只能属于一个具体的类
一个类只能有一个对象
类与对象和关系与数据类型和变量的关系相似

33 建立一个类对象时,系统自动调用(A)(2分)
构造函数
析构函数
友元函数
成员函数

34 下列函数中,(C )不能重载。 (2分)
成员函数
非成员函数
析构函数
构造函数

35 以下说法中正确的是(C) (2分)
一个类一定会有无参构造函数
构造函数的返回值类型是void
一个类只能定义一个析构函数,但可以定义多个构造函数
一个类只能定义一个构造函数,但可以定义多个析构函数

36 所有类都应该有: (C)(2分)
构造函数
析构函数
构造函数和析构函数
以上答案都不对

37 Given the declaration Circle x[10], which of the following statements is Wrong? (2分)
A
x contains an array of ten int values.
x contains an array of ten objects of the Circle type.
Each element in the array is a Circle object.
You can change the contents in each object element.

38 下列关于this指针的叙述中,正确的是(D)(2分)
任何与类相关的函数都有this指针
类的成员函数都有this指针
类的友元函数都有this指针
类的非静态成员函数才有this指针

39 以下说法正确的是(C)。 (2分)
在静态成员函数中可以调用同类的其他任何成员函数
const成员函数不能作用于非const对象
在静态成员函数中不能使用this指针
静态成员变量每个对象有各自的一份

40 Variables that are shared by every instances of a class are __. (2分)
D
public variables
private variables
instance variables
static variables

41 A function that is associated with an individual object is called (C). (2分)
a static function
a class function
an instance function
an object function

42 静态成员函数没有:(B) (2分)
返回值
this指针
指针参数
返回类型

43 下面对静态数据成员的描述中,正确的是(A)(2分)
静态数据成员是类的所有对象共享的数据
类的每个对象都有自己的静态数据成员
类的不同对象有不同的静态数据成员
静态数据成员不能通过类的对象调用,只能通过“类名::标识符”调用

44 对于以下关于友元的说法(D) (2分)
如果函数fun被声明为类A的友元函数,则该函数成为A的成员函数
如果函数fun被声明为类A的友元函数,则该函数能访问A的保护成员,但不能访问私有成员
如果函数fun被声明为类A的友元函数,则fun的形参类型不能是A。
以上答案都不对

45 友元的作用是(A) (2分)
提高程序的运用效率
加强类的封装性
实现数据的隐藏性
增加成员函数的种类

46 下面关于友元的描述中,错误的是:(D) (2分)
友元函数可以访问该类的私有数据成员
一个类的友元类中的成员函数都是这个类的友元函数
友元可以提高程序的运行效率
类与类之间的友元关系可以继承

47 关于用string定义字符串,下列选项中错误的是(D)_。 (2分)
string s; s = “hello C++”;
string s = “hello C++”;
string s(“hello C++”);
string s[“hello C++”];

48 使用C++标准string类定义一个字符串,需要包含的头文件(B)。 (2分)
string.h
string
cstring
stdlib.h

49 下列关于派生类构造函数和析构函数的说法中,错误的是 (2分)
D
派生类的构造函数会隐含调用基类的构造函数
如果基类声明了带有形参表的构造函数,则派生类就应当声明构造函数
在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数
在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数

50 建立派生类对象时, 3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数),这3种构造函数的调用顺序为 (2分)
A
abc
acb
cab
cba

51 一个类的私有成员 (2分)
B
只能被该类的成员函数访问
只能被该类的成员函数和友元函数访问
只能被该类的成员函数、友元函数和派生类访问
以上答案都不对

52 在公有继承的情况下,在派生类中能够访问的基类成员包括 (2分)
D
公有成员
保护成员
公有成员、保护成员和私有成员
公有成员和保护成员

53 下列关于派生类构造函数和析构函数的说法中,错误的是 (2分)
D
派生类的构造函数会隐含调用基类的构造函数
如果基类声明了带有形参表的构造函数,则派生类就应当声明构造函数
在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数
在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数

54 派生类继承基类的方式有 (2分)
D
public
private
protected
以上都对

55 假设在公有派生情况下,以下说法不正确的是 (2分)
A
可以将基类对象复制给派生类对象
可以将派生类对象的地址复制给基类指针
可以将派生类对象赋值给基类的引用
可以将派生类对象赋值给基类对象

56 在C++语言中设置虚基类的目的是( ) 。 (2分)
C
简化程序代码
提高程序的运行效率
解决多继承造成的二义性问题
缩短程序的目标代码

57 下列关于继承的描述中,错误的是( )。 (2分)
D
析构函数不能被继承
派生类是基类的组合
派生类的成员除了它自己的成员外,还包含了它的基类的成员
派生类中继承的基类成员的访问权限到派生类保持不变

58 关于函数模板,描述错误的是。 (2分)
A
函数模板必须由程序员实例化为可执行的函数模板
函数模板的实例化由编译器实现
一个类定义中,只要有一个函数模板,则这个类是类模板
类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化

59 下列的模板说明中,正确的是。 (2分)
C
template < typename T1, T2 >
template < class T1, T2 >
template < typename T1, typename T2 >
template ( typedef T1, typedef T2 )

60 假设有函数模板定义如下:  template  Max( T a, T b ,T &c) { c = a + b ; } 下列选项正确的是( )。 (2分)
B
int x, y; char z ;Max( x, y, z ) ;
double x, y, z ;Max( x, y, z ) ;
int x, y; float z ;Max( x, y, z );
float x; double y, z;Max( x, y, z ) ;

61 建立类模板对象的实例化过程为。 (2分)
C
基类-派生类
构造函数-对象
模板类-对象
模板类-模板函数

62 在C++语言中设置虚基类的目的是( ) 。 (2分)
C
简化程序代码
提高程序的运行效率
解决多继承造成的二义性问题
缩短程序的目标代码

63 一个类的私有成员 (2分)
B
只能被该类的成员函数访问
只能被该类的成员函数和友元函数访问
只能被该类的成员函数、友元函数和派生类访问
以上答案都不对

64 以下关于C++语言中继承的叙述中,错误的是( )。 (2分)
D
继承是父类和子类之间共享数据和方法的机制
继承定义了一种类与类之间的关系
继承关系中的子类将拥有父类的全部属性和方法
继承仅仅允许单继承,即不允许一个子类有多个父类

65 下列关于类的继承描述中,( )是正确的。(2分)
D
派生类公有继承基类时,可以访问基类的所有数据成员,调用所有成员函数。
派生类也是基类,所以它们是等价的。
派生类对象不会建立基类的私有数据成员,所以不能访问基类的私有数据成员。
一个基类可以有多个派生类,一个派生类可以有多个基类。

66 关于类模板,描述错误的是。 (2分)
A
一个普通基类不能派生类模板
类模板可以从普通类派生,也可以从类模板派生
根据建立对象时的实际数据类型,编译器把类模板实例化为模板类
函数的类模板参数需生成模板类并通过构造函数实例化

67 下列有关模板的描述,错误的是____。 (2分)
D
模板把数据类型作为一个设计参数,称为参数化程序设计
使用时,模板参数与函数参数相同,是按位置而不是名称对应的
模板参数表中可以有类型参数和非类型参数
类模板与模板类是同一个概念

68 The cin stream normally is connected to the display screen.
F

69 使用提取符(<<)可以输出各种基本数据类型的变量的值,也可以输出指针值。 (5分)
T

70 函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。
T

71 The types of arguments in a function call must match the types of the corresponding parameters in the function prototype’s parameter list.。 (2分)
T

72 在C++语言中引入内联函数(inline function)的主要目的是降低空间复杂度,即缩短目标代码长度。 (2分
F

73重载函数可以带有默认值参数,但是要注意二义性。
T

74 对于有返回值的return语句,用它可以返回一个表达式的值,从而实现函数之间的信息传递,分值为5分。
T

75 在C++语言中引入内联函数(inline function)的主要目的是降低空间复杂度,即缩短目标代码长度
F

76 C++程序中,类的构造函数名与类名相同。
T

77 在protected保护继承中,对于垂直访问等同于公有继承,对于水平访问等同于私有继承。
T

78 面向对象程序设计的继承性鼓励程序员重用被实践验证的高质量软件
T

79 在protected保护继承中,对于垂直访问等同于公有继承,对于水平访问等同于私有继承。
T

80 面向对象程序设计的继承性鼓励程序员重用被实践验证的高质量软件。 (1分)
T

81.关键字class 指定函数模板类型参数,实际上表示“任何用户自定义类型”。 (1分)
F

82对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数,还可以重载为非成员函数。 (1分)

F

  1. 对单目运算符重载为友元函数时,可以说明一个形参。而重载为成员函数时,不能显式说明形参。 (1分)

T

84 重载operator+时,返回值的类型应当与形参类型一致。 比如以下程序中,operator+的返回值类型有错:

class A {

int x;

public:

A(int t=0):x(t){ }

int operator+(const A& a1){ return x+a1.x;  }

}; (5分)

F
85 In C++, only existing operators can be overloaded. (1分)

T
86. 下列运算符中,( C)运算符不能重载。 (2分)

&&
[ ]
::
<<
87.下列关于运算符重载的描述中,( D)是正确的。 (2分)

运算符重载可以改变操作数的个数
运算符重载可以改变优先级
运算符重载可以改变结合性
运算符重载不可以改变语法结构
88.多数运算符可以重载,个别运算符不能重载,运算符重载是通过函数定义实现的。 (1分)

T
89.对单目运算符重载为友元函数时,可以说明一个形参。而重载为成员函数时,不能显式说明形参。 (1分)

T
90.重载operator+时,返回值的类型应当与形参类型一致。 比如以下程序中,operator+的返回值类型有错:

class A {

int x;

public:

A(int t=0):x(t){ }

int operator+(const A& a1){ return x+a1.x;  }

}; (5分)

F
91.In C++, only existing operators can be overloaded. (1分)

T
92.为了能出现在赋值表达式的左右两边,重载的"[]"运算符应定义为:B (2分)

A operator [ ] (int);
A& operator [ ] (int);
const A operator [ ] (int);
以上答案都不对
93.在C++中不能重载的运算符是 A (2分)

?:
+

<=
94.使用提取符(<<)可以输出各种基本数据类型的变量的值,也可以输出指针值。 (2分)

T
95.预定义的插入符从键盘上接收数据是不带缓冲区的。 (2分)
F
96.The cin stream normally is connected to the display screen. (2分)
F
97. cout 是由I/O 流库预定义的(B )。 (2分)


对象
包含文件
常量
98. 分析以下程序:程序的输出结果是 B (2分)

#include
using namespace std;
void fun(int num)
{
cout << num << endl;
}
void fun(char ch)
{
cout << (ch + 1) << endl;
}
int main()
{
fun(‘A’);
return 0;
}
65
66
A
B
99.下列关于cin和cout的说法中,错误的是__C__。 (2分)

cin用于读入用户输入的数据
cout用于输出数据
cin比C语言中的scanf()函数更有优势,它可以读取空格
cout通常与<<运算符结合
100. 关于动态绑定的下列描述中,( D)是错误的。 (2分)

动态绑定是以虚函数为基础的
动态绑定在运行时确定所调用的函数代码
动态绑定调用函数操作是通过指向对象的指针或对象引用来实现的
动态绑定是在编译时确定操作函数的
101.关于虚函数的描述中,(C )是正确的。 (2分)

虚函数是一个static 类型的成员函数
虚函数是一个非成员函数
基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数
派生类的虚函数与基类的虚函数具有不同的参数个数和类型
102.在C++语言中设置虚基类的目的是( C) 。 (2分)

简化程序代码
提高程序的运行效率
解决多继承造成的二义性问题
缩短程序的目标代码
103. 虚析构函数的作用是。 C (2分)

虚基类必须定义虚析构函数
类对象作用域结束时释放资源
delete动态对象时释放资源
无意义

  1. 使用提取符(<<)可以输出各种基本数据类型的变量的值,也可以输出指针值。 (2分) T
  2. 预定义的插入符从键盘上接收数据是不带缓冲区的。F
  3. The cin stream normally is connected to the display screen. F
  4. cout 是由I/O 流库预定义的( B)。 (2分)

    对象
    包含文件
    常量
  5. 下列关于cin和cout的说法中,错误的是_C___。 (2分)

cin用于读入用户输入的数据
cout用于输出数据
cin比C语言中的scanf()函数更有优势,它可以读取空格
cout通常与<<运算符结合

  1. 记录流的当前格式化状态标志字中的每一位用于记录一种格式,这种格式是不能被设置或清除的。 (1分) F
  2. 设置和清除格式标志字的成员函数需要通过对象来引用它们,输出显示格式的对象通常是cout。 (1分) T
  3. 操纵符本身是一个对象,它可以直接被提取符或插入符操作。 T
  4. get()函数不能从流中提取终止字符,终止字符仍留在流中。getline()函数可以从流中提取终止字符,但终止字符被丢弃。( (1分) T
  5. 使用打开文件函数open()之前,需要定义一个流类对象,使用open()函数来操作该对象。 (1分) T
  6. 打开ASCⅡ码流文件和二进制流文件时,打开方式是相同的。F
  7. read()和write()函数可以读写文本文件,也可以读写二进制文件。 (1分)T
  8. seekg()函数和seekp()函数分别用来定位读指针和写指针的。如果使用seek()函数可以同时定义读写指针。 (1分) F
  9. 下面是关于ios 类的叙述,正确的是(A)。 (2分)

它是istream 类和ostream 类的虚基类
它只是istream 类的虚基类
它只是ostream 类的虚基类
它是iostrearm 类的虚基类

  1. 关于read()函数的下列描述中,正确的是(D )。 (2分)

该函数只能用来从键盘输入中获取字符串
该函数所获取的字符多少是不受限制的
该函数只能用于文本文件的操作中
该函数只能按规定读取所指定的字符数

  1. 当使用ifstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( A)。 (2分)

ios::in
ios::out
ios::in|ios::out
ios::binary

  1. 下列函数中,( D)是对文件进行写操作的。 (2分)

get
read
seekg
put

  1. 在C++中,打开一个文件,就是将整个文件与一个( B)建立关联,关闭一个文件,就是取消这种关联。 (2分)



对象
结构

  1. 下列打开文件的表达式中,错误的是: D (2分)

ofstream ofile; ofile.open(“C:\vc\abc.txt”,ios::binary);
fstream iofile;iofile.open(“abc.txt”,ios::ate);
ifstream ifile (“C:\vc\abc.txt”);
cout.open(“C:\vc\abc.txt”,ios::binary);

  1. 以下关于文件操作的叙述中,不正确的是:B (2分)

打开文件的目的是使文件对象与磁盘文件建立联系
文件读写过程中,程序将直接与磁盘文件进行数据交换
关闭文件的目的之一是保证将输出的数据写入硬盘文件
关闭文件的目的之一是释放内存中的文件对象
124. 使用操作符setw对数据进行格式输出时,需要包含(C)文件。 (2分)

iostream.h
fstream.h
iomanip.h
stdlib.h
125.If you are not interested in the contents of an exception object, the catch block parameter may be omitted.。 (1分) T
125. catch (type p) acts very much like a parameter in a function. Once the exception is caught, you can access the thrown value from this parameter in the body of a catch block.。 (1分) T
126. One of the major features in C++ is (D) handling,which is a better way of handling errors. (2分)

data
pointer
test
exception
127. What is wrong in the following code? C

vector v; v[0] = 2.5; (2分)

The program has a compile error because there are no elements in the vector.
The program has a compile error because you cannot assign a double value to v[0].
The program has a runtime error because there are no elements in the vector.
The program has a runtime error because you cannot assign a double value to v[0].

  1. If you enter 1 0, what is the output of the following code? (2分) D

include “iostream”
using namespace std;

int main()

{ // Read two integers

cout << "Enter two integers: "; int number1, number2; cin >> number1 >> number2;

try { if (number2 == 0) throw number1;

cout << number1 << " / " << number2 << " is "
<< (number1 / number2) << endl;

cout << “C” << endl;
} catch (int e) { cout << “A” ; }

cout << “B” << endl;

return 0; }

A
B
C
AB
129. The function what() is defined in A. (2分)

exception
runtime_error
overflow_error
bad_exception
130. 下列关于异常的描述中,错误的是(A)。 (2分)

编译错属于异常,可以抛出
运行错属于异常
硬件故障也可当异常抛出
只要是编程者认为是异常的都可当异常抛出
131.下列关于异常类的说法中,错误的是。A (2分)

异常类由标准库提供,不可以自定义
C++的异常处理机制具有为抛出异常前构造的所有局部对象自动调用析构函数的能力
若catch块采用异常类对象接收异常信息,则在抛出异常时将通过拷贝构造函数进行对象复制,异常处理完后才将两个异常对象进行析构,释放资源
异常类对象抛出后,catch块会用类对象引用接收它以便执行相应的处理动作
132.If you are not interested in the contents of an exception object, the catch block parameter may be omitted.。 (1分) T
133. catch (type p) acts very much like a parameter in a function. Once the exception is caught, you can access the thrown value from this parameter in the body of a catch block.。 (1分) T
134. Suppose Exception2 is derived from Exception1. Analyze the following code. (2分) C

try {

statement1;

statement2;

statement3; }

catch (Exception1 ex1) { }

catch (Exception2 ex2) { }

If an exception of the Exeception2 type occurs, this exception is caught by the first catch block.
If an exception of the Exeception2 type occurs, this exception is caught by the second catch block.
The program has a compile error because these two catch blocks are in wrong order.
The program has a runtime error because these two catch blocks are in wrong order.
135.Suppose that statement2 throws an exception of type Exception2 in the following statement: (2分) D

try {

statement1; statement2; statement3; }

catch (Exception1 ex1) { }

catch (Exception2 ex2) { }

catch (Exception3 ex3) { statement4; throw; }

statement5;

statement2
statement3
statement4
statement5
136. Suppose that statement3 throws an exception of type Exception3 in the following statement: (2分) C

try {

statement1; statement2; statement3; }

catch (Exception1 ex1) { }

catch (Exception2 ex2) { }

catch (Exception3 ex3) { statement4; throw; }

statement5;

Which statements are executed after statement3 is executed?

statement2
statement3
statement4
statement5
137. 下列关于异常的描述中,错误的是(A)。 (2分)

编译错属于异常,可以抛出
运行错属于异常
硬件故障也可当异常抛出
只要是编程者认为是异常的都可当异常抛出
138. 下列关于异常类的说法中,错误的是。A (2分)

异常类由标准库提供,不可以自定义
C++的异常处理机制具有为抛出异常前构造的所有局部对象自动调用析构函数的能力
若catch块采用异常类对象接收异常信息,则在抛出异常时将通过拷贝构造函数进行对象复制,异常处理完后才将两个异常对象进行析构,释放资源
异常类对象抛出后,catch块会用类对象引用接收它以便执行相应的处理动作
139.C++处理异常的机制是由(B)3部分组成。 (2分)

编辑、编译和运行
检查、抛出和捕获
编辑、编译和捕获
检查、抛出和运行
140. 在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是 C(2分)

友元函数
虚函数
构造函数
析构函数
141.类的析构函数的作用是 D(2分)

一般成员函数的初始化
类的初始化
对象的初始化
删除类创建的对象
142.下列函数中,(C )不能重载。 (2分)

成员函数
非成员函数
析构函数
构造函数

  1. 下列关于类和对象的叙述中,错误的是 A(2分)

一个类只能有一个对象
对象是类的具体实例
类是对某一类对象的抽象
类和对象的关系是一种数据类型与变量的关系

2-5
下列属于类的析构函数特征的是 A (2分)

一个类中只能定义一个析构函数
析构函数名与类名不同
析构函数的定义只能在类体内
析构函数可以有一个或多个参数

  1. 下列关于类定义的说法中,正确的是 A (2分)

类定义中包括数据成员和函数成员的声明
类成员的缺省访问权限是保护的
数据成员必须被声明为私有的
成员函数只能在类体外进行定义

  1. 假设MyClass是一个类,则该类的拷贝初始化构造函数的声明语句为( C) (2分)

MyClass&(MyClass x);
MyClass(MyClass x);
MyClass(MyClass &x);
MyClass(MyClass *x);

  1. 下列关于类的构造函数的描述中,错误的是B (2分)

类的构造函数可以重载
类可以没有构造函数
类的构造函数可以缺省
类的构造函数可以作为其它类型向本类类型进行转换的函数

  1. 下列对重载函数的描述中,( A)是错误的。 (2分)

重载函数中不允许使用默认参数
重载函数中编译根据参数表进行选择
不要使用重载函数来描述毫无相干的函数
构造函数重载将会给初始化带来多种方式

  1. 建立一个类对象时,系统自动调用 A(2分)

构造函数
析构函数
友元函数
成员函数

  1. 下面程序的运行结果为C (2分)

#include<iostream.h>
class A
{
public:
A(){cout<<“1”;}
~A(){cout<<“2”;}
};
class B:public A
{
public:
B(){cout<<“3”;}
~B(){cout<<“4”;}
};
void main()
{ B b; }
1234
1324
1342
3142

  1. 类的析构函数是在什么时候调用的?C (2分)

类创建时
创建对象时
删除对象时
不自动调用

  1. C++提供的可有效分配对象空间的运算符是(B ) (2分)

delete
new
pos
auto

  1. 对于任意一个类,析构函数的个数最多为(B ) (2分)

0
1
2
3
153. 将构造函数说明为纯虚函数是没有意义的。 (1分) T
154. 设A为自定义类,现有普通函数int fun(A& x)。则在该函数被调用]时: C(2分)

将执行复制构造函数来初始化形参x
仅在实参为常量时,才会执行复制构造函数以初始化形参x
无需初始化形参x
仅在该函数为A类的友元函数时,无需初始化形参x

  1. 在以下哪种情形,复制构造函数会被调用。B (2分)

当一个对象采用引用方式,作为参数传递给一个函数
当一个函数采用值方式,返回一个对象
当一个对象赋值给另一个对象
以上答案都不对

  1. 下列描述中,( D)是抽象类的特性。 (2分)

可以说明虚函数
可以进行构造函数重载
可以定义友元函数
不能定义该类对象
157. 重载函数在调用时选择的依据中,错误的是(D)。 (2分)

函数的参数
参数的类型
函数的名字
函数的类型
158.关于动态绑定的下列描述中,(D )是错误的。 (2分)

动态绑定是以虚函数为基础的
动态绑定在运行时确定所调用的函数代码
动态绑定调用函数操作是通过指向对象的指针或对象引用来实现的
动态绑定是在编译时确定操作函数的
159.命名空间应用于:B (2分)

在类外定义类的成员函数
避免各个不同函数、变量等的名称冲突
提高代码的执行速度
以上答案都正确
160. 使用操作符setw对数据进行格式输出时,需要包含(C)文件。 (2分)

iostream.h
fstream.h
iomanip.h
stdlib.h
161. 域作用符“::”用于:D (2分)

限定在类外定义的成员函数
访问定义于某个命名空间的对象
访问类的静态成员
以上答案都正确
162.下列对重载函数的描述中,( A )是错误的。 (2分)

重载函数中不允许使用默认参数
重载函数中编译根据参数表进行选择
不要使用重载函数来描述毫无相干的函数
构造函数重载将会给初始化带来多种方式
163. 在以下哪种情形,复制构造函数会被调用。B (2分)

当一个对象采用引用方式,作为参数传递给一个函数
当一个函数采用值方式,返回一个对象
当一个对象赋值给另一个对象
以上答案都不对

  • 31
    点赞
  • 237
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值