一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。使sum(intn)能计算所有n的因子之和(不包括1和自身)。

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

    试题程序:

    #include

    intsum(intn)

    {

    }

    voidmain

    {

    cout<

    cout<

    cout<

    return;

    }

  2. (1)应添加“BA(intm){a=m;}”。

    (2)应添加“PAl(intm,intn):BA(n){b=m;}”。

    (3)应添力Ⅱ“PA2(intm,intn,intk):PAl(n,k){C=m;)”。

    (4)应添加“cout<

    【解析】根据第1处要求,构造函数的函数名和类名一致,显然BA构造函数的名称为BA,在BA中通过参数m完成对成员变量a的赋值,因此构造函数的名称为BA(intm),在函数内部对成员a赋值,故第1处的语句应添加“BA(intm){a=m;)”。根据第2处的要求,构造函数的形式为“PAl(intm,intn)”,m赋值给PA1类成员b,将n作为基类BA构造函数的参数值传入,故第2处应添加“PA1(intm,intn):BA(n){b=m;}”。根据第3处的要求,函数形式为PA2(intm,intn,intk),在构造函数中将m赋值给数据成员c,将n和k分别赋值给基类PA1构造函数的参数m和n,因此第3处应添加“PA2(intm,intn,intk):PA1(n,k){C=m;}”。根据第4处的要求,PA2类公有派生于PA1,而PA1公有派生于BA,因此在PA2类中可以调用基类的geta和getb来获得基类私有成员a和b,再输出PA2的私有成员C即满足要求,因此第4处应添加“cout<

  3. 设计程序时,应采纳的原则之一是(  )。

    • A.程序的结构应有助于读者的理解
    • B.限制goto语句的使用
    • C.减少或取消注释行
    • D.程序越短越好
  4. 使用VC++6.0打开考生文件夹下的源程序文件1.cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕中。

    注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。

    试题程序:

    #include

    voidmain

    {

    inti=0;

    charstr[120];

    cout<<"Enterastringendwith'?'."<

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

    cin.getline(str,120);

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

    while(str)

    {

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

    if(str[i])='a')

    str[i]=str[i]-'a'+'A';

    i++;

    }

    cout<

    return;

    }

  5. 有三个关系R、S、T如下:

    则由关系R和S和到关系T的操作是(  )。

    • A.自然连接
    • B.差
    • C.交
    • D.并
  6. 有如下程序:

    #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
  7. 有如下程序:

    #include

    usingnamespacestd;

    classBASE{

    public:

    ~BASE(){cout<<"BASE";}

    };

    classDERIVED:publicBASE{

    public:

    ~DERIVED(){cout<<"DERIVED";}

    };

    intmain(){DERIVEDx;return0;)

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

    • A.BASE
    • B.DERlVED
    • C.BASEDERIVED
    • D.DERlVEDBASE
  8. 耦合性和内聚性是对模块独或性度量的两个标准。下列叙述中正确的是(  )。

    • A.提高耦合性降低内聚性有利于提高模块的独立性
    • B.降低耦合性提高内聚性有利于提高模块的独立性
    • C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度
    • D.内聚性是指模块间互相连接的紧密程度
  9. 有下列程序:

    #include

    voidfun(inta[],intn)

    {inti,t;

    for(i=0;i

    i];a[n-1-i]=t;}

    }

    voidmain(  )

    {intk[10]={1,2,3,4,5,6,7,8,9,10},i;

    fun(k,5);

    for(i=2,i<8;i++)printf("%d",k[i]);

    printf("\n");

    }

    程序的运行结果是(  )。

    • A.345678
    • B.876543
    • C.1098765
    • D.321678
  10. 有如下类模板定义:

    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
  11. 关于函数中的<返回类型>。下列表述中错误的是(  )。

    • A.<返回类型>中有可能包含关键字int
    • B.<返回类型>中有可能包含自定义标识符
    • C.<返回类型>中衣可能包含字符*
    • D.<返回类型>中可能包含[]
  12. 如果类A被说明成类B的友元,则(  )。

    • A.类A的成员即类B的成员
    • B.类B的成员即类A的成员
    • C.类A的成员函数不得访问类B的成员
    • D.类B不一定是类A的友元
  13. 下列关于成员函数特征的描述中,错误的是(  )。

    • A.成员函数一定是内联函数
    • B.成员函数可以重载
    • C.成员函数可以设置参数的默认值
    • D.成员函数可以是静态的
  14. 有如下程序:

    #include

    usingnamespacestd:

    classPoint{

    intx,y;

    public:

    Point(intx1=0,inty1=0)):X(X1),y(y1){}

    intget(  ){returnx+y;)

    };

    classCircle{

    Pointcenter}

    intradius;

    public:

    Circle(intCX,intcy,intr):center(cx,cy),radius(r)

    {}

    intget(  ){returncenter.get(  )+radius;}

    };

    intmain(  ){

    Circlec(3,4,5);

    cout<

    return0;

    }

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

    • A.5
    • B.7
    • C.9
    • D.12
  15. 需求分析阶段的任务是确定(  )。

    • A.软件开发方法
    • B.软件开发工具
    • C.软件开发费用
    • D.软件系统功能
  16. 某系统总体结构如下图所示:

    该系统总体结构图的深度是(  )。

    • A.7
    • B.6
    • C.3
    • D.2
  17. 在数据管理技术发展的3个阶段中,数据共享最好的是(  )。

    • A.人工管理阶段
    • B.文件系统阶段
    • C.数据库系统阶段
    • D.3个阶段相同
  18. 以下程序的输出结果是(  )。

    #include

    longfun(intn)

    {longs;

    if(n=-1‖n==2)s=2;

    elses=n-fun(n-l):

    returns;

    }

    voidmain(  ){cout<

    • A.1
    • B.2
    • C.3
    • D.4
  19. 下列结构体类型说明和变量定义中正确的是(  )。

    • A.typedefstruct;    {intn;charC;)REC;    RECt1,t2;
    • B.structREC;    {intn;charC;}    RECt1,t2;
    • C.typedefstructREC;    {intn=0;charc='A';}t1,t2
    • D.struct    (intn;charc;)REC;    RECt1,t2
  20. 当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是(  )。

    • A.任何
    • B.公有或保护
    • C.保护或私有
    • D.私有
  21. 下列选项中,不是C++关键字的是(  )。

    • A.class
    • B.function
    • C.friend
    • D.viruual
  22. 将前缀运算符“一一”重载为非成员函数,下列原型中,能正确用于类中说明的是(  )。

    • A.Deer&operator一一{int};
    • B.Decroperator一一(Decr&,int);
    • C.friendDeer&cperator一一(Deer&);
    • D.friendDeeroperacor一一(Deer&,int);
  23. 数据库应用系统中的核心问题是(  )。

    • A.数据库设计
    • B.数据库系统设计
    • C.数据库维护
    • D.数据库管理员培训
  24. 以下类定义中可能会引起错误的语句是(  )。

    classA

    {

    public:

    ~A(  ){}//1

    inti;//2

    private:

    intj;//3

    • A(inti){i++;}//4    };
    • A.1
    • B.2
    • C.3
    • D.4
  25. 有下列程序:

    #include

    voidmain(  )

    {stuctSTU{charname[9];charsex;double

    score[2];};

    stuctSTUa={"Zha0",'m',85.0,90.0),b={"

    Qian",'f',95.0,92.0};

    b=a:

    printf("%S,%C,%2.0,%2.0\n”,b.name,b.sex,

    score[O],bscore[1]); 

    程序的运行结果是(  )。

    • A.Qian,f,95,92
    • B.Oian,m,85,90
    • C.Zha0,f,95,92
    • D.Zha0,m,85,90
  26. 下列关于模板形参的描述中,错误的是(  )。

    • A.模板形参表必须在关键字template之后
    • B.模板形参表必须用括弧(  )括起来
    • C.可以用class修饰模板形参
    • D.可以用typename修饰模板形参
  27. 下列关于模板的说法正确的是(  )。

    • A.模板的实参在任何时候都可以省略
    • B.类模板与模板类所指的是同一概念
    • C.类模板的参数必须是虚拟类型的
    • D.类模板中的成员函数全部都是模板函数
  28. 最简单的交换排序方法是(  )。

    • A.快速排序
    • B.选择排序
    • C.堆排序
    • D.冒泡排序
  29. 已知枚举类型定义语句为

    enHmToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};

    则下列叙述中错误的是(  )。

    • A.枚举常量NAME的值为1
    • B.枚举常量NUMBER的值为1
    • C.枚举常量MINUS的值为6
    • D.枚举常量PRINT的值为10
  30. 若x和y是程序中的两个整型变量,则下列if语句中正确的是(  )。

    • A.if(x==O)y=1;elsey=2;
    • B.if(x==0)theny=1elsey=2
    • C.if(x==O)y=1elsey=2;
    • D.ifx==0y=1elsey=2;
  31. 关于函数中的<返回类型>,下列表述中错误的是(  )。

    • A.<返回类型>中有可能包含关键字int
    • B.<返回类型>中有可能包含自定义标识符
    • C.<返回类型>中有可能包含字符*
    • D.<返回类型>中可能包含[]
  32. 有如下程序:

    #include

    usingnamespacestd;

    classXA{

    inta;

    public:

    staticintb;

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

    ~XA(){}

    intget(){returna;}

    };

    intXA::b=0

    intmain(){

    XAdl(1),d2(3);

    cout<

    return0;

    }

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

    • A.5
    • B.6
    • C.7
    • D.8
  33. 以下程序不用第3个变量实现将两个数进行对调的操作,画线处应为(  )。

    voidmain(  )

    {inta,b;

    scanf("%d%d",&a,&b);

    cin>>a>>b;

    cout<<"a="

    cout<<"a="<}

    • A.a+b
    • B.a-b
    • C.b*a
    • D.a/b
  34. C++语言类体系中,不能被派生类继承的有(  )。

    • A.转换函数
    • B.构造函数
    • C.虚函数
    • D.静态成员函数
  35. 在E—R图中,用来表示实体的图形是(  )。

    • A.矩形
    • B.椭圆形
    • C.菱形
    • D.三角形
  36. 下列是软件调试技术的是(  )。

    • A.错误推断
    • B.集成测试
    • C.回溯法
    • D.边界值分析
  37. 在下列字符中,不允许作为C++标识符的是(  )。

    • A.b
    • B.B
    • C._
    • D.2
  38. 有下列程序:

    #include

    voidmain()

    {char*a[]={"abcd","ef","gh","ijk");inti;

    for(i=0;i<4;i++)printf("%C",*a[i]);

    }

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

    • A.aegi
    • B.dfhk
    • C.abcd
    • D.abcdefghijk
  39. 计算斐波那契数列第n项的函数定义如下:

    intfib(intn){

    if(n==0)returnl;

    elseif(n==l)return2:

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

    }

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

    • A.1
    • B.2
    • C.3
    • D.4
  40. 下列运算符中不能在C++中重载的是(  )。

    • A.?:
    • B.+
    • C.-
    • D.<=
  41. 阅读以下程序

    #include(iostream.h>

    voidmain(  )

    {

    charline[10];

    cin>>line;

    cout<<1ine<

    }

    如运行时输入“Thisisanexample.”,则程序的输出结果是(  )。

    • A.This
    • B.Thisis
    • C.Thisisa
    • D.Thisisanexample
  42. 有下列程序:

    #include

    intb=2;

    intfun(int*k)

    {b=*k+b;return(b);)

    voidmain(  )

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

    for(i=2;i<4;i++){b=fun(&a[i])+b;printf

    ("%d",b);}

    printf("\n");

    }

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

    • A.1012
    • B.810
    • C.1028
    • D.1016
  43. 在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送(  )来实现。

    • A.调用语句
    • B.命令
    • C.中令
    • D.消息