C++ 多项选择题

2025 年 4 月 26 日 | 24 分钟阅读

基于 C++ 基础知识的 MCQ

1) #include<userdefined.h>

以下哪项是向 C++ 程序添加头文件的正确语法?

 

  1. #include<userdefined>
  2. #include "userdefined.h"
  3. <include> "userdefined.h"
  4. A 和 B 均可
 

答案: D

解释: 要在 C++ 程序中包含头文件,用户可以使用以下任何给定的语法。


2) 以下哪项是 C++ 语言中打印消息的正确语法?

  1. cout <<"Hello world!";
  2. Cout << Hello world! ;
  3. Out <<"Hello world!;
  4. 以上都不是
 

答案: A

解释: 要在 C++ 语言中打印消息,用户可以使用以下语法


3) 以下哪项是正确的标识符?

  1. $var_name
  2. VAR_123
  3. varname@
  4. 以上都不是
 

答案: B

解释: 用户在编写标识符时必须遵守一些特定规则。

  • 它只能包含大写/小写字母、数字和下划线 (_)。
  • 它始终只能以非数字字符开头。
  • 它不应包含任何特殊字符,如 $、@等

4) 以下哪项是地址运算符?

  1. @
  2. #
  3. &
  4. %
 

答案:C

解释: 要打印任何变量的地址,用户可以使用 "&" 运算符。为了更清楚地理解它,请考虑以下示例


5) 任何编程语言要成为纯面向对象编程语言,必须支持以下哪些特性?

  1. 封装
  2. 继承
  3. 多态
  4. 以上全部。
 

答案: D

解释: 没有任何东西强制用户在 C++ 中使用 OOP 概念。相反,编程语言必须完全支持封装、继承和多态这三个特性,才能成为纯面向对象语言。


6) 具有创建新数据类型能力的编程语言称为___。

  1. 重载的
  2. 封装的
  3. 应受谴责的
  4. 可扩展
 

答案: D

解释: 能够生成新数据类型的语言被称为可扩展语言,因为它们可以处理新的数据类型。


7) 以下哪项是 C++ 语言的原始创建者?

  1. Dennis Ritchie
  2. Ken Thompson
  3. Bjarne Stroustrup
  4. Brian Kernighan
 

答案:C

解释: Bjarne Stroustrup 于 1997 年在 AT&T 贝尔实验室创建了 C++ 语言。


8) 以下哪项是 C++ 语言中从控制台读取单个字符的正确语法?

  1. Read ch()
  2. Getline vh()
  3. get(ch)
  4. Scanf(ch)
 

答案:C

解释: "cin.get()" 是 C++ 语言中提供的几个函数之一,用于从控制台读取单个或多个字符。


9) 以下哪项关于 C++ 中形式参数的说法是正确的?

  1. 用于调用函数的参数
  2. 用于函数定义的参数
  3. 函数中除了传入参数之外的变量
  4. 从未使用过的函数中的变量
 

答案: A

解释: 用于函数体中的参数称为形式参数。这些参数代表传递给函数的参数,并且仅在函数体内部使用。


10) C++ 语言是 ______ 面向对象语言。

  1. 纯面向对象
  2. 非面向对象
  3. 半面向对象或部分面向对象
  4. 以上都不是
 

答案:C

说明

纯面向对象语言的共同点是它提供继承、封装和多态这三个基本特性。支持所有这三个特性的每种编程语言都被称为纯面向对象语言。而如果编程语言支持所有这三个特性但不支持完全,则被称为部分面向对象语言或半面向对象语言

