试题

9月计算机二级C++练习题及答案

时间:2025-04-30 12:49:09 试题 我要投稿

2015年9月计算机二级C++练习题及答案

  一、填空题

  1.用树结构表示实体类型及实体间联系的数据模型称为【1】。

  【参考答案】

  【1】层次模型

  2.数据流图的类型有【2】和事务型。

  【参考答案】

  【2】变换型

  3.在最坏情况下,堆排序需要比较的次数为【3】。

  【参考答案】

  【3】O(nlog2n)

  4.软件开发环境是全面支持软件开发全过程的【4】集合。

  【参考答案】

  【4】软件工具

  5.冒泡排序算法在最好的情况下的元素交换次数为【5】。

  【参考答案】

  【5】0

  6.C++语言标识符是以字母或【6】开头的,由字母,数字和下划线组成的字符串。

  【参考答案】

  【6】下划线

  7.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回,请填空。

  int mystrlen(char *str)

  { int i;

  for(i=0;【7】!=′\0′;i++);

  return(i);}

  【参考答案】

  【7】*(str+i)或str[i]

  8.如果一个类中定义了成员对象,则该类的对象和成员对象先被初始化的是【8】。

  【参考答案】

  【8】类的成员对象

  9.C++在重载运算符中,如用成员函数重载一元运算符参数表中需要【9】个参数,如用友元函数重载一元运算符参数表中需要【10】个参数。

  【参考答案】

  【9】0 【10】1

  10. 假设int a=1,b=2;,则表达式(++a/b)*b--的值为【11】。

  【参考答案】

  【11】2

  11.C++语句const char *const p=″hello″;,所定义的指针p和它所指的内容都不能被【12】。

  【参考答案】

  【12】改变

  12.对于下面定义的类MyClass,请在函数f()中添加对象成员把n的值修改为50。

  class MyClass

  {

  public:

  MyClass(int x){n=x;}

  void SetNum(int nl){n=nl;}

  private:

  int n;

  };

  int f()

  {

  MyClass *ptr=new MyClass(45);

  【13】

  }

  【参考答案】

  【13】ptr->SetNum(50);

  13.表达式operator+(x,y)还可以表示为【14】。

  【参考答案】

  【14】x+y

  14.通过使用new和delete两个运算符进行的分配为【15】存储分配。

  【参考答案】

  【15】动态

  上机部分

  一、改错题

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

  1:

  weight:5

  age:0

  2:

  weight:7

  age:9

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

  #include

  classanimal

  {

  public:

  /****************found*******************/

  friendvoidsetvalue(animal&,int);

  /****************found*******************/

  viodprint();

  protected:

  intitsweight;

  intitsage;

  };

  voidanimal::print()

  {

  cout<<"weight:"<

  cout<<"age:"<

  }

  voidsetvalue(animal&ta,inttw)

  {

  ta.itsweight=tw; www.Examda.CoM

  ta.itsage=0;

  }

  voidsetvalue(animal&ta,inttw,inttn)

  {

  ta.itsweight=tw;

  ta.itsage=tn;

  }

  voidmain()

  {/****************found*******************/

  animalpeppy

  setvalue(peppy,5);

  cout<<"1:"<

  peppy.print();

  setvalue(peppy,7,9);

  cout<<"2:"<

  peppy.print();}

  【参考答案】

  (1)添加友元函数的声明

  friend void setvalue(animal&,int,int);

  (2)将viod print();改为:void print();

  (3)将animal peppy改为:animal peppy;

  【试题解析】

  (1)主要考查对成员函数定义规则的掌握,成员函数必须先声明再使用,即使是友元函数也不例外;

  (2)主要考查对关键字的掌握,空类型应用void;

  (3)主要考查对变量定义的掌握,该处缺少“;”。

  二、简单应用题

  请编写一个函数intSeqSearch(intlist[],intstart,intn,intkey),该函数从start开始,在大小为n的数组list中查找key值,返回最先找到的key值的位置,如果没有找到则返回-1。请使用for循环实现。

  注意:部分源程序已存在文件kt4_2.cpp中。

  请勿修改主函数main和其他函数中的任何内容,仅在函数SeqSearch的花括号中填写若干语句。

  文件kt4_2.cpp的内容如下:

  #include

  intSeqSearch(intlist[],intstart,intn,intkey)

  {

  }

  voidmain()

  {

  intA[10];

  intkey,count=0,pos;

  cout<<"Enteralistof10integers:";

  for(pos=0;pos<10;pos++)

  {

  cin>>A[pos];

  }

  cout<<"Enterakey:";

  cin>>key;

  pos=0;

  while((pos=SeqSearch(A,pos,10,key))!=-1)

  {

  count++;

  pos++;

  }

  cout<

  }

  【参考答案】

  int SeqSearch(int list[], int start, int n, int key)

  {

  for(int i=start;i

  {

  if(list[i]==key)

  {

  return i;

  }

  }

  return -1;

  }

  【试题解析】

  本题考查的是考生使用for和if等基本控制结构的综合水平,查找一个数组中的指定元素并返回序号是一个基本操作,注意一维数组的实参格式。

  三、综合应用题

  使用VC6打开考生文件夹下的工程kt4_3,此工程包含一个源程序文件kt4_3.cpp,其中定义了用于表示向量的类vector,但类vector的定义并不完整。请按要求完成下列操作,将类vector的定义补充完整。

  (1)补充类vector的构造函数,该函数有参数x和y,它们都是int型的数据,默认值都为0。请使用参数列表的形式分别将类的数据成员a和b分别初始化为参数x和y的值。请在注释“//**1**”之后添加适当的语句。

  (2)完成类vector的成员函数input(intx,inty)的定义,将int型的参数x和y分别赋值给数据成员a和b,请在注释“//**2**”之后添加适当的语句。

  (3)完成类vector的友元函数frienddoubleMultiply(vector&x,vector&y)的定义,先定义double型的临时变量c,然后将参数对象x和对象y的数据成员a与b分别相乘再相加后赋值给c,最后返回c的值,将请在注释“//**3**”之后添加适当的语句。输出结果如下:

  (10,20)

  (2,3)

  80

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

  源程序如下:

  #include

  classvector

  {

  inta;

  intb;

  public: 

  //**1**

  voidinput(intx,inty)

  {//**2**}

  voidoutput()

  {cout<<'('<

  frienddoubleMultiply(vector&x,vector&y);

  };

  doubleMultiply(vector&x,vector&y)

  {

  //**3**

  c=x.a*y.a+x.b*y.b;

  returnc;

  }

  voidmain()

  {

  vectorx(10,20),y;

  doubled;

  y.input(2,3);

  d=Multiply(x,y);

  x.output();

  y.output();

  cout<

  }

  【参考答案】

  (1)vector (int x=0,int y=0):a(x),b(y){}

  (2)a=x; b=y;

  (3)double c;

  【试题解析】

  本题主要考查类的定义和友元函数定义,其中(1)中的参数列表形式和(3)中对象访问成员使用“.”操作符。

【9月计算机二级C++练习题及答案】相关文章:

2016年9月计算机二级《C++》练习题及答案03-06

2017年9月计算机二级C++强化练习题及答案04-28

2015年9月计算机二级C++精选练习题(附答案)12-07

2016年12月计算机二级C++练习题及答案05-30

2017年3月计算机二级C++练习题及答案04-27

2017年3月计算机二级《C++》单选练习题及答案07-24

2017年12月计算机二级C++考前练习题及答案07-20

2017年9月计算机二级《C++》强化练习题04-13

2017年9月计算机二级C++强化试题及答案07-10