计算机c语言程序改错,计算机二级C上机:程序改错题

计算机二级C上机:程序改错题

为了使广大考生在备战计算机等级考试时,更快的掌握相应知识点,下面是小编搜索整理的计算机二级C上机:程序改错题,供参考练习,预祝考生们考出自己理想的成绩!

7292c3b06d5045f85a7114079ef4a48c.png

程序改错题

使用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=200;

cout<

}

答案:

(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的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值