国家二级C++机试(选择题)模拟试卷513
选择题
1.有三个关系R、S和T如下:
(D)
A. 笛卡尔积
B. 交
C. 并
D. 自然连接
解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T关系中的有序组可知R与S进行的是自然连接操作。
2.下列程序的输出结果为2,横线处应添加语句( )。
#include<iostream>
using namespace std;
class TestClass1
{
public:
void fun(){cout<<1;}
};
class TestClass2:public TestClass1
{
public:
void fun(){cout<<2;}
};
int main()
{
TestClass1 *p=new TestClass2;
p->fun();
delete p;
return 0:
}(C)
A. public
B. private
C. virtual
D. protected
解析:由主函数main入手,定义TestClass1类的指针对象p指向派生类TestClass2。因为基类和派生类中都有fun函数,题目要求输出为2,就是基类对象访问派生类中fun函数。通过虚函数与指向基类对象的指针变量的配合使用,就能方便调用同名函数。所以这里将基类中的fun函数声明为virtual。并且当一个成员函数被声明为虚函数后,其派生类中的同名函数自动成为虚函数。
3.有如下类定义:
class Point
{
int X一,y;
public:
Point():x一(O),Y一(O){)
Point(int X,int Y=0):X_(x),y.(y){}
};
若执行语句
Point a(2),b[3],*c[4];
则Point类的构造函数被调用的次数是( )。(C)
A. 2次
B. 3次
C. 4次
D. 5次
解析:此题考查的是类的构造函数。构造函数在对象创建的时候由系统自动调用。在Point a(2),b[3],*c[4]语句中:a(2)是定义一个对象并传入构造函数2,所以此时会调用以此构造函数;b[3]是定义一个包含3个对象的数组,所以构造函数会被调用3次;*c【4]定义的是4个Point类对象指针的数组,它并没有创建任何Point对象,所以不调用构造函数。
4.有如下类和对象的定义:
class Constants{
public;
static double getPl0{return 3.1416;}
};
Constants constants;
下列各组语句中,能输出3.1416的是( )。(D)
A. cout<getPI();和cout<<Constants∷gerPI();
B. cout<<constants.getPI();和cout<<Constants.getPI();
C. cout<getPI();和cout<getPl();
D. cout<<constants.getPI();和cout<<Constants∷getPI();
解析:此题考查的是静态成员函数的引用。getPI()是类Constants的静态成员函数。引用静态成员函数可以有两种形式:一是通过类名直接进行调用,例如类名∷静态成员函数名;另一种是用类的任何对象名进行调用其作用仅是通过对象名间接的指出类名,例如constants.getPI()选项D即是这种调用方式。
5.执行下列语句段后,输出字符“木”的个数是( )。
for(int i=50;i>1;i一=2)
cout<<‘*’;(B)
A. 24
B. 25
C. 26
D. 50
解析:本题考查for循环语句,题目中每执行完循环体后,i都会减2,那么只有50到2之间的偶数才能输出“*”,所以总共输出25次。
6.程序调试的任务是(D)
A. 设计测试用例
B. 验证程序的正确性
C. 发现程序中的错误
D. 诊断和改正程序中的错误
解析:程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软什中的错误。先要发现软件的错误,然后借助于一定的调试工具去执行并找出错误的具体位置。软件测试贯穿整个软件生命期,调试主要在开发阶段。
7.下列关于虚函数的描述中,正确的是( )。(C)
A. 虚函数是一个static类型的成员函数
B. 虚函数是一个非成员函数
C. 基类中采用virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加virtual说明
D. 派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型
解析:此题考查虚函数的概念。在成员函数声明的前面加上virtual修饰,即把该函数声明为虚函数。虚函数只能是类中的一个成员函数,但不能是静态成员函数,所以选项A和B错误;在派生类中重新定义虚函数时必须有相同的函数类型,包括函数的返回类型、函数名、参数个数、参数类型的顺序必须相同。故选项D错误。
8.下列字符串中不能作为C++标识符使用的是( )。(D)
A. WHILE
B. user
C. _lvar
D. 9stars
解析:在C++中变量名的命名必须遵循一定的原则,其中之一即是第一个字符必须是字母或者下划线。
9.有如下程序段:
int i=l;
while(1){
i++:
if(i==10) break;
if(i%2==0) cout<<’*’;
}
执行这个程序段输出字符木的个数是( )。(C)
A. 10
B. 3
C. 4
D. 5
解析:这段程序代码的功能是计算在1~10(包括10)之间偶数i的个数,如果整数i为偶数,则输出一个‘*’,共有4个偶数,所以共输出4个‘*’。
10.有如下程序:
#include<iostream>
using namespace std;
int main(){
ha
本文档预览:3600字符,共10763字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载