二级C++选择题专项强化真题试卷12
选择题
1.有如下程序:
#include<iostream>
using namespace std;
void f1(int& x, int& y){int z=x; x=y; y=z;)
void f2(int x, int y){int z=x; x=y; y=z;}
intmain(){
int x=10, y=26;
f1(x, y);
f2(x, y);
cout<<y<<end1;
return 0;
}
运行时的输出结果是( )。
A) 10
B) 16
C) 26
D) 36(A)
A.
B.
C.
D.
解析:
2.有如下类定义:
class AA{
int a;
public:
AA(int n=0):a(n){}
};
class BB:public AA{
public:
BB(intn)______
};
其中横线处缺失部分是( )。
A) :a(n){}
B) :AA(n){}
C) {a(n);}
D) {a=n;)(B)
A.
B.
C.
D.
解析:
3.下列语句中,与语句“n=(a>b?(b>c?1:0):0);”的功能等价的是( )。
A) if(a<=
B) n=0;B) if((a>B) ||(b>
C) )n=1; else n=0;C) if(a>B) if(b>C) n=h else n=0; else n=0;
D) if(a>B) n=1; else if(b<=C) n=1; else if(b>C) n=1; else n=0;(C)
A.
B.
C.
D.
解析:
4.已知类Myclass的定义如下:
class MyClass{
public:
MyClass(int D) {data=d;}
~MyClass (){}
private:
int data;
};
下列对Myclass类对象数组的定义和初始化语句中,正确的是( )。
A) MyClass arrays[2];
B) MyClass arrays[2]={MyClass(5)};
C) MyClass arrays[2]={MyClass(5), MyClass(6)};
D) MyClass*arrays=new MyClass[2];(C)
A.
B.
C.
D.
解析:
5.有如下程序:
#include<iostream>
using namespace std;
class Base{
public:
virtual void function1(){cout<<’0’;}
void function2(){cout<<’1’;}
};
class Derived:public Base{
public:
void function1(){cout<<’2’;}
void function2(){cout<<’3’;}
};
int main(){
Base*P=new Derived();
p->function1();
p->function2();
return 0;
};
运行时的输出结果是( )。
A) O1
B) 21
C) 03
D) 23(B)
A.
B.
C.
D.
解析:
6.软件开发离不开系统环境资源的支持,其中必要的测试数据属于(D)
A. 硬件资源
B. 通信资源
C. 支持软件
D. 辅助资源
解析:软件测试过程中,辅助资源包括测试用例(测试数据)、测试计划、出错统计和最终分析报告等。
7.下列程序的运行结果是
#include
void fun(int *a, int *b)
{ int *k;
k=a; a=b; b=k;
}
void main()
{ int a=3, b=6, *x=&a, *y=&b;
fun(x,y);
cout<<a<<\\(B)
A. 6 3
B. 3 6
C. 编译出错
D. 0 0
解析:函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中去。在本题解析中,我们试图将这一问题解释清楚!
大家可以考虑一下利用下面这函数可不可以实现a和b的互换。
swap(int x,int y)
{ int t;
t=x;
x=y;
y=t;
}
如果在main函数中用swap(a,b),会有甚么结果呢?在函数调用开始时,a的值传送给x,b的值传递给y 。执行完swap()函数后,x和y的值是互换了,但main()函数中的a和b并未互换。也就是说由于\\
8.执行语句 for(i=1;i++<4;);,后变量i的值是(C)
A. 3
B. 4
C. 5
D. 不定
解析:for语句中的表达式可以部分或全部省略,但两个\\
9.有如下函数模板声明: template<typename T> T Max(Ta,Tb){return(a>=b)?a:b;) 下列对函数模扳Max的调用中错误是(B)
A. Max(3.5,4,5)
B. Max(3.5,4)
C. Max<double>(3.5,4.5)
D. Max<double>(3.5,4)
解析:
10.有如下的程序: #include<cstring> #include<iostream> using namespace std; class MyString { public: M
本文档预览:3600字符,共10010字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载