计算机等级考试不足20天,你刷好了二级C++语言试题吗?

发布于 2018-08-27 14:34  编辑:simi
0
计算机等级考试题库 扫码微信刷题


天气炎热,希望大家静心刷计算机等级考试题库!祝大家都能一次性通过考试!认真复习以下的二级C++语言试题


1.下列定义中P指向的地址可更改,但*P不能够更改的是(  )

A.constint*P;

B.int*constP;

C.constint*constP;

D.int*P;

答案:A。【解析】“constint*P;”是只能改变指针地址,“int*constP;”是只能改变*P的内容,“constint*constP;”是指针的地址和*P的内容都不能改变,“int*P;”是两者都能改变。

 

2.如果表达式“--x/y”中的“--”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为(  )

A.operator/(X.operator--(  )y);

B.operator/(operator--(x)y);

C.X.operator--(  ).operator/(y);

D.y.operator/operator--(x));

答案:B。【解析】本题考查运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且c1c2都是该类的对象,则“c1.operator+(c2),与“c1+c2”含义相同。如果+作为该类的非成员函数重载,则“operator+(c1c2)”与“c1+c2”含义相同。同理,运算符“/”作为友元函数重载,则“(--x)/y”与表达式“operator/((--x)y)”相同。前缀运算符“--”作为友元函数重载,则“--Xoperator--(x)”相同,所以组合起来是“0perator/(operator--(x)y);”,即B选项。

 

3.下列程序输出的结果是(  )

#include

funl(characharb){charC;c=a;a=b;b=C;)

fun2(char*acharb){charC;c=*a;*a=b;b=c;)

fun3(char*achar*b){charC;C=*a;*a=*b;*b=C;)

voidmain(  )

{

charab;

a=A;b=B;fun1(ab);putchar(a);putchar(b);

a=A;b=B;fun2(&ab);putchar(a);putchar(b);

a=A;b=B;fun3(&a&b);putchar(a);putchar(b);

putchar(’\n’);

}

A.BABBAB

B.ABBBBA

C.ABBABA

D.ABABBA

答案:B。【解析】由程序中的主函数main入手,分别调用fun1fun2fun3函数,得出输出结果。其中,3个函数都是实现的两个形参的交换功能,只是值传递的方式不同,有的是引用,有的是传值。第一个函数中参数采用的是值传递的方式,形参的变化不影响实参。所以d调用funl后,实参ab并没有交换,仍然是AB。第二个调用中,实参a采用的是地址,即传递的是地址,所以形参a的改变会影响实参a的值,即BB。同理,调用fun3后为BA

 

4.下面程序的结果是(  )

#include(iostream.h>

classA

{

inta;

public

A(  )a(1){}

voidshowa(  )(cout<};

classB

{

inta;

public

B(  )a(2){}

voidshowa(  ){cout<};

classCpublicApublicB

{

inta;

public

C(  )a(3){}

voidshowa(  ){cout<};

voidmain(  )

{

CC;

C.showa(  );

}

A.1

B.2

C.3

D.程序有错误

答案:C。【解析】类A,类B,中都有showa函数,类C继承后再次重写showa函数就解决了继承的二义性,这时C.showa函数显示的就是类C中的showa的值。

 

5.有以下程序:

voidmain(  )

{inta=5b=4c=3d=2;

if(a>b>c)

cout=d)==1)

cout

cout<}

A.2

B.3

C.4

D.编译时有错,无结果

答案:B。【解析】本题考查逻辑表达式的结合特性,即左结合性。对于表达式a>b>e,首先判断a>b为真,结果为1,然后判断1>e,为假,故转去判断c-1>=d是否成立,成立,结果为1,再判断l=1,结果为真,因此,执行d+1,答案为B

 

6.下列程序的执行结果是(  )

#include(iostream.h>

#include

classTestClass

{

public

intXy;

TestClass(  ){x=y=0;}

TestClass(intaintb){x=a;y=b;}

voiddisp(  )

{

cout<<"x="<};

classB{publicB(  ){cout<<"B";}};

classCpublicA{

Bb;

public

C(  ){cout<<"C";}

};

intmain(  ){Cobj;return0;}

执行后的输出结果是(  )

A.CBA

B.BAC

C.ACB

D.ABC

答案:B。【解析】由主函数入手,定义了类TestClass的对象s1(23),当类对象进入其作用域时调用构造函数,构造函数应该是调用具有参数的“TestClass(intaintb){x=a;Y=b;}”,然后调用成员函数disp(),则输出为“cout<<"x="<

 

7.函数swap(an)可完成对a数组从第1个元素到第n个元素两两交换。其中b[o]=1;b[1]=2;swap(b2)。在运行调用函数中的语句后,b[0]b[1]的值分别为(  )

A.11

B.12

C.22

D.21

答案:D。【解析】如果函数实参是数组名,形参也应为数组名,函数swap中形参进行了交换。实际上也是实参进行了交换。而且数组名代表数组首元素的地址,并不是代表数组的全部元素。所以,swap(b2)是数组b第一个元素与第二个元素进行交换,即b[0]b[1],根据题干,知道答案为21

 

8.有以下程序:

#include(iostream.h)

voidfun(intaintbintc)

{a=456b=567C=678;}

voidmain(  )

{

intx=10y=20z=30;

fun(xYz);

cout<}

输出结果是(  )

A.302010

B.102030

C.456567678

D.678567456

答案:B。【解析】本题考查函数中变量的作用范围,在主函数中给变量xyz赋值,然后将其作为实参传递给了函数fun,虽然在函数fun中改变了这3个变量的值,但只是同名的局部变量,不影响函数中变量的值,所以在调用函数fun结束后,主函数3个变量的值未改变。




总而言之,还有十九天的时间就要考试了,赶紧复习以上的计算机二级C++语言试题,收获是与付出成正比的。千万不要忘记刷计算机等级考试题库哦!预祝大家都能够顺利考取计算机等级证书~加油吧!考无忧小编等着你们的好消息~





文章推荐:

全国计算机等级考试可以不考一级直接考二级吗?

2018年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”

全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)



温馨提示:

考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office

想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库

想知道更多关于计算机等级考试题库的最新资讯吗?点击进入>>>计算机等级考试题库资讯






本文网址:http://www.k51.com.cn/info/jsjdjks/1808/2745654.html
选择分享到: