计算机等级 百分网手机站

计算机二级C++笔试试题

时间:2018-04-15 18:15:37 计算机等级 我要投稿

2016年计算机二级C++笔试试题

  2016年计算机二级考试就要开始了,同学们准备得怎么样了呢?下面跟yjbys小编一起来看看相关的考试题库,希望对大家的复习有所帮助!

  一、选择题(每小题2分,共70分)

  下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

  (1)下列叙述中正确的是

  A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

  B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

  C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构

  D)上述三种说法都不对

  (2)下列叙述中正确的是

  A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

  B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

  C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

  D)上述三种说法都不对

  (3)软件测试的目的是

  A)评估软件可靠性

  B)发现并改正程序中的错误

  C)改正程序中的错误

  D)发现程序中的错误

  (4)下面描述中,不属于软件危机表现的是

  A)软件过程不规范

  B)软件开发生产率低

  C)软件质量难以控制

  D)软件成本不断提高

  (5)软件生命周期是指

  A)软件产品从提出、实现、使用维护到停止使用退役的过程

  B)软件从需求分析、设计、实现到测试完成的过程

  C)软件的开发过程

  D)软件的运行维护过程

  (6)面向对象方法中,继承是指

  A)一组对象所具有的'相似性质

  B)一个对象具有另一个对象的性质

  C)各对象之间的共同性质

  D)类之间共享属性和操作的机制

  (7)层次型、网状型和关系型数据库划分原则是

  A)记录长度

  B)文件的大小

  C)联系的复杂程度

  D)数据之间的联系方式

  (8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员、与实体计算机之间的联系是

  A)一对一

  B)一对多

  C)多对多

  D)多对一

  (9)数据库设计中反映用户对数据要求的模式是

  A)内模式

  B)概念模式

  C)外模式

  D)设计模式

  (10)有三个关系R、S和T如下:

  则由关系R和S得到关系T的操作是

  A)自然连接

  B)交

  C)投影

  D)并

  (11)下列关于函数参数的叙述中,正确的是

  A)在函数原型中不必声明形参类型

  B)函数的实参和形参共享内存空间

  C)函数形参的生存期与整个程序的运行期相向

  D)函数的形参在函数被调用时获得初始值

  (12)下列关于对象初始化的叙述中,正确的是

  A)定义对象的时候不能对对象进行初始化

  B)定义对象之后可以显式地调用构造函数进行初始化

  C)定义对象时将自动调用构造函数进行初始化

  D)在一个类中必须显式地定义构造函数实现初始化

  (13)下列关于基类和派生类关系的叙述中,正确的是

  A)每个类最多只能有一个直接基类

  B)派生类中的成员可以访问基类中的任何成员

  C)基类的构造函数必须在派生类的构造函数体中调用

  D)派生类除了继承基类的成员,还可以定义新的成员

  (14)下列关于赋值运算符“=”重载的叙述中,正确的是

  A)赋值运算符只能作为类的成员函数重载

  B)默认的赋值运算符实现了“深层复制”功能

  C)重载的赋值运算符函数有两个本类对象作为形参

  D)如果己经定义了复制(拷贝)构造函数,就不能重载赋值运算符

  (15)下列关于模板的叙述中,正确的是

  A)如果一个类中存在纯虚函数,这个类就是类模板

  B)函数模板不能有形式参数表

  C)类模板是一种参数化类型的类,是类的生成器

  D)类模板中不能包含构造函数

  (16)下列关于C++预定义流对象的叙述中,正确的是

  A)cin是C++预定义的标准输入流对象

  B)

  cin是C++预定义的标准输入流类

  C)cout是C++预定义的标准输入流对象

  D)cout是C++预定义的标准输入流类

  (17)下列选项中,正确的C++标识符是

  A)6_group

  B)group~6

  C)age+3

  D)_group_6

  (18)下列选项中,正确的C++表达式是

  A)counter++3 B)element3+ C)a+=b D)‘a‘=b

  (19)下列循环语句中有语法错误的是

  A)int i; for( i=1; i<10;i++)cout<<‘*‘;

  B)int i,j;for(i=1,j=0;i<10;i++,j++)cout<<‘*‘;

  C)int i=0;for(;i<10;i++)cout<<‘ *‘;

  D)for(1)cout<<‘*‘;

  (20)下列定义语句中,错误的是

  A)int px*;

  B)char*acp[10];

  C)char(*pac)[10];

  D)int(*p)();

  (21)下列函数原型声明中,错误的是

  A)int fnction(int m,int n);

  B)int function(int,int);

  C)int function(int m=3,int n);

  D)int function(int &m,int&n);

  (22)若MyClass为一个类,执行“MyClass a[4],*p[5];”语句时会自动调用该类构造函数的次数是

  A)2 B)5 C)4 D)9

  (23)若在表达式y/x中,“/”是作为成员函数重载的运算符,则该表达式还可以表示为

  A)x.Operator/(Y)

  B)operator/(x,Y)

  C)Y.operator/(x)

  D)operator/(y,x)

  (24)若要重载+、=、<<、=和[]运算符,则必须作为类成员重载的运算符是

  A)+和=

  B)=和<<

  C)==和<<

  D)=和[]

  (25)有函数模板声明和一些变量定义如下:

  template   double dl,d2;

  则下列调用中,错误的是

  A)sum  B)sum(d1,d2);

  C)sum(d1,d2);

  D)sum(d1,d2);

  (26)有如下语句序列:

  char str[10];cin>>str;

  当从键盘输入”I love this game”时,str中的字符串是

  A)"I love this game"

  B)"I love thi"

  C)"I love"

  D)"I"

  (27)有如下程序:

  #include

  #include

  using std::cout;

  class Point{

  public:

  friend double distance(const Point &p); //p距原点的距离

  Point(int xx=0,int yy=0):x (xx),Y(YY){}//①

  private:

  Int x,Y;

  };

  double distance(const Point &p) { //②

  return sqrt(p.x*p.x+p.Y*p.Y);

  }

  int main(){

  Point p1(3,4);

  cout<  return 0;

  }

  下列叙述中正确的是

  A)程序编译正确

  B)程序编译时语句①出错

  C)程序编译时语句②出错

  D)程序编译时语句③出错

  (28)有如下程序:

  #include

  using namespace std;

  class CD{

  public:

  ~CD(){cout<<’C’;}

  private:

  char name[80];

  };

  int main(){CD a,*b,d[2];return 0;}

  运行时的输出结果是

  A)CCCC B)CCC C)CC D)C

  (29)某类中有一个无参且无返回值的常成员函数Show,则正确的Show函数原型是

  A)const void Show();

  B)void const Show();

  C)void Show()const;

  D)void Show(const);

  (30)若已定义了类Vehicle,则下列派生类定义中,错误的是

  A)class Car:Vehicle{/*类体略*/},

  B)class Car:public Car{/*类体略*/};

  C)class Car:public Vehicle{/*类体略*/};

  D)class Car:virtual public Vehicle{/*类体略*/};

  (31)有如下程序:

  #include

  using namespace std;

  class Music{

  public:

  void setTitle(char*str){strcpy(title,str);}

  protected:

  char type[10];

  private:

  char title[20];

  };

  class Jazz:public Music{

  public:

  void set(char* str){

  strcpy(type,"Jazz"); //①

  strcpy(title,str); //②

  }

  };

  下列叙述中正确的是

  A)程序编译正确一 B)程序编译时语句①出错

  C)程序编译时语句②出错 D)程序编译时语句①和②都出错

  (32)有如下程序:

  #include

  using namespace std;

  class Instrument{

  public:

  virtual void Display()=0;

  };

  class Piano:public Instrument{

  public:

  void Display(){/*函数体程序略*/}

  };

  int, main(){

  Instrument s;

  Instrument*p=0;

  //...;

  return 0;

  }

  下列叙述中正确的是

  A)语句“Insturment *p=0;”编译时出错

  B)语句“Instruments;”编译时出错

  C)类Piano中的Display函数不是虚函数

  D)类Instrumen七是一个虚基类

  (33)有类定义如下:气

  class Type {

  public:

  Type (int i=0);

  Tvpe operator -(int);

  friend Type operator + (Type, Type );

  private:

  int val;

  若有对象定义Type cl;则下列语句序列中,错误的是

  A)Type(3)+c1; B)cl+Type(3);

  C)3-cl; D)c1-3;

  (34)有如下程序:

  #include

  #include

  using namespace std;_

  int main(){

  Cout<  Cout<<12.3456793<<_______<<98765;

  return 0;

  }

  若程厚的输出是12.345679x98765xxxxx,则划线处缺失的部分是

  A)setw(1

  0) B)setfill('x') C)setprecision(8) D)right

  (35)有如下程序:

  #include

  using namespace std;

  class Book{

  public:

  Book(char* t=""){strcpy(titie,t); }

  _____________________________

  private:

  Char title[40];

  };

  class Novel:public Book{

  public:

  Novel(char*t=""):B00K (t){}

  char*Category()const { return” "文学" }

  };

  int main(){

  Book*pb;

  pb=new Novel();

  Cout

  return 0;

  }

  若程序运行时输出结果是“文学”,则划线处缺失的语句是

  A)char* Category();

  B)char*Category()const;

  C)virtual char*Category()const;

  D)virtual char*Category()const=0;

  二、填空题(每空2分,共30分)

  请将每一个空的正确答案写在答题卡【1】-【15】序号的横线上,答在试卷上不得分。注意:以命令关键字填空的必须拼写完整。

  (1)一个栈的初始状态为空。首先将元素5,4,3,2,1 依次入栈,然后退栈一次,再将元素A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为__【1】__。

  (2)在长度为n的线性表中,寻找最大项至少需要比较___【2】___次。

  (3)一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有__【3】___个

  结点。

  (4)仅由顺序、选择(分支)和重复(循环)结构构成的程序是_【4】__程序。

  (5)数据库设计的四个阶段是:需求分析,概念设计,逻辑设计和_【5】_。

  (6)如果一个派生类只有一个直接基类,则该类的继承方式称为_【6】_继承;如果一个派生类同时有多个直接基类,则该类的继承方式称为_【7】_继承。

  (7)运算符“+”允许重载为类成员函数,或者非成员函数。若用operator+(c1, c2)这样的表达式来使用运算符“+”,应将“+”重载为_【8】_函数。

  (8)下列程序的输出是3,请填充程序中的空缺,使该行形成一个运算符重载函数的定义。

  #include

  using namespace std;

  class MyNumber{

  int n;

  public:

  MyNumber(int k):n(k){}

  _【9】_int()const{return n,}

  };

  int main(){

  MyNumber numl(3);

  Cout<  return 0;

  }

  (9)下列程序的输出结果是_【10】__。

  #include

  using namespace std;

  class Base{

  public:

  int m,n;

  Base(int i,int j):m(i),n(j){}

  };

  class Derived:public Base{

  public:

  int m, k;

  Derived(int i,int j):Base(i,j),m(i+1),k(j+1){}

  };

  int main(){

  Derived d(1;5);

  Cout<  return 0;

  }

  (10)根据程序中的注释将下列缺失部分补充完整。

  class A{

  char*a;

  public:

  A():a(0){}

  A(char *aa){//把aa所指字符串复制给a所指向的存储空间

  a=__【11】__char[strlen(aa)+1];

  strcpy(a,aa);

  }

  ~A(){delete[]a;}

  };

  (11)根据程序中的注释将下列缺失部分补充完整。

  class Point{

  int x, y; //点的x和y坐标

  public:

  Point(int xx=0,int yy=。):x(xx),y(yy){}

  };

  class Circle{

  Point center;//圆心位置

  int radius; //半径

  public: //利用cx和cy分别初始化圆心的x和y坐标

  Circle(int cx;int cy,int r):__【12】__,radius(r){}

  void area(){cout<<3.14159*radius*radius<  };

  (12)一网喂序的输出结果是__【13】__。

  #include

  using namespace std;

  class Base{

  Int x;

  Public:

  Base(int b):x(b){}

  virtual void display(){cout<  };

  class Derived:public Base{

  Int y;

  public:

  Derived(int d):Base(d),y(d){}

  void display(){cout<  };

  int main(){

  Base b(1);Derived d(2);

  Base*p=&d;

  b .display();d.display();p一>display();

  return 0;

  }

  (13)一个双目运算符作为类的成员函数重载时,重载函数的参数表中有__【14】__个参数。

  (14)派生类中的成员函数可以直接访问基类中的公有成员和__【15】__成员。

【2016年计算机二级C++笔试试题】相关文章:

1.2016年计算机二级考试C++试题及答案

2.2016年计算机二级考试C++试题及答案

3.2017年计算机二级C++模拟试题

4.2017年计算机二级C++考试试题

5.2017年计算机二级《C++》预测试题

6.2017年计算机二级C++考试试题

7.2016下半年计算机二级考试C++试题及答案

8.2016年计算机二级《C++》模拟试题及答案