模拟题一及参考答案.docx

上传人:wj 文档编号:905472 上传时间:2023-04-30 格式:DOCX 页数:7 大小:16.91KB
下载 相关 举报
模拟题一及参考答案.docx_第1页
第1页 / 共7页
模拟题一及参考答案.docx_第2页
第2页 / 共7页
模拟题一及参考答案.docx_第3页
第3页 / 共7页
模拟题一及参考答案.docx_第4页
第4页 / 共7页
模拟题一及参考答案.docx_第5页
第5页 / 共7页
模拟题一及参考答案.docx_第6页
第6页 / 共7页
模拟题一及参考答案.docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

模拟题一及参考答案.docx

《模拟题一及参考答案.docx》由会员分享,可在线阅读,更多相关《模拟题一及参考答案.docx(7页珍藏版)》请在冰点文库上搜索。

模拟题一及参考答案.docx

模拟题一及参考答案

1.    关于C+十与C语言的关系的描述中,__是错误的。

(2分)   

A.C语言是C+十的一个子集

B.C++是兼容C语言的

C.C+十对C语言进行了一些改进

D.C++和C语言都是面向对象的

 

2.    C++对C语言作了很多改进,下列描述中_____ 使得C语言发生了质变,即从面向过程变成又面向对象。

(2分)  

A.增加了一些新的运算符

B.允许函数重载,并允许设置默认参数

C.规定函数说明必须用原型

D.引进了类和对象的概念   

 

3.    按照标识符的要求,_______符号不能组成标识符。

(2分)    

A.连接符

B.下划线

C.大小写字母

D.数字字符   

 

4.    下述关于break语句的描述中,______是不正确的。

(2分)    

A.break语句可用于循环体中,它将退出该重循环

B.break语句可用于switch中,它将退出switch语句

C.break语句可用于if体内,它将退出if语句

D.break语句在一个循环体内可以出现多次   

5.    以下关于do-while语句的叙述正确的是_______。

(2分)

A.不能使用do-while语句构成的循环

B.do-while语句构成的循环必须用break语句才能退出

C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环

D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环   

6.    ______是给对象取一个别名,它引入了对象的同一词。

(2分)

A.指针

B.引用

C.枚举

D.结构   

 

7.    下列数组的定义中,______是错误的。

(2分)

A.charcal[]={’c’,’h’,’a’,’r’}

B.charca2[5]=”char”

C.charca3[4]=”char”

D.intarray[]={6,5,3,4}   

 

8.    1.下列变量名中,_____是合法的。

(2分)

A.CHthA

B.byte-size

C.double

D.A+a   

 

9.    使用数学函数,程序要包含_____头文件。

(2分)

A.iostream.h

B.math.h

C.string.h

D.stdio.h   

 

10.   函数参数传递以下______不是正确的。

(2分)

A.函数类型一定和形参类型完全一样。

B.在函数被调用时才分配形参的存储单元。

C.实参类型必须与形参相符。

D.传递时是传递参数值,即单向传递   

 

11.   有关析构函数的说法不正确的是:

(2分)

A.一个类中析构函数有且只有一个

B.析构函数无任何函数类型

C.析构函数和构造函数一样可以有形参

D.析构函数作用是在对象被撤消时收回先前分配的内存

12. 下列说明中正确的是:

    (2分)

constchar*ptr;

A.指向字符常量的指针

B.指向字符的常量指针

C.指向字符串常量的指针

D.指向字符串的常量指针

 

13.   系统在调用重载函数时,往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是____。

(2分)

A.参数个数

B.参数的类型

C.函数名称

D.函数的类型   

 

14.   关于纯虚函数和抽象类的描述中,______是错误的。

(2分)

A.纯虚函数是一种特殊的虚函数,它没有具体的实现

B.抽象类是指具有纯虚函数的类

C.一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类

D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出  

15.   下列关于运算符重载的描述中,_____是正确的。

(2分)

A.运算符重载可以改变运算数的个数

B.运算符重载可以改变优先级

C.运算符重载可以改变结合性

D.运算符重载不可以改变语法结构   

 

16.   进行磁盘文件的I/O操作时需要包含_____文件。

(2分)

A.iostream.h

B.fstream.h

C.stdio.h

D.stdlib.h   

 

17.   定义重载函数错误的为_________。

(多选)(3分)

A.功能相近的函数在相同作用域内以相同函数名定义重载函数。

B.编译器以形参名来区分函数。

C.编译器以返回值来区分函数。

D.不同功能函数可以定义为重载函数。

   

 

18.   以下对类模板正确的描述为__________。

(多选)(3分)

A.系统规定应该使用模板。

B.模板是C++支持参数化多态性的工具。

