一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列撮作,将类的定义补充完整。

    (1)利用define定义常量TRUE为1,定义常量FALSE为0,请在注释1后添加适当的语句。

    (2)在类A2前增加A1的声明,请在注释2后添加适当的语句。

    (3)在类Cl中声明友元函数boolrune(A2&a,A1&b),请在注释3后添加适当的语句。

    (4)实现函数boolfunc(A2&obj1,Al&obj2)的功能,检查两个类的值都为TRUE,则返回TRUE,请在注释4后添加适当的语句。 注意:除在指定位置添加语句之外,不要改动程序中的其他内容。

    试题程序: #include(iostream.h>//********1********#defineFALSE0//********2********classA2{private: boolm_A2; friendboolfunc(A2&objl,A1&obj2); public: A2{m_A2=FALSE。 }public:

    voidsetA2(booln){m_A2=n; }};

     elaSSA1 {private: boolm_A1; //********3*********

    public: A1{m_A1=TRUE; }

    public: voidsetAl(booln){m_A1=n; }}; boolfunc(A2&objl,A1&obj2){//********4********return}

    intmain{A20bj0; A10bj1; cout<

  2. 下列程序输出的结果是(  )。

    #include

    funl(chara,charb){charC;c=a;a=b;b=C;)

    fun2(char*a,charb){charC;c=*a;*a=b;b=c;)

    fun3(char*a,char*b){charC;C=*a;*a=*b;*b=C;)

    voidmain(  )

    {

    chara,b;

    • a='A';b='B';fun1(a,b);putchar(a);putchar(b);
    • a='A';b='B';fun2(&a,b);putchar(a);putchar(b);
    • a='A';b='B';fun3(&a,&b);putchar(a);putchar(b);    putchar('\n');    }
    • A.BABBAB
    • B.ABBBBA
    • C.ABBABA
    • D.ABABBA
  3. 使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数fun(intn)的功能是实现对一个整数的加密,具体的加密方法是一个4位长的整数,用每位数字加上3然后除以9的余数代替该数字,再将第1位和第4位交换,第2位和第3位交换,然后返回得到的密码。

    程序输出结果为

    1864

    2075

    注意:不能修改其他部分的代码。

    试题程序:

    #include

    #include

    intfun(intn)

    {

    }

    intmain()

    {

    inti=1357:

    cout<

    i=2468;

    cout<

    return0;

    }

  4. 使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使得程序输出:

    Hello

    test

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

    //******error******的下面。

    试题程序:

    #include

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

    template

    voidfun(Tt)

    {

    std::cout<<"test"<

    }

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

    template

    voidfun(boolt)

    {

    std::cout<<(t?"Hell0":"Hi")<

    }

    intmain

    {

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

    boolflag=TRUE;

    fun(flag);

    fun((int)flag);

    return0;

    }

  5. 下列选项中属于面向对象设计方法主要特征的是(  )。

    • A.继承
    • B.自顶向下
    • C.模块化
    • D.逐步求精
  6. 为了提高函数调用的实际运行速度,可以将较简单的函数定义为(  )。

    • A.内联函数
    • B.重载函数
    • C.递归函数
    • D.函数模板
  7. 有如下程序:

    #include

    voidmain()

    {charch[2][5]={"6937","8254"),*p[2];

    inti,j,s=0;

    for(i=0;i<2;i++)p[i]=ch[i];

    for(i=0;i<2;i++)

    for(j=0;p[i][j]>'\0';j+=2)

    s=10*s+p[i][j]-'0';

    cout<

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

    • A.69825
    • B.63825
    • C.6385
    • D.693825
  8. 有下列程序:

    #include

    intfun(int(*s)[4],intn,intk)

    {intm,i;

    m=s[O][k];

    for(i=1;im)m=s[i]

    [k];

    returnm;

    }

    voidmain(  )

    {inta[4][4]=({1,2,3,4),{11,12,13,14},{21,

    22,23,24},{31,32,33,34)};

    printf(”%d\n”,fun(a,4,O));

    }

    程序的运行结果是(  )。

    • A.4
    • B.34
    • C.31
    • D.32
  9. 下列程序的执行结果是(  )。

    #include

    #include

    classTestClass

    {

    public:

    intX,y;

    TestClass(){x=y=0;}

    TestClass(inta,intb)(x=a;y=b;}voiddisp()

    {

    cout<<"x="<

    }

    };

    voidmain()

    {

    TestClasss1(2,3);

    s1.disp();

    }

    • A.x=2,y=2
    • B.x=2,y=3
    • C.x=3,y=2
    • D.x=3,y=3
  10. 设有宏定义“#definelsDIV(k,n)((k%n==1?1:0)”且变量m已正确定义并赋值,则宏调用“lsDIV(m,5)&&IsDIV(m,7)”为真时所要表达的是(  )。

    • A.判断m是否能被5或者7整除
    • B.判断m是甭能被5和7整除
    • C.判断m被5或者7整除是否余1
    • D.判断m被5和7整除是否都余l
  11. 以下程序的输出结果是(  )。

    #include

    longfun(intn)

    {longS;

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

    elses=n-fun(n-1):

    returnS;

    }

    voidmain(){cout<

    • A.1
    • B.2
    • C.3
    • D.4
  12. 有下列二叉树,对此二叉树前序遍历的结果是(  )。

    • A.ACFXDBEYZ
    • B.ABEFXYZCD
    • C.ABCDEFXYZ
    • D.ABDYECFXZ
  13. 控制格式输入/输出的操作中,设置域宽的函数是(  )。

    • A.WS
    • B.oct
    • C.setfill(int)
    • D.setw(int)
  14. 下列叙述中正确的是(  )。

    • A.算法就是程序
    • B.设计算法时只需要考虑数据结构的设计
    • C.设计算法时只需要考虑结果的可靠性
    • D.以上三种说法都不对
  15. 下列关于宏的叙述中正确的是(  )。

    • A.宏名必须用大写字母表示
    • B.宏定义必须位于源程序中所有语句之前
    • C.宏替换没有数据类型限制
    • D.宏调用比函数调用耗费时间
  16. 若已定义

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

    则对数组元素不正确的引用是(  )。

    • A.a[p-a]
    • B.*(&a[i])
    • C.p[i]
    • D.*(*(a+i))
  17. 数据库管理系统中负责数据模式定义的语有是(  )。

    • A.数据定义语言
    • B.数据管理语言
    • C.数据操纵语言
    • D.数据控制语言
  18. 有如下程序:

    #include

    usingnamespacestd;

    classAA{

    public;

    • AA(  ){cOUt<<'1';)    };
    • classBB:publicAA{
    • intk;    public:
    • BB(  ):k(0){tout<<'12';}
    • BB(intn):k(n)(cout<<'3';)    };
    • intmain(  ){
    • BBb(4),c;    return0;    }    运行时的输出结果是(  ).
    • A.1312
    • B.132
    • C.32
  19. 下列选项中不属于字符常量的是(  )。

    • A.'C'
    • B."C"
    • C.'\xCC'
    • D.'\072'
  20. 有下列程序:

    #include

    voidmain(  )

    {char*s={"ABC");

    do

    {printf("%d",*s%10);s++;

    }while(*s);

    }

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

    • A.5670
    • B.656667
    • C.567
    • D.ABC
  21. 生成派生类对象时,派生类构造函数调用基类构造函数的条件是(  )。

    • A.无需任何条件
    • B.基类中显式定义了构造函数
    • C.派生类中显式定义了构造函数
    • D.派生类构造函数明确调用了基类构造函数
  22. 在软件开发中,需求分析阶段产生的主要文档是(  )。

    • A.可行性分析报告
    • B.软件需求规格说明书
    • C.概要设计说明书
    • D.集成设计计划
  23. 在软件开发中,需求分析阶段产生的主要文档是(  )。

    • A.软件集成测试计划
    • B.软件详细设计说明书
    • C.用户手册
    • D.软件需求规格说明书
  24. 以下关于友元函数的叙述不正确的是(  )。

    • A.友元函数提供了类之间数据共享的一个途径
    • B.一个友元函数可以访问任何类的任何成员
    • C.友元函数破坏了数据的封装
    • D.友元函数增加了程序设计的灵活性
  25. Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是(  )。

    Samplea[2],*p=newSample;

    • A.0
    • B.1
    • C.2
    • D.3
  26. 下面关于虚函数的描述中正确的是(  )。

    • A.虚函数是一个静态成员函数
    • B.虚函数是一个非成员函数
    • C.虚函数可以在函数说明时定义,也可以在函数实现时定义
    • D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型
  27. 下列错误的定义语句是(  )。

    • A.intx[][3]={{0},{1},{1,2,3}};
    • B.intx[4][3]={{1,2,3},{1,2,3),{1,2,3),{1,2,3}};
    • C.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
    • D.intx[][3]={1,2,3,4};
  28. 数据库管理系统是(  )。

    • A.操作系统的一部分
    • B.在操作系统支持下的系统软件
    • C.一种编译系统
    • D.一种操作系统
  29. 下列虚基类的声明中正确的是(  )。

    • A.clasSvirtualB:publicA
    • B.virtualclassB:publicA
    • C.classB:publieAvirtual
    • D.classB:virtualpublicA
  30. 设有定义“chars[8];inti=0;”,下列不能将一行(不超过80个字符)带有空格的字符国正确读入的语句或语句组是(  )。

    • A.gets(s);
    • B.while((s[i++]=getchar(  ))!='\n');s[i]='\0';
    • C.seanf("%S",s);
    • D.do{scanf("%C",&s[i]);}while(s[i++]!='\n');s[i]='\0';
  31. 有下列程序:

    #include

    voidmain(  )

    {inta1,a2charc1,c2;

    scanf("%d%c%d%C",&a1,&c1,&a2,&c2);

    printf("%d%c%d%C",a1,c1,a2,c2);

    }

    若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是12,a,34.

    • A.12a34b
    • B. 
    • C.12,a,34,b
    • D. 
  32. 有下列程序:

    #include

    #definePT3.5;

    #defineS(x)PT*x*x;

    voidmain(  )

    (inta=1.b=2;printf("%4.1f\n",S(a+b));}

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

    • A.14.0
    • B.31.5
    • C.7.5
    • D.程序有错,无输出结果
  33. 概要设计中要完成的事情是(  )。

    • A.系统结构和数据结构的设计
    • B.系统结构和过程的设计
    • C.过程和接口的设计
    • D.数据结构和过程的设计
  34. 类MyClass的定义如下,若要对value赋值,则下面语句正确的是(  )。

    classMyClass

    {

    public:

    MyClass(  ){}

    MyClass(inti){value=newint(i);}

    int*value;

    };

    • A.MyClassmy;my.value=10;
    • B.MyClassmy;*my.value=10;
    • C.MyClassmy;my.*value=10;
    • D.MyClassmy(10);
  35. 当变量C的值不为2、4、6时,值也为“真”的表达式是(  )。

    • A.(c==2)‖(c==4)‖(c==6)
    • B.(c>一2&&c<=6)‖(C!=3)‖(C!=5)
    • C.(c>=2&&c<=6)&&!(c%2)
    • D.(c>=2&&c<=6)&&(c%2!=1)
  36. 对于模板定义关键字class和typename说法不正确的是(  )。

    • A.程序中的class并不能都替换为typename
    • B.class和typename都可互相替换
    • C.程序中的typename都能替换为class
    • D.程序中的部分class可以替换为typename
  37. 下面程序的执行结果是(  )。

    #include"iostream.h"

    voidmain()

    {int*P,r;

    P=newint:

    *P=20:

    r=sizeof(*p);

    cout<

    deleteP;}

    • A.程序错误
    • B.内存为20地址的大小
    • C.20
    • D.4
  38. 有如下程序:

    #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
  39. 在计算机中,算法是指(  )。

    • A.查询方法
    • B.加工方法
    • C.解题方案的准确而完整的描述
    • D.排序方法
  40. 有如下程序:

    #included

    usingnamespacestd;

    classTestClass

    {

    private:

    intx,Y;

    public:

    TestClass(inti,intj)

    {

    x=i:

    y=j;

    }

    voidprint()

    {

    cout<<"printl"<

    }

    voidprint()const

    {

    cout<<"print2"<

    }

    };

    intmain()

    {

    constTestClassa(1,2);

    print(); 

    return0; 

    }

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

    • A.printl
    • B.print2
    • C.printlprint2
    • D.程序编译时出错
  41. 已知字母A的ASCIl代码值为65,若变量kk为char型,下列不能正确判断出kk中的值为大写字母的表达式是(  )。

    • A.kk>='A'&&kk<='Z'
    • B.!(kk>='A'‖kk<='2')
    • C.(kk+32)>='a'&&(kk+32)<='2'
    • D.isalpha(kk)&&(kk<=91)
  42. 有如下程序:

    #include

    usingnamespacestd;

    classBase

    {

    public:

    Base(){cout<<"BB";f();}

    voidf(){cout<<"BF";}

    };

    classDerived:publicBase

    {

    public:

    Derived(){cout<<"DD";}

    voidf(){eout<<"Df";}

    };

    intmain(){Derivedd;return0;}

    执行上面的程序将输出(  )。

    • A.BBBfDD
    • B.BBDfDDDf
    • C.DD
    • D.DDBBBf
  43. 有下列程序:

    #include

    intfun(intx,inyy)

    {if(x==y)return(x);

    elsereturn((x+y)/2);

    }

    voidmain(  )

    {inta=4,b=5,c=6;

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

    }

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

    • A.3
    • B.6
    • C.8
    • D.12