试题

全国计算机等级考试二级C++笔试真题

时间:2024-10-11 10:27:16 志彬 试题 我要投稿

全国计算机等级考试二级C++笔试真题

  在各个领域,我们最熟悉的就是试题了,试题是参考者回顾所学知识和技能的重要参考资料。什么样的试题才是好试题呢?以下是小编收集整理的全国计算机等级考试二级C++笔试真题,供大家参考借鉴,希望可以帮助到有需要的朋友。

全国计算机等级考试二级C++笔试真题

  一、单选题(每题2分,共20分)

  1. 在C++中,用于输入单个字符的流对象是( )

  A. cin

  B. cout

  C. cerr

  D. clog

  答案:A。cin用于标准输入,可输入各种数据类型,包括单个字符。

  2. 下面关于C++函数默认参数的描述中,正确的是( )

  A. 函数默认参数只能有一个

  B. 函数默认参数必须在函数定义时设置

  C. 函数默认参数可以在函数声明时设置

  D. 函数默认参数的值必须是常量表达式

  答案:C。函数默认参数可以在函数声明时设置,也可以在函数定义时设置(如果在声明和定义都设置,定义处不能再次指定默认值),默认参数可以有多个,其值可以是常量表达式或者具有默认构造函数的类型。

  3. 若有定义:int a = 10; 则下列表达式的值为4的是( )

  A. a / 3

  B. a % 3

  C. a >> 1

  D. a << 2

  答案:C。a = 10,10的二进制表示为1010,右移1位(a >> 1)后变为0101,十进制为5;左移2位(a << 2)后变为101000,十进制为40;10除以3等于3余1(a / 3 = 3,a % 3 = 1)。

  4. 以下哪种数据类型不能用于定义数组的下标( )

  A. int

  B. char

  C. float

  D. enum类型

  答案:C。数组下标必须是整数类型或者可以转换为整数类型的表达式,float类型不能直接用作数组下标。

  5. 在C++类中,静态成员函数( )

  A. 可以访问类的非静态成员

  B. 不能访问类的静态成员

  C. 只能通过类名来调用

  D. 可以通过类的对象来调用

  答案:D。静态成员函数可以通过类的对象来调用,也可以通过类名调用,它不能访问类的非静态成员,但可以访问类的静态成员。

  6. 若有以下函数模板定义:

  template

  T Max(T a, T b) {

  return (a > b)? a : b;

  }

  当调用`Max(3.5, 2)`时,会发生( )

  A. 编译错误,因为模板参数类型不匹配

  B. 编译成功,自动将2转换为double类型

  C. 运行时错误

  D. 以上都不对

  答案:B。在函数模板调用时,会根据实参类型自动推导模板参数类型,这里会将2转换为double类型以匹配3.5的类型。

  7. 在C++中,打开一个文件并将文件指针定位到文件末尾的模式是( )

  A. ios::in

  B. ios::out

  C. ios::ate

  D. ios::app

  答案:C。ios::ate模式打开文件并将文件指针定位到文件末尾;ios::in用于读文件;ios::out用于写文件;ios::app用于追加写文件。

  8. 以下关于C++中的引用说法正确的是( )

  A. 引用必须在定义时初始化

  B. 引用可以重新赋值,指向不同的对象

  C. 引用是变量的别名,占用独立的内存空间

  D. 引用不能作为函数的返回值

  答案:A。引用必须在定义时初始化,引用一旦初始化就不能再指向其他对象,引用不占用独立的内存空间(和被引用对象共享内存),引用可以作为函数的返回值。

  9. 若有类定义如下:

  class A {

  private:

  int num;

  public:

  A(int n = 0) : num(n) {}

  int getNum() const { return num; }

  };

  则以下对类A对象的操作中,合法的是( )

  A.

  A a;

  a.num = 10;

  B.

  A a(5);

  cout << a.getNum() << endl;

  C.

  A *p = new A;

  *p.num = 20;

  D.

  A a;

  const A &ra = a;

  ra.num = 30;

  答案:B。A选项中num是私有成员,不能在类外直接访问;C选项中应该是(*p).num或者p->num;D选项中ra是常量引用,不能修改其成员。

  10. 下面关于C++中构造函数的描述,错误的是( )

  A. 构造函数可以重载

  B. 构造函数可以有默认参数

  C. 构造函数可以是虚函数

  D. 构造函数名与类名相同

  答案:C。构造函数不能是虚函数,虚函数是为了实现多态性,而构造函数是在对象创建时调用的特殊函数,不适合作为虚函数。

  二、多选题(每题3分,共15分)

  1. 以下哪些属于C++中的基本数据类型( )

  A. int

  B. string

  C. char

  D. float

  E. bool

  答案:ACDE。int(整数类型)、char(字符类型)、float(单精度浮点类型)、bool(布尔类型)是基本数据类型,而string是C++标准库中的类类型,不属于基本数据类型。

  2. 在C++中,关于动态内存分配的说法正确的是( )

  A. 使用new关键字可以动态分配内存

  B. 使用关键字释放动态分配的单个对象的内存

  C. 使用 []关键字释放动态分配的数组内存

  D. 动态分配的内存位于栈区

  E. 动态分配内存失败时会抛出异常

  答案:ABCE。动态分配的内存位于堆区,而不是栈区;new用于动态分配内存,用于释放单个对象的动态内存, []用于释放数组的动态内存,在C++中动态分配内存失败时(例如没有足够的内存)会抛出异常。

  3. 以下关于C++类的继承的描述中,正确的是( )

  A. 继承可以实现代码的复用

  B. 可以实现多继承,即一个类可以继承多个类

  C. 派生类可以访问基类的私有成员

  D. 基类的构造函数不会被派生类继承

  E. 继承关系是一种“is - a”关系

  答案:ABDE。继承可以实现代码复用,C++支持多继承,基类的构造函数不会被派生类继承,继承关系表示派生类“is - a”基类,派生类不能直接访问基类的私有成员。

  4. 在C++中,函数重载的判断依据包括( )

  A. 函数名

  B. 函数的返回值类型

  C. 函数的参数个数

  D. 函数的参数类型

  E. 函数的调用方式

  答案:ACD。函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数个数或者不同参数类型的函数,函数的返回值类型和调用方式不是函数重载的判断依据。

  5. 对于C++中的流操作,以下哪些说法是正确的( )

  A. cin和cout是预定义的流对象

  B. 可以通过流操作符“<<”和“>>”进行输入输出操作

  C. 可以对流对象进行格式化输出设置

  D. 流操作只能用于标准输入输出设备

  E. 可以自定义流类

  答案:ABCE。cin是标准输入流对象,cout是标准输出流对象,可以使用“<<”(输出)和“>>”(输入)流操作符进行输入输出操作,并且可以通过一些函数对流对象进行格式化输出设置,还可以自定义流类,流操作不仅可以用于标准输入输出设备,也可以用于文件等其他设备。

  三、判断题(每题1分,共5分)

  1. 在C++中,所有的函数都可以被其他函数调用。( )

  答案:错误。例如私有成员函数只能在类的内部被调用,不能被类外的函数直接调用。

  2. 数组名在作为函数参数传递时,会退化为指针。( )

  答案:正确。在C++中,数组名作为函数参数传递时,会失去其数组的特性,退化为指向数组首元素的指针。

  3. C++中的友元函数破坏了类的封装性。( )

  答案:正确。友元函数可以访问类的私有成员,这在一定程度上破坏了类的封装性。

  4. 一个类的静态数据成员只有一份,被所有该类的对象共享。( )

  答案:正确。静态数据成员属于类,而不是属于某个对象,所有该类的对象共享这一静态数据成员。

  5. 在C++中,模板实例化是在编译时完成的。( )

  答案:正确。模板实例化是在编译阶段根据模板参数生成具体的函数或类的过程。

【全国计算机等级考试二级C++笔试真题】相关文章:

2007年3月全国计算机等级考试二级C++笔试真题03-28

9月全国计算机等级考试二级JAVA笔试真题03-29

计算机等级考试二级C++笔试选择题04-23

全国计算机二级考试C++真题09-20

2006年9月全国计算机等级考试二级access笔试真题03-29

2006上半年全国计算机二级C++笔试真题11-17

2005年上半年全国计算机二级C++笔试真题03-02

全国英语等级考试二级真题及答案09-20

3月全国计算机等级考试二级VFP考试真题09-26