C++ 编程语言被称为半面向对象语言的主要原因如下

  1. 友元函数的可用性-
    友元类被允许访问另一个类的私有和保护成员,在该类中它被声明为友元。它可能在某些时候非常有用,但它仍然违反了面向对象特性的规则。
  2. 全局变量的概念-
    众所周知,我们可以在 C++ 语言中声明一个全局变量,该变量可以从程序中的任何位置轻松访问。因此,C++ 再次没有提供完整的隐私,因为没有人被限制访问和操作该数据/信息。因此,它提供了部分封装,不像 Java 语言中,用户只允许在类中声明变量并为其提供访问修饰符。
  3. main 函数在类之外-
    C++ 是一种面向对象语言,但面向对象从根本上与该语言无关(或隐式)。因此,即使不使用任何对象,用户也可以轻松编写有效、定义良好的 C++ 代码。

11) 编程语言要成为纯面向对象编程语言,必须支持以下哪些特性?

  1. 封装
  2. 继承
  3. 多态
  4. 以上全部。
 

答案: D

解释: 没有任何东西强制用户在 C++ 中使用 OOP 概念。相反,编程语言必须完全支持封装、继承和多态这三个特性,才能成为纯面向对象语言。


12) 以下哪种注释语法在 C++ 程序中创建单行注释是正确的?

  1. //Comment
  2. /Comment/
  3. Comment//
  4. 以上都不是
 

答案: A

解释: 要在 C++ 程序中创建单行注释(或一行注释),可以使用 "// write comment" 语法。我们可以通过以下程序更轻松地理解它

示例

输出

Welcome to Javatpoint

13) C++ 是一种 ___ 类型的语言。

  1. 高级语言
  2. 低级语言
  3. 中级语言
  4. 以上都不是
 

答案:C

解释: C++ 包含高级和低级编程语言的两种特性,如果我们称之为高级和低级语言的组合也并没错。


14) 在 C++ 程序中插入新行,可以使用以下哪条语句?

  1. \n
  2. \r
  3. \a
  4. 以上都不是
 

答案: A

说明

要插入新行或跳到下一行,可以使用 "\n"。在 C++ 中,还有一个替代选项是 "endl",它也用于在输出中换行。让我们看看 "\n" 和 "endl" 的示例。

示例: 使用 "\n"

输出

Hello World!
I am learning C++

示例: 使用 "end"

输出

Hello World!
I am learning C++ 

15) 以下哪项表示制表符?

  1. \n
  2. \t
  3. \r
  4. 以上都不是
 

答案: B

解释: "\t" 是一种表示制表符的空格序列,这意味着在一行中添加一组空格。为了更清楚地理解它,请考虑以下示例

程序

输出

Enter the first number    12
Enter the second number    13
Greatest number is    13 

基于 C++ 数组的 MCQ 集合

1) 以下哪项指的是数组的特性?

  1. 数组是一组相似的数据项
  2. 数组是一组不同的数据项
  3. 数组可以包含不同类型的数据类型
  4. 以上都不是
 

答案: A

解释: 基本上,数组是一组相似的数据项,它们存储在连续的内存块中。您可以使用元素的索引地址随机访问任何数据项。


2) 如果我们在一个数组中存储了五个元素或数据项,那么数组中最后一个数据项的索引地址或索引号是多少?

  1. 3
  2. 5
  3. 4
  4. 88
 

答案:C

解释: 数组使用连续的内存块来存储数据元素。因此,推入数组的数据项存储在连续的地址空间中。数组的索引号从零开始,因此推入数组的第一个数据项将存储在零处,依此类推。因此,最后一个(第五个)元素的索引号将是 4。


3) 以下哪项是声明数组的正确语法?

  1. init array []
  2. int array [5];
  3. Array[5];
  4. 以上都不是
 

答案: B

解释: 要在 C++ 中声明数组,我们首先需要根据需要指定其数据类型,例如 int 或 char,然后是数组的名称和数组的大小。因此正确答案是 B。

示例: 通过指定大小和初始化元素来声明数组

int arr[8] = { 10, 20, 30, 40 };

编译器将创建一个大小为 8 的数组,将前四个元素初始化为用户指定的值,其余元素初始化为 0

以上与以下相同

"int arr[] = {11, 22, 32, 44, 0, 0,0,0}".

