该程序的输出结果是( )
A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2
【参考答案】A
14.若有说明inta[3][4];,则a数组元素的非法引用是( )
A.a[0][2*1] B.a[1][3]
C.a[4-2][0] D.a[0][4]
【参考答案】D
15.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )
A.函数调用可以作为独立的语句存在
B.函数调用可以无返回值
C.函数调用可以出现在表达式中
D.函数调用可以作为一个函数的形参
【参考答案】D
16.以下类定义中可能会引起错误的语句是( )
classA
{public:
~A(){} //1
inti; //2
private:
intj; //3
A(inti){i++;} //4};
A.1 B.2 C.3 D.4
【参考答案】D
17.下列描述中错误的是( )
A.派生类可以作为基类派生其他的子类
B.派生类继承基类的所有数据成员
C.派生类可以有多个基类
D.派生类不能继承一些函数成员
【参考答案】B
18.下列运算符中哪些是不能够被重载的?
( )
A..,.*,->*,:
:
?
:
B.++,--,new,delete,==
C.sizeof,new,delete,++,-- D.sizeof,new,delete,+,-
【参考答案】A
19.下列关于函数模板实参不能省略的情况说明不正确的是( )
A.从模板函数实参表获得的信息有矛盾
B.需要获得特定类型的返回值,而不管参数的类型如何
C.虚拟类型参数没有出现在模板函数的形参表中
D.函数模板不含有常规形参
【参考答案】D
20.表达式10>5&&6%3的值是( )
A.-1 B.非零值 C.0 D.1
【参考答案】C
21.以下函数调用语句中含有参数个数是()
excc((v1,v2),(v2,v3,v4),v6);
A.3 B.4 C.5 D.6
【参考答案】A
22.下列程序段的输出结果是( )
#include
voidfun(fun*x,int*y)
{cout<<*x<<*y;
*x=3;
*y=4;}
voidmain()
{intx=1,y=2;
fun(&y,&x);
cout< A.2143 B.1212 C.1.4 D.2112
【参考答案】A
23.下列程序的输出结果是( )
#include
voidmain()
{char*str=″12123434″;
intx1=0,x2=0,x3=0,x4=0,i;
for(i=0;str[i]!
=′\0′;i++)
switch(str[i])
{case′1′:
x4++;
case′2′:
x3++;
case′3′:
x2++;
case′4′:
x1++;〗}
cout< A.8,6,4,1 B.8,6,3,2 C.8,8,4,1 D.8,6,4,2
【参考答案】D
24.每个C++程序中都必须有且仅有一个( )
A.类 B.预处理命令 C.主函数 D.语句
【参考答案】C
25.设有intx=11;,则表达式(x++*2/3)的值是( )
A.7 B.8 C.11 D.12
【参考答案】A
26.对表达式for(表达式1;;表达式3)可理解为( )
A.for(表达式1;0;表达式3) B.for(表达式1;1;表达式3)
C.for(表达式1;表达式3) D.for(;;表达式3)
【参考答案】B
27.有如下说明
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是( )
A.*p+9 B.*(p+8) C.*p+=9 D.p+8
【参考答案】B
28.以下对C++语言函数的有关描述中,正确的是( )
A.在C++语言中调用函数,只能把实参的值传给形参,形参的值不能传送给实参
B.C++语言函数既可以嵌套定义又可以递归调用
C.函数必须无返回值,否则不能使用函数
D.函数必须有返回值,返回值类型不定
【参考答案】A
29.拷贝构造函数的参数一般是( )
A.某对象名 B.某对象成员名 C.某对象的引用名 D.指向对象的指针名
【参考答案】C
30.下面这个程序的结果是( )
#include
classA
{private:
inta;
public:
voidseta();intgeta();};
voidA:
:
seta()
{a=1;}
intA:
:
gate()
{returna;}
classB
{private:
inta;
public:
voidseta();intgeta();};
voidB:
:
seta()
{a=2;}
intB:
:
geta()
{returna;}
classC:
publicA,publicB
{private:
intb;
public:
voiddisplay();};
voidC:
:
display()
{intb=geta();
cout<
voidmain()
Cc;
c.seta();
c.display();}
A.1 B.2 C.随机输出1或2 D.程序有错
【参考答案】D
31.对于模板定义关键字class和typename说法不正确的是( )
A.程序中的class并不能都替换为typename
B.class和typename都可互相替换
C.程序中的typename都能替换为class
D.程序中的部分class可以替换为typename
【参考答案】B
32.以下程序的输出结果是( )
#include