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

下载本文档

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

文档简介

++程序设计年月真题

04737C20174

1、【单选题】以下说法中不正确的是()。

C++程序中必须有一个主函数main(),而且是从main()的第一条语句开始执行

非主函数都是在执行主函数时,通过函数调用或嵌套调用而得以执行的

A:

主函数可以在任何地方出现

B:

主函数必须出现在固定位置

C:

答D:案:D

解析:C++程序中必须有一个主函数main(),主函数可以在任何地方出现,而且程序的执

行一定是从main()的第一条语句开始执行。

2、【单选题】若有定义int*p=newint(0),则下列说法正确的是()。

系统用指针变量p来表示所指整型变量

声明一个指针变量p,指向名为new的存储单元

A:

系统为指针变量p分配一个整型数据的存储空间

B:

通过运算符new,分配一个整型数据的存储空间,并将其内存地址赋予指针变量

C:

答D:案:D

解析:int*p=newint(0)的含义是通过运算符new,分配一个整型数据的存储空间,并将

其内存地址赋予指针变量p。

3、【单选题】以下有关类与对象的叙述中,错误的是()。

对象是类的一个实例

一个类可以有多个对象

A:

任何一个对象都归属于一个具体的类

B:

只要是某个类的对象,那么该对象就可以访问这个类的所有成员

C:

答D:案:D

解析:类是具有相同的属性和操作的一组对象的集合,它为属于该类的全部对象提供了统

一的抽象描述,其内部包括属性和操作两个主要部分。对于一个具体的类,它有许多具体

的个体,这些个体叫作“对象”。每个类的属性和操作分为私有和公有两种类型,对象的

外部只能访问对象的公有部分,而不能直接访问对象的私有部分。

4、【单选题】以下有关构造函数的叙述中,错误的是()。

构造函数名必须和类名一致

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

A:

在一个类中构造函数有且仅有一个

B:

构造函数可以在类体内声明在类体外实现

C:

答D:案:C

解析:构造函数的函数名与结构同名,专门用于初始化结构的对象的函数;构造函数在定

义对象时自动执行;构造函数可以在类体内声明在类体外实现。构造函数可以有参数、可

以重载、因此可以有多个构造函数。

5、【单选题】以下叙述中正确的是()。

类成员的定义必须放在类体内部

在类中,不作特别说明的数据成员均为私有类型

A:

在类中,不作特别说明的数据成员均为公有类型

B:

类成员的定义必须是成员变量在前,成员函数在后

C:

答D:案:B

解析:C++中声明类中无访问权限的关键字,则所有成员默认声明为private权限。类

必须在其成员使用之前先进行声明。

6、【单选题】友元函数的主要作用是()。

提高程序的效率

加强类的封装性

A:

实现数据的隐蔽性

B:

增加成员函数的种类

C:

答D:案:A

解析:类友元函数应被看作类的接口的一部分,使用它的主要目的是提高效率,因为它可

以直接访问对象的私有成员,从而省去调用类的相应成员函数的开销。

7、【单选题】在C++中,字符型数据在内存中的存放形式为()。

原码

BCD码

A:

ASCII

B:

反码

C:

答D:案:C

解析:在C++和C语言中,字符型数据在内存中的存放形式为ASCII码。

8、【单选题】下列变量命名中,非法的是()。

**LONG

MyCar

A:

my_car

B:

a48

C:

答D:案:A

解析:C++变量命名只能有大小写字母、下划线和数字组成,且数字不能开头。

9、【单选题】关于对类的描述中,错误的是()。

类是创建对象的样板

类是具有唯一标识符的实体

A:

类就是C语言中的结构类型

B:

类是具有共同行为的若干对象的统一描述体

C:

答D:案:C

解析:类是具有相同的属性和操作的一组对象的集合,它为属于该类的全部对象提供了统

一的抽象描述,其内部包括属性和操作两个主要部分。类是一种用户自己构造的数据类

型,但不是C语言中的结构类型;类要先声明后使用、是具有唯一标识符的实体;类是创

建对象的样板。

10、【单选题】不能作为函数重载的判断依据的是()。

const

返回类型

A:

参数个数

B:

参数类型

C:

答D:案:B

解析:函数重载就是为同一个函数定义几个版本,从而使一个函数名具有多种功能,也称

