2018年4月自考04737C++程序设计试题及答案含解析_第1页
2018年4月自考04737C++程序设计试题及答案含解析_第2页
2018年4月自考04737C++程序设计试题及答案含解析_第3页
2018年4月自考04737C++程序设计试题及答案含解析_第4页
2018年4月自考04737C++程序设计试题及答案含解析_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

++程序设计年月真题

04737C20184

1、【单选题】下列关于C++标识符的命名不合法的是

Pad

name_1

A:

#bc

B:

_a12

C:

答D:案:C

解析:构成标识符的符号可以是大小写字母、下划线和数字,且数字不能打头。

2、【单选题】若有以下类型标识符定义:intx=2;charw='a';float

y=23.45f;doublez=45.6789;则表达式w*x+y-z的结果类型是

float

char

A:

int

B:

double

C:

答D:案:D

解析:表达式的运算结果的数据类型取决于参与运算的操作数的类型及其运算符的类型,

表达式w*x+y-z是基本算术运算,操作数z的数据类型是double型,所以运算结果的数

据类型就是double型。

3、【单选题】局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可

以用下列哪一项提供对全局变量的访问

作用域运算符

指针运算符

A:

提取运算符

B:

插入运算符

C:

答D:案:A

解析:在有同名全局变量和局部变量的情形时,局部变量可以隐藏全局变量,但可以作用

域运算符::对全局变量进行访问。

4、【单选题】下列关于delete运算符的描述中,错误的是

它必须用于new返回的指针

对一个指针可以使用多次该运算符

A:

它也适用于空指针

B:

指针名前只用一对方括号,不管所删除数组的维数

C:

答D:案:C

解析:new与delete是配对使用的,delete必须用于new返回的指针。删除一个指针p

(deletep;)实际意思是删除了p所指的目标(变量或对象等),释放了它所占的堆空

间,而不是删除p本身(指针p本身并没有撤销,它自己仍然存在,该指针所占内存空间

并未释放),释放堆空间后,p成了空指针。delete不能用于空指针,空指针说明已经被

释放了。

5、【单选题】在C++中,类与类之间的继承关系具有

自反性

对称性

A:

传递性

B:

反对称性

C:

答D:案:C

解析:在C++中,类与类之间的继承关系具有传递性。比如B继承了A,C继承了B,那么

C自然也是继承了A里面的东西。

6、【单选题】对类中声明的变量,下列描述中正确的是

属于全局变量

属于该类,某些情况下也可被该类不同实例所共享

A:

只属于该类

B:

任何情况下都可被该类所有实例共享

C:

答D:案:B

解析:类中声明的变量属于该类,某些情况下也可被该类不同实例所共享。

7、【单选题】在类定义的外部,可以被访问的成员有

所有类成员

private或protected的类成员

A:

public的类成员

B:

public或private的类成员

C:

答D:案:C

解析:在类定义的外部,可以被访问的成员只能是public的类成员。

8、【单选题】已知:intm=10;下列表示引用的方法中,正确的是

int&z;

int&t=1;

A:

int&x=m;

B:

float&f=&m;

C:

答D:案:C

解析:引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一

样。引用的声明方法:类型标识符&引用名=目标变量名。

9、【单选题】对于int*pa[5];的描述中,正确的是

pa是一个指向数组的指针,所指向的数组是5个int型元素

pa是一个指向某数组中第5个元素的指针,该元素是int型变量

A:

pa[5]表示数组的第5个元素的值,是int型的值

B:

pa是一个具有5个元素的指针数组,每个元素是一个int型指针

C:

答D:案:D

解析:int*pa[5]中pa是一个具有5个元素的指针数组,每个元素是一个int型指针。

int(*pa)[5]中pa是一个指向数组的指针,所指向的数组是5个int型元素。

10、【单选题】下列关于构造函数的描述中,错误的是

构造函数可以设置默认参数

构造函数在定义类对象时自动执行

A:

构造函数可以是内联函数

B:

构造函数不可以重载

C:

答D:案:D

