C++ 练习题(练习题综合)

一、单项选择题(总分 45)

1. (分值: 0.2 分)下列关于运算符重载的描述中,错误的是( )
A: ::运算符不能重载
B: 类型转换运算符只能作为成员函数重载
C: 将运算符作为非成员函数重载时必须定义为友元
D: 重载[ ]运算符应完成 下标访问 操作
序号: 16 难度: 2 考查点:重载
2. (分值: 0.2 分)将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是
A: 不合法的运算符
B: 一元运算符
C: 无操作数的运算符
D: 二元运算符
序号: 18 难度: 1 考查点:重载
3. (分值: 0.2 分)下列关于虚基类的描述中,错误的是( )
A: 使用虚基类可以消除由多继承产生的二义性
B: 构造派生类对象时,虚基类的构造函数只被调用一次
C: 声明”class B : virtual public A说明类 B 为虚基类
D: 建立派生类对象时,首先调用虚基类的构造函数
序号: 19 难度: 2 考查点:多态性与虚函数
4. (分值: 0.2 分) Sample 是一个类,执行下面语句后,调用 Sample 类的构造函数的次数
Sample a[2], *P = new Sample;
A: 0
B: 1
C: 2

D: 3
序号: 20 难度: 1 考查点:类与对象
5. (分值: 0.2 分)下列关于 C++流的描述中,错误的是
A: cout>>'A'表达式可输出字符 A
B: eof()函数可以检测是否到达文件尾
C: 对磁盘文件进行流操作时,必须包含头文件 fstream
D:
ios_base::out 模式打开的文件不存在时,将自动建立一个新文件
序号: 26 难度: 1 考查点:输入输出流
6. (分值: 0.2 分)下列字符串中可以用作 C++标识符的是
A: 2009var
B: goto
C: test-2009

D: _123
序号: 32 难度: 1 考查点: C++基础知识
7. (分值: 0.2 分)有如下类定义:
class XX
{
int xdata;
public:
XX(int n=0) : xdata(n){}
};
class YY : public XX
{
int ydata;
public:
YY(int m=0, int n=0) : XX(m), ydata(n){}
};
YY
类的对象包含的数据成员的个数是( )
A: 1
B: 2
C: 3
D: 4

序号: 35 难度: 1 考查点:类与对象
8. (分值: 0.2 分)下列关于运算符函数的描述中,错误的是( )
A: 运算符函数的名称总是以 operator 为前缀
B: 运算符函数的参数可以是对象
C: 运算符函数只能定义为类的成员函数
D: 在表达式中使用重载的运算符相当于调用运算符重载函数
序号: 36 难度: 2 考查点:重载
9. (分值: 0.2 分)有如下程序:
#include<iostream>
using namespace std;
class AA
{
int k;
protected:
int n;
void setK(int k){ this->k=k; }
public:
void setN(int n){ this->n=n; }
};
class BB: public AA
{ /*
类体略*/ };
int main( )
{
BB x;
x.n=l; //1#
x.setN(2); //2#
x.k=3; //3#
x.setK(4); //4#
return 0;
}

在标注号码的四条语句中正确的是( )
A: 1
B: 2
C: 3
D: 4

序号: 59 难度: 1 考查点:类与对象
10. (分值: 0.2 分)已知表达式++a 中的++是作为成员函数重载的运算符,则与++a
等效的运算符函数调用形式为
A: .operator++(1)
B: operator++(a)
C: operator++(a,1)

D: a.operator++()
序号: 61 难度: 1 考查点:重载
11. (分值: 0.2 分)建立一个类对象时,系统自动调用
A: 析构函数
B: 构造函数
C: 静态函数
D: 友元函数
序号: 66 难度: 1 考查点:类与对象
12. (分值: 0.2 分)通过派生类的对象可直接访问其
A: 公有继承基类的公有成员
B: 公有继承基类的私有成员
C: 私有继承基的公有成员
D: 私有继承基类的私有成员
序号: 67 难度: 1 考查点:继承与派生
13. (分值: 0.2 分)运算符重载时不需要保持的性质是
A: 操作数个数
B: 操作数类型
C: 优先级
D: 结合性
序号: 75 难度: 1 考查点:重载
14. (分值: 0.2 分)下列字符串常量中,错误的表示是( )
A: "\"Yes\" or\"No\" "
B: "abcd\n"

C: ABC
D: "\tOK!"
序号: 106 难度: 1 考查点: C++基础知识
15. (分值: 0.2 分)定义变量 int a=6,则 a++的值是__________
A: 7
B: 6
C: 5
D: 4