函数多态性。这些函数的多种版本之间的区别有两个,一是参数类型不同,二是参数个数

不同;重载函数常用来实现功能类似而所处理的数据类型不同的问题。但是重载函数的返

回值类型可以不同。

11、【单选题】已知:“inta=5;charc='a’;”则输出语句cout<<c+1<<a<<c;

的显示结果是()。

65a

A:

985a

98'5'a

B:

65'a'

C:

答D:案:B

解析:c='a’,c+1=97+1=98;a的值是5,c的值是'a’,所以输出语句cout<<c+1<<

a<<c;的显示结果是985a。

12、【单选题】

0

2

A:

3

B:

4

C:

答D:案:C

解析:因为a<b不成立,其后面的两条语句都不会被执行到,直接执行cout<<c<<end1输

出c的值3。

13、【单选题】C++语言的跳转语句中,对于break和continue说法正确的是()。

break语句只应用于循环体中

continue语句只应用于循环体中

A:

break是无条件跳转语句,continue不是

B:

break和continue的跳转范围不够明确,容易产生问题

C:

答D:案:B

解析:break语句用于switch语句和循环体中,用于退出switch语句或退出循环;

continue语句只应用于循环体中,用于提前结束本次循环。

14、【单选题】下列函数的说明中,表示纯虚函数的是()。

virtualintvf(int)

voidvf(int)=0

A:

virtualvoidvf()=0

B:

virtualvoidvf(int){}

C:

答D:案:C

解析:许多情况下,不能在基类中为虚函数给出一个有意义的定义,此时可将它说明为纯

虚函数,将其定义留给派生类去做,说明纯虚函数的一般形式为:virtual函数类型函数

名(参数列表)=0;

15、【单选题】以下关于运算符重载的描述中,错误的是()。

运算符重载其实就是函数重载

成员运算符比友元运算符少一个参数

A:

需要使用关键字operator

B:

成员运算符比友元运算符多一个参数

C:

答D:案:D

解析:C++的任何运算都是通过函数来实现的,运算符重载其实就是函数重载,这就是运

算符重载的实质。C++中关键字operator和运算符连用就表示一个运算符函数。类运算符

比友元运算符少一个参数,这是因为类运算符函数作为成员函数时具有this指针。

16、【单选题】

p->SetNum(50)

SetNum(50)

A:

p->n=50

B:

*p->SetNum(50)

C:

答D:案:A

解析:指针p所指对象的数据成员使用运算符“->”,使用指针p调用函数SetNum(50)

重设n的值为50。

17、【单选题】下面关于对象概念的描述中错误的是()。

任何对象都必须有继承性

对象是属性和方法的封装体

A:

对象间的通信靠消息传递

B:

操作是对象的动态属性

C:

答D:案:A

解析:继承是一个类可以获得另一个类的特性的机制,支持层次概念,通过继承,低层的

类只需定义特定属于它的特征,而共享高层的类中的特征。类是具有相同的属性和操作的

一组对象的集合,对象是属性和方法的封装体,对象间的通信靠消息传递。

18、【单选题】考虑函数原型voidpass(intx,inty=5,charz='*'),下面的函数调

用中,属于不合法调用的是()。

pass(5)

pass(5,8)

A:

pass(6,'#')

B:

pass(0,0,'*')

C:

答D:案:C

解析:函数默认参数必须在函数原型中说明,默认参数可以多于1个,但必须放在参数序

列的后部;如果某个默认参数需要指明一个特定值,则在此之前的所有参数都必须赋值。

在实际调用函数时,如不给出有默认参数的值,则取默认值。选项C,要将'#'传给第二个

参数y,数据类型不同,出错。

19、【单选题】下列关于虚函数的描述中,正确的是()。

使用虚函数就一定产生多态性

虚函数只能是类中的一个成员函数,但不能是静态成员

A:

一个类中仅可以声明一个纯虚函数

B:

在构造函数和析构函数中调用虚函数采用动态联编

C:

答D:案:B

解析:虚函数只能是类中的一个成员函数,但不能是静态成员。关键字virtual指示C++

使用虚函数产生运行时的多态性有三个前提:(1)类之间的继承关系满足赋值兼容性规

