C++期末试卷(超全经典常见题型!!!末尾有答案!!)

06-21 1401阅读

期末卷题型:

C++期末试卷(超全经典常见题型!!!末尾有答案!!)
(图片来源网络,侵删)

一、单项选择题(本大题共 10 小题,每小题 1.5 分,共 15 分)

二、填空题(本大题共 5 小题,每小题 2 分,共 10 分)

三、计算题(本大题共 3 小题,每小题 5 分,共 15 分) 以下题目需要写出解题过程或步骤,只有结果者,不得分!

四、编程题(本大题共 5 小题,第 1-3 题每小题 10 分,第 4-5 题每小题15 分,共60 分)

复习范围:个别题目会有些许变通,以下供参考!

四、编程题:

P62 3.6 三角形面积

P80 2 求圆周长面积

P80 3 华氏转摄氏

P80 10 分段函数

P81 21 数列求和

P82 24 打印图形P229 6 长方体体积

P384 4 printArea

三、计算题: P38 5、P80 8 求表达式的值

二、填空题:

1、C 语言中 scanf 命令在 C++中改用:

2、在类内部定义的公有(public)数据可以在类外进行存取,但_____________和私有(private) 数据不能在类外直接存取。

3、如果要把类 B 的成员函数 void fun( )说明为类 A 的友元函数,则应在类A 中加入语句。

4、由 const 修饰的对象称为_____________。

5、为了实现运行时的多态性,派生类需重新定义基类中的_____________。

6、若使用标准输出流把整型变量 a 的值输出到屏幕上,实现此操作的C++语句是_____________ 。

7、C++中使用_____________关键字说明函数为内联函数。

8、对于类 Point 而言,其析构函数的定义原型为_____________。

9、从一个或多个以前定义的类产生新类的过程称为_____________。

10、C++的流类库预定义的与标准输出设备相联接的流是_____________。

11、假定类 AB 中有一个公用属性的静态数据成员 static int bb;在类外不通过对象名给该成员 bb 赋值为 10 的写法:

12、在 C++中,虚函数帮助实现了类的______________。

13、基类的公有成员在派生类中的访问权限由_____________决定。

14、如果通过同一个基类派生一系列的类,则将这些类总称为。

15、在 C++中有两种参数传递方式:传值和_____________。

16、C++程序必须有且只有一个主函数,其函数名为_____________。

17、类和其它数据类型不同的是,组成这种类型的不仅可以有数据,还可以有对数据进行操作的_____________。

18、对象成员构造函数的调用顺序取决于这些对象在类中说明的顺序,与它们在成员初始化列表中给出的顺序_____________。

19、C++中用于动态创建对象,并返回该对象的指针的关键字是_____________。

20、如果 A 是从 B 继承而来,则 A 叫_____________类,B 叫_____________类。

1、cin

2、保护(protected)数据

3、friend void B::fun()

4、常对象

5、虚函数

6、cout

8、Point::~Point( )或~Point()

9、派生

10、cout

11、int_AB::b=10

12. 多态性

13.访问控制方式或继承方式

14.继承

15.传址或传引用

16.main

17.函数或成员函数

18.无关

19.new

20.子 父

一、单选题:

1、C++源程序文件扩展名为( )。

A、.cpp

B、.h

C、.1ib

D、.obj

2、在 C++中使用流进行输入输出,其中专用于从键盘进行输入的流是()。

A、cerr

B、cin

C、cout

D、cfile

3、包含自定义头文件 file.h 的预处理指令是( )。

A、#define

B、#include file.h

C、#define file.h

D、#include"file.h"

4、设存在整型变量 int x,则下列句与其它三项含义不同的是( )。

A、int* p=&x;

B、int& p=x;

C、int & p=x;

D、int &p=x;

5、在定义类成员时,为产生封装性,则需使用哪个关键字( )。

A、public

B、publish

C、protected

D、private

6、下列函数不能和函数 void print(char)构成重载的是( )。

A、int print(int);

B、void print(char,char);

C、int print(char);

D、void print(int,int);

7、内联函数的特点是( )。

A、减少代码量,加快访问速度

B、减少代码量,减缓访问速度

C、增加代码量,减缓访问速度

D、增加代码量,加快访问速度

8、类的私有成员可在何处被访问( )。

A、本类的成员函数中

B、本类及子类的成员函数中

C、通过对象名在任何位置

D、不可访问

9、类的构造函数在以下什么情况下会被自动调用( )。

A、定义成员函数时

B、定义对象时

C、定义数据成员时

D、定义友元函数时

10、下列关于析构函数描述正确的是( )。

A、可以重载

B、函数体中必须有 delete 语句

C、返回类型必须是 void 类型

D、不能指定返回类型

11、如果类 A 被声明成类 B 的友元,则( )。

A、类 A 的成员即类 B 的成员

B、类 B 的成员即类 A 的成员

C、类 A 的成员函数不得访问类 B 的成员

D、类 B 不一定是类 A 的友元

12、派生类的对象可以访问以下那种情况继承的基类成员( )。

A、私有继承的私有成员

B、公有继承的私有成员

C、私有继承的保护成员

D、公有继承的公有成员

13、关于类和对象不正确的说法是( )。

A、类是一种类型,它封装了数据和操作

B、对象是类的实例

C、一个类的对象只有一个

D、一个对象必属于某个类

14、下列有关构造函数的描述中,正确的是( )。

A、构造函数可以带有返回值

B、构造函数的名字与类名完全相同

C、构造函数必须带有参数

D、构造函数必须定义,不能缺省

15、类中能访问静态成员的函数是( )。