4) 以下哪项是打印第一个元素地址的正确语法?

  1. array[0];
  2. array[1];
  3. array[2];
  4. 以上都不是
 

答案: A

解释: 要打印或访问数组的第一个数据项,正确语法是 "array[0];" 因为数组的索引从零而不是一开始。所以正确答案是 A。


5) 以下哪项给出数组的第 4 个元素?

  1. Array[0];
  2. Array[0];
  3. Array[3];
  4. 以上都不是
 

答案:C

解释: 数组的索引从零而不是 1 开始。要打印数组的第 4 个元素,索引号将是 n-1 或 (3);


6) 给定程序的输出是什么?

  1. -15
  2. -30
  3. 编译器错误
  4. 垃圾值
 

答案: B

解释: 它将打印指定值的负值,因为我们在指定数组元素时使用了 "-" 符号。所以正确答案将是 "-30"。


7) C++ 编程语言中的数组使用哪种类型的内存?

  1. 连续的
  2. 非连续的
  3. A 和 B 均可
  4. 未提及
 

答案: A

解释: 在 C 和 C++ 编程语言中,数组使用的内存通常是连续的,这意味着当在程序中声明或初始化数组时,会立即从内存空间中选择一个内存块。数组的主要缺点是用户必须在使用它之前猜测数组的大小,在这种情况下,即使不使用也会占用大量内存。这随后会造成内存不足的问题。


8) 以下哪项是排序的正确定义?

  1. 排序是一种将数据或信息按特定顺序排列的过程。例如升序、降序。
  2. 仅按升序排序信息或数据
  3. 排序是一种修改或操作数据元素的过程
  4. 以上都不是
 

答案: A

解释: 排序是一种重新排列或操作数组中数据元素位置的技术或过程。因此正确答案是 A。

例如

未排序数组

4321567

已排序数组

1234567

9) C++ 编程语言中有多少种数组类型?

  1. 在 C++ 编程语言中,有三种数组类型
  2. 在 C++ 编程语言中,有四种数组类型
  3. 在 C++ 编程语言中,有两种数组类型
  4. A 和 B 均可
 

答案:C

解释: 在 C++ 编程语言中,主要有两种数组类型:单维数组多维数组。在单维数组中,相同类型的值以列表形式存储,而在多维数组中,值以矩阵形式存储。


10) 在 C++ 中,"rank()" 用于什么目的?

  1. 它返回每个维度的尺寸
  2. 它返回可以存储在数组中的最大元素数量
  3. 它返回指定数组的维度
  4. 以上都不是
 

答案:C

解释: 在 C++ 中,可以通过将特定数组传递给 "rank()" 函数来了解其维度(例如,单维、多维)。


11) 以下哪项是 C++ 中 "is_array();" 函数的正确定义?

  1. 它检查指定的变量是否为数组类型
  2. 它检查指定的数组是否为单维
  3. 它检查指定的数组是否为多维
  4. B 和 C 均支持
 

答案: A

解释: 在 C++ 中,"is_array();" 用于检查指定的元素或数据项是否属于数组类型。


12) 仔细观察给定的 C++ 程序,并从给定选项中选择正确的输出

程序

  1. 110
  2. 001
  3. 010
  4. 以上都不是
 

答案:C

解释: 正确的输出将是 "010",因为在两种情况下,传递给 "is_array()" 函数的变量 A 和 C 都不同,因此函数在两种情况下都返回零,而在 B 的情况下,它们相同。因此它返回一作为输出。


13) 仔细阅读给定的 C++ 程序,并从给定选项中选择正确的输出

程序

  1. 121
  2. 321
  3. 123
  4. 010
 

答案:C

解释: 如上图所示,这里使用了 "rank()" 函数。"rank()" 函数用于了解所传递数组的维度。在情况 A 中,传递给 "rank()" 函数的数组是单维的;在情况 B 中,传递的数组是二维的;在情况 C 中,传递的数组是三维的。因此 "rank()" 函数返回的输出是 123。


