一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。每卖出一个水果,则计算水果的重量,还要计算所有卖出水果的总重量以及总个数,同时允许退货,请按照以下的操作,把类补充完整。

    (1)定义类TCFruit的私有静态数据成员float型变量AllWeight和int型变量AllN0,请在注释1后添加适当的语句。

    (2)完成类TCFruit的带一个float型变量w的构造函数,并把这个w加到AllWeight中,并且AllNo自加。请在注释2后添加适当的语句。

    (3)在析构函数中,在AllWeight中减去weight,然后AllNo自减,请在注释3后添加适当的语句。

    (4)完成静态成员变量的初始化为0,请在注释4后添加适当的语句。

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

    试题程序:

    #include(iostream.h>

    classTCFruit

    {

    private:

    floatWeight;

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

    staticintAllNo;

    public:

    TCFruit(floatw)

    {

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

    AllWeight+=w:

    AllNo++:

    }

    ~TCFruit

    {

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

    AllWeight-=Weight:

    }

    voiddisplay

    {

    cout<<"SellaFruitwith"<

    endl;

    cout<<”Allsellnumber:"

    }

    };

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

    floatTCFruit::AllWeight=0.0;

    intmain

    {

    TCFruitFruitl(1.2);

    Fruitl.display;

    TCFruitFruit2(2.3);

    Fruit2.display;

    return0;

    }

  2. 使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为

    Constructor,i=0,

    Destructor

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

    试题程序:

    #include(iostream.h)

    classTC

    {

    inti;

    public:

    TC;

    voiddisplay;

    ~TC;

    };

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

    TC:TC

    {

    cout<<"Constructor"<<",";

    i=0;

    )

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

    TC:display

    {

    tout<<"i="<

    }

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

    TC:TC

    {

    COUI<<"Destructor"<

    }

    voidmain

    {

    TCa;

    a.display;

    }

  3. 使用VC6打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。函数sum(intn)返回1,2,3,…,n的和。其中n大于0。

    程序要求使用递归实现上述功能。

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

    试题程序:

    #include

    #include

    intsum(intn)

    {

    }

    voidmain()

    {

    cout<<"1+2+3+…+100="<

    endl;

    return;

    }

  4. 数据库设计中,用E—R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的(  )。

    • A.需求分析阶段
    • B.逻辑设计阶段
    • C.概念设计阶段
    • D.物理设计阶段
  5. 下列函数的运行结果是(  )。

    #include

    intadd(inta,intb);

    voidmain()

    {

    externintX,y;

    cout<}

    intx(20),y(5);

    intadd(inta,intb)

    {

    ints=a+b:

    returns;

    }

    • A.25
    • B.30
    • C.20
    • D.15
  6. 下列工具中为需求分析常用工具的是(  )。

    • A.PAD
    • B.PFD
    • C.N-S
    • D.D.DFD
  7. 若有定义语句“doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x”,则错误引用X数组元素的是(  )。

    • A.*p
    • B.x[5]
    • C.*(p+1)
    • D.*x
  8. 有以下程序:

    #include

    usingnamespacestd;

    #defineP13.14

    classPoint

    {private:

    intX,y;

    public:

    Point(inta,intb)

    {x=a:

    y=b;}

    intgetx()

    {returnX;}

    intgety()

    {returny;}};

    classCircle:publicPoint

    {private:

    intr;

    public:

    Circle(inta,intb,intc):Point(a,b)

    {r=C;}

    intgetr()

    {returnr;}

    doublearea()

    {returnPI*r*r;}};

    intmain()

    (Circlec1(5,7,10);

    cout<

    return0;}

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

    • A.314
    • B.157
    • C.78.5
    • D.153.86
  9. 有如下程序:

    #include

    usingnamespacestd;

    intmain(){

    intf,f1=0,f2=1

    for(inti=3;i<=6;i++){

    f=f1+f2:

    f1=f2:f2=f

    }

    cout<

    return0;

    }

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

    • A.2
    • B.3
    • C.5
    • D.8
  10. 按照“后进先出”原则组织数据的数据结构是(  )。

    • A.队列
    • B.栈
    • C.双向链表
    • D.二叉树
  11. 关于静态数据成员的描述中正确的是(  )。

    • A.类的静态数据成员不是类的所有对象共享的数据
    • B.类的静态数据成员不能被类的成员函数调用
    • C.类的静态数据成员不能被类的构造函数调用
    • D.类的静态数据成员必须进行初始化
  12. 有如下程序:

    #include

    #includediomanip>

    usingnamespacestd;

    intmain(  ){

    ints[]={123,234);

    cout<

    for(inti=0;i<2;i++){cout<

    return0;

    }

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

    • A.123
    • B.***123    234234
    • C.***123
    • D.***123    ***234234***
  13. 下列描述中正确的是(  )。

    • A.软件工程只是解决软件项目的管理问题
    • B.软件工程主要解决软件产品的生产率问题
    • C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
    • D.软件丁二程只是解决软件开发中的技术问题
  14. 下列关于类模板的描述中,错误的是(  )。

    • A.类模板的成员函数都是模板函数
    • B.可以为类模板参数设置默认值
    • C.类模板描述了一组类
    • D.类模板中只允许有一个类型参数
  15. 关于continue语句叙述不正确的是(  )。

    • A.continue语句用于循环体中,结束循环
    • B.continue语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断
    • C.continue可以用于if语句中
    • D.continue语句不能代替break语句
  16. 有如下类模板定义:

    template

    classBigNumber{

    longn;

    public;

    BigNumber{Ti}:n(i){}

    BigNumberoperator+(BigNumberb){

    returnBigNumber{n+b.n);

    }

    };

    已知b1、b2是BigNumber的两个对象,则下列表达中踏误的是(  )。

    • A.b1+b2
    • B.b1+3
    • C.3+b1
    • D.3+3
  17. 下列关于栈的叙述正确的是(  )。

    • A.栈顶元素最先被删除
    • B.栈顶元素最后才能被删除
    • C.栈底元素永远不能被删除
    • D.以上三种说法都不对
  18. 重载输人流运算符>>必须使用的原型为(  )。

    • A.istream&operator>>(istream&,<类名>&);
    • B.istream&operator>>(istream,<类名>);
    • C.istreamoperator>>(istream,<类名>&);
    • D.<类名>operator>>(istream&,<类名>&);
  19. 定义如下枚举类型enum{Monday,Tuesday,Wednesday,Thrusday,Friday=2};则下列选项正确的是(  )。

    • A.表达式Wednesday==Friday的值是true
    • B.Dayday;day=3;
    • C.Dayday;day=Monday+3;
    • D.Daydayday=Tuesday+10;
  20. 负责数据库中查询操作的数据库语言是(  )。

    • A.数据定义语言
    • B.数据管理语言
    • C.数据操纵语言
    • D.数据控制语言
  21. 有定义语句“chars[10];”,若要从终端给S输入5个字符,错误的输入语句是(  )。

    • A.gets(&s0);
    • B.scanf("%s",s+1);
    • C.gets(s);
    • D.scanf("%s",s[1]);
  22. 存取指针所指的值时,采用的运算符是(  )。

    • A.#
    • B.&
    • C.%
    • D.*
  23. 若为Fraction类重裁前增1运算符++,应在类体中将其声明为(  )。

    • A.Fraction&poerator++(  );
    • B.Fraction&poeralor++(int);
    • C.friendFraction&operator++(  ):
    • D.friendFraction&operator++(int);
  24. 若有定义语句“intm[]={5,4,3,2,1),i=4;”则下列对m数组元素的引用中错误的是(  )。

    • A.m[--i]
    • B.m[2*2]
    • C.m[m[o]]
    • D.m[m[i]]
  25. 下列对重载函数的描述中,错误的是(  )。

    • A.重载函数中不允许使用默认参数
    • B.重载函数中编译是根据参数表进行选择的
    • C.不要使用重载函数来描述毫不相干的函数
    • D.构造函数重载将会给初始化带来多种方式
  26. 有下列程序:

    #include

    voidmain(  )

    {chara=4;

    printf("%d\n",a=a<<1);

    }

    程序的运行结果是(  )。

    • A.40
    • B.16
    • C.8
    • D.4
  27. 若有以下定义:

    inta[]={1,2,3,4,5,6,7};

    charc1='b',c2='2';

    则数值不为2的表达式是(  )。

    • A.a[1]
    • B.'d'c1
    • C.a['3'-c2]
    • D.c2-0
  28. 结构化分析方法是面向(  )的自顶向下、逐步求精进行需求分析的方法。

    • A.对象
    • B.数据结构
    • C.数据流
    • D.目标
  29. 有如下模板声明:

    templateclassA;

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

    • A.templateclassA;
    • B.templateclassA;
    • C.templateclassA;
    • D.templateclassA;
  30. 有如下类定义:

    classFoo

    {

    public:

    Foo(intv):value(v){}//①

    ~Foo(){}//②

    private:

    Foo(){}//③

    intvalue=0;//④

    };

    其中存在语法错误的行是(  )。

    • A.①
    • B.②
    • C.③
    • D.④
  31. 有下列程序:

    #include

    voidf(int*P,int*q);

    voidmain(  )

    (intm=1,n=2,*r=&m;

    f(r,&n);printf("%d,%d",m,n);

    }

    voidf(int*P,int*q)

    {p=p+1;*q=*q+1;}

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

    • A.1,3
    • B.2,3
    • C.1,4
    • D.1,2
  32. 下列关于栈的描述正确的是(  )。

    • A.在栈中只能插入元素而不能删除元素
    • B.在栈中只能删除元素而不能插入元素
    • C.栈是特殊的线性表,只能在一端插入或删除元素
    • D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
  33. 某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是(  )。

    • A.10
    • B.8
    • C.6
    • D.4
  34. 有如下程序:

    #include

    usingnamespacestd;

    classPair{

    intm,n;

    public;

    Pair(intj,intk):m(j),n(k){}

    intget(){returnm;}

    intget()const{returnm+n;}

    };

    intmain(){

    Paira(3,5);

    constPairb(3,5);

    cout

    }

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

    • A.33
    • B.38
    • C.83
    • D.88
  35. 下列程序的运行结果为(  )。

    #include

    template

    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
  36. 能正确表示逻辑关系”a≥10或a≤0”的C++语言表达式是(  )。

    • A.a>=10ora<=0
    • B.a)一01a(一10
    • C.a>=10&&a<=0
    • D.a>=10
    • E.
    • F.a(=0
  37. 有如下程序:

    #include

    usingnamespacestd;

    classA{

    public:

    • A(inti=O):rl(i){}    voidprint(  ){cout<<'E'<
    • intr1;    };
    • intmain(  ){
    • Aal:
    • constAa2(4);
    • a1.print(2);
    • a2.print(  );    return0;    }    运行时的输出结果是(  )。
    • A.P8一E4
    • B.P8一C16一
    • C.P0一E4一
  38. 下列叙述中正确的是(  )。

    • A.有一个以上根结点的数据结构不一定是非线性结构
    • B.只有一个根结点的数据结构不一定是线性结构
    • C.循环链表是非线性结构
    • D.双向链表是非线性结构
  39. 已知类MyClass的定义如下:

    classMyClass{

    public:

    voidfunctionl(MyClass&c){out<

    statievoidfunction2(MyClas&c){cout<

    voidfunction3(){out<

    statiCvoidfunction4(){COut<

    private:

    intdata;

    }:

    其中有编译错误的函数是(  )。

    • A.function1
    • B.function2
    • C.function3
    • D.function4
  40. 计算斐波那契数列第n项的函数定义如下:

    intfib(intn){

    if.(n==0)return1;

    elseif(n==1)return2:

    elsereturnfib(n-1)+fib(n-2);

    }

    若执行函数调用表达式fib(2),函数fib被调用的次数是(  )。

    • A.1
    • B.2
    • C.3
    • D.4
  41. 下面程序的运行结果是(  )。

    #include

    voidmain(  )

    {

    inti=1:

    while(i<=8)

    if(++i%3!=2)continue;

    elsecout<

    }

    • A.25
    • B.36
    • C.258
    • D.369
  42. 执行下列程序后,w的值为(  )。

    intw='A',x=14,y=15;

    w=((x‖y)&&(w<'a'));

    • A.-l
    • B.NULL
    • C.1
    • D.0
  43. 有下列程序:

    #include

    voidfun(char*s)

    {while(*s)

    {if(*s%2==(1)printf("%C",*s);

    s+十:

    }

    }

    voidmain(  )

    {chara[]={"good");

    fun(a);printf("n");

    }

    注意:字母a的ASCIl码值为97,程序运行后的输出结果是(  )。

    • A.d
    • B.go
    • C.god
    • D.good