一起答

2015年全国计算机等级《二级C++》冲刺试卷四

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

    (1)定义类的公有数据成员函数N0、Name[32],其中N0是int型的数据,Name[32]为字符型。请在注释1后添加适当的语句。

    (2)完成函数Set的定义,分别设置N0和Name的值,请在注释2后添加适当的语句。

    (3)完成函数print,请在注释3后添加适当的语句,输出结果如下:

    N0=12345

    Name=HelloWorld!

    (4)添加默认构造函数,设置N0为0,Name为空,请在注释4后添加适当的语句。

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

    试题程序:

    #include

    classTC

    {

    public:

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

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

    {

    No=no;

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

    {

    Name[i]=strName[i];

    Name[i+1]=0;

    }

    }

    voidprint()

    {

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

    }

    TC()

    {

    //********4********)

    };

    intmain()

    {

    TCstu:

    stu.Set(12345,"HelloWorld!");stu.print();

    return0;

    }

  2. 使用VC++6.0打开考生文件夹下的源程序文件2.cpp。完成函数fun(char*sl,char*s2)的空出部分。函数fun(char*s1,char*s2)的功能是将在字符串s1中下标为偶数的字符,紧随其后重复出现一次,放在一个新串s2中,s2中字符按原字符串中字符的顺序排列。(注意0为偶数)

    例如:当s1中的字符串为“abcdef”时,s2中的字符串应为“aaccee”。

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

    试题程序:

    #include(iostream.h)

    voidfun(char*s1,char*s2)

    {

    }

    voidmain

    {

    charsi[100】,s2【1OO];

    cout<<"Pleaseenterstringstrin9:"<

    cin.getline(s1,100);

    fun(s1,s2);

    cout<<"Theresultis:"<

    return;

    }

  3. (1)应改为“catch(char*s)”。

    (2)应改为“cateh(inti)”。

    (3)应改为“catch(…)”。

    【解析】本题中第1个标识前的异常抛出语句为“throw("error");”,其中的类型为字符串。所以对应的异常捕捉语句catch中应该符合这个类型,而程序中给出的语句“catch(chars)”是字符型的,所以第1处的语句修改为“catch(char*S)”。第2个标识前的异常抛出语句为“throw((int)0);”,其中的类型为int。对应的异常捕捉语句catch中应该符合这个类型,所以补充catch子句中的类型,否则如果找不到匹配的catch块,系统就会调用一个系统函数,使程序终止运行。即第2处的语句修改为“catch(inti)”。如果在catch子句中没有指定异常信息的类型,那么就用删节号“…”表示它可以捕捉任何类型的异常信息,即修改为“catch(…)”。

  4. 设有“intx=11;”,则表达式(x++*2/3)的值是(  )。

    • A.7
    • B.8
    • C.11
    • D.12
  5. 有下列程序:

    #include

    intf(intx)

    {

    inty;

    if(x==0‖x==1)return(3);

    y=x*x-f(X-2);

    returny;

    }

    voidmain(  )

    {

    intZ;

    z=f(3);printf("%d\n",z);

    }

    程序的运行结果是(  )。

    • A.0
    • B.9
    • C.6
    • D.8
  6. 若已定义:

    inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是(  )。

    • A.a[p-a]
    • B.*(&a[i])
    • C.p[i]
    • D.a[10]
  7. 有如下函数模板定义:

    template

    T1FUN(T2n){returnn*5,0;}

    若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为(  )。

    • A.FUN(9)
    • B.FUN<9>
    • C.FUN(9)
    • D.FUN<9>(double)
  8. 在对函数进行原型声明时,下列语法成分中,不需要的是(  )。

    • A.函数返回类型
    • B.函数参数列表
    • C.函数名
    • D.函数体
  9. 设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择的存储类别是(  )。

    • A.auto
    • B.xegister
    • C.static
    • D.aut0或register
  10. 下列选项中不能作为C浯言合法常量的是(  )。

    • A.'cd'
    • B.0.1e+6
    • C."\a"
    • D.'\011'
  11. 以下程序的运行结果是(  )。

    #include(iostre

    • 以下程序的运行结果是(  )。    #include(iostream.h>    voidsub(intx,inty,int*z)    {*z=y-x;}    voidmain(  )    {inta,b,c;    sub(10,5,&a); &n
    • cout((a<<","
    • B.-5,-12,-7
    • C.-5,-12,-17
    • D.5,-2,-7
  12. 下列叙述中正确的是(  )。

    • A.循环队列有队头和队尾两个指针,因此循环队列是非线性结构
    • B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
    • C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
    • D.循环队列中元素的个数是由队头指针和队尾指针共同决定
  13. 下列是if语句的基本形式:

    if(表达式)语句

    其中“表达式”(  )。

    • A.必须是逻辑表达式
    • B.必须是关系表达式
    • C.必须是逻辑表达式或关系表达式
    • D.可以是任意合法的表达式
  14. 下面类的定义,有(  )处错误。

    classMyClass

    {public:

    voidMyClass();

    ~MyClass(intvahle);

    private:

    inti=0;};

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

    #include

    voidmain(  )

    {inta=S,b=1,t;

    t=(a<<2)|b;printf("%d\n",t);

    }

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

    • A.21
    • B.11
    • C.6
    • D.1
  16. 有如下程序:

    #included

    usingnamespacestd;

    voidfl(int&X,int&y){intz=x;x=y;y=z;)voidf2(intX,inty){intz=x;x=y;y=z;}intmain(  ){

    intx=10,y=26;

    f1(X,y);

    f2(x,y);

    cout<

    return0;

    }

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

    • A.10
    • B.16
    • C.26
    • D.36
  17. 下列关于类和对象的叙述中,错误的是(  )。

    • A.一个类只能有一个对象
    • B.对象是类的具体实例
    • C.类是对某一类对象的抽象
    • D.类和对象的关系是一种数据类型与变量的关系
  18. 下列叙述正确的是(  )。

    • A.算法的执行效率与数据的存储结构无关
    • B.算法的空间复杂度是指算法程序中指令(或语句)的条数
    • C.算法的有穷性是指算法必须能在执行有限个步骤之后终止
    • D.以上三种描述都不对
  19. 有如下程序:

    #include

    usingnamespacestd;

    classDemo

    {

    public:

    Demo(){cout<<"defaultconstructor\n";}

    Demo(constDemo&x){cont<<"copyconstruc-

    tor\n";}

    };

    DemouserCode(Demob){Democ(b);returnC;}

    intmain()

    {

    Demoa;d;

    cout<<"callinguserCode()\n";

    d=userCode(a):

    return0;

    }

    执行上面程序的过程中,构造函数Demo(  )和Demo(constDem0&x)被调用的次数分别是(  )。

    • A.1和1
    • B.1和2
    • C.2和3
    • D.2和4
  20. Windows环境下,由C++源程序文件编译而成的目标文件的扩展名是(  )。

    • A.cpp
    • B.exe
    • C.obj
    • D.1ik
  21. 下列函数的运行结果是(  )。

    #include

    intf(inta,intb)

    {intC;

    if(a>b)c=l;

    elseif(a==b)c=0;

    elsec=-1:

    return(c);}

    voidmain(  )

    {inti=2,j=3;

    intp=f(i,j);

    cout<

    • A.-1
    • B.1
    • C.2
    • D.编译出错,无法运行
  22. 已知函数f的原型是“voidf(int*x,int&y);”,变量v1、v2的定义是“intv1,v2;”,下列调用语句中,正确的是(  )。

    • A.f(v1,v2)
    • B.t(v1,&v2)
    • C.f(&v1,v2)
    • D.f(&v1,&v2);
  23. 如果表达式“--x/y”中的“--”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为(  )。

    • A.operator/(X.operator--(  ),y);
    • B.operator/(operator--(x),y);
    • C.X.operator--(  ).operator/(y);
    • D.y.operator/operator--(x));
  24. 以下选项中合法的实型常数是(  )。

    • A.5E2.0
    • B.E—3
    • C.2EO
    • D.1.3E
  25. 下列叙述中正确的是(  )。

    • A.有一个以上根结点的数据结构不一定是非线性结构
    • B.只有一个根结点的数据结构不一定是线性结构
    • C.循环链表是非线性结构
    • D.双向链表是非线性结构
  26. 假定其中的x的单位是角度且不考虑π的值的精

    是(  )。

    • A.sqrt(cos(x))
    • B.sqrt(abs(cos(X*3.14/180)))
    • C.sqrt(abs(cos(X*(/180)))
    • D.sqrt(fabs(cos(x*3.14/180)))
  27. 下列描述中正确的是(  )。

    • A.程序就是软件
    • B.软件开发不受计算机系统的限制
    • C.软件既是逻辑实体,又是物理实体
    • D.软件是程序、数据与相关文档的集合
  28. 下列选项巾正确的定义语句是(  )。

    • A.doublea;b;
    • B.doublea=b=7;
    • C.doublea=7,b=7;
    • D.double,a,b;
  29. 有如下程序:

    #include

    usingnamespacestd;

    intmain()

    {

    int*P;

    *P=9:

    cout<<"ThevalueatP:"<<*P;

    return0;

    }

    编译运行程序将出现的情况是(  )。

    • A.编译时出现语法错误,不能生成可执行文件
    • B.运行时一定输出ThevalueatP:9
    • C.运行时一定输出ThevalueatP:*9
    • D.运行时有可能出错
  30. 软件设计中模块划分应遵循的准则是(  )。

    • A.低内聚低耦合
    • B.高内聚低耦合
    • C.低内聚高耦合
    • D.高内聚高耦合
  31. 已知类A有公用数据成员a,并重载了=运算符,且有Aobj2;constA*ptr=newA;,则下列语句错误的是(  )。

    • A.ptr->a=100;
    • B.ptr=&obj2;
    • C.ptr++;
    • D.obj2=*ptr;
  32. 下列关于this指针的描述中,正确的是(  )。

    • A.类的成员函数都有this指针
    • B.类的友元函数都有this指针
    • C.任何与类相关的函数都有this指针
    • D.类的非静态成员函数都有this指针
  33. 从工程管理角度,软件设计一般分为两步完成,它们是(  )。

    • A.概要设计与详细设计
    • B.数据设计与接口设计
    • C.软件结构设计与数据设计
    • D.过程设计与数据设计
  34. 若PAT是一个类,则程序运行时,语句“PAT(*ad){3};”调用PAT的构造函数的次数是(  )。

    • A.0
    • B.1
    • C.2
    • D.3
  35. 结构化程序设计的三种基本结构是(  )。

    • A.过程、子程序和分程序
    • B.顺序、选择和重复
    • C.递归、堆栈和队列
    • D.调用、返回和转移
  36. 若变量已正确定义为int型,要通过语句“scanf(”%d,%d”,&a,&b,&c);”给a赋值l、给b赋值2、给c赋值3,

    • A.
    • B.
    • C.
    • D.
  37. 下列叙述中错误的是(  )。

    • A.软件测试的目的是发现错误并改正错误
    • B.对被调试的程序进行“错误定位”是程序调试的必要步骤
    • C.程序调试通常也称为Debug
    • D.软件测试应严格执行测试计划。排除测试的随意性
  38. 有下列程序:

    #include

    voidmain(  )

    {inti,j;

    for(i=3;i>=1;i--)

    {for(j=1;j<=2;j++)printf(”%d”,i+j);

    printf("\n");

    }

    }

    程序的运行结果是(  )。

    • A.234
    • B.432    345543    34
    • C.23
    • D.45    3434    2323
  39. 下列定义中P指向的地址可更改,但*P不能够更改的是(  )。

    • A.constint*P;
    • B.int*constP;
    • C.constint*constP;
    • D.int*P;
  40. 执行下列语句后,输出结果为(  )。

    cout.put('S');

    cout<<'C'<<'a';

    • A.ca
    • B.sca
    • C.S
    • D.a
  41. 有如下函数模板定义:

    templateT2plus(T1t1,T3t3){returnt1+t3;}

    则以下调用正确的是(  )。

    • A.plus(3,5L);
    • B.plus<>(3,5L);
    • C.plus(3,5L);
    • D.plus(3,5L);
  42. 下列程序的输出结果是(  )。

    #included

    usingnamespacestd;

    intmain()

    {

    chara[]="Hell0,Test";

    char*p=a;

    while(*p)

    {

    if(*p>='a'&&*p<='z')

    cout<

    elsecout<<*P;

    p++;

    }

    return0;

    }

    • A.hello,test
    • B.Hello,Test
    • C.HELLO,TEST
    • D.hELLO,tEST
  43. 有如下程序:

    #include

    usingnamespacestd;

    classA

    {

    public:

    • A(){cout<<"A";}    ~A(){cout<<"~A";}    };
    • classB    {
    • A*P:    public:
    • B(){cout<<"B";p=newA;}    ~B(){cout<<"~B";deleteP;}    };
    • intmain()    {
    • Bobi;    return0;    }    执行这个程序的输出结果是(  )。
    • A.BAA~A~B~A
    • B.ABA~B~A~A
    • C.BAA~B~A~A
    • D.ABA~A~B~A