2013年9月全国计算机等级《二级C++》上机模考试卷(3)

考试总分:43分

考试类型:模拟试题

作答时间:60分钟

已答人数:967

试卷答案:有

试卷介绍: 2013年9月全国计算机等级《二级C++》上机模考试卷(3)

开始答题

试卷预览

  • 1. 使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错.请改正其中的错误,使程序正常运行,并使程序输出的结果为Maxis7提示:max函数用于找出两个数中的最大值,并作为函数值返回。注意:错误的语句在//******error******的下面,修改该语句即可。试题程序:#includeusingnamespacestd;//******error******intmax(inta,intb){if(a<b){intt=a;a=b:b=t;}returnb;}intmain(){intm=-3:intn=7://******error******max(-3,n);cout<<"Maxis"<<m<return0;}[18分]
  • 2. 使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,完成空出部分的程序。实现函数sort(intA[],intn),用冒泡法对数组数据进行排序。所谓冒泡法,就是每次把相邻的两个数交换,较大的数交换到后面。这样下标从0到n-1的数与其后面相邻的数交换,可以把最大的数交换到数组的末端。进行n次下标从0到n-1的交换,则数组变成有序的,并且按由大到小排序。注意:不能修改和删除程序的其他部分,也不能修改程序的结构。试题程序:#include#defineN10voidsort(intA[N],intn){}intmain(){intA[N]={1,50,17,69,87,42,90,-6,O,-11};sort(A,10);for(inti=0;i<sizeof(a)/sizeof(int);i++){cout<<a[i]<<'';}cout<return0;}[24分]
  • 3. 使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整,使得程序的输出结果为21。(1)增加静态私有变量Num,类型为int,请在注释1后添加适当的语句。(2)增加静态变量Num并初始化为10,请在注释2后添加适当的语句。(3)完成静态函数get的定义,请在注释3后添加适当的语句。(4)完成对象obj对静态函数get的调用,使得输出结果为21,请在注释4后添加适当的语句。注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。试题程序:#includeclassTC{//********1********intOwn;public:TC(inti){Own=i;}//********2********{returnNum+obj->Own;}};//********3********intmain(){TCobj(11);//********4********cout<<<return0;}[18分]

    A(1)增加静态私有变量Num,类型为int,请在注释1后添加适当的语句。

    B(2)增加静态变量Num并初始化为10,请在注释2后添加适当的语句。

    C(3)完成静态函数get的定义,请在注释3后添加适当的语句。

    D(4)完成对象obj对静态函数get的调用,使得输出结果为21,请在注释4后添加适当的语句。注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。试题程序:#includeclassTC{//********1********intOwn;public:TC(inti){Own=i;}//********2********{returnNum+obj->Own;}};//********3********intmain(){TCobj(11);//********4********cout<<<return0;}[18分]

  • 4. 有如下程序:#includeusingnamespacestd;classVAC{public;intf()const(return3;}intf(){return5;}};Intmain(){VACv1:constVACv2;cout<<v1.f()<return0;}运行时的输出结果是()。[1分]

    A53

    B35

    C55

    D33

  • 5. 将E—R图转换为关系模式时,实体和联系都可以表示为()。[1分]

    A属性

    B

    C关系

    D

  • 6. 在函数中,可以用aut0、extern、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是()。[1分]

    Aauto

    Bextern

    Cregister

    Dstatic

  • 7. 下列关于函数模板的描述中,正确的是()。[1分]

    A函数模板是一个实例函数

    B使用函数模板定义的函数没有返回类型

    C函数模板的类型参数与函数的参数相同

    D通过使用不同的类型参数,可以从函数模板得到不同的实例函数

  • 8. 针对数组定义intdata[10];,下列表述中错误的是()。[1分]

    A用*data可访问到数组的首元素

    B用data[9]可访问到数组的末元素

    C用data[10]访问数组元素会超出数组边界

    Ddata共有10个元素,其首元素是data[1]

  • 9. 下列关于纯虚函数与抽象类的描述中,错误的是()。[1分]

    A纯虚函数是一种特殊的虚函数,它没有具体的实现

    B抽象类是指具有纯虚函数的类

    C一个基类声明了纯虚函数,该基类的派生类一定不是抽象类

    D抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出

  • 10. 若要对Date类中重载的加法运算符成员函数进行声明,下列选项中正确的是()。[1分]

    AData+{Data};

    BDataoperator+{Data};

    CData+operator{Data};

    Doperator+{Data.Data};

  • 11. 下列关于构造函数和析构函数的描述,错误的是()。[1分]

    A析构函数中调用虚函数采用静态联编

    B对虚析构函数的调用可以采用动态联编

    C当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数

    D构造函数可以声明为虚函数

  • 12. 有下列二叉树,对此二叉树中序遍历的结果县()。[1分]

    ABDYEACFXZ

    BDYBEAFCZX

    CABCDEFXYZ

    DABDYECFXZ

  • 13. 若已定义inta[]={1,2,3,4,5,6,7,8,9,10},p=a,i=5;则对数组元素不正确的引用是()。[1分]

    Aa[p-a]

    B*(&a[i])

    Cp[i]

    D*(*(a+i))

  • 14. 已知主函数中通过如下语句序列实觋对函数模板swap的调用:inta[10],b[1O];swap(a,b,10);下列对函数模板swap的声明中,会导致上述语句序列发生编译错误的是()。[1分]

    Atemplatevoidswap(Ta[],Tb[],intsize);

    Btemplatevoidswap(intsize,Ta[],Tb[]);

    Ctemplatevoidswap(T1a[],T2b[],intsize);

    Dtemplatevoidswap(T1a[],T2b[],intsize);

  • 15. 下列叙述中,不属于软件需求规格说明书的作用的是()。[1分]

    A便于用户、开发人员进行理解和交流

    B反映出用户问题的结构,可以作为软件开发工作的基础和依据

    C作为确认测试和验收的依据

    D便于开发人员进行需求分析

  • 16. 下列说法正确的是()。[1分]

    A内联函数在运行时将该函数的目标代码插入每个调用该函数的地方

    B内联函数在编译时将该函数的目标代码插入每个调用该函数的地方

    C类的内联函数必须在类体内定义

    D类的内联函数必须在类体外通过加关键字inline定义

  • 17. 下列叙述中正确的是()。[1分]

    A在面向对象的程序设计中,各个对象之间具有密切的关系

    B在面向对象的程序设计中,各个对象都是公用的

    C在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小

    D上述三种说法都不对

  • 18. 已知类MyClass的定义如下:ClassMyClass{public:MyClass(intd){data=d;}~MyClass(){}private:intdata;};下列对MyClass类对象数组的定义和初始化语句中,正确的是()。[1分]

    AMyClassarray[2];

    BMyClassarray[2]={MyClass(5)};

    CMyClassarray[2]={MyClass(5),Myclass(6)};

    DMyClass*array=newMyClass[2];

  • 19. 下列是关于派生类声明的开始部分,其中正确的是()。[1分]

    AclassvirtualB:publicA

    BvirtualclassB:publicA

    CclassB:publicAvirtual

    DclassB:virtualpublicA

  • 20. 设有如下三个关系表:下列操作中正确的是()。[1分]

    AT=R∩S

    BT=R∪S

    CT=R×S

    DT=R/S

  • 21. 有如下程序:#includedusingnamespacestd;classTestClass{protected:TestClass(){cout<<'X';}TestClass(charc){cout<classTestClassl:publicTestClass{public:TestClassl(charc){cout<intmain(){TestClassld1('y');return0;}执行这个程序,屏幕上将显示输出()。[1分]

    Ay

    Byx

    Cxy

    Dyy

  • 22. 有下列程序:#includeintb=2:intfun(int*k){b=*k+b;return(b);}voidmain(){inta[1O]={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");}程序运行后的输出结果是()。[1分]

    A1012

    B810

    C1028

    D1016

  • 23. 若变量已正确定义,有下列程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(C!=a)C=b;printf(”%d,%d,%d\n”,a,b,c);其输出的结果是()。[1分]

    A程序段有语法错

    B3,5,3

    C3,5,5

    D3,5,7

  • 24. 定义无符号整数为Uint,下面可以作为类Uint实例化值的是()。[1分]

    A-369

    B369

    C0.369

    D整数集合{1,2,3,4,5}

  • 25. 下列数据结构中,能够按照“先进后出”原则存取数据的是()。[1分]

    A循环队列

    B

    C队列

    D二叉树

  • 26. 下列关于文件流的描述中,正确的是()。[1分]

    A文件流只能完成针对磁盘文件的输入、输出

    B建立一个文件流对象时,必须同时打开一个文件

    C若输入流要打开的文件不存在,将建立一个新文件

    D若输出流要打开的文件不存在,将建立一个新文件

  • 27. 有下列程序:#includevoidmain(){FILE*pf;char*s1="China",*s2="Beijing";pf=fopen("abc.dat","wb+");fwrite(s2,7,1,pf);rewind(pf);/*文件位置指针回到文件开头*/fwrite(s1,5,1,pf);fclose(pf);}以上程序执行后abc.dat文件的内容是()。[1分]

    AChina

    BChinang

    CChinaBeijing

    DBeijingChina

  • 28. 有如下程序:#includedusingnamespqcestd;classTestClass{private;charC;public;TestClass(charn):c(n){}~TestClass(){cout<}};classTestClassl:publicTestClass{private:charC;public:TestClassl(charn):TestClass(n+1),c(n){}~TestClassl(){cout<}};intmain(){TestClasslobj('X');return0;}执行上面的程序将输出()。[1分]

    Axy

    Byx

    CX

    Dy

  • 29. 下列关于二叉树的叙述中,正确的是()。[1分]

    A叶子结点总是比度为2的结点少一个

    B叶子结点总是比度为2的结点多一个

    C叶子结点数是度为2的结点数的两倍

    D度为2的结点数是度为1的结点数的两倍

  • 30. 类模板的使用实际上是将类模板实例化成一个具体的()。[1分]

    A

    B对象

    C函数

    D模扳类

  • 31. 下面程序的运行结果是()。#includeclassbase{protected:inta;public:base(){cout<<"0";}};classbasel:virtualbase{public:basel(){cout<<"1";}};classbase2:virtualbase{public:base2(){cout<<"2";}};classderived:publicbasel,publicbase2{public:derived(){cout<<"3";}};voidmain(){derivedobj;eout<}[1分]

    A0123

    B3120

    CO312

    D3012

  • 32. 数据的存储结构是指()。[1分]

    A数据所占的存储空间

    B数据的逻辑结构在计算机中的存放形式

    C数据在计算机中的顺序存储方式

    D存储在计算机外存中的数据

  • 33. 下列有关模板的叙述中,正确的是()。[1分]

    A函数模板不能含有常规形参

    B函数模板的一个实例就是一个函数定义

    C类模板的成员函数不能是模板函数

    D用类模板定义对象时,绝对不能省略模板实参

  • 34. 设有表示学生选课的3张表,学生S(学号、姓名、性别、年龄、身份证号)、课程C(课号、课名)、选课SC(学号、课号、成绩),则表SC的关键字(键或码)为()。[1分]

    A课号、成绩

    B学号、成绩

    C学号、课号

    D学号、姓名、成绩

  • 35. 结构化程序所要求的基本结构不包括()。[1分]

    A顺序结构

    BGOT0跳转

    C选择(分支)结构

    D重复(循环)结构

  • 36. 设有定义语句int(*f)(int);,则下列叙述正确的是()。[1分]

    Af是基类型为int的指针变量

    Bf是指向函数的指针变量,该函数具有一个int类型的形态

    Cf是指向int类型一维数组的指针变量

    Df是函数名,该函数的返回值是其类型为int类型的地址

  • 37. 为类Matrix重载下列运算符号时,只能作为Matrix类成员函数重载的运算符是()。[1分]

    A

    B=

    C<<

    D++

  • 38. 有两个关系R和T如下所示:则由关系R得到关系T的操作是()。[1分]

    A选择

    B投影

    C

    D

  • 39. 下列叙述中错误的是()。[1分]

    Agets函数用于从终端读入字符串

    Bgetchar函数用于从磁盘文件读入字符

    Cfputs函数用于把字符串输出到文件

    Dfwrite函数用于以二进制形式输出数据到文件

  • 40. 下列程序的执行结果是()。#includeclassSample{intx,y;public:Sample(){x=y=0;}Sample(inta,intb){x=a;y=b;}~Sample(){if(x==y)cout<<"x=y"<elsecout<<"x!=y"<}voiddisp(){cout<<"x="<<x<<",y="<<y<<endl;}};voidmain(){Samples1(2,3);s1.disp();}[1分]

    Ax=2,y=2

    Bx=3,y=3

    Cx=2,y=3

    Dx=3,y=2

  • 41. 下列字符串中可以用作C++语言标识符的是()。[1分]

    A1234

    Bfoo~~bar

    Cvirtual

    D34var

  • 42. 下列有关数据库的叙述,正确的是()。[1分]

    A数据处理是将信息转化为数据的过程

    B数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变

    C关系中的每一列称为元组,一个元组就是一个字段

    D如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字

  • 43. 下面有关重载函数的描述中正确的是()。[1分]

    A重载函数必须具有不同的返回值类型

    B重载函数形参个数必须不同

    C重载函数必须具有不同的形参列表

    D重载函数名可以不同

相关试卷
相关题库