1.在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是( )。
A.ios_base::cur
B.ios_base::beg
C.ios_base::0ut
D.ios_base::end
2.下列字符串中可以用作C++标识符的是( )。
A.2009var
B.goto
C.test-2009
D.123
3.下列枚举类型的定义中,包含枚举值3的是( )。
A.enumtest{RED,YELLOW,BLUE,BLACK};
B.enumtest{RED,YELLOW=4,BLUE,BLACK);
C.enumtest{RED=-1,YELLOW,BLUE,BLACK};
D.enumtest{RED,YELLOW=6,BLUE,BLACK);
4.有如下程序段:
inti=1:
while(1){
i++:
if(i==10)break:
if(i%2==0)cout<<’*’:
}
执行这个程序段输出字符*的个数是( )。
A.10
B.3
C.4
D.5
5.已知数组arr的定义如下:
intarr[5]={1,2,3,4,5};下列语句中输出结果不是2的是( )。
A.cout<<*arr+1
intfib(intn){
if(n==0)returnl;
elseif(n==l)return2:
elsereturnfib(n-1)+fib(n-2);
}
若执行函数调用表达式fib(2),函数fib被调用的次数是( )。
A.1
B.2
C.3
D.4
7.Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是( )。
Samplea[2],*p=newSample;
A.0
B.1
C.2
D.3
8.下列关于虚基类的描述中,错误的是( )。
A.使用虚基类可以消除由多继承产生的二义性
B.构造派生类对象时。虚基类的构造函数只被调用一次
C.声明“classB:virtualpublicA”说明类B为虚基类
D.建立派生类对象时,首先调用虚基类的构造函数
9.将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是( )。
A.不合法的运算符
B.一元运算符
C.无操作数的运算符
D.二元运算符
10.有如下模板声明:
templateclassA;
下列声明中,与上述声明不等价的是( )。
A.templateclassA;
B.templateclassA;
C.templateclassA;
D.templateclassA;
参考答案:
1.A。【解析】主要考查文件流的定位问题。冀中iosbase::beg表示相对于文件首,ios_base::cur表示相对于当前位置(负数表示当前位置之前),ios_base::end表示相对于文件尾,ios_base::out表示在文件流的建立中为文件的输出而打开。
2.D。【解析】标识符主要由数字、字母、下画线组成,且首位必为字母或下画线,同时标识符不能是关键字。
3.A。【解析】本题主要考查枚举类型的定义,其中几个枚举值全部未赋常量值时,它们自左至右分别与整数0,1,…,n-1对应。由此可判断本题答案。
4.C。【解析】本题主要考查while的作用。只有i为偶数时才输出“*”,而本题只有2,4,6,8时才满足条件,而当i为10时程序结束,即只有4个“*”被输出。
5.D。【解析】本题主要考查指针的特殊含义。例*px+1指取px所指对象内容加1,*(px+1)指px指针加1,并取结果指针内容而*px则指px的首元素。
6.C。【解析】针对递归调用的含义。当n为2时有fib(o),fib(1),fib(2)被调用,且fib(O),fib(1)时调用结束,即共3次。
7,D。【解析】构造函数在对象被创建时由系统自动调用,本题共创建了3个对象。
8.C。【解析】本题针对虚基类的定义及特点考查。虚基类的声明为“class<类名>:virtual<继承方式><基类名>”,即本题的A为虚基类。
9.B。【解析】一元或二元运算符函数作为成员函数时,第一操作数就是对象本身,并不出现在参数表中,即第一操作数仅以this指针的形式隐会于参数表中,因此对于一元运算符参数表是空的;而对于二元运算符参数表中只有一个参数,它代表第二操作数。
10.D。【解析】模板形参有typename<参数名>、class<参数名>、<类型修饰><参数名>3种形式,即typename与class通用。