频道栏目
首页 > 资讯 > C语言 > 正文

2014年计算机二级C上机考试试题及答案7

14-03-25        来源:[db:作者]  
收藏   我要投稿
程序改错题 
  使用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的值。 
相关TAG标签
上一篇:2014年计算机二级C上机考试试题及答案8
下一篇:2014年计算机二级C上机考试试题及答案6
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站