解析:构造函数主要用来在创建对象时初始化对象,即为对象成员变量赋初始值。一个类

可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们即构造函数

的重载。构造函数的命名必须和类名完全相同。构造函数不能被直接调用,必须通过new

运算符在创建对象时才会自动调用;构造函数可以是内联函数。

11、【单选题】关于成员函数特征的描述中,错误的是

成员函数一定是内联函数

成员函数可以重载

A:

B:

成员函数可以设置参数的默认值

成员函数可以是静态的

C:

答D:案:A

解析:类的成员函数的原型要写在类体中,原型说明了函数的参数表和返回值类型。而函

数的定义一般在类外面,也可以直接在类内部定义。前者与普通函数不同的是,实现成员

函数时要指明类的名称,具体形式为:返回值类型类名::函数成员名(参数表){函数

体};而后者一般为一些短小的函数(5行以内),也就是内联函数。

12、【单选题】下列不是函数重载所要求的条件是

函数名相同

参数个数不同

A:

参数类型不同

B:

函数返回值类型不同

C:

答D:案:D

解析:函数重载的函数名必须相同,两个重载函数必须在下列一个或两个方面有所区别:

(1)函数的参数个数不同;(2)函数的参数类型不同或者参数类型顺序不同。

13、【单选题】下列有关模板的描述中,错误的是

模板把数据类型作为一个设计参数,称为参数化程序设计

使用时,模板参数与函数参数相同,是按位置而不是名称对应的

A:

模板实例化参数类型包括数据类型和值

B:

类模板与模板类是同一个概念

C:

答D:案:D

解析:一个类模板(类生成类)允许用户为类定义个一种模式,使得类中的某些数据成员、

默认成员函数的参数,某些成员函数的返回值,能够取任意类型(包括系统预定义的和用

户自定义的)。如果一个类中的数据成员的数据类型不能确定,或者是某个成员函数的参

数或返回值的类型不能确定,就必须将此类声明为模板,它的存在不是代表一个具体的、

实际的类,而是代表一类类。模板类是类模板实例化后的一个产物。

14、【单选题】用new运算符创建一维数组的正确形式是

int*p=newa[10];

float*p=newfloat[10];

A:

int*p=newfloat[10];

B:

int*p=newint[5]={1,2,3,4,5,6};

C:

D:

答案:B

解析:float*p=newfloat[10];的含义是:开辟一个长度为10的float型数组的空间,

并把首地址赋予指针变量p,而p是指向float型数据的指针。选项D中对数组的初始化

时非法的。

15、【单选题】以下关于this指针的叙述中,正确的是

任何与类相关的函数都有this指针

类的成员函数都有this指针

A:

类的友元函数都有this指针

B:

类的非静态成员函数才有this指针

C:

答D:案:D

解析:this指针是隐藏的,可以使用该指针来访问调用对象中的数据。静态成员函数没有

this指针,类的非静态成员函数才有this指针。

16、【单选题】如果有intx,*p;floaty,*q;则下面操作中,正确的是

p=x

p=q

A:

p=&x

B:

p=&y

C:

答D:案:C

解析:选项C,指针变量p指向整型变量x,正确。

17、【单选题】下列关于运算符重载的表述中,正确的是

C++已有的任何运算符都可以重载

运算符函数的返回类型不能声明为基本数据类型

A:

在类型转换符函数的定义中不需要声明返回类型

B:

可以通过运算符重载来创建C++中原来没有的运算符

C:

答D:案:C

解析:运算符重载时要遵循以下规则:(1)除了类属关系运算符“.”、成员指针运算符

“.*”、作用域运算符“::”、sizeof运算符和三目运算符“?:”以外,C++中的所有运

算符都可以重载。(2)重载运算符限制在C++语言中已有的运算符范围内的允许重载的运

算符之中,不能创建新的运算符。(3)重载之后的运算符不能改变运算符的优先级和结

合性,也不能改变运算符操作数的个数及语法结构。

18、【单选题】友元运算符@obj被C++编译器解释为

