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

下载本文档

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

文档简介

++程序设计年月真题

04737C201310

1、【单选题】下列不属于C++关键字的是

extern

goto

A:

free

B:

default

C:

答D:案:C

解析:见教材P230的C++保留字,free不属于C++关键字。

2、【单选题】C++中定义标准输入输出的库为

stdio

math

A:

iostream

B:

stdlib

C:

答D:案:C

解析:C++中定义标准输入输出的库为iostream,stdio是C语言中定义标准输入输出的

库。

3、【单选题】My是一个类,则执行语句Mya[3],*p[2]之后,自动调用构造函数次数

2

3

A:

4

B:

5

C:

答D:案:B

解析:a[3]调用3次无参数的构造函数,指针没有给它分配空间,没有调用构造函数。所

以共调用构造函数的次数为3。

4、【单选题】下列语句错误的是

intval(20);

externintval(20);

A:

B:

constintval;

externconstintval;

C:

答D:案:B

解析:被const修饰的变量的值在程序中不能被改变,所以在声明符号常量时,必须对符

号常量进行初始化。除非这个变量用extern修饰的外部变量。

5、【单选题】下列说法中,有关构造函数是正确的是

任何一类必定有构造函数

可定义没有构造函数的类

A:

构造函数不能重载

B:

任何一类必定有缺省的构造函数

C:

答D:案:A

解析:构造函数是用来实现对象初始化的特殊成员函数。当没有为一个类定义任何构造函

数的情况下,C++编译器会自动建立一个不带参数的、函数体为空的构造函数,这就是默

认构造函数。构造函数可以重载。

6、【单选题】下面关于类和对象说法不正确是

类由数据与函数组成

一个对象必属于某个类

A:

对象是类的实例

B:

一个类的对象只有一个

C:

答D:案:D

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

一的抽象描述,其内部包括属性(数据成员)和操作(成员函数)两个主要部分。对象是

类的实例,一个对象必属于某个类。

7、【单选题】下面选项中不是类成员函数的是

构造函数

析构函数

A:

友元函数

B:

静态函数

C:

答D:案:C

解析:友元函数虽然不是成员函数但是可以访问类所有成员。友元函数应被看作类的接口

的一部分,使用它的主要目的是提高效率,因为它可以直接访问对象的私有成员,从而省

去调用类的相应成员函数的开销。构造函数、析构函数和静态函数都是类的成员函数。

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

自反性

对称性

A:

传递性

B:

反对称性

C:

答D:案:C

解析:在C++中类之间的继承关系具有传递性,派生类是从基类那里继承特性,派生类也

可以作为其他类的基类。从一个基类派生出多层类,这样就形成类层次结构。

9、【单选题】C++中类的成员默认为

public

private

A:

protected

B:

static

C:

答D:案:B

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

10、【单选题】C++中要实现动态联编,调用虚函数时必须使用

基类指针

类名

A:

派生类指针

B:

对象名

C:

答D:案:A

解析:C++中要实现动态联编,调用虚函数时必须使用通过基类指针或基类引用调用虚函

数来实现的。

11、【单选题】下面对析构函数的正确描述是

系统不能提供默认的析构函数

析构函数必须由用户定义

A:

析构函数没有参数

B:

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

C:

D:

答案:C

解析:在定义类时没有定义析构函数,则编译器将自动为类产生一个函数体为空的默认析

构函数,类只能定义一个析构函数,且不能指明参数。

12、【单选题】在下面的二维数定义正确的是

intary[5][];

intary[][5]={{0,1,2}};

A:

intary[][5];

B:

intary[5,5];

C:

答D:案:B

解析:定义二维数在什么情况下也不能省略第二维,所以选项A错误。在没有初始化的情

况下省略第一维是非法的,所以选项C错误。选项D格式错误。选项B省略的第一维的值

为1,合法。

13、【单选题】以下说法中正确的是

C++程序总是从第一个定义的函数开始执行

C++程序总是从main函数开始执行

A:

C++中函数必须有返回值

B:

C++中函数名必须唯一

C:

答D:案:B

解析:C++程序总是从main函数开始执行并在main函数中结束。C++中函数可以没有返回

值,C++中函数名可以重名,如函数重载。

14、【单选题】对C++中主函数描述正确的是

名称为main,可为多个

名称不限,可为多个

A:

名称为main,必须有且只能有—个

B:

名称不限,必须有且只能有—个

C:

答D:案:C

解析:对C++中主函数名称为main,必须有且只能有—个主函数。

15、【单选题】下面声明纯虚函数语句正确的是

voidfun()=0;

virtualvoidfun()=0;

A:

B:

virtualvoidfun();

virtualvoidfun(){};

C:

答D:案:B

解析:说明纯虚函数的一般形式为:virtual函数类型函数名(参数列表)=0;

16、【单选题】对于拷贝初始化构造函数和赋值操作的关系,正确的描述是

拷贝初始化构造函数和赋值操作是完全一样的操作

进行赋值操作时,会调用类的构造函数

A:

当调用拷贝初始化构造函数时,类的对象正在被建立并被初始化

B:

拷贝初始化构造函数和赋值操作不能在同一个类中被同时定义

C:

答D:案:C

解析:复制构造函数的作用:通过拷贝方式使用一个类已有的对象来建立该类的一个新对

象。当调用拷贝初始化构造函数时,类的对象正在被建立并被初始化。

17、【单选题】使用重载函数的目的是

共享函数数据

减少代码量

A:

优化运行效率

B:

提高可读性

C:

答D:案:D

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

函数多态性。函数重载给编程者极大的方便,不需要为功能相似、参数不同的函数选用不

同的函数名,也增强了程序的可读性。

18、【单选题】C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是

增加了一些新的运算符

允许函数重载,并允许设置缺省参数

A:

规定函数说明符必须用原型

B:

引进了类和对象的概念

C:

答D:案:D

解析:C++语言相对于C语言的最根本的变化是引进了类和对象的概念。

19、【单选题】假定有“char*p=“Hello”;”,若要输出这个字符串的地址值正确的写

法为

cout<<*p;

cout<<p;

A:

cout<<&p;

B:

cout<<(void*)p;

C:

答D:案:D

解析:由于C++标准库中I/O类对<<操作符重载,因此在遇到字符型指针时,会将其当作

字符串名来处理,输出指针所指的字符串。既然这样,那么我们就别让它知道那是字符型

指针,所以得用到强制类型转换,不过不是C的那套,我们得用static_cast来实现,把

字符串指针转换成无类型的指针。

20、【单选题】对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不

是访问控制属性的是

公有类型

私有类型

A:

保护类型

B:

友元类型

C:

答D:案:D

解析:访问控制属性的有公有类型(public)、私有类型(private)、保护类型

(protected)。

21、【问答题】C++程序的编译是以____________为单位进行的。

答案:文件

22、【问答题】C++语言支持的两种多态性分别是编译时的多态性和________的多态性。

答案:运行时

23、【问答题】重载的运算符保持其原有的操作符个数、_______和结合性不变。

答案:优先级

24、【问答题】在C++中,函数的参数有两种传递方式,它们分别是值传递和________。

答案:引用传递

25、【问答题】含有____________的类称为抽象类。

答案:纯虚函数

26、【问答题】C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和_________。

答案:代码区

27、【问答题】对于无返回值函数,定义函数时要用____________修饰函数类型。

答案:void

28、【问答题】定义重载函数必须在参数的个数或参数的___________上与其它同名函数不

同。

答案:类型

29、【问答题】拷贝构造函数是在用一个对象初始化另一个对象时被调用,系统缺省的拷贝

构造函数的工作方法是____________。

答案:拷贝每一个数据成员

30、【问答题】以面向对象方法构造的系统,其基本单位是____________。

答案:对象

31、【问答题】C++中定义友元函数使用的关键字为__。

答案:friend

32、【问答题】当一个成员函数被调用时,该成员函数的______指向调用它的对象。

答案:this指针

33、【问答题】类可将实现细节隐藏起来,这种机制称为____________。

答案:封装

34、【问答题】在面向对象的程序设计中,通过封装实现数据隐藏;通过___________实现

代码的复用。

答案:继承

35、【问答题】在公有继承的中基类数据成员在派生类中的访问权限。

答案:基类的public和protected成员的访问属性在派生类中不变,而基类的private

成员不可访问

36、【问答题】复杂对象可以由简单对象构成,这种现象称为____________。

答案:聚合

37、【问答题】如有“char*p=''Hello'';”,则语句“cout<<*(p+1);”输出值是

__________。

答案:e

38、【问答题】基类和派生类的关系称为____________。

答案:继承

39、【问答题】C++对其对象的数据成员和成员函数的访问时通过____________来限制。

答案:访问权限

40、【问答题】假定x=10,则表达式x<=10?20:30的值为____________。

答案:20

41、【问答题】下面的程序中有一处错误,请写出错误所在行并给出修改意见

答案:pointa(3.5);实参要2个。可改为pointa(3.5,4.7);

42、【问答题】

答案:*p=99;不允许改变指针常量的。可删除这条语句。

43、【问答题】

答案:private:intx;y;修改为private:intx,y;

44、【问答题】

答案:testl(inta){x=a;}没有适当的默认构造函数,可以修改为testl(int

a):test(a){x=a;}

45、【问答题】

答案:a.fl(x,y);函数调用参数不一致,可修改为a.fl(int)x,(int)y);

46、【问答题】将下划线处缺少的部分写在“答题纸”上。源程序如

下:

答案:(1)basep(2);

47、【问答题】将下划线处缺少的部分写在“答题纸’’上。源程序如下:

答案:(1)ofstream(2)myf

48、【问答题】在下面程序中的下划线处填上适当的程序(答案写在“答题纸’’上),

使程序的输出结果如下:

67,90

答案:(1)base*p(2)&a

49、【问答题】下面程序给出了一个从普通的基类派生出一个模板类的方法,在下划线处

填上正确的部分(答案写在“答题纸’’上)。

答案:(1)Base(b)(2)Ty;

50、【问答题】下面程序的运行结果如下:20,2260,22将下划线处缺少的部分写在

“答题纸’’上。源程序如下:

答案:(1)base::b(2)bas

温馨提示

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

评论

0/150

提交评论