第 1 页:单选 |
第 5 页:程序改错、简单应用 |
第 6 页:综合应用 |
第 7 页:参考答案 |
21.有如下程序:
#include
usingnamespacestd;
voidf1(int&X,int&y){intz=X;x=y;y=z}
voidf2(intX,inty){intz=x;x=y;y=z}
intmain( ){
intx=10,y=26
f1(x,y);
f2(X,y);
cout< return0;
}
运行时的输出结果是( )。
A.10
B.16
C.26
D.36
22.有如下程序:
#include
usingnamespacestd;
classXA{
inta;
public:
staticintb;
XA(intaa):a(aa){b++;}
~XA(){}
intget(){returna;}
};
intXA::b=0
intmain(){
XAdl(1),d2(3);
cout< return0;
}
运行时的输出结果是( )。
A.5
B.6
C.7
D.8
23.有如下类定义:
classB{
public:voidfunl(){}
privace:voidfun2(){}
protected:voidfun3(){}
};
classD:publicB{
protected:voidfun4(){}
};
若obj是类D的对象,则下列语句中不违反访问控制权限的是( )。
A.obj.fun1();
B.obj.fun2();
C.obj.fun3();
D.obj.fun4();
24.有如下类定义:
classMyClass(
public:
____
private:
intdata;
};
若要为Myclass类重载流输入运算符>>,使得程序中可以“cin>>obj;”形式输入MyClasS类的对象obj,则横线处的声明语句应为( )。
A.friendistream&operator>>(istream&is,MyClass&a);
B.friendistream&operator>>(istream&is,MyClassa);
C.istream&operalor>>(istream&is,MyClass&a);
D.istream&operator>>(istream&is,Myclassa);
25.已知主函数中通过如下语句序列实觋对函数模板swap的调用:
inta[10],b[1O];
swap(a,b,10);
下列对函数模板swap的声明中,会导致上述语句序列发生编译错误的是( )。
A.template
voidswap(Ta[],Tb[],intsize);
B.template
voidswap(intsize,Ta[],Tb[]);
C.template
voidswap(T1a[],T2b[],intsize);
D.template
voidswap(T1a[],T2b[],intsize);
26.若目前D盘根目录下并不存在test.txt文件,则下列打开文件方式不会自动创建test,txt文件的是( )。
A.ifstreamfin;fin.open("d:\\test.txt",iso_base::in);
B.fstreamfi0;ri0.open("d:\\test.txt",is0_base::out);
C.ofstream。fort;lout.open("d:\\test.txt",ios_base::out);
D.ofstreamfout;fout.open("d:\\test.txt",is0_base::app);
27.已知类MyClass的定义如下:
classMyClass{
public:
voidfunctionl(MyClass&c){out< statievoidfunction2(MyClas&c){cout< voidfunction3(){out< statiCvoidfunction4(){COut< private:
intdata;
}:
其中有编译错误的函数是( )。
A.function1
B.function2
C.function3
D.function4
28.有如下程序:
#include
Usingnamespacestd;
ClassMyClass{
Public:
MyClass(){cout<<’*’;}
MyClass(MyClass&a){cout<<’#’;}
~MyClass(){cout<<’@’;}
};
intmain(){
MyClassa;
MyClassb(a);Return0;
}
运行时的输出结果是( )。
A.*@#@
B.#@*@
C.*#@@
D.#*@@
29.已知类MyClass的定义如下:
ClassMyClass{
public:
MyClass(intd){data=d;}
~MyClass(){}
private:
intdata;
};
下列对MyClass类对象数组的定义和初始化语句中,正确的是( )。
A.MyClassarray[2];
B.MyClassarray[2]={MyClass(5)};
C.MyClassarray[2]={MyClass(5),Myclass(6)};
D.MyClass*array=newMyClass[2];
30.下列描述中,错误的是( )。
A.公有继承时基类中的公有成员在派生类中仍是公有成员
B.公有继承时基类中的保护成员在派生类中仍是保护成员
C.保护继承时基类中的公有成员在派生类中仍是公有成员
D.保护继承时基类中的保护成员在派生类中仍是保护成员
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |