天气炎热,希望大家静心刷计算机等级考试题库!祝大家都能一次性通过考试!认真复习以下的二级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。【解析】本题考查运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且c1、c2都是该类的对象,则“c1.operator+(c2)”,与“c1+c2”含义相同。如果+作为该类的非成员函数重载,则“operator+(c1,c2)”与“c1+c2”含义相同。同理,运算符“/”作为友元函数重载,则“(--x)/y”与表达式“operator/((--x),y)”相同。前缀运算符“--”作为友元函数重载,则“--X与operator--(x)”相同,所以组合起来是“0perator/(operator--(x),y);”,即B选项。
3.下列程序输出的结果是( )。
#include
funl(chara,charb){charC;c=a;a=b;b=C;)
fun2(char*a,charb){charC;c=*a;*a=b;b=c;)
fun3(char*a,char*b){charC;C=*a;*a=*b;*b=C;)
voidmain( )
{
chara,b;
a=’A’;b=’B’;fun1(a,b);putchar(a);putchar(b);
a=’A’;b=’B’;fun2(&a,b);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入手,分别调用fun1,fun2,fun3函数,得出输出结果。其中,3个函数都是实现的两个形参的交换功能,只是值传递的方式不同,有的是引用,有的是传值。第一个函数中参数采用的是值传递的方式,形参的变化不影响实参。所以d调用funl后,实参a和b并没有交换,仍然是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<};
classC:publicA,publicB
{
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=5,b=4,c=3,d=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:
intX,y;
TestClass( ){x=y=0;}
TestClass(inta,intb){x=a;y=b;}
voiddisp( )
{
cout<<"x="<};
classB{public:B( ){cout<<"B";}};
classC:publicA{
Bb;
public:
C( ){cout<<"C";}
};
intmain( ){Cobj;return0;}
执行后的输出结果是( )。
A.CBA
B.BAC
C.ACB
D.ABC
答案:B。【解析】由主函数入手,定义了类TestClass的对象s1(2,3),当类对象进入其作用域时调用构造函数,构造函数应该是调用具有参数的“TestClass(inta,intb){x=a;Y=b;}”,然后调用成员函数disp(),则输出为“cout<<"x="<
7.函数swap(a,n)可完成对a数组从第1个元素到第n个元素两两交换。其中b[o]=1;b[1]=2;swap(b,2)。在运行调用函数中的语句后,b[0]和b[1]的值分别为( )。
A.1,1
B.1,2
C.2,2
D.2,1
答案:D。【解析】如果函数实参是数组名,形参也应为数组名,函数swap中形参进行了交换。实际上也是实参进行了交换。而且数组名代表数组首元素的地址,并不是代表数组的全部元素。所以,swap(b,2)是数组b第一个元素与第二个元素进行交换,即b[0]与b[1],根据题干,知道答案为2,1。
8.有以下程序:
#include(iostream.h)
voidfun(inta,intb,intc)
{a=456,b=567,C=678;}
voidmain( )
{
intx=10,y=20,z=30;
fun(x,Y,z);
cout<}
输出结果是( )。
A.30,20,10
B.10,20,30
C.456,567,678
D.678,567,456
答案:B。【解析】本题考查函数中变量的作用范围,在主函数中给变量x,y,z赋值,然后将其作为实参传递给了函数fun,虽然在函数fun中改变了这3个变量的值,但只是同名的局部变量,不影响函数中变量的值,所以在调用函数fun结束后,主函数3个变量的值未改变。
总而言之,还有十九天的时间就要考试了,赶紧复习以上的计算机二级C++语言试题,收获是与付出成正比的。千万不要忘记刷计算机等级考试题库哦!预祝大家都能够顺利考取计算机等级证书~加油吧!考无忧小编等着你们的好消息~
文章推荐:
2018年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”
全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)
温馨提示:
考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的最新资讯吗?点击进入>>>计算机等级考试题库资讯