试题

9月全国计算机二级考试C++笔试模拟题及答案三

时间:2025-03-12 09:54:03 试题 我要投稿
  • 相关推荐

2015年9月全国计算机二级考试C++笔试模拟题及答案(三)

  一、填空题

2015年9月全国计算机二级考试C++笔试模拟题及答案(三)

  1.将代数式

  ______________ 换成程序设计中的表达式为 【1】。

  ╱ X*X+Y*Y

  Z= ╱ ----------

  ╲╱ a+b

  【参考答案】

  【1】SORT(x^2+y^2)/(a+b)

  2.【2】是数据库设计的核心。

  【参考答案】

  【2】数据模型

  3.测试的目的是暴露错误,评价程序的可靠性;而【3】的目的是发现错误的位置并改正错误。

  【参考答案】

  【3】调试

  4.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【4】。

  【参考答案】

  【4】消息

  5.常用的黑箱测试有等价分类法、【5】、因果图法和错误推测法4种。

  【参考答案】

  【5】边值分析法

  6.【6】是C++语言程序的入口。

  【参考答案】

  【6】main()函数

  7.C++语言的基本控制结构为顺序结构、选择结构和【7】。

  【参考答案】

  【7】循环结构

  8.函数重载要求重载的函数必须有和原函数一样的【8】。

  【参考答案】

  【8】函数名

  9.设置虚基类的目的是【9】,通过【10】表示虚基类。

  【参考答案】

  【9】解决二义性问题

  【10】用关键字virtual

  10. 语句cout<<′\n′还可表示为【11】。

  【参考答案】

  【11】cout<< p>

  11.若已知a=10,b=20,则表达式!a< p>

  【参考答案】

  【12】1

  12.友元类的所有成员函数都是另一个类的【13】。

  【参考答案】

  【13】友元函数

  13.表达式x.operator++()还可写成【14】。

  【参考答案】

  【14】++x

  14.若要在C盘根目录下作为二进制文件打开文件test.dat,则应该用的语句是:

  【参考答案】

  【15】ifstream fin(″C:\test.dat″,ios_binary);或ifstream fin;fin.open(c:\test.dat″,ios_bin

  上机部分

  二、改错题

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

  Vehiclemessage

  Carmessage

  Vehiclemessage

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

  #include

  classvehicle

  {

  intwheels;

  floatweight;

  public:

  voidmessage(void){cout<<"Vehiclemessage\n";}

  };

  classcar:publicvehicle

  {

  intpassenger_load;

  public:

  voidmessage(void){cout>>"Carmessage\n";}

  };

  classtruck:publicvehicle

  {

  intpassenger_load;

  floatpayload;

  public:

  intpassengers(void){returnpassenger_load;}

  };

  voidmain()

  {

  vehicle*unicycle;

  unicycle=newvehicle;

  unicycle.message();

  deleteunicycle;

  unicycle=newcar;

  unicycle->message();

  deleteunicycle;

  unicycle=newtruck;

  unicycle->message();

  deleteunicycle;

  }

  【参考答案】

  (1)将void message(void){ cout<<"Vehicle message\n";}

  改为:virtual void message(void){ cout<<"Vehicle message\n";}

  (2)将void message (void){cout>>"Car message\n";}

  改为:void message (void){cout<<"Car message\n";}

  (3)将unicycle.message();

  改为:unicycle->message();

  【试题解析】

  (1)主要考查对虚函数使用规则的掌握,要实现对函数message的动态联编应该使用虚函数,否则产生的是静态联编,调用的函数输出结果就与要求不符;

  (2)主要考查对流输出操作的掌握,该处错误的使用了流输入操作;

  (3)主要考查对象和对象指针的概念,对象指针使用"->"调用成员函数,而对象使用"."调用成员函数。

  三、简单应用题

  编写类AA的成员函数intCompare(AAb),该函数用于比较*this与b的大小,若两者含有元素的个数n相同,并且数组中前n个元素值对应相同,则认为两者相等返回1,否则返回0。注意:用数组方式及for循环来实现该函数。输出结果如下:

  a=b

  a<>c

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

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

  文件kt2_2.cpp的内容如下:

  #include

  #include

  classAA{

  int*a;

  intn;

  intMS;

  public:

  voidInitAA(intaa[],intnn,intms)

  {

  if(nn>ms)

  {\cout<<"Error!"<< p>

  exit(1);}

  MS=ms;

  n=nn;

  a=newint[MS];

  for(inti=0;i< p>

  }

  intCompare(AAb);

  };

  intAA::Compare(AAb)

  {

  }

  voidmain()

  {AAa,b,c;

  intx[]={1,2,3,4,5};

  inty[]={1,2,3,6,7};

  intz[]={1,2,5,7,9};

  a.InitAA(x,3,5);

  b.InitAA(y,3,5);

  c.InitAA(z,3,5);

  if(a.Compare(b))

  cout<<"a=b"<< p>

  else

  cout<<"a<>b"<< p>

  if(a.Compare(c))

  cout<<"a=c"<< p>

  else

  cout<<"a<>c"<< p>

  【参考答案】

  int AA::Compare(AA b)

  {if(n!=b.n) return 0;

  for(int i=0; i<>

  if(a[i]!=b.a[i]) return 0;

  return 1;}

  【试题解析】

  本题考查应用for循环、if条件控制语句等基本控制结构解决实际问题的能力。

  四.综合应用题

  使用VC6打开考生文件夹下的工程test17_3,此工程包含一个源程序文件kt2_3.cpp,其中定义了用于表示点的类Point和表示内容的类Text以及二者的派生类CircleWithText,但它们的定义并不完整。请按要求完成下列操作,将它们的定义补充完整。

  (1)定义类Point的构造函数,请使用参数列表的形式将成员函数x和y分别初始化为参数x1和y1的值。请在注释“//**1**”之后添加适当的语句。

  (2)完成类Text的构造函数Text(char*str)的定义,将char型的str指向的内容赋值给text并且输出str所指向的内容,请在注释“//**2**”之后添加适当的语句。

  (3)定义类CircleWithText的构造函数CircleWithText(intcx,intcy,char*msg),int型的cx和cy用于赋值给x和y,char型的指针*msg用于赋值给text,请在注释“//**3**”之后添加适当的语句。

  输出结果如下:

  Point:34

  hello

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

  源程序如下:

  #include

  #include

  classPoint

  {intx,y;

  public:

  //**1**

  {cout<<"Point:"<<<''<<<'\N';}< p>

  ~Point(){}};

  classText

  {chartext[100];

  public:

  Text(char*str)

  {//**2**}

  ~Text(){}};

  classCircleWithText:publicPoint,publicText

  {public:

  //**3**

  {}

  ~CircleWithText(){}};

  voidmain()

  {CircleWithTextcm(3,4,"hello");}

  【参考答案】

  (1)Point(int x1=0, int y1=0) :x(x1), y(y1)

  (2)strcpy(text,str);

  cout<<<"\N";< p>

  (3)CircleWithText(int cx,int cy, char *msg):Point(cx,cy),Text(msg)

  【试题解析】

  本题主要考查考生对于多继承中类的定义和派生类构造函数的定义的掌握。注意学会使用参数列表的形式定义派生类的构造函数,在列表中的格式是基类名1(向基类传递的参数列表),基类名2(向基类传递的参数列表)。

【9月全国计算机二级考试C++笔试模拟题及答案三】相关文章:

全国计算机二级考试C++笔试模拟题及答案04-16

2015年9月全国计算机二级考试C++笔试模拟题及答案(四)05-02

2015年9月全国计算机二级考试C++笔试模拟题及答案(五)03-20

2015年9月全国计算机二级考试C++笔试模拟题及答案(六)07-04

全国计算机等级考试二级C++笔试题02-06

下半年全国计算机二级C++考试模拟题及答案06-27

全国计算机二级考试C++精选试题及答案12-28

全国计算机等级考试二级C++笔试真题05-01

2015下半年全国计算机二级C++考试模拟题及答案(三)02-25