14) 我们称一维数组的数组为什么?

  1. 单维数组
  2. 多维数组
  3. 二维数组
  4. A 和 B 均可
 

答案:C

解释: 一维数组的数组称为二维数组,例如我们可以通过以下示例更清楚地理解它

二维数组的初始化


15) 哪种类型的数组总是被认为是线性数组?

  1. 单维
  2. 多维
  3. A 和 B 均可
  4. 以上都不是
 

答案: A

解释: 单维数组总是被认为是线性数组。


16) 以下哪项可以被认为是数组的对象?

  1. 数组的索引
  2. 数组的元素
  3. 数组的函数
  4. 以上全部。
 

答案: B

解释: 数组中的元素被称为数组的对象。


17) 数组可以存储多少种类型的元素?

  1. 相同类型的元素
  2. 字符和整型
  3. 仅字符类型
  4. 以上全部。
 

答案: A

解释: 数组可以包含多个元素,但所有数据元素必须是相同类型的。


18) 一维数组的元素编号为 0,1,2,3,4,5 等;这些数字被称为 ____

  1. 数组的下标
  2. 数组的成员
  3. 索引值
  4. A 和 C 均可
 

答案: D

解释: 一维数组的元素被索引为 0,1,2,3,...,这些数字也被称为数组的索引值或下标。


基于 C++ 面向对象概念的 MCQ

1) 以下哪项关于 new 和 malloc 的说法是正确的?

I. "new" 是一种运算符,而 "malloc" 是一种函数
II. "new" 调用构造函数,而 "malloc" 不调用构造函数
III. "malloc" 返回 void 指针,也需要类型转换,而 "new" 返回所需的指针

  1. 只有 I
  2. I 和 II
  3. I、II、III
  4. 以上都不是
 

答案:C

解释: 上述问题中提到的所有语句关于 "malloc" 和 "new" 都完全正确。"malloc" 是 C++ 语言中可用的一种函数,而 "new" 是一种调用构造函数的运算符。


2) 以下哪项关于 new 和 malloc 的说法是正确的?

I. 使用 "malloc" 初始化特定类的指针对象也需要包含构造函数调用;另一方面,使用 "new" 关键字执行此操作不包含任何构造函数调用。
II. 使用 "new" 关键字初始化特定类的指针对象也需要包含构造函数调用。另一方面,使用 "malloc" 执行此操作不需要包含任何构造函数调用。
III. 使用 "new" 或 "malloc" 初始化特定类的指针对象都涉及构造函数调用。

  1. 只有 II
  2. II 和 III 都正确
  3. 只有 I
  4. 以上都不是
 

答案: A

解释: 使用 "new" 关键字初始化类对象也涉及构造函数调用,而使用 "malloc" 则不需要涉及构造函数调用。这是 "new" 被明确添加到 C++ 语言的主要原因。然而,"malloc" 函数用于为任何特定指针分配内存,因此它为类大小分配等量的内存。同时,"new" 关键字涉及初始化,因此调用该特定类的构造函数。


3) 以下哪项关于虚继承的说法是正确的?

  1. 这是一种确保可以访问基类的私有成员的技术
  2. 这是一种优化多重继承的技术
  3. 这是一种避免类的多重继承的技术
  4. 这是一种 C++ 技术,用于避免基类在派生类或子类中出现多个副本
 

答案: D

说明


4) 以下哪项语句正确地指出了 C++ 编程语言中的 Delete 和 Delete[]?

  1. Delete 在语法上是正确的,但是,如果使用 Delete[],将获得一个错误。
  2. "Delete" 用于删除标准对象,而 "Delete[]" 用于删除指针对象
  3. "Delete" 是一种关键字,而 "Delete[]" 是一种标识符
  4. "Delete" 用于删除单个标准对象,而 "Delete[]" 用于删除多个对象的数组
 

答案: D

解释: "Delete" 用于单个通用对象,而 "Delete[]" 用于使用 new 运算符初始化的多个对象数组。