A、虚函数

B、静态成员函数

C、构造函数

D、析构函数

16、关于对象概念的描述中,说法错误的是( )。

A、对象就是 C 语言中的结构体

B、对象代表着正在创建的系统中的一个实体

C、对象是类的一个变量

D、对象之间的信息传递是通过消息进行的

17、下列有关重载函数的说法中正确的是( )。

A、重载函数必须具有不同的返回值类型

B、重载函数参数个数必须相同

C、重载函数必须有不同的形参列表

D、重载函数名可以不同

18、当一个类的某个函数被说明为 virtual 时,在该类的所有派生类中的同原型函数()。

A、都是虚函数

B、只有被重新说明时才是虚函数

C、都不是虚函数

D、只有被重新说明为 virtual 时才是虚函数

19、定义 A 是一个类,那么执行语句“A a, b(3),*p;”调用了( )次构造函数。

A、2

B、3

C、4

D、5

20、类模板的模板参数( )。

A、只可作为数据成员的类型

B、只可作为成员函数的返回类型

C、只可作为成员函数的参数类型

D、以上三者皆是

21、已知类中的一个成员函数说明为:void Set (X &a)其中,X &a 的含义是()。

A、指向类 X 的指针为 a

B、将 a 的地址赋给变量

C、a 是类 X 的对象引用,用来作为 Set( )的形参

D、变量 X 与 a 按位与作为函数 Set( )的形参

22、下面关于友元函数的描述中,正确的说法是( )。

A、友元函数是独立于当前类的外部函数

B、一个友元函数不能同时定义为两个类的友元函数

C、友元函数必须在类的外部定义

D、在外部定义友元函数时,必须加关键字 friend

23、一个函数功能不太复杂,但要求被频繁调用,选用( )。

A、内联函数

B、重载函数

C、递归函数

D、嵌套函数

24、在 C++中,下列关于参数默认值的描述中正确的是( )。

A、设置参数默认值时,应当全部设置

B、设置参数默认值后,调用函数不能再对参数赋值

C、设置参数默认值时,应当从右向左设置

D、只能在函数定义时设置参数默认值

25、指出下面非法的定义。( )

A、int I;

B、const int ic;

C、const int *pic;

D、int *const cpi;

26、下列静态数据成员的特性中,错误的是( )。

A、说明静态数据成员时,前边要加关键字 static

B、静态数据成员在类外进行初始化

C、引用静态数据成员时,要在静态数据成员名前加和作用域运算符

D、静态数据成员不是所有对象所共有的

27、为了满足运算符+的可交换性,必须将其重载为( )。

A、静态成员函数

B、友元函数

C、普通函数

D、成员函数

28、在类的继承与派生过程中,关于派生类不正确的说法是( )。

A、派生类可以继承基类的所有特性

B、派生类只能继承基类的部分特性

C、派生类可以重新定义已有的成员

D、派生类可以改变现有成员的属性

29、当定义派生类的对象时,调用构造函数的正确顺序是( )。

A、先调用基类的构造函数,再调用派生类的构造函数

B、先调用派生类的构造函数,再调用基类的构造函数

C、调用基类的构造函数和派生类的构造函数的顺序无法确定

D、调用基类的构造函数和派生类的构造函数是同时进行的

30、关于多重继承二义性的描述中,( )是错误的。

A、一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性

B、解决二义性最常用的方法是对成员名的限定

C、基类和派生类中出现同名函数,也存在二义性

D、一个派生类是从两个基类派生而来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性

31、下列关于虚函数的说法,正确的是( )。

A、虚函数是一个 static 类型的成员函数

B、虚函数是一个非成员函数

C、基类中采用 virtual 声明一个虚函数后,派生类中定义相同原型的函数时可以不加virtual 声明

D、派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型32、类模板的模板参数( )。

A、只可作为数据成员的类型

B、只可作为成员函数的返回类型

C、只可作为成员函数的参数类型

D、以上三者皆是

33、如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都须重复使用关键字( )。

A、const

B、static

C、void

D、class

34、关于提取和插入运算符,下列说法不正确的是( )。

A、可以重载为类的成员函数

B、应该重载为类的友元函数

C、提取运算符是从输入字符序列中提取数据

D、插入运算符是把输出数据插入到输出字符序列中

35、函数默认参数在函数原型中说明,默认参数必须放在参数序列的()

A、前部

B、中部

C、后部

D、两端

36、下列关于析构函数描述正确的是( )

A、可以重载

B、函数体中必须有 delete 语句

C、返回类型必须是 void 类型

D、不能指定返回类型

37、设有函数 T Sum(T x,T y){return x+y;},其中 T 为模板类型,则下列语句中对该函数错误的使用是( )

A、Sum(1,2);

B、Sum(3.0,2.2);

C、Sum(‘A’,‘C’);

D、Sum(“A”,“C”);

38、关于友元函数的描述中,错误的是( )

A、友元函数不是成员函数

B、友元函数只能访问类中私有成员

C、友元函数破坏隐藏性,尽量少用

D、友元函数说明在类体内,使用关键字 friend

39、拷贝构造函数的参数是( )

A、某个对象名

B、某个对象的成员名

C、某个对象的引用名

D、某个对象的指针名

40、当一个类的某个函数被说明为 virtual 时,在该类的所有派生类中的同原型函数()

A、都是虚函数

B、只有被重新说明时才是虚函数

C、都不是虚函数

D、只有被重新说明为 virtual 时才是虚函数

ABDAD CDABD DDCBB ACAAD CAACD DBAAC CDDAC DDBCA

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]