设:int a=1,b=2;则表达式(++a==b--)?--a:++b的值为1。
设:inta=1,b=2;则表达式(++a==b--)?--a:++b的值为1。选项:1、错2、对假设有说明语句:inta=3,b;则执行b=(float)a/2+0.5...
设:int a=1,b=2;则表达式(++a==b--)?--a:++b的值为1。
选项:
1、 错
2、 对
假设有说明语句:int a=3,b; 则执行b=(float)a/2+0.5赋值语句后,变量a的类型已经改变为float型。
选项:
1、 错
2、 对 展开
选项:
1、 错
2、 对
假设有说明语句:int a=3,b; 则执行b=(float)a/2+0.5赋值语句后,变量a的类型已经改变为float型。
选项:
1、 错
2、 对 展开
5个回答
展开全部
1. ++X较之于X--先进行自运算,所以1对。
2. 明显错误。我调试了一下,因为这东西也不是特别注意。
b=(float)a/2+0.5;
printf("%d ,%d \n",a,b);
只有这种格式可以输出,当你有一个为%f试图以浮点输出时,甚至导致内存报错,看来这是个严重的问题,我想是这样的,a,b的地址空间是相邻的,当以浮点输出时读取四个字节,导致了越界了。结果可想而知,你的问题也就不言自明了。
调试是最好的解决办法,要学会研究。
2. 明显错误。我调试了一下,因为这东西也不是特别注意。
b=(float)a/2+0.5;
printf("%d ,%d \n",a,b);
只有这种格式可以输出,当你有一个为%f试图以浮点输出时,甚至导致内存报错,看来这是个严重的问题,我想是这样的,a,b的地址空间是相邻的,当以浮点输出时读取四个字节,导致了越界了。结果可想而知,你的问题也就不言自明了。
调试是最好的解决办法,要学会研究。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1错 应是0
2错
2错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一题 对,第二题 错;
分析如下
第一题
++a先执行加后使用a值 a++先使用a的值再执行加;减类似分析
(++a==b--)?--a:++b执行顺序为从左到右
先执行++a 所以此时a=2,再与b比较,比较后,b自减,为1;
所以a=b=2为真返回 条件语句的前面部分,由于是--a,所以返回为1(若为a--则返回为2),所以是对的
第二题:
执行b=(float)a/2+0.5赋值语句后,a 的值不会发生任何改变,执行那个语句时,会对a进行复制的,原来的那个值不会改变
分析如下
第一题
++a先执行加后使用a值 a++先使用a的值再执行加;减类似分析
(++a==b--)?--a:++b执行顺序为从左到右
先执行++a 所以此时a=2,再与b比较,比较后,b自减,为1;
所以a=b=2为真返回 条件语句的前面部分,由于是--a,所以返回为1(若为a--则返回为2),所以是对的
第二题:
执行b=(float)a/2+0.5赋值语句后,a 的值不会发生任何改变,执行那个语句时,会对a进行复制的,原来的那个值不会改变
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1错 2错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一题对.第二题错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询