下半年的计算机等级考试已经快到了,对于考生来说,C++绝对是一个难关。出国留学网计算机等级考试栏目为大家分享“计算机二级C++上机练习题及答案”,一起来做做吧。
计算机二级C++上机练习题及答案
1下列有关内联函数的叙述中,正确的是( )。
A.内联函数在调用时发生控制转移
B.内联函数必须通过关键字inline来定义
C.内联函数是通过编译器来实现的
D.内联函数函数体的最后一条语句必须是return语句
参考答案:C
参考解析:一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联函数体来替换,所以在调用时不发生控制转移。在类内部实现的函数都是内联函数,可以不用inline定义;只有函数外部定义的内联函数才必须加关键字inline。编译系统并非对内联函数必须使用内联,而且根据具体情况决定。内联函数不是必须要有返回值的。
2语句int*P=&k;定义了指针P,与这个语句等效的语句序列是( )。
A.int* p;P=&k;B.int * P;P=k;C.int * p;* P=&k;D.int * p;* P=k;
参考答案:A
参考解析:本题考查指针和地址,题目中定义了一个指向变量k的一个指针p,那么与题目中等效的表达式A选项,即先定义一个指向整型的指针,然后指向k的地址。
3有如下程序:
#include
using namespace std;
class A
{
public:
A(){cout<<”A”;}
-A(){cout<<”-A”;}
};
class B:public A
{
A*P;
public:
B(){cout<<”B”;P=new A();}
-B(){cout<<”~B”;delete p;}
};
int main()
{
B obj;
return 0;
}
执行这个程序的输出结果是( )。
A.BAA~A~B~AB.ABA~B~A~AC.BAA~B~A~AD.ABA~A~B~A
参考答案:B
参考解析:本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数。对象释放时,先执行派生类的析构函数,再执行基类的析构函数。所以本题答案为B。
4有如下类定义:
class AA
{
im a:
public:
int getRef()const{return&a;}//①
<...