一起答

2013年9月全国计算机等级《二级C++》考前冲刺试卷二

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了类A、A1和A2,其中A1类由A类公有派生,A2类由A1类公有派生。

    (1)定义类A的构造函数,该构造函数有一个整型的参数x,在构造函数中请将x赋值给数据成员a。请在注释“//********1********”之后添加适当的语句。

    (2)定义类A1的构造函数,该构造函数有两个整型的参数x和y,在构造函数中请将x赋值给数据成员b,将y作为基类A构造函数的参数值传人。请在注释“//********2********”之后添加适当的语句。

    (3)定义类A2的构造函数,该构造函数有3个整型的参数x,y和z,在构造函数中请将x赋值给数据成员C,将y和z分别赋值给基类A1构造函数的参数x和y。请在注释“//********3********”之后添加适当的语句。

    (4)完成类A2的成员函数show的定义,该函数调用基类成员函数,输出基类数据成员a和b及类A2自身的数据成员C的值,上述3个值在输出时以空格隔开。请在注释“//********4********”之后添加适当的语句。

    程序输出结果如下:

    7

    3

    738

    注意:除在指定的位置添加语句之外,请不要改动程序的其他部分。

    试题程序:

    #include

    classA

    {

    inta;

    public:

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

    intgeta{returna;}

    };

    classA1:publicA

    {

    intb;

    public:

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

    intgetb{returnb;}

    };

    classA2:publicA1

    {

    intC;

    public:

    //****,****3********

    voidshow

    {

    //********4********

    }

    };

    voidmain

    {

    A2a(8.3.7):

    cout

    }

  2. 使用VC++6.0打开考生文件夹下的源程序文件

    2.cpp。请完成函数fun(intx),该函数的功能是将X的值转换成二进制数输出到屏幕,并且在函数中调用写函数WriteFile将结果输出到2.txt文件中。

    例如x=6,6的二进制数为110,则输出到屏幕的数为110。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    #include(iostream)

    #include(fstream)

    #include(cmath)

    usingnamespacestd;

    voidWriteFile(char*str)

    {

    ofstreamout1;

    out1.open("2.txt",ios—base::binary|ios_base::app);

    for(inti=0;str[i]!=0;i++)

    out1.put(str[i]);

    out1.close;

    }

    voidfun(intx)

    {

    }

    voidClearFile

    {

    ofstreamout1;

    out1.open("2.txt");

    out1.close;

    }

    intmain

    {

    ClearFile;

    fun(13);

    return0;

    }

  3. 算法的时间复杂度是指(  )。

    • A.算法的执行时间
    • B.算法所处理的数据量
    • C.算法程序中的语句或指令条数
    • D.算法在执行过程中所需要的基本运算次数
  4. 使用VC++6.0打开考生文件夹下的源程序文件1.cpp,但该程序运行有问题,请改正main函数中的错误,使该程序的输出结果正确。

    程序输出:

    8

    8

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

    试题程序:

    #include(iostream.h>

    classCO

    {

    public:

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

    staticintn=0:

    CO

    {

    n++:

    }

    ~CO

    {

    n--:

    }

    }:

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

    intCO::n;

    voidmain

    {

    COobj;

    COobj2[7];

    CO*C=NULL:

    c=&obj:

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

    eout<

    cout<

    }

  5. C源程序中不能表示的数制是(  )。

    • A.二进制
    • B.八进制
    • C.十进制
    • D.十六进制
  6. 若MyTemp是一个具有虚拟类型参数的类模板,且有如下语句序列:

    MyTempp2;

    MyTempp3[2];

    编译系统在处理上面的话句序列时,所生成的模板MyTemp的实例的个数是(  )。

    • A.1
    • B.2
    • C.3
    • D.4
  7. 有下列程序:

    #include

    voidmain(  )

    {inta=1,b=2,c=3,d=0;

    if(a==1&&b++==2)

    if(b!=2‖c--!=3)

    printf("%d,%d,%d\n",a,b,c);

    elseprintf("%d,%d,%d\n",a,b,c);

    elseprintf("%d,%d,%d,%d\n",a,b,c);

    }

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

    • A.1,2,3
    • B.1,3,2
    • C.1,3,3
    • D.3,2,1
  8. 将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是(  )。

    • A.不合法的运算符
    • B.一元运算符
    • C.无操作数的运算符
    • D.二元运算符
  9. 要定义一个引用变量P,使之引用类MyClass的一个对象,正确的定义语句是(  )。

    • A.MyClassp=MyClass;
    • B.MyClassp=newMyClass;
    • C.MyClass&p=newMyClass
    • D.MyClassa,&p=a;
  10. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是(  )。

    • A.auto和register
    • B.extern和register
    • C.auto和static
    • D.static和register
  11. 模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的(  )。

    • A.抽象和信息隐蔽
    • B.局部化和封装化
    • C.内聚性和耦合性
    • D.激活机制和控制方法
  12. 下列关于多态性的描述,错误的是(  )。

    • A.C++语言中的多态性分为编译时的多态性和运行时的多态性
    • B.编译时的多态性可通过函数重载实现
    • C.运行时的多态性可通过模板和虚函数实现
    • D.实现运行时多态性的机制称为动态绑定
  13. 软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于(  )。

    • A.定义阶段
    • B.开发阶段
    • C.维护阶段
    • D.上述3个阶段
  14. 下列选项中,不是一个算法的基本特征的是(  )。

    • A.完整性
    • B.可行性
    • C.有穷性
    • D.拥有有足够的情报
  15. 下列字符串中,正确的C++标识符是(  )。

    • A.foo-1
    • B.2b
    • C.new
    • D._256
  16. 软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是(  )。

    • A.编辑软件
    • B.操作系统
    • C.教务管理系统
    • D.浏览器
  17. 有下列程序:

    #include

    #include”strin9.h”

    typedefstruct{charname[9];charsex;floatscore

    [2];}STU;

    voidf(STUa)

    {

    STUb={"Zha0",'m',85.0,90.0);inti;

    strcpy(a.name,b.name);

    sex=b.sex; 

    for(i=0;i<2;i++)a.score[i]=b.score[i]; 

    }

    voidmain(  ) 

    {

    STUc={"Qian",'f',95.0,92.0); 

    f(c); 

    printf("%s,%c,%2.Of,%2.Of\n",C.name,C.sex,

    score[O],C.score[1]); 

    }

    程序的运行结果是(  )。

    • A.Qian,f,95,92
    • B.Qian,m,85,90
    • C.Zha0,f,95,92
    • D.Zha0,m,85,90
  18. 两个或两个以上模块之间关联的紧密程度称为(  )。

    • A.耦合度
    • B.内聚度
    • C.复杂度
    • D.数据传输特性
  19. 下列程序段中包含4个函数,其中具有隐含this指针的是(  )。

    intfunl(  );

    classTest{

    public:

    intfun2(  );

    friendintfun3(  );

    staticintfun4(  );

    };

    • A.funl
    • B.fun2
    • C.fun3
    • D.fun4
  20. 若有如下程序:

    #include

    usingnamespaeestd;

    classTestClass

    {

    public:

    voidwho(){cout<<"TestClass"<

    };

    classTestClassl:publicTestClass

    {

    public:

    voidwho(){cout<<"TestClassl"<

    intmain()

    {

    TestClass*P;

    TestClasslobj1;

    p=&obj1;

    p->who();

    retum0;

    }

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

    • A.TestClassl
    • B.TestClass
    • C.0
    • D.无输出
  21. 下面描述中错误的是(  )。

    • A.系统总体结构图支持软件系统的详细设计
    • B.软件设计是将软件需求转换为软件表示的过程
    • C.数据结构与数据库设计是软件设计的任务之一
    • D.PAD图是软件详细设计的表示工具
  22. 有以下程序;

    #include

    usingnamespacestd;

    classComplex

    {

    public:

    Complex(doubler=0,doublei=O):re(r),im(i){}

    doublereal()const{returnre;}

    doubleimag()const{returnim;}

    Complexoperator+(Complexc)const

    {returnComplex(re+C.re,im+C.im);}

    private:

    doublere,im;

    };

    intmain()

    {

    Complexa=Complex(1,1)+Complex(5);

    cout

    }

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

    • A.6+6i
    • B.6+1i
    • C.1+6i
    • D.1+1i
  23. 设有两个字符串p和q,求q在p中首次出现位置的运算称为(  )。

    • A.连接
    • B.模式匹配
    • C.求子串
    • D.求串长
  24. 下列关于C++流的描述中,错误的是(  )。

    • A.cout>>'A'表达式中输出字符A
    • B.eof函数可以检测是否到达文件尾
    • C.对磁盘文件进行流操作时,必须包含头文件fstream
    • D.以ios_base::Out模式打开的文件不存在时,将自动建立一个新文件
  25. 下列关于完全二叉树的叙述中,错误的是(  )。

    • A.除了最后一层外,每一层上的结点数均达到最大值
    • B.可能缺少若干个左右叶子结点
    • C.完全二叉树一般不是满二叉树
    • D.具有结点的完全二叉树的深度为[log2n]+1
  26. 下面关于C++流的叙述中,正确的是(  )。

    • A.cin是一个输入流对象
    • B.可以用ifstream定义一个输出流对象
    • C.执行语句序列char*y="PQMN";cout<
    • D.执行语句序列charx[80];cin.getline(x,80);时,若输入Happynewyear,则X中的字符串是“Happy”
  27. 下列关于线性链表的叙述中.正确的是(  )。

    • A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
    • B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
    • C.进行插入与删除时,不需要移动表中的元素
    • D.以上三种说法都不对
  28. 以下for语句中不是死循环的是(  )。

    • A.for(inti=0;i<1;++i);
    • B.for(inti=0;;++i);
    • C.for(inti=1;i>0;++i);
    • D.for(;;);
  29. 已知在一个类体中包含如下函数原型:VOLUMEOPERATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是(  )。

    • A.这是运算符一的重载运算符函数
    • B.这个函数所重载的运算符是一个一元运算符
    • C.这是一个成员函数
    • D.这个函数不改变类的任何数据成员的值
  30. (  )既可重载为一元运算符,又可重载为二元运算符。

    • A.“*”
    • B.“=”
    • C.“=”和“*”
    • D.“*”和“*++”
  31. 关系模型允许定义3类数据约束,下列不属于数据约束的是(  )。

    • A.实体完整性约束
    • B.参照完整性约束
    • C.属性完整性约束
    • D.用户自定义完整性约束
  32. 有如下两个类定义:

    ClaSSAA{};

    classBB{

    • AAv1,*v2;
    • BBv3;
    • int*v4;    };    其中有一个成员变量的定义是错误的,这个变量是(  )。
    • A.v1
    • B.v2
    • C.v3
    • D.v4
  33. 某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)(  )。

    • A.3
    • B.4
    • C.6
    • D.7
  34. 以下循环体的执行次数是(  )。

    voidmain(  )

    {inti,j;

    for(i=0,j=1;i<=j+1;i+=2,j--)cout<

    }

    • A.3
    • B.2
    • C.1
    • D.0
  35. 有如下程序:

    #include

    usingnamespacestd;

    classMyClass{

    public:

    MyClass(){++count;)

    ~MyClass(){--count;)

    staticintgetCount(){returncount;}

    private:

    staticintcount;

    };

    intMyClass::count=0;

    intmain(){

    MyClassobj;

    cout<

    MyClass*ptr=newMyClass;

    cout<

    deleteptr;

    cout<

    return0;

    }

    程序的输出结果是(  )。

    • A.121
    • B.232
    • C.221
    • D.122
  36. 有下列程序:

    #include

    voidfun(char*a,char*b)

    {

    while(*a=='*')a++;

    while(*b=*a){b++;a++;}

    }

    voidmain(  )

    {

    char*s="*****a*b****",t[80];

    fun(s,t);puts(t)

    }

    程序的运行结果是(  )。

    • A.*****a*b
    • B.a*b
    • C.a*b****
    • D.ab
  37. 下列符号中可以用做C++标识符的是(  )。

    • A._radius
    • B.foo~bar
    • C.else
    • D.3room
  38. 函数定义为Fun(int&i),变量定义n=100,则下面调用正确的是(  )。

    • A.Fun(20);
    • B.Fun(20+n);
    • C.Fun(n);
    • D.Fun(&n);
  39. 有如下模板声明:

    templateclassA;

    下列声明中,与上述声明不等价的是(  )。

    • A.templateclassA;
    • B.templateclassAt
    • C.templateclassA;
    • D.templateclassA;
  40. 已知intm=10;在下列定义引用的语句中,正确的是(  )。

    • A.int&x=m;
    • B.inty=&m;
    • C.int&z;
    • D.int&t=&m;
  41. 有以下程序:

    #include(iostream)

    usingnamespacestd;

    intmain(  )

    {

    intx=15:

    while(x>10&&x<50)

    {

    x++;

    if(x/3)

    {

    x++;break;

    }

    }

    cout<

    return0;

    }

    执行后的输出结果是(  )。

    • A.15
    • B.16
    • C.17
    • D.18
  42. 下列程序的运行结果为(  )。

    #include(iostream.h>

    template(classTT>

    classFF

    {TTa1,a2,a3;

    public:

    FF(TTb1,TTb2,TTb3){a1=b1;a2=b2.;a3=b3;)

    TTSum(  ){returna1+a2+a3;}};

    voidmain(  )

    {FFx(int(1.1),2,3),y(int(4.2),5,6);

    cout<

    • A.6.115.2
    • B.615
    • C.615.2
    • D.6.115
  43. 关于结构化程序设计原则和方法的描述错误的是(  )。

    • A.选用的结构只允许有一个入口和一个出口
    • B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
    • C.不允许使用GOTO语句
    • D.语言中所没有的控制结构,应该采用前后一致的方法来模拟