5) 考虑以下给定程序,并从给定选项中选择最合适的输出

  1. 段错误。
  2. 错误。
  3. 构造函数将被调用五次,之后析构函数只被调用一次。
  4. 构造函数将被调用五次,之后析构函数也将被调用五次。
 

答案: D

解释: 如上述程序所示,使用 "new" 关键字初始化了五个指针变量,因此构造函数将被调用五次。此外,使用析构函数 "Delete[]"(用于删除多个对象组)来终止变量。因此,所有变量都将被完全终止,并且在终止变量时,析构函数将被调用五次。


6) 考虑以下给定程序,并从给定选项中选择最合适的输出

  1. Constructing base, Constructing Derived, Destructing Base, Destructing Derived
  2. Constructing base, Constructing Derived, Destructing Base
  3. Constructing base, Constructing Derived, Destructing Derived, Destructing Base
  4. 以上都不是
 

答案: B

解释: 在上述程序中,派生类的对象存储在基类指针中;当对象被销毁时,程序从未调用派生类的析构函数。因此,这表明对象根本没有被销毁;在这种情况下,程序也可能表现出不良行为。


7) 以下哪项可以被认为是 C++ 中声明大小为 10 的整数指针数组的正确语法?

  1. int arr = new int[10];
  2. int *arr = new int*[10]
  3. int **arr = new int*[10];
  4. int *arr = new int[10];
 

答案:C

解释: 要声明一个整数指针数组,这里我们需要使用双指针数组,其中每个元素都是指向整数的指针集。因此,正确选项是 C。


8) 以下哪些成员可以被继承但在任何类中都不可访问?

  1. 公共
  2. Protected
  3. 私有
  4. A 和 C 均可
 

答案:C

解释: 类的 "Private" 成员可以被子类继承。但是,子类无法访问它们(或者我们可以说它们不能从子类访问)。


9) 以下哪项可以在 C++ 编程语言中创建抽象类?

  1. 通过在类中使用纯虚函数
  2. 通过在基类中声明虚函数
  3. 通过在类声明后声明 virtual 关键字
  4. 以上都不是
 

答案: A

解释: 一个类必须至少包含一个纯虚函数的声明才能被称为抽象类。因此,要创建一个抽象类,必须在该类中声明至少一个纯虚函数。


10) 以下哪项关于类的说法是正确的?

  1. 对象是其类的一个实例
  2. 类是其对象的一个实例
  3. 对象是该类数据类型的一个实例
  4. A 和 C 均可
 

答案: A

解释: 通常,对象是类的一个实例,例如,对象代表类。


11) 以下哪项关于 C++ 编程语言中友元函数的说法是正确的?

  1. 友元函数能够访问类的私有成员
  2. 友元函数可以访问类的私有成员
  3. 友元函数能够访问类的公共成员
  4. 以上全部。
 

答案: D

解释: 友元函数可以访问类的任何成员,而无需关心它包含的成员类型,例如 public、private 和 protected。


12) 以下哪项关于 C++ 的说法不正确?

  1. 类的成员默认是公共的
  2. 类不能有私有成员
  3. 结构体可以有成员函数
  4. 以上全部。
 

答案:C

解释: 在 C 语言中,结构体不允许有成员函数;而在 C++ 中,结构体允许有成员函数。类的成员通常默认是私有的,而结构体的成员是公共的。因此,类不能有私有成员这一说法是完全错误的。


13) 以下给定语句中哪项完全正确?

I. 在面向对象编程语言中,所有函数调用都在编译时解析。
II. 在过程编程语言中,所有函数调用都在编译时解析

  1. 只有 II
  2. 只有 I
  3. I 和 II 都正确
  4. 以上都不是
 

答案: B

解释: 在像 C 这样的过程编程语言中,我们没有多态性的概念,因此所有函数调用都在编译时解析,而在面向对象语言中,通过多态性的概念,所有函数调用都不能在编译时解析。


