有C程序请教!

来源:百度知道 编辑:UC知道 时间:2024/05/31 02:32:33
23. 以下程序的输出结果是( )
main()
{int a= -1,b=1;
if((++a < 0)&& ! (b-- < =0))
printf("%d %d\n",a,b);
else
printf("%d %d\n",b,a);
}
20. 在执行以下程序时,为了使输出结果为t=4,
则给a和b输入的值应满足的条件是
main( )
{ int s,t,a,b;
scanf("%d,%d",&a,&b);
s=1;
t=1;
if(a < 0)s=s+1;
if(a > b)t=s+1;
else if(a= =b)t=5;
else t=2*s;
printf("t=%d\n",t);
}
A、0 > a > b B、a=0 < b
C、a=b < 0 D、a < b < 0
19. 与 y=(x > 0?1:x < 0?-1:0);的功能相同的if语句是( )
A、if(x > 0) y=1;
else if(x < 0) y=-1;
else y=0;
B、if(x)
if(x > 0) y=1;
else if(x < 0) y=-1;
else y=0;
C、y=-1
if(x) y=1;
else if(x==0) y=0;
else y=-1;
D、y=0
if(x > -0)
if(x > 0) y=1;
else y=-1;
18. 有如下程序
main()

23. 1 0 ++a=0,所以(++a<0)不成立,后面不做判断,b的值不变。
20. D b<0不是必要的。只要a<b,a<0就行了。
19. A 从后面往前分解就行了。如下:x > 0?1:(x < 0?-1:0) () 为if(x<0)y=-1;else y=0;(设为语句1) 再往前:if(x>0)
y=1;else 语句1;把语句1放回去,是不是!
18. 3 后面的if语句在前面if成立时才执行。
17. 7 4 区分a++和 ++a : 前者用后才加,后者加后才用。即:令
a=3;b=a++;则可分为 a=3;b=a;a=a+1;三个语句;而 a=3;b=++a;等价于 a=3;a=a+1;b=a;明白了?
16. -1 a=-1; 这一句在任一个判断语句外,不管什么条件都会执 行,所以a=-1;
14. 0.5 你C学了什么啊。这个都不会。
15. 5 分析同17.
12. C
10. 3 分析同18.
11. B
8. A 看书吧。
9. D

23.
1 0
20.
D
19.
A
18.
2
17.
7
5
16.
-1
14.
0.500000
15. :
4
12. C
10.
2
11. D
8. A
9. D

23---1 0
20---D
19---A
18---2
17---7 5
16--- -1
14---0.500000
15---4
12---C
10---2
11---D