C++ 模拟测试



本节为您提供各种与C++框架相关的模拟测试。您可以将这些模拟测试样本下载到本地机器上,并在方便时离线解答。每个模拟测试都附带一份答案,以便您核对最终分数并进行自我评估。

问答

C++ 模拟测试一

题1 - 类成员的默认访问说明符是

A - public

B - private

C - protected

D - 以上都不是。

答案:B

解释

如果类中某个/些成员没有访问说明符,则默认为private。

题2 - 三元字符以什么开头

A - #

B - ##

C - ?

D - ??

答案:C

解释

一些字符有替代表示,并以??开头。例如,对于[,等价的是??(

答案:D

解释

C++ 支持所有形式的继承。

答案:A

解释

由于内联函数像宏一样在调用处展开,因此它的执行速度更快。

答案:D

解释

纯虚函数不能有定义。

题7 - 下列程序的输出是什么?

#include<iostream>

using namespace std;
class abc { 
   void f();
   void g();
   int x;
};

main() {
   cout<<sizeof(abc)<<endl;
}

A - 12

B - 4

C - 8

D - 编译错误

答案:B

解释

只有类成员变量才构成类的或其对象的大小。

#include<iostream>

using namespace std;
class abc { 
   void f();
   void g();
   int x;
};
main() {
   cout<<sizeof(abc)<<endl;
}

题8 - 下列程序的输出是什么?

#include<iostream>

using namespace std;
class abc { 
   public: 
      static int x; 
      int i; 

      abc() {
         i = ++x;
      }
   };
int abc::x;

main() { 
   abc m, n, p;
   
   cout<<m.x<<" "<<m.i<<endl;
}

A - 3 1

B - 3 3

C - 1 1

D - 1 3

答案:A

解释

静态成员变量“x”在为该类创建的所有对象之间共享公共内存。

#include<iostream>

using namespace std;
class abc { 
   public: 
      static int x; 
      int i; 

      abc() {
         i = ++x;
      }
   };
int abc::x;

main() { 
   abc m, n, p;
   
   cout<<m.x<<" "<<m.i<<endl;
}

题9 - 构造函数可以是虚函数。

A - 正确

B - 错误

答案:B

解释

构造函数的目的不能在派生类中被重写,因此构造函数不能是虚函数。

题10 - 选择不能被重载的运算符。

A - /

B - ()

C - ::

D - %

答案:C

解释

作用域解析运算符(::)不允许被重载。

题11 - 哪个运算符必须仅作为成员函数重载?

A - _

B - _ _

C - ++(后置版本)

D - =

答案:D

解释

重载的赋值运算符的工作方式类似于复制构造函数,并且需要作为类的成员函数重载。

题12 - 以下哪个不是 C++ 的关键字?

A - volatile

B - friend

C - extends

D - this

答案:C

解释

其余都是 C++ 的有效关键字。

题13 - 下列程序的输出是什么?

#include<iostream>

using namespace std;
class abc { 

   public: 
      int i; 

      abc(int i) { 
         i = i;
      }
};

main() { 
   abc m(5); 
   
   cout<<m.i;
}

A - 5

B - 垃圾值

C - 语句 i=i; 处出错

D - 编译错误:‘i’ 重复声明。

答案:B

解释

i=i,是将成员变量赋值给自己。

#include<iostream>

using namespace std;
class abc { 

   public: 
      int i; 

      abc(int i) { 
         i = i;
      }
};

main() { 
   abc m(5); 
   
   cout<<m.i;
}

题14 - 默认情况下,结构体的成员是

A - private

B - protected

C - public

D - 访问说明符不适用于结构体。

答案:C

解释

如果未为结构体变量/函数指定访问说明符,则默认为public。

答案:A

解释

题16 - 为表达式“ptr=new int[100]”选择相应的delete运算符用法。

A - delete ptr;

B - delete ptr[];

C - delete[] ptr;

D - []delete ptr;

答案:C

解释

题17 - ‘cin’ 是一个__

A - 类

B - 对象

C - 包

D - 命名空间

答案:B

解释

它是 istream 类的对象。

题18 - 使用其对象访问结构体成员函数的运算符。

A - .

B - ->

C - *

D - 以上都不是。

答案:A

解释

就像我们使用点(.)运算符访问类的成员一样,它也用于访问结构体的成员。

题19 - 通常情况下,使用以下语句包含用户定义的头文件。

A - #include “file.h”

B - #include <file.h>

C - #include <file>

D - #include file.h

答案:A

解释

使用(a)中的语法,编译器首先在当前工作目录中查找文件,如果找不到,则在默认包含路径中查找。

题20 - 在 C++ 中,哪个数据类型可以用来保存宽字符?

A - unsigned char;

B - int

C - wchar_t

D - 以上都不是。

答案:C

解释

wchar_t 是我们可以用来保存 Unicode 字符的数据类型。

题21 - 即使类对象是常量对象,哪个存储说明符也可以用来修改成员变量?

A - auto

B - register

C - static

D - mutable

答案:D

解释

mutable 是 C++ 中引入的存储说明符,在 C 中不可用。用 mutable 声明的类成员即使对象是常量也可以修改。

题22 - 下列哪个运算符可以用来计算一个数的另一个数次幂的值。

A - ^

B - **

C - ^^

D - 以上都不是

答案:D

解释

C/C++ 中没有这样的运算符。

题23 - 选择后置形式 ++ 的有效声明,其中 T 是类名。

A - T operator++();

B - T operator++(int);

C - T& operator++();

D - T& operator++(int);

答案:B

解释

参数 int 只是为了表示它是重载的后置形式。根据其原始行为,不应该返回引用。

题24 - 我们可以为重载的 () 运算符提供可变数量的参数。

A - 正确

B - 错误

答案:A

解释

答案:B

解释

这两个运算符都不能重载。

答案表

题号 答案
1 B
2 C
3 D
4 A
5 D
6 B
7 B
8 A
9 B
10 C
11 D
12 C
13 B
14 C
15 A
16 C
17 B
18 A
19 A
20 C
21 D
22 D
23 B
24 A
25 B
cpp_questions_answers.htm
广告
© . All rights reserved.