operator@(obj)

operator@(obj,0)

A:

obj.operator@()

B:

obj.operator@(0)

C:

答D:案:A

解析:单目运算符的情况:如友元运算符@obj被C++编译器解释为operator@(obj)。双目

运算符的情况:如友元运算符obj1>obj2被C++编译器解释为operator>(obj1,obj2)

19、【单选题】考虑函数原型voidtest(inta,intb=7,charch='*'),下面的函数调用

中,属于不合法调用的是

test(5)

test(5,8)

A:

test(6,'#')

B:

test(0,0,'*')

C:

答D:案:C

解析:题中函数声明带有默认参数,那么在C)选项的调用中,将会把字符型实参#赋值给

整型形参b,这不符合参数传递规则。

20、【单选题】使用setw()时需要包含头文件

iostream.h

fstream.h

A:

iomanip.h

B:

stdlib.h

C:

答D:案:C

解析:使用setw()时需要包含头文件iomanip.h。

21、【问答题】面向对象程序设计不仅能进行功能抽象,而且能进行_________抽象。

答案:数据

22、【问答题】C++提供的预处理语句有3种,文件包含、条件编译和__________。

答案:宏定义

23、【问答题】在类体外面定义成员函数时,必须用关键字_________重写类模板声明。

答案:template

24、【问答题】输入流istream用来处理标准输入的一个对象的是_________。

答案:cin

25、【问答题】编译时的多态性通过_________函数实现。

答案:重载

26、【问答题】假定x=5,y=6,则表达式x++*++y的值为_________。

答案:35

27、【问答题】在C++程序中,对刚创建的对象进行初始化的工作由构造函数来完成;而对象

被删除前的一些清理工作则是由_________函数来完成的。

答案:析构

28、【问答题】在用class定义一个类时,数据成员和成员函数的默认访问权限是

_________。

答案:private

29、【问答题】不同对象可以调用相同名称的函数,但执行完全不同行为的现象称为

_________。

答案:多态性

30、【问答题】用new申请某一个类的动态对象数组时,在该类中必须能够匹配到没有形参

或_________的构造函数,否则应用程序会产生一个编译错误。

答案:缺省参数

31、【问答题】在C++中,变量的三个基本要素是指:变量名、变量类型和。_________

答案:变量值

32、【问答题】若有定义inta=3;则执行完语句a+=a-=a*a;之后,a的值为

_________。

答案:-12

33、【问答题】如果要把Student类的返回值为void的成员函数score(),声明为类

Teacher的友元函数,则应在类Teacher的定义中加入语句_________。

答案:friendvoidStudent::score();

34、【问答题】假定x是一个逻辑量,则x&&0的值为_________。

答案:0

35、【问答题】构造函数、析构函数和友元函数中,不是该类成员的是_________。

答案:友元函数

36、【问答题】使用对象的引用来初始化创建中的对象的函数是_________。

答案:拷贝构造函数

37、【问答题】定义类的动态对象数组时,系统只能够自动调用该类的_________构造函数

对其进行初始化。

答案:无参

38、【问答题】复制构造函数使用_________作为形式参数。

答案:对象的引用

39、【问答题】当编译系统编译含有虚函数的类时,将为它建立一个虛函数表,表中的每一

个元素都指向一个_________。

答案:虚函数的地址

40、【问答题】在函数体之前加_________关键字可以防止覆盖函数改变数据成员的值。

答案:const

41、【问答题】

答案:intx=7;y=9;错,y没有指定类型。

42、【问答题】

答案:f.set(1,2);f.show();错,f是个类不能直接被调用。

43、【问答题】

答案:constint*p=a;错,给指针变量赋值时需要加上&。

44、【问答题】

答案:inta[6]={1,2,3,4,5,6,7};错,初始化数组元素的个数超出数组长度。

45、【问答题】

答案:voidperson(){x=1;}错,构造函数不应有void返回类型。

46、【问答题】

答案:#includei=0;i<n-1;i++

47、【问答题】

答案:第一空

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论