一起答

2013年9月全国计算机等级《二级C++》命题预测试卷一

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 使用VC++6.0打开考生文件夹下的源程序文件3.cpp。请完成以下部分,实现在屏幕上输出为

    C3

    C2

    这个程序需要修改的部分,请按照以下部分实现。

    (1)类C0不能被实例化,请定义一个纯虚函数print,在注释1后添加适当的语句。

    (2)类C1私有虚继承类C0,请在注释2后添加适当的语句。

    (3)类C2公有继承于C0,请在注释3后添加适当的语句。

    (4)类c3公有继承于C2与C1,请在注释4后添加适当的语句。

    注意:增加代码或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。

    试题程序:

    #include(iostream.h)

    classCO

    {

    //********1********

    };

    //********2********

    classC1:

    {

    public:

    voidprint

    {

    cout<"”C1"<

    }

    };

    //********3********

    classC2:

    {

    public:

    voidprint

    {

    cout<<"C2"<

    }

    };

    //********4***x****

    classC3:

    {

    public:

    voidprint

    {

    cout<<"C3"<

    }

    };

    voidmain

    {

    C30bj3;

    C20bj2;

    obj3.print;

    obj2.print;

    return;

    }

  2. 使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(intn),使其实现以下功能:当i等于3时,则打印如下内容。

    A

    AA

    AAA

    注意:不能修改程序的其他部分,只能修改fun函数。

    试题程序:

    #include

    voidfun(intn)

    {

    }

    voidmain

    {

    intn;

    cout<<"请输入打印的行数:"<

    cin>>n;

    if(n<1)

    {

    cout<<"输入的行数必须大于0"<

    return;

    }

    fun(n);

    return;

    }

  3. 负责数据库中查询操作的数据库语言是(  )。

    • A.数据定义语言
    • B.数据管理语言
    • C.数据操纵语言
    • D.数据控制语言
  4. 使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错。请改正程序中的错误,使程序输出的结果为

    100

    37

    32

    注意:错误的语句在//******error******的下面,修改该语句即可。

    试题程序:

    #include

    //******error******

    voidmain

    {

    //******error******

    intm=0142:

    //******error******

    intn=0X27:

    intq=32;

    cout<

    cout<

    cout<

    return;

    }

  5. 下列程序的运行结果是(  )。

    #include

    intx=5:

    intfun(inta)

    {

    intC;

    C=X*a:

    returnC;

    }

    voidmain(  )

    {

    intx=3,a=4;

    x=x+fun(a);

    cout<<"x="<

    }

    • A.x=15
    • B.x=17
    • C.x=23
    • D.x=25
  6. 面向对象的没计方法与传统的面向过程的方法有本质不同,它的基本原理是(  )。

    • A.模拟现实世界中不同事物之间的联系
    • B.强调模拟现实世界中的算法而不强调概念
    • C.使用现实世界的概念抽象地思考问题从而自然地解决问题
    • D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考
  7. 若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为(  )。

    • A.a
    • B.AA.a
    • C.a{}
    • D.AA::a{}
  8. 静态成员函数没有(  )。

    • A.返回值
    • B.this指针
    • C.指针参数
    • D.返回类型
  9. 下面程序的运行结果为(  )。

    #include

    ClassA

    {

    public:A(  ){cout<<"1";}

    ~A(  ){cout<<"2";}

    };

    ClassB:public:A

    {

    public:

    B(  ){cout<<"3";}

    ~B(  ){cout<<"4";}

    };

    Voidmain(  )

    {

    Bb;

    }

    • A.1234
    • B.1324
    • C.1342
    • D.3142
  10. 有如下程序:

    #include

    usingnamespacestd;

    classPublication{//出版物类

    charname[30];

    public:

    Publication(char*name=”未知名称”){

    ~strcpy(this一>name,name);

    }

    constchar*getName(  )const{returnname;}

    virtualconstchar*getType(  )const{return”未知类型”;}

    };

    classBook:publicPublication{//书类

    public:

    Book(char*name):Publication(name){}

    virtualconstchar*getType(  )const{return"书";}

    };

    voidshowPublication(Publication&p){

    cout<

    endl;

    }

    intmain(  ){

    Bookbook(”精彩人生”);

    showPublication(book);

    return0;

    }

    运行时的输出结果是(  )。

    • A.未知类型:未知名称
    • B.未知类型:精彩人生
    • C.书:未知名称
    • D.书:精彩人生
  11. 若有以下程序:

    #include

    usillgnamespacestd;

    classA

    {private:

    inta;

    public:

    • A(inti)    {a=i;}    voiddisp()    {cout
    • intb;    public:
    • B(intj)    {b=j;}    voiddisp()    {COUt
    • intC;    public:
    • C(intk):A(k-2),B(k+2)    (c=k;)    voiddisp()    {A::disp();
    • B::disp();
    • cout<
    • intmain()    {Cobj(10);    obj.disp();    return0;}    程序执行后的输出结果是(  )。
    • A.10,10,10
    • B.10,12,14
  12. 是(  )。

    • A.2*a*b/c/d
    • B.a*b/c/d*2
    • C.a/c/d*b*2
    • D.2*a*b/c*d
  13. 对于模板定义关键字class和typename说法不正确的是(  )。

    • A.程序中的class并不能都替换为typename
    • B.class和typename都可互相替换
    • C.程序中的typename都能替换为class
    • D.程序中的部分class可以替换为typename
  14. 有如下程序:

    #include

    usingnamespacestd;

    classXA{

    inta;

    public:

    staticintb;

    XA(intaa):a(aa){b++;}

    ~XA(  ){}

    intget(  ){returna;}

    };

    intXA::b=0

    intmain(  ){

    XAd1(1),d2(3);

    cout<

    return0;

    }

    运行时的输出结果是(  )。

    • A.5
    • B.6
    • C.7
    • D.8
  15. 在软件开发中,需求分析阶段产生的主要文档是(  )。

    • A.软件集成测试计划
    • B.软件详细设计说明书
    • C.用户手册
    • D.软件需求规格说明书
  16. 数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是(  )。

    • A.DB包含DBS和DBMS
    • B.DBMS包含DB和DBS
    • C.DBS包含DB和DBMS
    • D.没有任何关系
  17. 下列程序的运行结果是(  )。

    #include

    intx=5;

    intfun(inta)

    {

    intc:

    c=X*a:

    returnC;

    }

    voidmain()

    {

    intx=3,a=4;

    x=x+fun(a);

    cout<<"x="<

    }

    • A.x=15
    • B.x=17
    • C.x=23
    • D.x=25
  18. 软件设计中划分模块的一个准则是(  )。

    • A.低内聚低耦合
    • B.高内聚低耦合
    • C.低内聚高耦合
    • D.高内聚高耦合
  19. 下面程序的输出结果是(  )。

    #include

    Usingnamespacestd;

    ClassBase{

    public:

    Base(intx=O){cout<

    }

    };

    ClassDerived:publicBase{

    public:Derved(intx=0{cout<

    }

    private;

    Baseval;

    };

    int main(){

    Derivedd(1);

    retrun0;

    }

    • A.0
    • B.1
    • C.01
    • D.001
  20. 有以下程序:

    classDate

    {

    public:

    Date(inty,intm,intd);

    {

    year=Y:

    month=m;

    day=d;

    }

    Date(inty=2000)

    {

    year=y;

    month=10;

    day=1;

    }

    Date(Date&d)

    {

    year=d.year;

    month=d.month;

    day=d.day;

    }

    voidprint(  )

    {

    cout<

    }

    private:

    intyear,month,day;

    };

    Datefun(Dated)

    {

    Datetemp;

    temp=d;

    returntemp;

    }

    intmain(  )

    {

    Datedatel(2000,1,1),date2(0,0,0);

    Datedate3(datel);

    date2=fun(date3);

    return0;

    }

    程序执行时,Date类的拷贝构造函数被调用的次数是(  )。

    • A.2
    • B.3
    • C.4
    • D.5
  21. 以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误的原因是(  )。

    #include(iostream.h)

    voidmain(  )

    {int*P,*q,a,b;

    p=&a;

    cout<<"inputa:";

    cin>>P;

    }

    • A.*P表示的是指针变量P的地址
    • B.P表示的是变量a的地址,而不是变量a的值
    • C.*P表示的是指针变量p的值
    • D.*P只能用来说明P是一个指针变量
  22. 当需要将一个函数boolisnunlber(charc)声明为内联函数时,此内联函数的函数原型为(  )。

    • A.enumboolisnumber(charc);
    • B.defineboolisnumber(charc);
    • C.inlineboolisnumber(charc);
    • D.extemboolisnumber(charc);
  23. 有如下程序:

    #include

    usingnamespacestd;

    intmain(  ){

    inta[6]={23,l5,64,33,40,58};

    ints1,s2;

    s1=s2=a[0];

    for(int*p=a+1;pif(sl>*p)s1=*P;

    if(s2<*p)s2=*p;

    }

    cout<

    return0;

    }

    运行时的输出结果是(  )。

    • A.23
    • B.58
    • C.64
    • D.79
  24. 下列选项中不合法的标识符是(  )。

    • A.print
    • B.FOR
    • C.&a
    • D.-00
  25. 考虑函数原型voidtest(inta,intb=7,charz='*'),下面的函数调用中,属于不合法调用的是(  )。

    • A.test(5);
    • B.test(5,8);
    • C.test(6,'#');
    • D.test(0,0,'*');
  26. 若有以下程序:

    #include

    usingnamespacestd;

    classBase

    {public:

    Base()

    {x=0;}

    intx;};

    classDerivedl:virtualpublicBase

    {public:

    Derivedl()

    {x=10;}};

    classDerived2:virtua11publicBase

    {public:

    Derived2()

    {x=20;}};

    classDerived:publicDerivedl,protectedDerived2{};intmain()

    {Derivedobj;

    cout<

    return0;}

    该程序运行后的输出结果是(  )。

    • A.20
    • B.30
    • C.10
    • D.0
  27. 下面程序的运行结果为(  )。#include

    voidswap(int&a,intb)

    {

    inttemp;

    temp=a++;

    • a=b:
    • b=temp:    }    voidmain()    {
    • inta=2,b=3;    swap(a,b);
    • cout<}
    • A.2,3
    • B.3,2
    • C.2,2
    • D.3,3
  28. 对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为(  )。

    • A.log2n
    • B.n/2
    • C.n
    • D.n+1
  29. 在E—R图中,用来表示实体联系的图形是(  )。

    • A.椭圆图
    • B.矩形
    • C.菱形
    • D.三角形
  30. 下列数据结构中,属于非线性结构的是(  )。

    • A.循环队列
    • B.带链队列
    • C.二叉树
    • D.带链栈
  31. 下列描述中,错误的是(  )。

    • A.公有继承时基类中的公有成员在派生类中仍是公有成员
    • B.公有继承时基类中的保护成员在派生类中仍是保护成员
    • C.保护继承时基类中的公有成员在派生类中仍是公有成员
    • D.保护继承时基类中的保护成员在派生类中仍是保护成员
  32. 结构化程序所要求的基本结构不包括(  )。

    • A.顺序结构
    • B.GOTO跳转
    • C.选择(分支)结构
    • D.重复(循环)结构
  33. 若有表达式“(w)?(--x):(++y)”,则其中与w等价的表达式是(  )。

    • A.w==1
    • B.w==0
    • C.W!=1
    • D.W!=0
  34. C++语言中关于构造函数的说法正确的是(  )。

    • A.构造函数的函数名不必和类名相同
    • B.构造函数只能有一个
    • C.每个类必定有构造函数
    • D.构造函数必有返回值
  35. 有如下函数模板声明:

    template

    TMax(Ta,Tb){return(a>b)?a:b;}

    下列对函数模板Max(  )的调用中错误的是(  )。

    • A.Max(3.5,4.5)
    • B.Max(3.5,4)
    • C.Max(35,4.5)
    • D.Max(3.5,4)
  36. 有以下结构体说明和变量的定义,且指针P指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是(  )。

    structnode

    {chardata;

    structnode*next;

    }a,b,*p=&a,*q=&b;

    • A.a.next=q;
    • B.P.next=&b;
    • C.p->next=&b;
    • D.(*p).next=q;
  37. 假定MyClass为一个类,那么下列的函数说明中,(  )为该类的析构函数。

    • A.void~MyClass(  );
    • B.~MyC
    • C.ass(intn);
    • D.MyClass(  );
    • E.~MyClass(  );
  38. 数据处理的最小单位是(  )。

    • A.数据
    • B.数据元素
    • C.数据项
    • D.数据结构
  39. 数据库系统的三级模式不包括(  )。

    • A.概念模式
    • B.内模式
    • C.外模式
    • D.数据模式
  40. SQL语言又称为(  )。

    • A.结构化定义语言
    • B.结构化控制语言
    • C.结构化查询语苦
    • D.结构化操纵语言
  41. 对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是(  )。

    • A.快速排序
    • B.冒泡排序
    • C.直接插入排序
    • D.堆排序
  42. 每个C++程序中都必须有且仅有一个(  )。

    • A.类
    • B.预处理命令
    • C.主函数
    • D.语句
  43. 算法的空间复杂度是指(  )。

    • A.算法在执行过程中所需要的计算机存储空间
    • B.算法所处理的数据量
    • C.算法程序中的语句或指令条数
    • D.算法在执行过程中所需要的临时工作单元数