试题

计算机二级C语言上机考试试题及答案

时间:2025-01-21 21:35:52 试题 我要投稿

2016年计算机二级C语言上机考试试题及答案

  一、程序改错题

2016年计算机二级C语言上机考试试题及答案

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

  150

  200

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

  提示:定义Numl为一个整型数据位长的变量。

  试题程序:

  #include

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

  struct

  {

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

  intNuml:1;

  intNum2;

  }

  MyStruct;

  voidmain()

  {

  MyStructmstr;

  mstr.Num1=150;

  mstr.Num2=15;

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

  int*ptr=&mstr.Numl;

  cout<<*ptr<  *ptr=200;

  cout<<*ptr<  }   (1)“typedefstruct”。

  (2)“intNuml:32;”或“intNuml;”。

  (3)“int*ptr=(int*)&mstr;”。

  【解析】第1处是定义结构体,结构体定义的一般形式为

  struct(结构体名>

  {

  <成员列表>

  }

  (变量名列表);

  程序当中定义结构体名放在后面,MyStruct为结构体变量类型,相当于typedef为已有的类型定义一个新的类型,第1处应改为“typedefstruct”。第2处是定义Numl为一个整型数据变量,整型数据位数为32(4字节),因此第2处应改成“intNuml:32;”或“intNuml;”。ptr为整型数据指针,mstr为MyStruct类型结构变量,两者类型不一致应该做强制类型转换,第3处应改成“int*ptr=(int*)&mstr;”,表示将mstr的地址给ptr,ptr指向MyStruct的第一个域Numl,Numl也是整型,类型一致,故可通过ptr指针来改变Numl的值。

  二、综合应用题

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

  (1)定义私有成员变量year、month、day,分别表示年、月、日,类型为int。请在注释1后添加适当的语句。

  (2)完成构造函数,分别给year、month、day赋值,请在注释2后添加适当的语句。

  (3)完成重载符号“+=”的定义,请在注释3后添加适当的语句。

  (4)完成函数print打印函数,如2005年1月5日到屏幕和文件out3.txt格式相同,请在注释4后添加适当的语句。

  注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。

  试题程序:

  #include

  #include

  #include

  #include

  usingnamespacestd;

  voidWriteFile(intc)

  {

  ofstreamout1;

  out1.open("out3.txt",ios_base::app);out1<  out1.close();

  }

  voidWriteFile(char*str)

  {

  ofstreamout1;

  out1.open("out3.txt",ios_base::app);out1<  out1.close();

  }

  voidClearFile()

  {

  ofstreamout1;

  out1.open("out3.txt"):

  outl.close();

  }

  classDate

  {

  public:

  Date(inty,intm,intd)

  {

  //********1*********}

  voidprint();

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

  {

  month+=m:

  inti=month/12;

  intj=month%12;

  if(j==0)

  {

  year+=(i-1):

  month=12;

  }

  else

  {

  year+=i:

  month=j;

  }

  return*this:

  }

  private:

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

  };

  voidDate::print()

  {

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

  WriteFile(year);

  WriteFile("年");

  WriteFile(month);

  WriteFile("月");

  WriteFile(day);

  WriteFile("日");

  }

  intmain()

  {

  ClearFile();

  DateNationa1_day(2004,10,5);

  National_day+=3;

  National_day.print();

  return0;

  }   (1)应添加“year=y;month=m;day=d;”。

  (2)应添加“Date&operator+=(intm)”。

  (3)应添加“intyear,month,day;”。

  (4)应添加“cout<

  【解析】本题要求私有成员变量year、month、day为整形表示方法,所以注释3应添加“intyear,month,day;”;注释1要求分别给year、month、day赋值,根据上下文提意,所以应添加“year=y;month=m;day=d;”;注释2是对“+=”运算符的重栽,Date&operator4+=(intm);第4处打印输出年、月、日,C++语言中,输出使用cout。

【计算机二级C语言上机考试试题及答案】相关文章:

计算机二级C语言考试上机考试题及答案04-09

计算机二级C语言上机冲刺试题及答案05-26

2016年计算机二级C语言考试上机试题及答案05-05

计算机二级《C语言》上机操作试题及答案06-02

2016年二级C语言上机试题及答案04-28

计算机二级考试C语言预测上机巩固试题06-17

计算机二级考试C上机考试试题及答案03-18

计算机二级《C++》上机试题及答案08-12

计算机二级考试C++上机考试试题及答案02-08