c语言题目 求解 很基础的
展开全部
4. C正确,它是逗号表达式,x=y+z+5把y+z+5的值赋给x,然后y增1赋给y。A选项中=是右结合的,先算y*5=x+z,这试图把x+z的值赋给y*5这个非左值表达式,是非法的。所以A、C并不矛盾。
5. B正确,参照4题的A,这里b是变量而非表达式(4题A中是y*5),所以正确。D选项中a+7是表达式不能接收数据,错误。所以也没有矛盾。
28. C正确——因为b初值是10,>=8成立,所以break;跳出了循环体,由于{}把第一个if和第二个if语句括起来了,所以两个if语句都是for的“体”,break;后跳出“体”,其后的语句都不执行了。
9. D正确——i++==1成立,由于是&&,所以还得计算&&右边的表达式,其中++j==3成立,后面是||,有一边成立即可确定为“真”了,所以||右侧不再计算了;但i++是后++,还要在整个表达式计算无成再计算,所以结果是i变成了2,j在++j时已变成了3,k没有计算还是3。
5. B正确,参照4题的A,这里b是变量而非表达式(4题A中是y*5),所以正确。D选项中a+7是表达式不能接收数据,错误。所以也没有矛盾。
28. C正确——因为b初值是10,>=8成立,所以break;跳出了循环体,由于{}把第一个if和第二个if语句括起来了,所以两个if语句都是for的“体”,break;后跳出“体”,其后的语句都不执行了。
9. D正确——i++==1成立,由于是&&,所以还得计算&&右边的表达式,其中++j==3成立,后面是||,有一边成立即可确定为“真”了,所以||右侧不再计算了;但i++是后++,还要在整个表达式计算无成再计算,所以结果是i变成了2,j在++j时已变成了3,k没有计算还是3。
更多追问追答
追问
第四题的a和第五题的d错误的原因是一样的嘛
追答
是,是一样的……
展开全部
4)
y*5不可以出现在赋值号的左边,所以A是错的。
C是一个正确的逗号表达式,其值为++y的值。
28)
进入循环后第一次判断就满足条件,退出循环了(不再执行b--),所以是输出1,10
9)
因为i++是后自增,所以i++==1是满足的。
再看++j是前自增,所以++j==3也满足,后面的||k++==3就不判断了,直接输出。
输出值为:
2 3 3
选择答案D。
A错在y*5=x+z,y*5不可以出现在赋值表达式的左边。
C是一个正确的逗号表达式,值为++y的值
5)
若c的值为3,则a=b=c+2;执行后,a与b的值都是5
y*5不可以出现在赋值号的左边,所以A是错的。
C是一个正确的逗号表达式,其值为++y的值。
28)
进入循环后第一次判断就满足条件,退出循环了(不再执行b--),所以是输出1,10
9)
因为i++是后自增,所以i++==1是满足的。
再看++j是前自增,所以++j==3也满足,后面的||k++==3就不判断了,直接输出。
输出值为:
2 3 3
选择答案D。
A错在y*5=x+z,y*5不可以出现在赋值表达式的左边。
C是一个正确的逗号表达式,值为++y的值
5)
若c的值为3,则a=b=c+2;执行后,a与b的值都是5
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询