则;(2)改写了同名虚函数;(3)根据赋值兼容性规则使用指针或引用。分两种情况:

①按赋值兼容性规则使用基类指针或引用访问虚函数;②把指针或引用作为函数参数,即

这个函数不一定是类的成员函数,可以是普通函数,而且可以重载。注意:满足前两条并

不一定产生动态联编,必须同时满足第三条才能保证实现动态联编。编译器对调用虚函数

进行动态联编,这种多态性是程序运行到需要的语句处才动态确定的,所以称为运行时的

多态性。不过,使用虚函数并不一定产生多态性,也不一定使用动态联编。

20、【单选题】

Hello,you

Hello

A:

Hello!you

B:

!

C:

答D:案:C

解析:数组b开始存放的是字符串“Hell,you”,执行b[5]='!'后,数组b存放的是字

符串变成“Hello!you”,所以输出Hello!you。

21、【问答题】一般C++语言源程序文件的后缀是.cpp;经过编译后,生成文件的后缀

是.obj;经过连接后,生成文件的后缀是_________。

答案:.exe

22、【问答题】C++语言中提供了3种循环语句:_________循环语句、for循环语句和

do_while循环语句。

答案:while

23、【问答题】在“inta=10,*p=&a;”语句中,p的值是________。

答案:变量a的地址

24、【问答题】执行3条语句“inta,b,*c=&a;int*p=c;p=&b;”后,c指向

_________。

答案:a

25、【问答题】若有以下定义:doublew[9];则w数组元素下标的下限是0,上限是

__________。

答案:8

26、【问答题】设intx[3][4];则x数组中含有__________个int类型的数组元素。

答案:12

27、【问答题】

答案:a=b+(a*a+b*b)/(2*a*b)

28、【问答题】模板函数的真正代码是在源程序中__________时产生。

答案:调用函数

29、【问答题】源程序文档化要求程序应加注释,注释一般分为序言性注释和

__________。

答案:功能性注释

30、【问答题】重载函数必须有不同的__________。

答案:形参列表

31、【问答题】在类中定义和实现的函数可以成为__________,它能够加快程序执行速度。

答案:内联函数

32、【问答题】在C++中输入输出是通过流来完成的,输出操作是将一个对象的状态转换成

一个__________序列。

答案:字符

33、【问答题】C++语言中,派生类继承了基类的全部数据成员和除构造函数及__________

之外的全部函数。

答案:析构函数

34、【问答题】定义以下变量并假设已赋确定的值:“charw;intx;foaty;double

z;”,则表达式“w*x+z-y”的数据类型是__________。

答案:double

35、【问答题】若有一个Myclass类,则执行语句”MyClassobj1,obj2[2],*p;”后,

自动调用该类的构造函数__________次。

答案:3

36、【问答题】this指针保证每个对象拥有自己的数据成员,又共享处理这些数据成员的

__________。

答案:代码

37、【问答题】若有整型变量a=1,b=-2,c=3;则表达式a-b>b?c:a+b的值为

__________。

答案:3

38、【问答题】所谓“引用”就是将一个新标识符和一块已经存在的__________相关联,通

常用于函数的参数表中或者作为函数的返回值。

答案:存储区域

39、【问答题】C++为结构动态分配内存的一般格式是“指针名=__________;”当不再使用

这个空间时必须用“delete指针名;”释放空间。

答案:new结构名

40、【问答题】C++程序中使用string类定义存储字符串的对象时,必须在程序中包含这个

类的头文件,即使用语句__________。

答案:#include<string>

41、【问答题】

答案:Sample(intval);改为Sample(floatval);

42、【问答题】

答案:voidswap(intx,inty)改为voidswap(int&x,int&y)

43、【问答题】

答案:intk=1;改为staticintk=1;

44、【问答题】

答案:while(10<x<50)改为while(x>10&&x<50)

45、【问答题】

答案:if(*P<*s)*s=*p改为if(*p>*s)*s=*p;

46、【问答题】

答案:classDerived:publieBase,ptr->f();

47、【问答题】

答案:cout<<Basc::a,Derivedd(12);

48、【问答题】

答案:doubleoperator()(doublex,doubley)const;,voidmain()

49、【问答题】

答案:switch(表达式值为

温馨提示

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

评论

0/150

提交评论