c语言高手救命

来源:百度知道 编辑:UC知道 时间:2024/06/08 08:43:14
设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句
?? if (a?? if(c==d) y=0;
?? else y=1;
??该语句所表示的含义是 ??????

第二题
(18)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是
A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1

第三题
(19)以下不能正确计算代数式 值的C语言表达式是
A)1/3*sin(1/2)*sin(1/2) B)sin(0.5)*sin(0.5)/3
C)pow(sin(0.5),2)/3 D)1/3.0*pow(sin(1.0/2),2)

第四题
以下程序运行后的输出结果是 【7】 。
?? main()
?? { int a=1,b=2,c=3;
?? if(c=a) printf("%d\n",c);
?? else printf("%d\n",b);
?? }
为什么答案是1???

第一题少个右括号, 如果是:
if (a) if(c==d) y=0;
else y=1;
就相当于
if (a)
{
if(c==d)
{
y=0;
}
}
else y=1;
或者写成if(a!=0 && c==d) y=0;
else y=1;
if(a)就是if(a!=0)的意思
2.选D
A中if(k%2)就是if(k%2!=0),一个整数除以2取余不等于0就等于1,所以也可以写出if(k%2==1)与B同,与C同,前三项的意思都是说K是奇数,D中“!”取反得优先级最高,所以如果D是奇数(肯定不等于0吧)!k就是0了,0%2等于0啊
3.选A
因为sin(X),X的值必须是小数,1/2等于0,要写出1.0/2或者1/2.0才能等于0.5
4.if(c=a)就相当于c=a; if(a!=0),它的原理是先把a赋值给c,然后看c是否不等于0,因为a不等于0,所以c也不等于0,if为真,输出c的值为1

回答你的问题真够费神,还上上班,还怕被发现
哎...

1. if (a if(c==d) y=0;
else y=1;
搞不懂,代码贴错了吧?? 连B也没有,而且括号也不对....
2. D !k%2==1 !(k%2==1)两者不同
3. A int型数运算结果为int -> 1/2 = 0
4 c=a 并不是 c==a!!!!! 将a值赋给c,表达式值为1.所以输出的是C==1

第一题:肯定写错啦!
第二题:D 但是有问题,问题就是你没有明白该表达式的意思,k % 2 结果要么是1,要么是0,判断K 是不是奇数.!k 就是0,下面的语句就永远不可能执行啦!
第三题: A 1/2 结果为0
第四题:对于此题你要分清楚,在C语言中,相等的符号是==
而=是赋