序号: 108 难度: 1 考查点: C++基础知识
16. (分值: 0.2 分)下列常量中不能作为 c++常量的是__________
A: 0382
B: 0xB4
C: .5e-2
D: 123

序号: 110 难度: 1 考查点: C++基础知识
17. (分值: 0.2 分)定义整型变量 x,y,z 并赋初始值 6 的正确语句是__________
A: int x=y=z=6;
B: int x=6,y=6,z=6;
C: x=y=z=6;
D: int x,y,z=6;

序号: 113 难度: 1 考查点: C++基础知识
18. (分值: 0.2 分)关于 C++ c 语言的描述中,错误的是__________
A: C 语言是 C++的一个子集
B: C 语言和 C++是兼容的
C: C++ C 语言进行了一些改进
D: C 语言和 C++都是面向对象的
序号: 116 难度: 1 考查点: C++基础知识
19. (分值: 0.2 分)以下对派生类叙述不正确的是__________
A: 一个派生类可以作另一个派生类的基类
B: 一个派生类可以有多个基类
C: 具有继承关系时,基类成员在派生类中的访问权限不变
D: 派生类的构造函数与基类的构造函数有成员初始化参数传递关系
序号: 117 难度: 1 考查点:继承与派生
20. (分值: 0.2 分)一个类的友元函数能够访问该类的__________
A: 私有成员
B: 保护成员
C: 公有成员
D: 所有成员
序号: 119 难度: 1 考查点:类与对象
21. (分值: 0.2 分)有以下类定义:

class A

{

public:

int x;

};

B是类 A 的派生类,且 b B 类对象,若要求正确执行以下语句: b.x=5; B A
的继承方式是( )。

A: public
B: private
C: protected
D:
都不对
序号: 120 难度: 1 考查点:继承与派生
22. (分值: 0.2 分) C++中的模块包括__________
A: 对象模块和函数模块
B: 对象模块和类模块
C: 函数模块和类模块
D: 对象模块和变量模块
序号: 121 难度: 1 考查点:类与对象
23. (分值: 0.2 分)下列有关类的说法,不正确的是__________
A: 类是一种用户自定义的数据类型
B: 只有类中的成员函数或类的友元函数才能存取类中的私有数据
C: 在类中,如果不作特别说明,所有的数据成员均为私有数据成员
D: 在类中,如果不作特别说明,所有的成员均为公有成员
序号: 122 难度: 1 考查点:类与对象
24. (分值: 0.2 分)结构化程序由三种基本结构组成,不包括__________
A: 顺序结构
B: 选择结构
C: 控制结构
D: 循环结构
序号: 123 难度: 1 考查点: C++基础知识
25. (分值: 0.2 分)下列关于构造函数说法不正确的是__________
A: 构造函数必须与类同名
B: 构造函数可以省略不写
C: 构造函数必须有返回值
D: 在构造函数中可以对类中的成员进行初始化
序号: 127 难度: 1 考查点:类与对象
26. (分值: 0.2 分)用 c++语言编写的代码程序__________
A: 可立即执行
B: 是一个源程序
C: 经过编译即可执行
D: 经过解释才能执行
序号: 129 难度: 1 考查点: C++基础知识
27. (分值: 0.2 分)下列关于 C++语言类的描述中错误的是__________
A: 类用于描述事物的属性和对事物的操作
B: 类与类之间通过封装而具有明确的独立性
C: 类与类之间必须是平等的关系,而不能组成层次结构
D: 类与类之间可以通过一些方法进行通信和联络
序号: 130 难度: 1 考查点:类与对象
28. (分值: 0.2 分)在面向对象程序设计中,实现信息隐蔽是靠__________
A: 对象的继承
B: 对象的封装
C: 对象的分类
D: 对象的多态
序号: 132 难度: 1 考查点:类与对象
29. (分值: 0.2 分)在 C++语言中.表示一条语句结束的标号是__________
A:  #

B:  ;

C:  }

D:  //

序号: 138 难度: 1 考查点: C++基础知识
30. (分值: 0.2 分)下面 4 个选项中, )是用来声明虚函数的。
A: virtual
B: public
C: using
D: false