14) 以下哪项不能与 virtual 关键字一起使用?

  1. 构造函数
  2. 析构函数
  3. 成员函数
  4. 以上都不是
 

答案: A

解释: 在 C++ 中,我们不能将 virtual 关键字与构造函数一起使用,因为构造函数通常定义为初始化特定类的对象;因此,没有其他类需要其他类的对象。


15) 以下哪项用于实现后期绑定?

  1. 运算符函数
  2. 常量函数
  3. 虚函数
  4. A 和 B 均可
 

答案:C

解释: 虚函数可用于实现后期绑定的概念。例如 - 将实际函数绑定到其相应的调用。


16) 以下哪项语句支持可重用代码应该是任何语言的理想特性之一?

  1. 它有助于降低维护成本
  2. 它有助于缩短测试时间
  3. 它有助于缩短维护时间和测试时间
  4. 它有助于缩短编译时间
 

答案:C

解释: 在重用现有代码时,我们不需要一遍又一遍地测试/检查该代码,因为它在第一次编写时就已经经过测试了。因此,重用代码无疑有助于缩短维护和测试时间。

在重用现有代码时,编译时间最有可能增加或保持不变,这是显而易见的,因为我们在程序中使用现有代码来节省时间(或包含任何特定功能),因此整个程序的规模会增大,这是很自然的。


50) 以下哪项关于 C++ 编程语言的说法是正确的?

  1. 在 C++ 中,允许进行静态和动态类型检查
  2. 在 C++ 中,成员函数允许是 const 类型
  3. 在 C++ 中,允许进行动态检查
  4. 以上都不是
 

答案: A

解释: 在 C++ 中,允许进行静态和动态两种类型检查。


18) 以下哪项不是一种继承类型?

  1. 分布式
  2. 多次
  3. 多级
  4. 层次
 

答案: A

解释: 在上述选项中,分布式是唯一不是继承类型,而多重、多级和层次是继承类型。


19) 如果 "在 C++ 程序中一个类没有名称",会发生什么?

  1. C++ 中甚至不允许这样做
  2. 它将没有构造函数
  3. 它将没有析构函数
  4. B 和 C 均支持
 

答案:C

解释: 在 C++ 程序中,如果我们使用一个没有分配名称的类。结果是,它将没有析构函数,但它将拥有对象。为了更详细地理解它,请考虑以下程序

程序

#include 
using namespace std;
class
{
    public:
	void func()
        {
		cout<<"Hello world";
	}
}a;
int main(int argc, char const *argv[])
{
	a.func();
	return 0;
}

20) C++ 语言使用哪种方法?

  1. 从右到左
  2. 从左到右
  3. 自顶向下
  4. 自下而上
 

答案: D

解释: 通常,C++ 使用自下而上的方法,而其他编程语言(如 C)使用自上而下的方法。


21) 以下哪项概念指的是在运行时向程序添加新组件?

  1. 动态加载
  2. 动态绑定
  3. 数据隐藏
  4. A & B 都正确
 

答案:C

解释: 动态加载是指在程序运行时向程序添加新组件的概念。


22) 如何在 C++ 编程语言中实现编译时多态性?

  1. 通过使用模板
  2. 通过使用继承的概念
  3. 通过同时使用虚函数和继承
  4. 通过只使用虚函数
 

答案: A

解释: 可以通过使用模板轻松实现编译时多态性。


23) 如何在 C++ 编程语言中实现运行时多态性?

  1. 通过使用模板
  2. 通过使用继承的概念
  3. 通过同时使用虚函数和继承
  4. 通过只使用虚函数
 

答案: 在 C++ 中,可以通过使用虚函数和继承来实现运行时多态性,其中对象决定调用哪个函数。

解释: C


24) 以下哪项为程序员提供了将特定类对象用于其他类的功能?

  1. 多态
  2. 抽象
  3. 继承
  4. 组合 (Composition)
 

答案: D

解释: 组合是指将特定类的对象用于其他多个类的概念。


