2017年全国计算机等级考试二级C++模拟试题(1)

日期:03-01| http://www.59wj.com |二级C++模拟试题|人气:415

2017年全国计算机等级考试二级C++模拟试题(1)

  笔试部分

  一、选择题

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

  A. 有且只有1 B.1或多于1

  C. 0或1 D.至少2

  【参考答案】A

  2.在设计程序时,应采纳的原则之一( )

  A. 不限制goto语句的使用 B.减少或取消注解行

  C. 程序越短越好 D.程序结构应有助于读者理

  【参考答案】D

  3.下列叙述中,不属于软件需求规格说明书的作用的是( )

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

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

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

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

  【参考答案】D

  4.单个用户使用的数据视图的描述称为( )

  A. 外模式 B.概念模式 C. 内模式 D.存储模式

  【参考答案】A

  5.SQL语言又称为( )

  A. 结构化定义语言 B.结构化控制语言

  C. 结构化查询语言 D.结构化操纵语言

  【参考答案】C

  6.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是( )

  A. bdgcefha B.gdbecfha C. bdgaechf D.gdbehfca

  【参考答案】D

  7.软件工程的理论和技术性研究的内容主要包括软件开发技术和( )

  A. 消除软件危机 B.软件工程管理 C. 程序设计自动化 D.实现软件可重用

  【参考答案】B

  8.在软件测试设计中,软件测试的主要目的是( )

  A. 实验性运行软件 B.证明软件正确

  C. 找出软件中全部错误 D.发现软件错误而执行程序

  【参考答案】D

  9.索引属于( )

  A. 模式 B.内模式 C. 外模式 D.概念模式

  【参考答案】B

  10.数据库系统的核心是( )

  A. 数据库 B.数据库管理系统

  C. 模拟模型 D.软件工程

  【参考答案】B

  .
               www.59wj.com

  11.下面关于类和对象的描述中,错误的是( )

  A.类就是C语言中的结构体类型,对象就是C语言中的结构体变量

  B.类和对象之间的关系是抽象和具体的关系

  C.对象是类的实例,一个对象必须属于一个已知的类

  D.类是具有共同行为工的若干对象的统一描述体

  【参考答案】A

  12.设int a=10,b=11,c=12;,表达式(a+b)

  A.2 B.0 C.-2 D.1

  【参考答案】B

  13.下列语句中不是死循环的是( )

  A.int i=10; B.for(int i=1;i<10;i++) C.int i=0; D.int i=1;

  while(1) { do{ for(;;)

  { i--; i++; i=i+1;

  i--; } }while(i>=0);

  if(i==1)break;

  }

  【参考答案】A

  14.下面关于数组的描述错误的是( )

  A.在C++语言中数组的名字就是指向该数组第一个元素的指针

  B.长度为n的数组,下标的范围是0~n-1

  C.数组的大小必须在编译时确定

  D.数组只能通过值参数和引用参数两种方式传递给函数

  【参考答案】D

  15.下面的哪个选项不能作为函数的返回类型?( )

  A.void B.int C.new D.long

  【参考答案】C

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

  #include

  int func(int n)

  {if(n<1) return 1;

  else return n+func(n-1);

  return 0;}

  void main()

  {cout<

  A.0 B.10 C.15 D.16

  【参考答案】D
  .
               www.59wj.com

  17.以下程序中,错误的行为( )

  1.#include

  2.class A

  3.{

  4.public:

  5.int n=2;

  6.A(int val) {cout<

  7.~A(){ }

  8.{;

  9.void main()

  10{

  11.A a(0);

  12.}

  A.5 B.6 C.7 D.11

  【参考答案】A

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

  #include

  class A

  {

  int num;

  public:

  A(int i){num=i;}

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

  void print(){cout<

  };

  void main()

  {

  A a(1),b(a);

  a.print();

  b.print();

  }

  A.11 B.12 C.21 D.22

  【参考答案】C
  .
               www.59wj.com

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

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

  C.类A的成员函数不得访问类B的成员 D.类B不一定是类A的友元

  【参考答案】D

  20.建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为( )

  A.abc B.acb C.cab D.cba

  【参考答案】A

  21.下面关于模板的描述,错误的是( )

  A.函数模板和类模板的参数可以是任意的数据类型

  B.类模板不能直接使用,必须先实例化为相应的模板类,然后定义了模板类的对象后才能使用

  C.函数模板不能直接使用,需要实例化为模板函数后才使用

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

  【参考答案】A

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

  #include

  void main()

  {

  int num=1;

  int &ref=num;

  ref=ref+2;

  cout<

  num=num+3;

  cout<

  }

  A.13 B.16 C.36 D.33

  【参考答案】C

  23.下列程序的运行结果为( )

  #include

  int i=0;

  class A{

  public:

  A(){i++;}

  };

  void main()

  {A a,b[3],*c;

  c=b;

  cout<

  A.2 B.3 C.4 D.5

  【参考答案】C
  .
               www.59wj.com

  24.下列字符串中可以用C++语言标识符的是()

  A._1234 B.foo~~bar

  C.virtua D.34var

  【参考答案】A

  25.下列语句的输出结果( )

  cout<

  A.5 B.14 C.8 D.输出项不合法,无正常输出

  【参考答案】A

  26.若有如下语句( )

  #include

  void main()

  {int x=3;

  do{

  x=x-2;

  cout<

  }while(!(--x));

  }

  则上面程序段

  A.输出的是1 B.输出的是1和-2 C.输出的是3和0 D.是死循环

  【参考答案】B

  27.以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是( )

  #include

  void main()

  { int *p,*q,a,b;

  p=&a;

  cout<<″input a:″;

  cin>>p;}

  A.*p表示的是指针变量P的地址

  B.p表示的是变量a的地址,而不是变量a的值

  C.*p表示的是指针变量p的值

  D.*p只能用来说明p是一个指针变量

  【参考答案】B
  .
               www.59wj.com

  28.有以下程序

  #include

  void fun(int a,int b,int c)

  {a=456,b=567,c=678;}

  void main()

  {int x=10,y=20,z=30;

  fun(x,y,z);

  cout<

  输出结果是( )

  A.30,20,10 B.10,20,30

  C.456,567,678 D.678,567,456

  【参考答案】B

  29.下列定义中p指向的地址可更改,但*p不能够更改的是( )

  A.const int *P B.int * const p; C.const int *const p; D.int *p;

  【参考答案】A

  30.下面程序的结果是( )

  #include

  class A

  {

  int a;

  public:

  A():a(1){ }

  void showa(){cout<

  };

  class B

  {

  int a;

  public:

  B():a(2){ }

  void showa(){cout<

  };

  class C:public A,public B

  {int a;

  public:

  C():a(3){ }

  void showa(){cout<

  };

  void main()

  {C c;

  c.showa();}

  A.1 B.2 C.3 D.程序有错误

  【参考答案】C
  .
               www.59wj.com

  31.如果表达式x*y+z中,“*”是作为友元函数重载的,“+”是作为友元函数重载的,则该表达式还可为( )

  A.operator+(operator*(x,y),z)

  B.x.operator+(operator*(x,y),z)

  C.y.operator*(operator+(x,y),z)

  D.x.operator+(operator*(x,y))

  【参考答案】A

  32.对于语句cout<

  A.*********1*2 B.********12 C.*******1*2 D.12********

  【参考答案】A

  33.有如下程序

  #include

  int func(int a,int b)

  {return(a+b);}

  void main()

  {int x=2,y=5,z=8,r;

  r=func(func(x,y),z);

  cout<

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

  A.12 B.13 C.14 D.15

  【参考答案】D

  34.下列描述中,抽象类的特性是( )

  A.可以说明虚函数

  B.可以定义友元函数

  C.可以进行构造函数重载

  D.不能说明其对象

  【参考答案】D

  35.下列程序的运行结果是( )

  #include

  void fun(int *a,int *b)

  { int *k;

  k=a;a=b;b=k;

  }

  void main()

  { int a=3,b=6,*x=&a,*y=&b;

  fun(x,y);

  cout<

  }

  A.6 3 B.3 6 C.编译出错 D.0 0

  【参考答案】B
  .
               www.59wj.com

  二、填空题

  1.在面向对象方法中,类之间共享属性和操作的机制称为【1】。

  【参考答案】

  1.【1】继承

  2.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于【2】的联系。

  【参考答案】

  2.【2】一对多(或1:N)

  3.Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向【3】的设计方法。

  【参考答案】

  3.【3】数据结构

  4.软件设计模块化的目的是【4】。

  【参考答案】

  【4】降低复杂性

  5.在树结构中,树根结点没有【5】。

  【参考答案】

  【5】前件

  6.C++中封装性、继承性和【6】是面向对象思想的主要特征。

  【参考答案】

  【6】 多态性

  7.下列for语句的循环次数为【7】。

  for(int a=0,b=1;b&&a<5;a++);

  【参考答案】

  【7】5

  8.C++程序是从【8】函数开始执行的。

  【参考答案】

  【8】main

  9.派生类构造函数的执行顺序是先执行【9】的构造函数,然后执行成员对象的构造函数,最后执行【10】的构造函数。

  【参考答案】

  9.【9】基类 【10】派生类

  10.C++语言程序的注释可以出现在程序中的任何地方,一个注释以【11】作为开始和结束的标记。

  【参考答案】

  【11】/**/

  11.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。

  st=(char*)【12】;

  【参考答案】
  .
               www.59wj.com

  【12】malloc(11)或malloc(sizeof(char)*11)

  12.下列程序在构造函数和析构函数中申请和释放类的数据成员int *a,申请时使用形参b初始化a,请填空。

  class A

  {

  public:

  A(int b);

  ~A();

  private:

  int *a;

  };

  A::(int b)

  {【13】;}

  A::~A()

  {【14】;}

  【参考答案】

  12.【13】a=new int(b) 【14】delete a

  13.将x+y*z中的“+”用成员函数重载,“*”用友元函数重载应写为【15】。

  【参考答案】

  【15】x.operator+(operator *(y,z))
  .
               www.59wj.com

  上机部分

  一、改错题

  使用VC6打开考生文件夹下的工程kt1_1,此工程包含一个源程序文件kt1_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果为:

  Whichact(aorb)?b

  act1

  act2

  Bact3

  Bact4

  Bend

  源程序文件kt1_1.cpp清单如下:

  #include

  classA

  {public:

  virtualvoidact1(){cout<<"act1\n";act2();}

  voidact2(){cout<<"act2\n";act3();}

  voidact3(){cout<<"Aact3\n";act4();}

  virtualvoidact4{cout<<"Aact4\n";act5();}

  voidact5(){cout<<"Aend\n";}

  };

  classB:publicA

  {

  voidact3(){cout<<"Bact3\n";act4();}

  voidact4(){cout<<"Bact4\n";act5();}

  voidact5(){cout<<"Bend\n";}

  };

  voidmain(void)

  {

  charc;

  A*a;

  cout<<"Whichact(aorb)?";

  cin<

  if(c=='a')

  a=newA;

  else

  a=newB;

  a->act1();

  deletea;

  【参考答案】

  (1)将void act3(){cout<<"Aact3\n";act4();}

  改为:virtual void act3(){cout<<"Aact3\n";act4();}

  (2)将virtual void act4{cout<<"Aact4\n";act5();}

  改为:virtual void act4(){cout<<"Aact4\n";act5();}

  (3)将cin<

  改为:cin>>c;
  .
如果觉得《2017年全国计算机等级考试二级C++模拟试题(1)》二级C++模拟试题,jsj不错,可以推荐给好友哦。

本文Tags: 计算机等级考试 - 模拟试题 - 计算机二级模拟试题 - 二级C++模拟试题,jsj,
在百度中搜索相关文章:2017年全国计算机等级考试二级C++模拟试题(1)
在谷歌中搜索相关文章:2017年全国计算机等级考试二级C++模拟试题(1)
在soso中搜索相关文章:2017年全国计算机等级考试二级C++模拟试题(1)
在搜狗中搜索相关文章:2017年全国计算机等级考试二级C++模拟试题(1)
相关分类导航|
热门推荐|