序号: 141 难度: 1 考查点:多态性与虚函数
31. (分值: 0.2 分)如果一个类至少有一个纯虚函数,那么就称该类为( )。
A: 抽象类
B: 虚函数
C: 派生类
D: 其他都不对
序号: 143 难度: 1 考查点:多态性与虚函数
32. (分值: 0.2 分) C++类体系中,不能被派生类继承的有( )。
A: 构造函数
B: 虚函数
C: 静态成员函数
D: 赋值操作函数
序号: 144 难度: 1 考查点:多态性与虚函数
33. (分值: 0.2 分)下列虚基类的声明中,正确的是( )。
A: class virtual B:public A
B: virtual class B:public A
C: class B:public A virtual

D: class B: virtual public A
序号: 145 难度: 1 考查点:多态性与虚函数
34. (分值: 0.2 分)以下关于派生机制的描述中,不正确的是
A: 派生类不仅可以继承基类的成员,也可以添加自己的成员
B: 设置 protected 成员是为派生类访问基类成员之用
C: 采用不同的继承方式,将限制派生类对基类成员的访问
D: 采用私有继承,派生类只能得到基类的公有成员
序号: 147 难度: 1 考查点:继承与派生
35. (分值: 0.2 分)关于虚函数的描述中, )是正确的。
A: 虚函数是一个静态成员函数
B: 虚函数是一个非成员函数
C: 虚函数既可以在函数说明时定义,也可以在函数实现时定义
D: 派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型
序号: 148 难度: 1 考查点:多态性与虚函数
36. (分值: 0.2 分)有关类的多态性不正确的说法是_________
A: 同名函数成员可有不同的参数和类型
B: 同一个操作符可表示不同的处理
C: 同类对象的类定义
D: 模板编程
序号: 163 难度: 1 考查点:类与对象
37. (分值: 0.2 分)有语句定义char a[16];如果从键盘输入一个含空格的字串,可
用语句________
A: cin>>a;
B: cin>>a[0];

C: cin.get(a,16) ;
D: cin.get(a[0],16);
序号: 166 难度: 1 考查点:输入输出流
38. (分值: 0.2 分)有关类与对象的说法不正确的是______
A: 类是同类对象的定义
B: 对象是类的具体化实例
C: 类包含对象的具体属性值
D: 类包含同类对象的属性名
序号: 168 难度: 1 考查点:类与对象
39. (分值: 0.2 分)下列关于 c++源程序正确的说法是
A: 每行只能写一个语句
B: 每条语句(包括预处理命令)必须以分号结束
C: 注释语句会生成机器码
D: 最好向右缩进表达程序的层次结构
序号: 183 难度: 1 考查点: C++基础知识
40. (分值: 0.2 分)当要用 I/O 流操作文件时,需要包含________文件。
A: iso.h
B: fstream.h
C: iostream.h
D: cmath

序号: 197 难度: 1 考查点:输入输出流
41. (分值: 0.2 分)当要建立一个文件,并从其中读数据和向其中写数据时,应该建立下
面哪种流类的对象_________
A: ifstream
B: ofstream

C: fstream
D: ios
序号: 199 难度: 1 考查点:输入输出流
42. (分值: 0.2 分) cin I/O 流库预定义的( )
A:
B: 对象
C: 包含文件
D: 常量
序号: 201 难度: 1 考查点:输入输出流
43. (分值: 0.2 分)下面有关类与对象的说法中,错误的是________
A: 对象是类的实例
B: 一个对象只能属于一个具体的类
C: 一个类只能有一个对象
D: 类和对象的关系与数据类型和变量的关系相似
序号: 202 难度: 1 考查点:类与对象
44. (分值: 0.2 分)下面有关重载的说法中,错误的是 __________
A: 函数重载要求同名函数在参数个数或参数类型上不同
B: 运算符重载是用同一个运算符针对不同类型数据进行不同的运算操作
C: 所有的运算符都可以重载
D: 运算符重载函数通常是类的成员函数和友元函数
序号: 203 难度: 1 考查点:重载
45. (分值: 0.2 分)关于源程序中注释部分的说法, ___________是正确的。
A: 注释参加编译,出现在目标程序中
B: 注释参加编译,但不出现在目标程序中
C: 注释不参加编译,但出现在目标程序中
D: 注释不参加编译,也不出现在目标程序中
序号: 218 难度: 1 考查点: C++基础知识
46. (分值: 0.2 分)编译程序的功能是( )
A: 将汇编语言程序转换为目标程序
B: 将汇编语言程序转换为高级语言程序
C: 将高级语言程序转换为目标程序
D: 将高级语言程序转换为汇编语言程序
序号: 235 难度: 1 考查点: C++基础知识
47. (分值: 0.2 分) 类的概念是( )
A: 对象的抽象。
B: 同一类记录的集合。
C: 同一类数据的集合。
D: 所有对象的集合。
序号: 240 难度: 1 考查点:类与对象
48. (分值: 0.2 分) C++源程序文件的扩展名为
A: .CPP
B: .C
C: .DLL
D: .EXE

