c语言的一道选择题

假定所有变量均已正确说明,下列程序段运行后x的值是()。(注意:此题由于书写格式不规范,给读程序者带来许多麻烦。要得出此题的正确结果,首先把程序段调整成规范格式)a=b=... 假定所有变量均已正确说明,下列程序段运行后x的值是( )。(注意:此题由于书写格式不规范,给读程序者带来许多麻烦。要得出此题的正确结果,首先把程序段调整成规范格式)
a=b=c=0;
x=35;
if(!a)
x--;
else if(b) ; if(c) x=3;
else x=4;
最好能仔细的解释一下,初学者很多地方不懂。
还有个问题,int main(void)
{
int x=1,a=0,b=0;
switch(x)
{
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
return 0;
如果将++改为前缀,结果会是多少?
展开
 我来答
Eaglemengwei
2011-10-12
知道答主
回答量:51
采纳率:0%
帮助的人:20.1万
展开全部
x=34;
a=b=c=0; 在程序中是不能这样写的,在这估且认为是对的,这句话表示的是a ,b ,c三个变量始值是0;则!a=1;所以第一个if会执行,这样的话x=35-1=34,,if else 语句只要有一条执行了,其它的就不会再执行了,所以x=34;

结果是a=2,b=1;
因为你的case 语句没有break; 所以case 1 和case 2 这两句都会执行,,,
追问
那这道题的正确书写格式应该是怎样的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
超想发财9N
2011-10-12 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:112万
展开全部
首先第一个就是一个if语句的的应用,还不是嵌套的,应该比较简单,看一下C的书就知道了。第二个你改成前缀对输出没有影响,有影响的是这种情况:
a=10; c=a++与c=++a,a的值运算后都是11,但是c前面的是是10,后面的是11,就是一个是先赋值,一个是先自增。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
biosorry
2011-10-12 · TA获得超过7074个赞
知道大有可为答主
回答量:2546
采纳率:78%
帮助的人:796万
展开全部
第一个x=4
前面的都不需要看,只要看最后一句
if(c) x=3;
else x=4;
显然c=0;所以c=1不正确,执行x=4

第二个不管++在前在后
结果都是a=2,b=1
追问
那int a = 1, b = 0;
if (--a)
{
b++;
}
把--a改为a--,那就是不执行b++了?
追答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
limyyan890609
2011-10-12 · TA获得超过1564个赞
知道小有建树答主
回答量:1484
采纳率:100%
帮助的人:865万
展开全部
。。。。。。。。。。。。。。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
YUBINGRANWJ
2011-10-13
知道答主
回答量:2
采纳率:0%
帮助的人:3346
展开全部
if(c) x=3;
else x=4;
a=2,b=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式