21.A。【解析】“constint*P;”是只能改变指针地址,“int*constP;”是只能改变*P的内容,“constint*constP;”是指针的地址和*P的内容都不能改变,“int*P;”是两者都能改变。
22.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选项。
23.B。【解析】由程序中的主函数main入手,分别调用fun1,fun2,fun3函数,得出输出结果。其中,3个函数都是实现的两个形参的交换功能,只是值传递的方式不同,有的是引用,有的是传值。第一个函数中参数采用的是值传递的方式,形参的变化不影响实参。所以d调用funl后,实参a和b并没有交换,仍然是AB。第二个调用中,实参a采用的是地址,即传递的是地址,所以形参a的改变会影响实参a的值,即BB。同理,调用fun3后为BA。
24.C。【解析】类A,类B,中都有showa函数,类C继承后再次重写showa函数就解决了继承的二义性,这时C.showa函数显示的就是类C中的showa的值。
25.B。【解析】本题考查逻辑表达式的结合特性,即左结合性。对于表达式a>b>e,首先判断a>b为真,结果为1,然后判断1>e,为假,故转去判断c-1>=d是否成立,成立,结果为1,再判断l=1,结果为真,因此,执行d+1,答案为B。
26.B。【解析】由主函数入手,定义了类TestClass的对象s1(2,3),当类对象进入其作用域时调用构造函数,构造函数应该是调用具有参数的“TestClass(inta,intb){x=a;Y=b;}”,然后调用成员函数disp(),则输出为“cout<<"x="<
全国职称计算机考试速成过关系列套装:W .. 定价:¥133 优惠价:¥133.0 更多书籍 | |
全国职称计算机考试速成过关系列套装:W .. 定价:¥124 优惠价:¥124.0 更多书籍 |