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;
如果将++改为前缀,结果会是多少? 展开
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;
如果将++改为前缀,结果会是多少? 展开
展开全部
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 这两句都会执行,,,
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 这两句都会执行,,,
追问
那这道题的正确书写格式应该是怎样的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先第一个就是一个if语句的的应用,还不是嵌套的,应该比较简单,看一下C的书就知道了。第二个你改成前缀对输出没有影响,有影响的是这种情况:
a=10; c=a++与c=++a,a的值运算后都是11,但是c前面的是是10,后面的是11,就是一个是先赋值,一个是先自增。
a=10; c=a++与c=++a,a的值运算后都是11,但是c前面的是是10,后面的是11,就是一个是先赋值,一个是先自增。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个x=4
前面的都不需要看,只要看最后一句
if(c) x=3;
else x=4;
显然c=0;所以c=1不正确,执行x=4
第二个不管++在前在后
结果都是a=2,b=1
前面的都不需要看,只要看最后一句
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++了?
追答
恩
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
。。。。。。。。。。。。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(c) x=3;
else x=4;
a=2,b=1
else x=4;
a=2,b=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询