C语言十九题为什么选A
展开全部
因为这是if的嵌套,首先看第一个的if,她的条件是非X。这样就以为着执行else语句,可是,else语句嵌套if语句。if(判断的结果是错误的)后又紧跟着if--else语句,所以就不执行下面的语句了。直接输出即可。
我理解的是这样的
#include <stdio.h>
main()
{
int x=1,y=0;
if (!x)
{
y++;
}
else if (x==0)
{
if(x) {y+=2;}
else {y+=3;}
}
printf("%d\n",y);
}
我理解的是这样的
#include <stdio.h>
main()
{
int x=1,y=0;
if (!x)
{
y++;
}
else if (x==0)
{
if(x) {y+=2;}
else {y+=3;}
}
printf("%d\n",y);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
具体还是要看采什麼编译器或规范(像ANSI C)
在c语言中
非0为TRUE(真)
因此
if(!x) y++;
int x=1,y=0;代入,x=1相当於x为true,!x後是false(0),因此并不会执行该叙述
而
else if(x==0)
x也不等於0
那整段也被跳过
因此y还是等於初值,也就是等於0
若您用的软体是Microsoft Visual Studio
可能会有些意想不到的结果
因为Microsoft有针对些常见程式设计错误做些调整
写题目时还是采gcc(GNU C Compiler)的思维较保险
若用Windows作业系统,可考虑安装"Cygwin"来跑gcc程式
在c语言中
非0为TRUE(真)
因此
if(!x) y++;
int x=1,y=0;代入,x=1相当於x为true,!x後是false(0),因此并不会执行该叙述
而
else if(x==0)
x也不等於0
那整段也被跳过
因此y还是等於初值,也就是等於0
若您用的软体是Microsoft Visual Studio
可能会有些意想不到的结果
因为Microsoft有针对些常见程式设计错误做些调整
写题目时还是采gcc(GNU C Compiler)的思维较保险
若用Windows作业系统,可考虑安装"Cygwin"来跑gcc程式
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(!x) y++;
因为x为1,所以,!x为0,y++不执行
跳转到x==0的判断,x不等于0,以下两行代码不执行,
直接进行输出,所以y的值就是初始值0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为else if(x==0)也是错的,所以后面的if语句就可以忽略了,即y等于一开始赋的值0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
else if (x==0)是不做的,而!X的意思是x==0,,其中是双重否定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询