2018年10月自考04737C++程序设计试题及答案含评分标准 下载本文

2018年10月高等教育自学考试全国统一命题考试

C++程序设计 试卷

(课程代码04737)

本试卷共l0页,满分l00分,考试时间l50分钟。 考生答题注意事项:

1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸。 2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。 3.第二部分为非选择题。必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。 4.合理安排答题空间,超出答题区域无效。

第一部分 选择题

一、单项选择题:本大题共20小题,每小题l分,共20分。在每小题列出的备选项审只有 一项是最符合题目要求的,请将其选出。

2.设X和y均为bool量,则x&&y曲为真的条件是

A.它们均为真 B.其中一个为真 C.它们均为假 D.其中一个为假 3.拷贝构造函数应该是

A.不带参数的构造函数 B.带有一个参数的构造函数 C.带有两个参数的构造函数 D.缺省构造函数 4.以下说法中正确的是

A.C++程序总是从第一个定义的函数开始执行 B.C++程序总是从main函数开始执行 C. C++中函数必须有返回值 D.C++中函数名必须唯一

5.下列虚基类的声明中,正确的是

A.class virtual B:public A B.class B:virtual public A C.class B:public A virtual D.virtual class B:public A 6.下列哪个类型函数不适合声明为内联函数 A.函数体语句较多 B.函数体语句较少 C.函数执行时间较短 D.函数被频繁调用 7.以下类模板定义正确的为

A.template B.template C.template D.template 8.C++中要实现动态联编,调用虚函数时必须使用

A.基类指针 B.类名 C.派生类指针 D.对象名 9.下列对静态成员的描述中,不正确的是 · A.静态成员不属于对象,是类的共享成员 B.静态数据成员要在类外定义和初始化

C.调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针 D.非静态成员函数也可以操作静态数据成员 10.下列对派生类的描述中,错误的是

1

A.一个派生类可以作为另一个派生类的基类 B.派生类至少有一个基类

C.派生类的成员除了它自己的成员外,还包含了它的基类的成员 D.派生类中继承的基类成员的访问权限到派生类保持不变 11.下列函数原型声明语句中,错误的是

A.int f(void); B.void f(hat); C.int f(a); D.void f(double a); 12.如果有洒t型变量a,则定义指向变量a的指针P正确的写法是

A.int P=&a B.int * P=&a C.int&p=*a D.int*P = a

13.假定指针变量P定义为“int冰P=flew int(100);”,要释放P所指向盼动态内存,应使用语句

A.delete p; B.delete* p; C.delete&p; D.delete[]p;

14.假定A为一个类,则执行“A a[3],b(3);”语句时调用该类构造函数的次数为 A.3 B.4 C.5 D.9

15.C++中定义标准输入输出的痒为

A.stdio B.math C。iostream ;D.stdlib

16.允许用户为类定义一种模式,使碍类中的某些数据成员及某些成员函数的返函值能 取任意类型,这是l个

A.类模板 B.模板类 C.函数模板 D.模板函数 17.下列关于运算符重载的叙述中,正确的是 A.通过运算符重载,可以定义新的运算符 B. 有的运算符只能作为成员函数重载

C.若重载运算符+,则相应的运算符函数名是+ D.重载一个二元运算符时,必须声明两个形参

18.当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式 为

A.ios::out|ios::binary B.ios::in| ios::binary C.ios::out D.ios::in 19.有关函数模板和模板函数说法错误的是

A.函数模板只是对函数的描述,编译器不为其产生任何执行代码,所以它不是一个 实实在在的函数

B.模板函数是实实在在的函数,它由编译系统在遇到具体函数调用时所生成,并调 用执行

C.函数模板需要实例化为模板函数后才能执行

D.当函数模板和一般函数同名时,系统先去匹配函数模板,将其实例化后进行调用 20.对类的构造函数和析构函数描述正确的是 ” A.构造函数可以重载,析构函数不能重载 B.构造函数不能重载,析构函数可以重载 C.构造函数可以重载,析构函数也可以重载 D.构造函数不能重载,析构函数也不能重载

第二部分 非选择题

二、填空题:本大题共20空,每空l分。共20分。

21.将int类型指针p转换为char类型指针,则强制转换语句为____________。 22.当一个成员函数被调用时,该成员函数的____________指向调用它的对象。 23.在____________继承的情况下,基类数据成员在派生类中的访问权限保持不变。

2

24. Windows环境下,由C++源程序文件编译而成的目标文件的扩展名是____________。 25.具有至少一个纯虚函数的类是____________。

26. C++中字符串是通过字符数组来表示的,每一个字符串都有一个结尾字符 ____________.

27.C++中定义重载函数时,应至少使重载函数的参数个数或____________不同。 28.假定x=15,则表达式X<=107 20:30的值为____________。

29.不同对象可以调用相同名称的函数,但执行完全不同行为的现象称为____________。 30.假设类F的对象f是类A的成员对象,则“A a”语句执行时,先调用类____________的构造函数。

31.设\,b=4,C=5;\,表达式“(a+b)>c&&b==c”的值是____________。 32.描述命题“A小于8或小于C”的表达式为____________。 33.C++中字符串\\n\t\的长度为____________。

34.C++类中构造函数的个数最多是无限个,析构函数的个数最多是____________个。 35.C++的静态数据成员需要在____________进行初始化,可以被该类的所有对象共享。 36.C++中一般的程序都要有两条语句,包含头文件“#include”语句和使用 命名空间“____________”语句。

37.用new申请某一个类的动态对象数组时,在该类中必须能够匹配到没有形参的或缺 省参数的____________,否则应用程序会产生一个编译错误。 38.C++中解决命名冲突的机制是____________。

39.拷贝构造函数使____________作为参数初始化创建中的对象。

40.假如一个类的名称为F,使用这个类的一个对象初始化该类的另一个对象时,可以调 用____________构造函数来完成此功能。

三、改错题:本大题共5小题,每小题4分,共20分。以下程序中各有一处错误,请抄写有错误的语句并改正。

3