2013年9月全国计算机等级《二级C++》上机临考冲刺试卷(1)

考试总分:43分

考试类型:模拟试题

作答时间:60分钟

已答人数:967

试卷答案:有

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

开始答题

试卷预览

  • 1. (1)应添加“virtualvoidGetNamt!()=0;”。(2)应添加“constchar*GetName2()”。(3)应添加“TC2(char*str)”。(4)应添加“m_str[i]=0;”。[18分]

    A(1)应添加“virtualvoidGetNamt!()=0;”。

    B(2)应添加“constchar*GetName2()”。

    C(3)应添加“TC2(char*str)”。

    D(4)应添加“m_str[i]=0;”。[18分]

  • 2. 使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出:9,8,7,6,5注意:错误的语句在/********error********/的下面,修改该语句即可。其他的语句不能修改。试题程序:#include(iostream.h>classTC{/********error********/TC(inti){m_i=i;}voidprint(){cout5){/********errOr********/i++:04.print();}cout<return0;}[18分]
  • 3. 使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码。函数num(ehar*str)用于返回字符串中非数字的个数。例如:abcl23abc45返回值为:6将函数num补充完整。注意:请勿改动主函数main。试题程序:#includeintnum(char*str){}intmain(){charstr[1024];cout<<"pleaseinputastring:"<cin.getline(str,1024);cout<<"charnumberis"<<num(str)<return0;}[24分]
  • 4. 有下列程序:#include#include"string.h"voidfun(char*s[],intn){char*t;inti,jfor(i=0;istrlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}voidmain(){char*ss[]=("bcc","bbcc","xy","aaaacc","aab—cc"};fun(ss,5);printf("%s,%s\n",ss[O],ss[4]);}程序的运行结果是()。[1分]

    Axy,aaaacc

    Baaaacc,xy

    Cbcc,aabcc

    Daabcc,bcc

  • 5. 假定已建立以下链表结构,且指针P和q已指向如下图所示的结点:则下列选项中可将q所指点从链表中删除并释放该结点的语句组是()。[1分]

    A(*p).next=(*q).next;free(p);

    Bp=q->next;flee(q);

    Cp=q;free(q);

    Dp->next=q->next;free(q);

  • 6. 如果进栈序列为e1、e2、e3、e4,则可能的出栈序列是()。[1分]

    Ae3、e1、e4、e2

    Be2、e4、e3、e1

    Ce3、e4、e1、e2

    D任意顺序

  • 7. 设有定义“intx=2;”,下列表达式中,值不为6的是()。[1分]

    AX*=x+1

    Bx++,2*x

    Cx*=(1+x)

    D2*x,x+=2

  • 8. 有以下程序:#includeusingnamespacestd;classA{private:inta:public:A(inti){a=i;}voiddisp(){cout<<a<<",";));classB(private:intb;public:B(intj){b=j;}voiddisp(){cout<<b<<",";}};classC:publicB,publicA{private:intC;public:c(intk):A(k-2),B(k+2){c=k;}voiddisp(){a::disp();B::disp();COUt<<c<}};intmain(){Cobj(10);obj.disp();return0;}程序执行后的输出结果是()。[1分]

    A10,10,10

    B10,12,14

    C8,10,12

    D8,12,10

  • 9. 下面程序的输出结果是()。#include#includevoidmain(){charp1[10],p2[10];strcpy(p1,"abc");strcpy(p2,"ABC");charstr[50]="xyz":strcpy(str+2,strcat(p1,p2));cout<}[1分]

    AxyzabcABC

    BzabcABC

    CxyabcABC

    DyzabcABC

  • 10. 若执行下面的程序时,从键盘上输入5和2,则输出结果是()。#include(iostream.h)voidmain()(inta,b,k;cin>>a>>b;k=a:if(a<b)k=a%b;elsek=b%a:cout((k<<endl;)[1分]

    A5

    B3

    C2

    D0

  • 11. 下列关于C++函数的说明中,正确的是()。[1分]

    A内联函数就是定义在另一个函数体内部的函数

    B函数体的最后一条语句必须是return语句

    C标准C++要求在调用一个函数之前,必须先声明其原型

    D编译器会根据函数的返回值数型和参数表来区分函数的不同重载形式

  • 12. 以下程序的输出结果是()。min(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei--:}i+=11;a+=i;}cout<<a<}[1分]

    A21

    B32

    C33

    D11

  • 13. 数据流程图(DFD)是()。[1分]

    A软件概要设计的工具

    B软件详细设计的工具

    C结构化方法的需求分析工具

    D面向对象方法的需求分析工具

  • 14. 执行下列语句序列:inti=0;while(i<25)i+=3;cout<输出结果是()。[1分]

    A24

    B25

    C27

    D28

  • 15. 有如下程序:#includeusingnamespacestd;classAA{intn;public:AA(intk):n(k){}intget(){returnn;}intget()const{returnn+1;}};intmain(){AAa(5);constAAb(6);cout<<a.get()<return0;}执行后的输出结果是()。[1分]

    A55

    B57

    C75

    D77

  • 16. 当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是()。[1分]

    A任何

    B公有或保护

    C保护或私有

    D私有

  • 17. 在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。[1分]

    AO(n)

    BO(n2)

    CO(log2n)

    DO(nlog2n)

  • 18. 有下列程序:#includevoidmain(){FILE*f;f=fopen("filea.txt","w");fprintf(f,"abe");fclose(f);}若文本文件filea.txt中原有内容hell0,则运行以上程序后,文件Iilea.txt中的内容为()。[1分]

    Ahelloabe

    Babclo

    Cabe

    Dabchello

  • 19. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。[1分]

    A函数调用可以作为独立的语句存在

    B函数调用可以无返回值

    C函数调用可以出现在表达式中

    D函数调用可以作为一个函数的形参

  • 20. 软件(程序)调试的任务是()。[1分]

    A诊断和改正程序中的错误

    B尽可能多地发现程序中的错误

    C发现并改正程序中的所有错误

    D确定程序中错误的性质

  • 21. 程序中有语句:for(inti=0;i<5;i++)cout<<*(p+i)<<",";能够依次输出int型一维数组a的前5个元素。由此可知,变量P的定义及初始化语句是()。[1分]

    Aint*p=a;

    Bintp=a;

    C"p=a;

    Dp=a;

  • 22. 下面的函数调用语句中func函数的实参个数是()。func(f2(vl,v2),(v3,v4,v5),(v6,max(v7,v8)));[1分]

    A3

    B4

    C5

    D8

  • 23. 如果表达式-x/y中的“--”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为()。[1分]

    Aoperator/(x.operator--(),y);

    Boperator/(operator--(x),y);

    CX.operator--().operator/(y);

    Dy.operator/(operator--(x));

  • 24. 有下列程序:#includeintfun(inta.intb){if(b==0)relurna;elsereturn(fun(--a,--b));}voidmain(){printf("%d\n",fun(4,2));}程序的运行结果是()。[1分]

    A1

    B2

    C3

    D4

  • 25. 有下列程序:#includeintf(intx,inty){return((y-x)*x);}voidmain(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);}程序运行后的输出结果是()。[1分]

    A10

    B9

    C8

    D7

  • 26. 有如下程序:#includeUsingnamespacestd;classBase{public:Base(intx=O):valB(x){cout<<valb;)~Base(){cout<<valb;)Private:intvalB:};classDerived:publicBase{public:Derived(intX=0,inty=0):Base(x),valD(y)(cout<<vald;)~Derived(){cout<<vald;)private:intvalD;};intmain(){Derivedobj12(2,3);return0;}运行时的输出结果是()。[1分]

    A2332

    B2323

    C3232

    D3223

  • 27. 为了提高函数调用的实际运行速度,可以将较简单的函数定义为()。[1分]

    A内联函数

    B重载函数

    C递归函数

    D函数模板

  • 28. 类MyClass的定义如下:classMyClass{public:MyClass(){value=0;}SetVariable(inti){valtic=i;}private:intvalue;};MyClass*P,my;p=&my;则对下列语句序列正确的描述是()。[1分]

    A语句p=&my;是把对象my赋值给指针变量P

    B语句MyClass*P,my;会调用两次类MyClass的构造函数

    C对语句*P.SetVariable(5)的调用是正确的

    D语句P->SetVariable(5)与语句my.SetVariable(5)等价

  • 29. 若是对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是()。[1分]

    Aoperatorlong()const;

    Boperatorlong(BigNumber);

    Clongoperatorlong()const;

    Dlongoperatorlong(BigNumber);

  • 30. 有如下程序:#includeusingnamespacestd;voidf1(int&X,int&y){intz=X;x=y;y=z}voidf2(intX,inty){intz=x;x=y;y=z}intmain(){intx=10,y=26f1(x,y);f2(X,y);cout<<y<return0;}运行时的输出结果是()。[1分]

    A10

    B16

    C26

    D36

  • 31. 设有程序段:intk=10。while(k=O)k=k-1;则下面描述中正确的是()。[1分]

    A循环执行10次

    B无限循环

    C循环体语句一次也不执行

    D循环体语句执行一次

  • 32. 有如下类定义:classXX{intxdata;public:XX(intn=0):xdata(n){}};classYY:publicXX{intydata;public:YY(intm=0,intn=O):XX(m),ydata(n){}};YY类的对象包含的数据成员的个数是()。[1分]

    A1

    B2

    C3

    D4

  • 33. 下列关于类模板的描述中,错误的是()。[1分]

    A类模板的成员函数都是模板函数

    B可以为类模板参数设置默认值

    C类模板描述了一组类

    D类模板中只允许有一个类型参数

  • 34. 有以下程序:#includeusingnamespaeestd;classMyClass{public:MyClass(intn){number=n;}//拷贝构造函数MyClass(MyClass&other){number=other.number;}~MyClass(){}private:intnumber;};MyClassfun(MyClassp){MyClasstemp(p);returntemp;}intmain(){MyCIassobj1(10),obj2(O);MyClassobj3(obj1);obj2=fun(obj3);return0;程序执行时,MyClass类的拷贝构造函数被调用的次数是()。[1分]

    A5

    B4

    C3

    D2

  • 35. 下列工具中为需求分析常用工具的是()。[1分]

    APAD

    BPFD

    CN-S

    DDFD

  • 36. 下列关于函数的描述中,错误的是()。[1分]

    A函数可以没有返回值

    B函数可以没有参数

    C函数可以是一个类的成员

    D函数不能被定义为模板

  • 37. 若是对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是()。[1分]

    Aoperatorlong()const;

    Boperatorlong(BigNumber);

    C10ngoperatorlong()const;

    D10ngoperatorlong(BigNumber);

  • 38. 用树型结构表示实体之间联系的模型是()。[1分]

    A关系模型

    B网状模型

    C层次模型

    D以上三个都是

  • 39. 有如下两个类定义:classXX{private:doublexl;protected:doublex2;public:doublex3;};claseYY:protectedXX{private:doubleyl;protected:doubley2;public:doubley3;};在类YY中保护成员变量的个数是()。[1分]

    A1

    B2

    C3

    D4

  • 40. 考虑以下的函数原型:voldA(inta,intb=5,charZ='*');下面的函数调用中,不正确的是()。[1分]

    AA(7)

    BA(3,4)

    CA(16,'#')

    DA(0,2,'*')

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

    A顺序存储结构的存储空间一定是连续的,链式存储结构的存储空间不一定是连续的

    B顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

    C顺序存储结构能存储有序表,链式存储结构不能存储有序表

    D链式存储结构比顺序存储结构节省存储空间

  • 42. 有如下程序:#includeusingnamespacestd;classTest(public:Test(){}Test(constTest8Lt){cout<<1;}};Testfun(Test&u){Testt=U;returnt;}intmain(){Testx,y;x=fun(y);return0;}运行这个程序的输出结果是()。[1分]

    A无输出

    B1

    C1l

    D111

  • 43. 与语句cout<[1分]

    Acout<<'\n';

    Bcout<<'\12';

    Ccout<<'\xA';

    Dcout<<'\0';

相关试卷
相关题库