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

时间:2020-09-16 19:44:20 计算机等级 我要投稿

2016下半年计算机二级C上机考试试题及答案

  1.程序改错题

2016下半年计算机二级C上机考试试题及答案

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

  0K

  注意:错误的语句在//******error******的下面,修改该语句即可。

  试题程序:

  #include

  classTC

  {

  public:

  TC()

  {

  a=b=0:

  }

  private:

  inta,b;

  };

  classTCl:publicTC

  {

  public:

  TC1()

  {

  }

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

  virtualvoidfunc();

  };

  classTC2:publicTCl

  {

  public:

  TC2()

  {

  a=0:

  b=0:

  }

  voidfunc()

  {

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

  cout<<"OK"  }

  private:

  inta;

  intb;

  };

  voidmain()

  {

  TC20bj;

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

  TCl*p=(TCl*)obj;

  p->func();

  }

  (1)应改为“virtualvoidfunc()=0;”。

  (2)应改为“cout<<"0K"<(endl;”。

  (3)应改为“TCl*p=(TCl*)&obj;”。

  【解析】本题中TCl类中的func函数是纯虚函数,纯虚函数的定义格式为virtual<函数类型><函数名>((参数表>)=0”,因此第1处的语句应为“virtualvoidfunc()=0;”。func函数没有参数表。编译程序后发现第2处的语句有错误,cout流中的数据是用流插入运算符“<<”顺序加入的,因此“<”不正确,应改成“cout<<"0K"<

  2.综合应用题

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

  (1)完成TC的构造函数,请改正注释1后的错误。

  (2)完成func函数定义,请改正注释2后的错误。

  (3)初始化CmyClass的成员变量Num3为4,请改正注释3后的错误。

  (4)完成func函数,请改正注释4后的错误。

  输出的结果为

  Num1=12

  Num2=18

  Num3=16

  Num1=4

  Num2=2

  Num3=19

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

  试题程序:

  #include

  classTC

  {

  public:

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

  TC(inti,intj)

  {

  Numl=i;

  Num3+=i:

  }

  voiddisplay()

  {

  cout<<"Num1="<  cout<<"Num2="<  cout<<"Num3="<  }

  voidAddNum(inti)

  {

  Num3+=i;

  }

  private:

  intNum1;

  constintNum2;

  staticintNum3;

  //********2********

  };

  //********3********

  voidfunc()

  {

  TCobj(1,2);

  obj.Num1=4;

  //********4********

  obj.AddNum();

  ohj.display();

  }

  voidmain()

  {

  TCmyObj(12,18);

  myObj.display();

  rune();

  return;

  }

  (1)将“TC(inti,intj)”补充完整为“TC(inti,intj):Num2(j)”。

  (2)应添加“friendvoidfunc();”。

  (3)应添加“intTC::Num3=4;”。

  (4)将“obi.AddNum()”补充完整为“obj.AddNum(2);”。

  【解析】本题在第1处完成类的构造函数初始化类的成员变量,常数据成员也必须初始化,并且不能被更新,常数据成员的初始化只能通过构造函数的成员初始化类表进行,因此第1处的语句应为“TC(inti,intj):Num2(j)”,i用来初始化Num1和Num3,j初始化Num2。第2处完成fune的函数定义,由审题分析可知,函数fune为类的友元,故第2处的语句应为“friendvoidrune();”。第3处的语句是静态成员的初始化,静态数据成员的初始化格式为“(数据类型)<类名>::<静态数据成员)=<初始值>”,因此第3处的'语句应为“intTC::Num3=4;”。成员函数AddNum带有一个整型参数,因此调用此函数时必须有参数传入,可由程序运行结果分析得知传入的参数值的大小。在fun函数内,定义TCobj(1,2)后,obj.Num1=1,obj.Num2=2,Num3=16+1=17,obj.Num1=4,Numl为4,obj。Num2为常数据成员,其值不会改变,调用AddNum函数后调用显示函数显示成员变量值,可知Num3为19,因此AddNum()的参数为19-17=2,即第4处的语句应为“obj.AddNum(2);”。

  3.简单应用题

  使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码。

  函数func(intd口,intn)的功能是将长度为num的数组d中的奇数扩大1倍,并存储到数组d中。

  例如:2,15,6,-3,8,-11,9,24,50

  返回4,30,12,-6,16,-22,18,48,100

  将func(intd[],intnum)函数补充完整。

  注意:请勿改动主函数main。

  试题程序:

  #include

  voidfunc(intd[],intnum)

  {

  }

  intmain()

  {

  intData[]={2,15,6,-3,8,-11,9,24,50};

  func(Data,9);

  for(inti=0;i(sizeof(Data)/sizeof(int);i++)

  {

  cout<  }

  cout<  return0;

  }

  for(inti=0;i  {

  if(d[i]%2!=O)

  d[i]=2*d[i];

  }

  【解析】由审题分析可知,利用循环来逐个判断d[]中的元素,d[]中元素个数为hum,因此循环变量从0变化至num。在循环内,用if语句判断该元素是不是奇数,即if(d[i]%2!=0),将满足条件的d[i]扩大一倍。


更多计算机二级相关试题推荐:

1.2016年9月计算机二级C语言选择题及答案

2.2016计算机二级C语言测试题及答案[最新]

3.2016年计算机二级C语言基本知识点

4.2016年计算机二级c语言真题

5.计算机二级C语言机试题库及答案

6.计算机二级c语言试题及答案

7.2016年计算机二级C语言练习题及答案

8.2016年计算机二级C语言选择模拟题及答案

9.2016计算机二级C语言考前模拟试题及答案

10.计算机二级考试C语言试题与答案

【2016下半年计算机二级C上机考试试题及答案】相关文章:

华为C语言上机试题及答案11-12

2017计算机二级ACCESS上机试题及答案06-28

2017下半年计算机二级考试C语言考试试题及答案06-06

2017最新计算机二级考试C++试题及答案11-01

计算机二级c语言考试上机考试内容06-29

2017年计算机二级C++考试试题及答案06-22

计算机二级考试C++试题07-21

2017下半年计算机二级考试C语言考试试题06-05

2017年9月计算机二级C++考试模拟试题及答案06-05

2017年9月计算机二级C++考试试题及答案06-08