首页 - 网校 - 万必威注册 - 直播 - 雄鹰网校 - 团购 - 书城 - 模考 - 学习通 - 导航 -

2018年12月计算机二级C++必威体育betwayAPP下载冲刺试题及答案(1)

“2018年12月计算机二级C++必威体育betwayAPP下载冲刺试题及答案(1)”供考生参考。更多计算机等级必威体育betwayAPP下载模拟试题等信息请访问必威体育betwayAPP下载吧计算机等级必威体育betwayAPP下载网。

  点击查看:2018年12月计算机二级C++必威体育betwayAPP下载冲刺试题及答案汇总

  一、选择题(每小题1分,共40小题,共40分)

  1.数据的存储结构是指(  )。

  A.数据所占的存储空间

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

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

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

  2.将E-R图转换到关系模式时,实体与实体间的联系可以表示成(  )。

  A.属性

  B.关系

  C.键

  D.域

  3.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为(  )。

  A.125

  B.n/Z

  C.n

  D.n+1

  4.树是结点的集合,它的根结点的数目是(  )。

  A.有且只有1个

  B.1或多于1

  C.0或1

  D.至少有2个

  5.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是(  )。

  A.R-S

  B.R×S

  C.R∩S

  D.R∪S

  6.关于结构化程序设计原则和方法的描述错误的是(  )。

  A.选用的结构只允许有一个入口和一个出口

  B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现

  C.不允许使用GOTO语句

  D.语言中所没有的控制结构,应该采用前后一致的方法来模拟

  7.对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为(  )。

  A.并运算

  B.交运算

  C.差运算

  D.积运算

  8.下列叙述中正确的是(  )。

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

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

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

  D.上述三种说法都不对

  9.结构化程序设计的三种基本结构是(  )。

  A.过程、子程序和分程序

  B.顺序、选择和重复

  C.递归、堆栈和队列

  D.调用、返回和转移

  10.在数据库设计中,将E-R图转换为关系模式的过程属于(  )。

  A.需求分析阶段

  B.逻辑设计阶段

  C.概念设计阶段

  D.物理设计阶段

  11.在C++语言中函数返回值的类型是由(  )决定的。

  A.调用该函数时系统临时

  B.return语句中的表达式类型

  C.定义该函数时所指定的函数类型

  D.调用该函数时的主调函数类型

  12.下列描述正确的是(  )。

  A.表示m>n为true或mn&&m  B.switch语句结构中必须有default语句

  C.if语句结构中必须有else语句

  D.如果至少有一个操作数为true,则包含‖运算符的表达式为true

  13.使用ifstream流类定义流对象并打开磁盘文件时,文件的隐含打开方式为(  )。

  A.ios::in

  B.ios::out

  C.ios::inlios::out

  D.没有默认

  14.下列各类函数中,不是类的成员函数的是(  )。

  A.构造函数

  B.抽象类

  C.派生类

  D.以上都不对

  15.下面关于数组的初始化正确的是(  )。

  A.charstr[]={’a’,’b’,’e’}

  B.charstr[2]={’a’,’b’,’e’)

  C.charstr[2][3]={{’a’,’b’},{’C’,’d’},{’e’,’f’}}

  D.charstr()={’a’,’b’,’C’}

  16.类模板templateclassX{…},其中友元函数f对特定类型T(如int),使函数f(x)成为x模板类的友元,则其说明为(  )。

  A.friendvoidf();

  B.friendvoidf(x);

  C.friendvoidA::f();

  D.friendvoidC::f(x);

  17.类MyClass的定义如下:

  classMyClass

  {

  public:

  MyClass(){value=0;}

  SetVariable(inti){valtic=i;}

  private:

  intvalue;

  };

  MyClass*P,my;p=&my;

  则对下列语句序列正确的描述是(  )。

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

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

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

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

  18.下面关于break语句的描述中,不正确的是(  )。

  A.break可以用于循环体内

  B.break语句可以在for循环语句中出现多次

  C.break语句可以在switch语句中出现多次

  D.break语句可用于if条件判断语句内

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

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

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

  C.X.operator--().operator/(y);

  D.y.operator/(operator--(x));

  20.已知类A有公用数据成员a,并重载了=运算符,且有Aobj2;constA*ptr=newA;,则下列语句错误的是(  )。

  A.ptr->a=100;

  B.ptr=&obj2;

  C.ptr++;

  D.obj2=*ptr;

  21.可以用P.a的形式访问派生类对象P的基类成员a,其中a是(  )。

  A.私有继承的公有成员

  B.公有继承的私有成员

  C.公有继承的保护成员

  D.公有继承的公有成员

  22.下面程序的运行结果为(  )。

  #include

  classA

  {

  intnum;

  public:

  A(inti){num=i;)

  A(A&a){num=a.num++;}

  voidprint(){cout<  };

  voidmain()

  {

  Aa(1),b(a);

  a.print();

  b.print();

  }

  A.11B.12

  C.21D.22

  23.设有定义charstr[80];以下不能将输入数据first\nsecond\n读取到数组str中的语句是(  )。

  A.cin.get(str,strlen(str));

  B.cin.getline(str,strlen(str));

  C.cin>>str;

  D.cin.read(str,strlen(str));

  24.下列程序的输出结果为(  )。

  #include

  classTestClass

  {

  public:

  TestClass(){val++;}

  static,intval;

  };

  intTestClass::val=0;

  voidmain()

  {

  TestClasscsl;

  cout<  TestClasscs2;

  TestClasscs3,cs4;

  cout<  }

  A.O3

  B.13

  C.14

  D.24

  25.有以下类定义:

  classMyClass

  {

  private:

  intid;

  chargender;

  char*phone;

  public:

  MyClass():id(0),gender(’#’),phone(NULl){}

  MyClass(intn0,charge=’#’,char*ph=NULL)

  {id=no;gender=ge;phone=ph;}

  };

  下列类对象定义语句中错误的是(  )。

  A.MyClassmyObj;

  B.MyClassmyObj(11,"13301111155");

  C.MyClassmyObj(12,’m’);

  D.MyClassmyObj(12);

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

  A.classvirtualB:publicA

  B.virtualclassB:publicA

  C.classB:publicAvirtual

  D.classB:virtualpublicA

  27.如果类A被说明成类B的友元,则(  )。

  A.类A的成员即类B的成员

  B.类B的成员即类A的成员

  C.类A的成员函数不得访问类B的成员

  D.类B不一定是类A的友元

  28.下列关于虚基类的描述,错误的是(  )。

  A.设置虚基类的目的是为了消除二义性

  B.虚基类的构造函数在非虚基类之后调用

  C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用

  D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数

  29.下列关于多态性的描述,错误的是(  )。

  A.C++语言中的多态性分为编译时的多态性和运行时的多态性

  B.编译时的多态性可通过函数重载实现

  C.运行时的多态性可通过模板和虚函数实现

  D.实现运行时多态性的机制称为动态绑定

  30.若有如下程序:

  #include

  usingnamespacestd;

  classTestClassl

  {

  private:

  inta;

  public:

  TestClassl(inti)

  {

  a=i:

  }

  voiddisp(  )

  {

  cout<  }

  };

  classTestClass2

  {

  private:

  intb:

  public:

  TestClass2(intj)

  {

  b=j;

  }

  voiddisp()

  {

  cout<  }

  };

  classTestClass3:publicTestClass2,publicTestClassl

  {

  private:

  intc;

  public:

  TestClass3(intk):TestClass1(k-2),TestClass2(k+2)

  {

  c=k:

  }

  voiddisp()

  {

  TestClasssl::disp();

  TestClasss2::disp();

  cout<  }

  };

  intmain()

  {

  TestClass30bj(10);

  obj.disp();

  return0;

  }

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

  A.10,10,10

  B.10,12,14

  C.8,10,12

  D.8,12,10

  31.在下列程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD(  )。

  #include

  usingnamespacestd;

  classA

  {

  public:A(){cout<<’A’;}

  };

  classB:

  {

  public:B(){cout<<’B’;}

  };

  classC:virtualpublicA

  {

  public:C(){cout<<’C’;}

  };

  classD:publicB,publicD

  {

  public:D(){cout<<’D’;}

  };

  voidmain(){D04;}

  A.publicA

  B.privateA

  C.protectedA

  D.virtualpublicA

  32.有如下程序:

  #include

  usingnamespacestd;

  classAA{

  intn;

  public:

  AA(intk):n(k){}

  intget(){returnn;}

  intget()const{returnn+1;}

  };

  intmain()

  {

  AAa(5);

  constAAb(6);

  cout<  return0;

  }

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

  A.55

  B.57

  C.75

  D.77

  33.有如下程序:

  #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

  34.有如下程序:

  #include

  usingnamespacestd;

  classDA{

  intk;

  public:

  DA(intx=1):k(x){}

  ~DA(){cout<  };

  intmain(){

  DAd[]={DA(3),DA(3),DA(3));

  DA+p=newDA[2];

  delete[]p;

  return();

  }

  这个程序的输出结果是(  )。

  A.111

  B.333

  C.11333

  D.11133

  35.有如下程序:

  #include

  usingnamespacestd;

  classMyClass{

  public:

  MyClass(intx):val(x){}

  voidPrint()const{cout<<"const:val="<<  voidPrint(){cout<<"val="<  private:

  intval;

  };

  intmain(){

  constMyClassobj1(10);

  MyClassobj2(20);

  obj1.Print();

  obj2.Print();

  return0;

  }

  程序的输出结果是(  )。

  A.va1=10const:va1=20

  B.const:va1=10const:va1=20

  C.const:va1=10val=20

  D.val=10va1=20

  36.关于函数中的<返回类型>。下列表述中错误的是(  )。

  A.<返回类型>中有可能包含关键字int

  B.<返回类型>中有可能包含自定义标识符

  C.<返回类型>中衣可能包含字符*

  D.<返回类型>中可能包含[]

  37.Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是(  )。

  Samplea[2],*p=newSample;

  A.0

  B.1

  C.2

  D.3

  38.有如下两个类定义:

  classXX{

  private:

  doublex1;

  protected:

  doublex2;

  public:

  doublex3;

  };

  claseYY:protectedXX{

  private:

  doubley1;

  protected;

  doubley2;

  public:

  doubley3;

  };

  在类YY中保护成员变量的个数是(  )。

  A.1

  B.2

  C.3

  D.4

  39.下列关于运算符重载的描述中,错误的是(  )。

  A.可以通过运算符重载在C++中创建新的运算符

  B.赋值运算符只能重载为成员函数

  C.运算符函数重载为类的成员函数时,第一操作参数就是该类对象

  D.重载类型转换运算符时不需要声明返回类型

  40.下列关于类模板的描述中,错误的是(  )。

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

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

  C.类模板描述了一组类

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

  二、程序改错题(18分)

  使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为

  TC1

  TC2

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

  试题程序:

  #include

  #include  structTCO

  {

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

  virtualvoidfun();

  };

  classTCl:publicTCO

  {

  voidfun()

  {

  cout<<"TCl"<  }

  };

  classTC2:publicTCO

  {

  voidfun()

  {

  cout<<"TC2"<  }

  };

  voidmain()

  {

  TCO"P;

  TClobj1;

  TC2obj2;

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

  p=*obj1;

  p->fun();

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

  p=*obj2;

  p->fun();

  return;

  }

  三、简单应用题(24分)

  使用VC++6.0打开考生交件夹下的源程序文件2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数fun(intN[4])的功能是用4个数字,组成互不相同且无重复数字的3位数,并将满足所有条件的数字输出到屏幕,

  并且每输出一个3位数就换一行。

  程序分析:可填在百位、十位、个位的数字都是1、2、3、0。组成所有的排列后再去掉不满足条件的排列。如果判定第一个数字是0,则也去掉。

  试题程序:

  #include

  voidfun(intN[4])

  {

  }

  intmain()

  intN[4]={1,2,3,0};

  fun(N):

  return0;

  }

  四、综合应用题(18分)

  使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。

  (1)基类People完成打印功能,定义其中的打印函数为

  虚函数,请在注释1后添加适当的语句。

  (2)类Boy继承于People,在构造函数中设置性别为1,

  请在注释2后添加适当的语句。

  (3)类Girl继承于People,在构造函数中设置性别为0,请在注释3后添加适当的语句。

  (4)实现函数fun,用于传递不同的类型,打印出性别,请在注释4后添加适当的语句。

  输出的内容如下:

  Sex=Boy

  Sex=Girl

  注意:除在指定位暨添加语句之外,请不要改动程序中的其他内容。

  试题程序:

  #include

  classPeople

  {

  public:

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

  voidprint(){}

  intsex;

  };

  classBoy:publicPeople

  {

  publiC:

  Boy()

  {

  //********2********}

  voidprint()

  {

  cout<<"Boy"<  }

  };

  classGirl:publicPeople

  {

  public:

  Girl()

  {

  //********3********}

  voidprint()

  {

  cout<<"Girl"<  }

  };

  //********4********{

  cout<<"Sex=";

  p.print();

  }

  intmain()

  {

  Boym:

  fun(m);

  Girln:

  fun(n);

  return0;

  }

扫描/长按二维码帮助必威体育betwayAPP下载通关
2018年等考报考资讯
2018等考各科通关技巧
2018各科最新预测试卷
2018等考各科备考资料

微信搜索"必威体育betwayAPP下载吧"了解更多必威体育betwayAPP下载资讯、下载备考资料

  相关推荐:

  2018年12月全国计算机等级必威体育betwayAPP下载必做试题汇总

  2018年全国计算机等级必威体育betwayAPP下载必做试题汇总(各科目)

  各地2018年12月全国计算机等考准考证打印时间汇总

  2018年全国计算机等级必威体育betwayAPP下载复习知识点汇总(各科目)

  2018全国计算机等级必威体育betwayAPP下载备考经验及应试技巧汇总

文章搜索
版权声明:如果计算机等级必威体育betwayAPP下载网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级必威体育betwayAPP下载网内容,请注明出处。
Copyright © 2004- 必威体育betwayAPP下载吧计算机等级必威体育betwayAPP下载网 All Rights Reserved 
中国科学院研究生院权威支持(北京)
在线模拟试题
考证通关杀器
必威体育betwayAPP下载最新资讯
一次通关技巧