序号: 241 难度: 1 考查点: C++基础知识
49. (分值: 0.2 分)以下关于文件操作的叙述中,不正确的是( )。
A: 打开文件的目的是使文件对象与磁盘文件建立联系
B: 文件读写过程中,程序将直接与磁盘文件进行数据交换
C: 关闭文件的目的之一是保证将输出的数据写入硬盘文件
D: 关闭文件的目的之一是释放内存中的文件对象
序号: 243 难度: 1 考查点:输入输出流
50. (分值: 0.2 分)若有语句
char str[20]; cin>>str;
当输入为:
This is a C++ program
时, str 所得结果是(
A: This is a C++ program
B: This
C: This is
D: This is a C

序号: 244 难度: 1 考查点:输入输出流
51. (分值: 0.2 分)下列函数中, )是对文件进行写操作的。
A: read()
B: seekg()
C: get()

D: put()
序号: 245 难度: 1 考查点:输入输出流
52. (分值: 0.2 分) cout I/O 流库预定义的( )。
A:
B: 对象
C: 包含文件
D: 常量
序号: 247 难度: 1 考查点:输入输出流
53. (分值: 0.2 分)下列关于输入流类成员函数 getline( )的描述中,错误的是( )。
A: 该函数是用来读取键盘输入的字符串的。
B: 该函数读取的字符串长度是受限制的。
C: 该函数读取字符串时,遇到终止符便停止。
D: 该函数读取字符串时,可以包含空格。
序号: 249 难度: 1 考查点:输入输出流
54. (分值: 0.2 分)语句 ofstream f”SALARY.DAT”,ios::app  )的功能是建立流对象 f
并试图打开文件 SALARY.DAT f 关联,而且( )。
A: 若文件存在,将其置为空文件;若文件不存在,打开失败
B: 若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件
C: 若文件存在,将文件指针定位于文件首;若文件不存在,打开失败
D: 若文件存在,打开失败;若文件不存在,建立一个新文件
序号: 250 难度: 1 考查点:输入输出流
55. (分值: 0.2 分) C++流中重载了运算符<<,它是一个( )。
A: 用于输出操作的成员函数
B: 用于输入操作的非成员函数
C: 用于输入操作的成员函数
D: 用于输出操作的非成员函数
序号: 254 难度: 1 考查点:输入输出流
56. (分值: 0.2 分)下列输出字符 d 的方法中, )是错误的。
A: cout<<put('d');
B: cout<<'d';
C: cout.put('d');
D: char a='d'; cout<<a;

序号: 257 难度: 1 考查点:输入输出流
57. (分值: 0.2 分)在 ios 中提供控制的标志中, )是转换为十六进制形成的标
志位。
A: hex
B: oct
C: dec
D: left

