1.下列关于C++流的描述中,错误的是( )。
A.cout>>’A’表达式中输出字符A
B.eof函数可以检测是否到达文件尾
C.对磁盘文件进行流操作时,必须包含头文件fstream
D.以ios_base::Out模式打开的文件不存在时,将自动建立一个新文件
2.有如下程序:
#include
usingnamespacestd;
classToy{
public:
Toy(char*_n){strcpy(name,_n);count++;)
~Toy( ){count一一;)
char*GetName( ){returnname;}
staticintgetCount( ){returncount;)
private:
charname[10];
staticintcount;
};
intToy::count=0;
intmain( ){
Toyt1("snoopy"),t2("Mickey"),t3("Barbie");
tout
)
运行时的输出结果是( )。
A.1
B.2
C.3
D.运行时出错
3.有如下程序:
#include
usingnamespacestd;
classA{
public:
A(inti):rl(i){)
voidprint( ){cout<<’E’
intr1:
};
intmain( ){
Aal(2);constAa2(4);,
al.print( );a2.print( );
return0;
}
运行时的输出结果是( )。
A.运行时出错
B.E2一C16一
C.C4一Cl6一
D.E2一E4—
4.有如下程序:
#include
usingnamespacestd;
className{
charname[20];
public:
Name( ){
strcpy(name,"");cout<<’?’;
}
Name(char*fname){
strcpy(name,fname);cout<<’?’;
}
};
intmain( ){
Namenames[3]={Name(”张三”),Name(”李四”));
return0;
}
运行此程序输出符号?的个数是( )。
A.O
B.1
C.2
D.3
5.有如下程序:
#include
usingnamespacestd;
classAA{
public;
AA( ){cOUt<<’1’;)
};
classBB:publicAA{
intk;
public:
BB( ):k(0){tout<<’12’;}
BB(intn):k(n)(cout<<’3’;)
};
intmain( ){
BBb(4),c;
return0;
}
运行时的输出结果是( ).
A.1312
B.132
C.32
D.1412
6.有如下程序:
#include
usingnamespacestd;
classC1{
public:
~C1( ){cout<<1;)
};
classC2:publicC1{
public:
~C2( ){cout<<2;)
};
intmain( ){
C2cb2;
C1*cb1:
return0;
}
运行时的输出结果是( )。
A.121
B.21
C.211
D.12
7.有如下程序:
#include
usingnamespacestd;
classPublication{//出版物类
charname[30];
public:
Publication(char*name=”未知名称”){
~strcpy(this一>name,name);
}
constchar*getName( )const{returnname;}
virtualconstchar*getType( )const{return”未知类型”;}
};
classBook:publicPublication{//书类
public:
Book(char*name):Publication(name){}
virtualconstchar*getType( )const{return"书";}
};
voidshowPublication(Publication&p){
cout
}
intmain( ){
Bookbook(”精彩人生”);
showPublication(book);
return0;
}
运行时的输出结果是( )。
A.未知类型:未知名称
B.未知类型:精彩人生
C.书:未知名称
D.书:精彩人生
8.下列关于运算符重载的描述中,错误的是( )。
A.::运算符不能重载
B.类型转换运算符只能作为成员函数重载
C.将运算符作为非成员函数重载时必须定义为友元
D.重载口运算符应完成“下标访问”操作
9.有如下程序:
#include
#includediomanip>
usingnamespacestd;
intmain( ){
ints[]={123,234);
cout
}
运行时的输出结果是( )。
A.123
B.***123
234234
C.***123
D.***123
***234234***
10.有如下类定义:
classA{
char*a;
public:
A( ):a(O){}
A(char*aa){//把aa所指字符串拷贝到a所指向的存储空间
a=__;
strcpy(a,aa);
}
~A( ){delete[]a;}
};
横线处应填写的表达式是( )。
A.Dewchar[strlen(aa)+1]
B.char[strlen(aa)+1]
C.char[strlen(aa)]
D.newchar[sizeof(aa)-1]