C.使用模板将程序所处理的对象的类型参数化。

D.使用模板可以为用于处理多种不同类型的对象。

 

 

19.   同一数组的各元素具有___的数据类型(2分)

20.   指针变量是用来存储___的变量(2分)

21.   字符串的结束标记是___(2分)

22.   派生新类的过程包括___已有类的成员,调整已有类的成员和添加新成员(2分)

23.   构造派生类对象时,就要对基类数据成员、___数据成员和成员对象的数据成员进行初始化(2分)

24.   作用域分辨符是___(2分)

25.   使用虚基类时要用___关键字(2分)

 

         

26.   C++程序按结构可划分为:

类___文件、类定义文件和类实现文件(2分)

 

        

27.   在使用I/O流类库对文件进行二进制操作时,文件打开模式应使用标志值________。

(2分)

 

        

28.   利用I/O流类库中的格式标志值______设置以定点格式显示浮点数值。

(2分)

 

 

29.   分析以下程序执行的结果.(10分)

#include

#include

classSample

{

   public:

       intx,y;

       Sample(){x=y=0;}

       Sample(inta,intb){x=a;y=b;}

       voiddisp()

       {

           cout<<”x=”<

       }

};

voidmain()

{

   Samples1(2,3);

   s1.disp();

}

30.   分析以下程序的执行结果(10分)

#include

classSample

{

   intx,y;

   public:

       Sample(){x=y=0;}

       Sample(inta,intb){x=a;y=b;}

       ~Sample()

       {

           if(x==y)

               cout<<”x=y”<

           else

               cout<<”x!

=y”<

       }

       voiddisp()

       {

           cout<<”x=”<

       }

};

voidmain()

{

   Samples1(2,3);

   s1.disp();

}

31.   分析以下程序的输出结果(10分)

#include

classSample

{

   intx;

   public:

       Sample(inta)

       {

           x=a;

           cout<<”constructingobject:

x=”<

       }

};

voidfunc(intn)

{

   staticSampleobj(n);

}

voidmain()

{

   func

(1);

   func(10);

}

32. 分析以下程序的执行结果(12分)

#include

classSample

{

   public:

       intx;

       inty;

       voiddisp()

       {

           cout<<”x=”<

       }

};

voidmain()

{

   intSample:

:

*pc;

   Samples;

   pc=&Sample:

:

x;

   s.*pc=10;

   pc=&Sample:

:

y;

   s.*pc=20;

   s.disp();

}

 

 

参考答案:

 

       

1

D

2

D

3

A

4

C

5

D

6

B

7

C

8

A

9

B

10

A

11

C

12

A

13

D

14

C

15

D

16

B

17

BCD

18

BCD

19

相同

20

内存单元地址

21

‘\0’

22

吸收

23

新增

24

:

:

25

virtual

26

申明

27

ios:

:

binary

28

ios:

:

fixed

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

29. 解:

x=2,y=3

本题说明了重载构造函数的定义方法。

首先定义了一个类Sample,在main()中定义了它的一个对象,定义s1对象时调用其重载构造函数(x=2,y=3),然后,调用其成员函数输出数据成员。

所以输出为:

x=2,y=3。

注意:

构造函数是唯一不能被显式调用的成员函数,它在定义类的对象时自动调用,也称为隐式调用。

 

30. 解:

x=2,y=3

        x!

=y

本题说明了析构函数的定义方法。

首先定义了一个类Sample,在main()中定义了它的一个对象,定义s1对象时调用其重载构造函数(x=2,y=3),然后,调用其成员函数输出数据成员,最后在退出程序时自动调用析构函数。

所以输出为:

   x=2,y=3

   x!

=y

注意:

析构函数在对象的作用域结束时被自动隐式调用。

 

31. 解:

counstructingobject:

x=1

本题说明静态对象构造函数的调用情况,由于在func()函数中定义的对象obj是静态对象,故只被构造一次,所以输出为:

       counstructingobject:

x=1

注意:

静态对象和静态变量一样,只被构造一次。

块作用域的静态变量,在首次进入到定义该静态对象的函数时,构造该静态对象,以后进入该函数时不再构造静态对象。

 

32. 解:

x=10,y=20

本题说明了类数据成员指针的使用方法。

在main()中定义的pc是一个指向Sample类数据成员的指针。

执行pc=&Sample:

:

x时,pc指向数据成员x,语句s.*pc=10等价于s.x=10(为了保证该语句正确执行,Sample类中的x必须是公共成员);执行pc=&Sample:

:

y时,pc指向数据成员y,语句s.*pc=20等价于s.y=20(同样,Sample类中的y必须是公共成员)。

所以输出为:

 x=10,y=20。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2