序号: 259 难度: 1 考查点:输入输出流
58. (分值: 0.2 分)使用 setw()对数据进行格式输出时,应包含( 文件。
A: iostream.h
B: fstream.h

C: iomanip.h
D: stdlib.h
序号: 261 难度: 1 考查点:输入输出流
59. (分值: 0.2 分)设有以下类和对象的定义:

class A

{

public:

int k;

};

A x1,x2,*p1,*p2;

则下面针对成员变量 k 的引用,正确的是( )。

A: x1->k=1;
B: x2.k=2;
C: p1.k=3;
D: (*p2)->k=4;

序号: 262 难度: 1 考查点:类与对象
60. (分值: 0.2 分)设有以下类的定义:
class Ex
{ int x;
public:
void setx(int t=0);
};

若在类外定义成员函数 setx(),以下定义形式中正确的是( )。
A: void setx(int t) {R-}
B: void Ex::setx(int t) {R-}
C: Ex::void setx(int t) {R-}
D: void Ex::setx(){R-}

序号: 263 难度: 1 考查点:类与对象
61. (分值: 0.2 分)如果没有显式定义构造函数(包括复制构造函数), C++编译器就
)。
A: 出现编译错误
B: 没有构造函数
C: 必须显示定义
D: 隐式定义默认的构造函数
序号: 266 难度: 1 考查点:类与对象
62. (分值: 0.2 分)关于成员函数特征的下述描述中,错误的是( )。
A: 成员函数一定是内联函数
B: 成员函数可以重载
C: 成员函数可以设置参数的默认值
D: 成员函数可以是静态的
序号: 269 难度: 1 考查点:类与对象
63. (分值: 0.2 分)对类的构造函数和析构函数描述正确的是( )。
A: 构造函数可以重载,析构函数不能重载
B: 构造函数不能重载,析构函数可以重载
C: 构造函数和析构函数均可以重载
D: 构造函数和析构函数均不能重载
序号: 270 难度: 1 考查点:类与对象
64. (分值: 0.2 分)以下有关析构函数的叙述,不正确的是( )。
A: 在一个类只能定义一个析构函数
B: 析构函数和构造函数一样可以有形参
C: 析构函数不允许用返回值
D: 析构函数名前必须冠有符号~
序号: 271 难度: 1 考查点:类与对象
65. (分值: 0.2 分)下面关于友元函数描述正确的是( )。
A: 友元函数的实现必须在类的内部定义
B: 友元函数是类的成员
C:
友元函数破坏了类的封装性和隐藏性
D: 友元函数不能访问类的私有成员
序号: 272 难度: 1 考查点:类与对象
66. (分值: 0.2 分)下面对静态数据成员的描述中,正确的是( )。
A: 类的每一个对象都有自己的静态数据成员
B: 类的不同对象有不同的静态数据成员值
C: 静态数据成员不能通过类的对象调用
D: 静态数据成员是类的所有对象共享的数据
序号: 273 难度: 1 考查点:类与对象
67. (分值: 0.2 分)以下不是构造函数特征的是( )。
A: 构造函数的函数名与类名相同
B: 构造函数可以重载
C: 构造函数可以设置默认参数
D: 构造函数必须指定类型说明
序号: 274 难度: 1 考查点:类与对象
68. (分值: 0.2 分)有定义:

char a;

int b;

a+4/b 值的数据类型为( )

A: int
B: char
C: float
D: unsigned

序号: 327 难度: 1 考查点: C++基础知识
69. (分值: 0.2 分) _________不是 Vc++6.0 的开发过程。
A: 创建工程
B: 创建 c++源程序文件
C: 使用 exe 程序
D: 编译源程序
序号: 337 难度: 1 考查点: C++基础知识
70. (分值: 0.2 分) int 变量的字节长度为_______
A: 8
B: 2

C: 4
D: 10
序号: 345 难度: 1 考查点: C++基础知识
71. 0.2 :

class A

{

private:

int x;

protected:

int y;

public:

int z;

};

B 是类 A 的公有派生类,在类 B 中不能正确使用的语句是( )。

A: x=5;
B: y=6;
C: z=7;
D:
都不能
序号: 355 难度: 1 考查点:继承与派生
72. (分值: 0.2 分)下面关于多重继承的叙述,正确的是( )
A: C++不支持多重继承
B: 多重继承是指从多层基类中派生出的子类
C: 多重继承中派生类成员的访问控制规则与单一继承规则不相同
D: 多重继承中可以通过虚基类防止二义性问题
序号: 359 难度: 1 考查点:继承与派生
73. (分值: 0.2 分)下列描述中错误的是( )
A: 继承分为多重继承和单继承
B: 对象间通信靠传递消息实现
C: 在外面看不到对象的内部特征是基于对象的"模块独立性好"这个特征
D: 类是具有共同属性、共同方法的对象的集合
序号: 361 难度: 1 考查点:继承与派生
74. (分值: 0.2 分)派生类由 public 方式继承基类成员,则( )
A: 基类中的私有成员可以被派生类的成员函数访问
B: 基类中的保护成员不能被派生类的成员函数访问
C: 基类中的公有成员可以被派生类的成员函数访问
D: 都不正确
序号: 362 难度: 1 考查点:继承与派生
75. (分值: 0.2 分)下列特征中不是面向对象方法的主要特征的是( )
A: 多态性
B: 继承
C: 封装性
D: 模块化
序号: 364 难度: 1 考查点:多态性与虚函数
76. (分值: 0.2 分)有如下的运算符重载函数定义:
double operator +(int i , int k)
{ return double(i+k); }

但定义有错误,对这个错误最准确的描述是( )
A: +只能作为成员函数重载,而这里的+是作为非成员函数重载的
B: 两个 int 型参数的和也应该是 int 型,而这里将+的返回类型声明为 double
C:
没有将运算符重载函数声明为某个类的友元
D: C++已经提供了求两个 int 型数据之和的运算符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鸭文库

你的鼓励是我前进的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值