模拟题一及参考答案Word下载.docx
《模拟题一及参考答案Word下载.docx》由会员分享,可在线阅读,更多相关《模拟题一及参考答案Word下载.docx(7页珍藏版)》请在冰点文库上搜索。
![模拟题一及参考答案Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-4/30/a74e08e3-0e83-423a-98dc-935eda57a043/a74e08e3-0e83-423a-98dc-935eda57a0431.gif)
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.
______是给对象取一个别名,它引入了对象的同一词。
A.指针
B.引用
C.枚举
D.结构
7.
下列数组的定义中,______是错误的。
A.charcal[]={’c’,’h’,’a’,’r’}
B.charca2[5]=”char”
C.charca3[4]=”char”
D.intarray[]={6,5,3,4}
8.
1.下列变量名中,_____是合法的。
A.CHthA
B.byte-size
C.double
D.A+a
9.
使用数学函数,程序要包含_____头文件。
A.iostream.h
B.math.h
C.string.h
D.stdio.h
10.
函数参数传递以下______不是正确的。
A.函数类型一定和形参类型完全一样。
B.在函数被调用时才分配形参的存储单元。
C.实参类型必须与形参相符。
D.传递时是传递参数值,即单向传递
11.
有关析构函数的说法不正确的是:
A.一个类中析构函数有且只有一个
B.析构函数无任何函数类型
C.析构函数和构造函数一样可以有形参
D.析构函数作用是在对象被撤消时收回先前分配的内存
12.
下列说明中正确的是:
constchar*ptr;
A.指向字符常量的指针
B.指向字符的常量指针
C.指向字符串常量的指针
D.指向字符串的常量指针
13.
系统在调用重载函数时,往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是____。
A.参数个数
B.参数的类型
C.函数名称
D.函数的类型
14.
关于纯虚函数和抽象类的描述中,______是错误的。
A.纯虚函数是一种特殊的虚函数,它没有具体的实现
B.抽象类是指具有纯虚函数的类
C.一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类
D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出
15.
下列关于运算符重载的描述中,_____是正确的。
A.运算符重载可以改变运算数的个数
B.运算符重载可以改变优先级
C.运算符重载可以改变结合性
D.运算符重载不可以改变语法结构
16.
进行磁盘文件的I/O操作时需要包含_____文件。
B.fstream.h
C.stdio.h
D.stdlib.h
17.
定义重载函数错误的为_________。
(多选)(3分)
A.功能相近的函数在相同作用域内以相同函数名定义重载函数。
B.编译器以形参名来区分函数。
C.编译器以返回值来区分函数。
D.不同功能函数可以定义为重载函数。
18.
以下对类模板正确的描述为__________。
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流类库对文件进行二进制操作时,文件打开模式应使用标志值________。
28.
利用I/O流类库中的格式标志值______设置以定点格式显示浮点数值。
29.
分析以下程序执行的结果.(10分)
#include<
iostream.h>
stdlib.h>
classSample
{
public:
intx,y;
Sample(){x=y=0;
}
Sample(inta,intb){x=a;
y=b;
voiddisp()
{
cout<
<
”x=”<
x<
”,y=”<
y<
endl;
}
};
voidmain()
Samples1(2,3);
s1.disp();
30.
分析以下程序的执行结果(10分)
~Sample()
if(x==y)
”x=y”<
else
”x!
=y”<
31.
分析以下程序的输出结果(10分)
intx;
Sample(inta)
x=a;
”constructingobject:
x=”<
voidfunc(intn)
staticSampleobj(n);
func
(1);
func(10);
32.
分析以下程序的执行结果(12分)
inty;
intSample:
:
*pc;
Samples;
pc=&
Sample:
x;
s.*pc=10;
y;
s.*pc=20;
s.disp();
参考答案:
1
D
2
3
A
4
C
5
6
B
7
8
9
10
11
12
13
14
15
16
17
BCD
18
19
相同
20
内存单元地址
21
‘\0’
22
吸收
23
新增
24
25
virtual
26
申明
27
ios:
binary
28
fixed
解:
x=2,y=3
本题说明了重载构造函数的定义方法。
首先定义了一个类Sample,在main()中定义了它的一个对象,定义s1对象时调用其重载构造函数(x=2,y=3),然后,调用其成员函数输出数据成员。
所以输出为:
x=2,y=3。
注意:
构造函数是唯一不能被显式调用的成员函数,它在定义类的对象时自动调用,也称为隐式调用。
x!
=y
本题说明了析构函数的定义方法。
首先定义了一个类Sample,在main()中定义了它的一个对象,定义s1对象时调用其重载构造函数(x=2,y=3),然后,调用其成员函数输出数据成员,最后在退出程序时自动调用析构函数。
x=2,y=3
x!
析构函数在对象的作用域结束时被自动隐式调用。
counstructingobject:
x=1
本题说明静态对象构造函数的调用情况,由于在func()函数中定义的对象obj是静态对象,故只被构造一次,所以输出为:
counstructingobject:
静态对象和静态变量一样,只被构造一次。
块作用域的静态变量,在首次进入到定义该静态对象的函数时,构造该静态对象,以后进入该函数时不再构造静态对象。
x=10,y=20
本题说明了类数据成员指针的使用方法。
在main()中定义的pc是一个指向Sample类数据成员的指针。
执行pc=&
x时,pc指向数据成员x,语句s.*pc=10等价于s.x=10(为了保证该语句正确执行,Sample类中的x必须是公共成员);
y时,pc指向数据成员y,语句s.*pc=20等价于s.y=20(同样,Sample类中的y必须是公共成员)。
x=10,y=20。