25) 以下哪项不能成为 C++ 语言中的友元?

  1. 函数
  2. 对象
  3. 以上都不是
 

答案:C

解释: 一般来说,任何类的对象都不能成为同一类和任何其他类的友元。但是,有些函数、运算符和类可以成为友元。


26) 引用与指针有何不同?

  1. 引用一旦初始化就不能修改
  2. 解引用引用不需要额外的运算符
  3. 引用不能为 NULL
  4. 以上全部。
 

答案: D

解释: 这些是引用与指针大相径庭的一些基本原因。

在指针的情况下,需要 "*" 运算符来解引用它所包含的值。但是,引用不需要任何类型的运算符来进行解引用。

引用一旦初始化就不能修改,但在指针的情况下可以这样做。

指针可以设为 Null,而引用不能为 NULL。


27) 在以下给定选项中,哪项可以被认为是类的成员?

  1. 类变量
  2. 成员变量
  3. 类函数
  4. A 和 B 均可
 

答案: B

解释: 通常,任何类的函数也被认为是该类的成员函数。


28) 以下哪项指的是将数据及其功能封装到一个单独的实体中?

  1. 模块化
  2. 抽象
  3. 封装
  4. 以上都不是
 

答案:C

解释: 在 C++ 中,将数据及其功能封装到单个实体中的属性称为封装(例如,类)。


29) 以下哪项指的是使用现有代码而不是重写它?

  1. 继承
  2. 封装
  3. 抽象
  4. A 和 B 均可
 

答案: A

解释: 借助继承的概念,可以使用现有代码而不是重写它。我们可以通过在代码块的其他部分继承预写代码的属性来做到这一点。因此,用户不需要重复编写相同的代码。


30) 以下哪项显示多重继承?

  1. X,Y->Z
  2. X->Y->Z
  3. X->Y;X->Z
  4. 以上都不是
 

答案: A

解释: 在多重继承中,一个类可以从多个基类继承属性。


31) 以下哪项关于 C++ 编程语言的说法是正确的?

  1. C++ 是一种面向对象编程语言
  2. C++ 是一种过程式编程语言
  3. C++ 是一种函数式编程语言
  4. C++ 既是过程式语言又是面向对象语言
 

答案: D

解释: C++ 是一种既支持过程式(或一步一步的指令)又支持通过类的概念实现面向对象的编程语言。


32) 以下哪项关于模块化的说法是正确的?

  1. 模块化意味着隐藏程序的某些部分
  2. 模块化是指将程序划分为后续的小模块或独立部分
  3. 它指的是重载程序的某个部分
  4. 模块化指的是将数据及其功能封装到一个单一实体中
 

答案: B

解释: 模块化是指将程序划分为小的独立代码块或模块,以便可以在整个程序中需要时轻松调用它们。模块化的概念对开发人员来说非常高效和有帮助,因为它使程序结构良好且易于理解。因此,正确选项是 D。


33) 仔细阅读以下程序,并从给定选项中找出以下程序中未使用或缺失的概念?

程序

  1. 多态
  2. 封装
  3. 继承
  4. 抽象
 

答案: A

解释: 如上图所示,变量 X 和 Y 都是私有成员,这意味着它们都对类外部的世界隐藏,因此这里使用了抽象的概念。

其他数据成员及其相应的函数存储在单独的类中,因此这里也使用了封装的概念。此外,类 B 派生自类 A,这意味着也使用了继承的概念,但我们仍然没有在任何类中找到重载函数。因此,多态性的概念在给定程序中缺失或未使用。


34) 以下哪个选项正确解释了多态性的概念?

a。

b。

c。

d. 以上都不是

 

答案: A

解释: 多态性的概念是指通过改变函数传入参数的数量或改变其类型来重载函数。因此您只有两个选项,其中函数的名称相同。因此,可以很容易地发现,在选项 C 中,参数的类型和数量都相同,这肯定会导致错误,这是错误的。但是,函数名称相同但参数数量或类型不同的选项是正确的选项。因此,正确答案是 A。