因为最近要考C语言,所以……拜托啦。 假定所有变量均已正确定义,下列程序段运行后x的值是()。 k

因为最近要考C语言,所以……拜托啦。 假定所有变量均已正确定义,下列程序段运行后x的值是()。 k1=1; k2=2; k3=3; x=15; if(!k1) x--; else if(k2) x=4; else x=3; A:14 B:4 C:15 D:3 答案:B 求解析

c语言中,0为假,非0为真。k1不等于0,为真,故!k1为假,x--不执行,跳到第2句,k2也不等于0,为真,执行x=4。程序结束。故x=4
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-22
k1=1;!k1==0,if(!k1)等价于if(k1==0)
k2=2;if(k2)等价于if(k2!=0)

if(!k1) x--; //k1!=0,条件不成立

else if(k2) x=4; //k2!=0,条件正确

else x=3;//k2!=0,条件不成立本回答被提问者采纳
第2个回答  2014-06-22
B:4
K1=1 if(!k1)不执行
k2=2 if(k2)执行
所以x最后为4追问

if(k2)是什么意思呢

能帮我看看这题嘛?
若有宏定义如下:
#define X 5
#define Y X+1
#define Z Y*x/
则执行以下printf语句后,输出结果是 D 。
int a; a=Y;
printf(“%d\n”,Z);
printf(“%d\n”,--a);
A)7 6B)12 6C)12 5D)7 5

谢谢哦

追答

a=Y=X+1=5+1=6 --a a=5
至于Z 你写的#define Z Y*x/ 是什么 写清楚

追问

呃,已经不用啦。大C已考过。谢啦