国家二级(C++)笔试模拟试卷107 (题后含答案及解析)
题型有:1. 选择题 2. 填空题
选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
1. 下列关于 switch 语句的描述中,( )是正确的。
A.switch语句中 default子句可以没有,也可有一个
B.switch语句中每个语句序列中必须有break语句
C.switch语句中default 子句只能放在最后
D.switch语句中ca 子句后面的表达式只能是整型表达式
抗日英雄手抄报正确答案:A
2. ( )使一个函数可以定义成对许多不同数据类型完成同一个任务。
A.函数模板
B.重载函数
C.递归函数
D.模板函数
正确答案:A
3. 关于函数返回值类型和返回值表达式的类型的描述中,错误的是( )。
A.函数返回值类型决定了返回值表达式的类型
B.函数返回值的类型是在定义函数时确定的,在函数调用时不能改变
C.函数返回值的类型就是返回值表达式的类型
D.函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成函数返回值类型
正确答案:C
4. 下列程序的运行结果是( )。 #include< iostream.h> void fun (int *a,int*b) {int*k k=a;a=b;b=k} void main( ) {int a=2004, b=9,*x=&a,*y=&b; fun(x, y) ; cout<<a<<” “<<b<<endl:}
A.20049
B.92004
C.0
D.编译时出错
正确答案:A
5. 下列定义中,Sample是一个类,( )是定义指向对象数组的指针p.
A.Sample*P [5]
B.Sample (*p) [5]
C.(Sample*) P[5]
D.Sample *P[]
正确答案:B
6. 下列函数中,( )是对文件进行写操作的。
A.get
B.ekg
C.read
D.put
正确答案:D
7. 为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为( )。
A.public
B.protected
C.private
D.static
正确答案:A
8. 最简单的交换排序方法是( )。
A.快速排序
B.选择排序
C.堆排序
D.冒泡排序
正确答案:D
9. 下列输出字符,A,的方法中,( )是错误的。
A.cout <<put (‘A’);
梁静茹歌词B.cout<<’A’;
C.cort. put (‘A’);
D.char A=‘A’;cout<<A;
正确答案:A
10. 下面关于ios类的叙述中,正确的是( )。
A.它是istream类和ostream类的虚基类
B.它只是istream类的虚基类
C.它只是ostream类的虚基类
D.它是ostream类的虚基类
正确答案:A
11. 下列程序中划线处正确的语句是( )。 # include <iostream> using namespace std; class Ba { public: void fun( ){cout<<”Ba:: fun” <<endl;} }; class Derived:public Ba { void fun( ) { ______ ∥显式调用基类的函数fun( ) cout<<”D
A.fun( );
沈括B.Ba.fun( );
C.Ba::fun( );
D.Ba- >fun( );
正确答案:C
12. 对于拷贝初始化构造函数和赋值操作的关系,正确的描述是( )。
A.拷贝初始化构造函数和赋值操作是完全一样的操作
B.进行赋值操作时,会调用类的构造函数
C.当调用拷贝初始化构造函数时,类的对象正在被建立并被初始化
D.拷贝初始化构造函数和赋值操作不能在同一个类中被同时定义
正确答案:C
13. 只能作为成员函数重载的是( )。
A.=
B.++
C.*
D.new
正确答案:A
14. 已知类Myst有一个只需要一个double型参数的构造函数,且将运算符“-”重载为友元函数。要使语句序列Myst x (3.2),y(5.5),z(0.0); z=8.9-y; y=x-6.3; 能够正常运行,运算符函数operator-应在类中声明为( )。
A.friend Myst operator- (Myst&, Myst&);
B.friend Myst operator- (Myst,Myst);
C.friend Myst operator- (Myst,Myst&);
D.friend Myst operator- (Myst&,Myst);
正确答案:B
15. 程序的3种基本控制结构是( )。
距离高考还有A.过程、子过程和分程序
B.顺序、选择和重复
C.递归、堆栈和队列
D.调用、返回和转移
正确答案:B
16. C++对C语言作了很多改进,下列描述中( )使得C语言发生了质变,即从面向过程变成面向对象。
A.增加了一些新的运算符
B.允许函数重载,并允许设置默认参数
C.规定函数说明必须用原型
D.引进了类和对象的概念
正确答案:D
17. 关于关键字class和typename,下列描述正确的是( )。
A.程序中所有的class都可以替换为typename
B.程序中所有的typename都可以替换为class
C.A和B都可以
D.A和B都不可以
正确答案:B
18. 重载赋值操作符时,应声明为( )。函数。
A.友元
B.虚
无序性C.成员
D.多态
正确答案:C
19. 有如下程序: #include” iostream.h” void main( ) { int x=1, a=0, b=0; switch(x) { ca O:b++; eal:a++; ca2:a++:b++: } cout<<”a =“<<a<<”对工作的期望,” <<”b=“<<b; } 该程序的输出结果是( )。
A.a=2,b=1
B.a=l, b=1
C.a=1,b=0
D.a=2,b=2
正确答案:A
20. 下列关于指针的运算中,( )是非法的。
A.两个指针在一定条件下,可以进行相等或不等的运算
B.可以将一个空指针赋值给某个指针
C.一个指针可以加上两个整数之差
D.两个指针在一定条件下可以相加
正确答案:D
21. C++本身没有定义I/O操作,但I/O操作包含在C++实现中。C++标准库iostream提供了基本的I/O类。I/O操作分别由类istream和( )提供。
A.fstream
B.iostream
C.ostream
D.cin
正确答案:C
22. 派生类的对象对它的基类成员中( )是可以访问的。
A.公有继承的公有成员
B.公有继承的私有成员
C.公有继承的保护成员
D.私有继承的公有成员
正确答案:A
勇往直前歌曲23. 对于重载的运算符>>,它是一个( )。
A.用于输入的友元函数
B.用于输入的成员函数
C.用于输出的友元函数
D.用于输出的成员函数
正确答案:A
24. 下列for循环的循环体执行次数为( )。 for (int i=O,j=10;i=j=10;i++,j--)
A.0
B.1
C.10
芭蕾小女孩D.无限
正确答案:D
25. 下列格式化I/O的操作符中,( )是设置域宽的。
A.ws
B.oct
C.tfill(int)