镜花水月决明全文:有C程序请教!

来源:百度文库 编辑:中科新闻网 时间:2024/04/24 09:38:49
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()
{ int a=2,b=-1,c=2;
if(a < b)
if(b<0) c=0;
else c++
printf("%d\n",c);
} 该程序的输出结果是 ( )
17. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是____
main()
{
int x;
scanf("%d",&x);
if (x++> 5)printf("%d",x)
else printf("%d\n",x--);
16. 以下程序的输出结果是
main()
{int a=100,x=10,y=20,ok1=5,ok2=0;
if(x < y)
if(y!=10)
if(!ok1)
a=1;
else
if(ok2) a=10;
a=-1;
printf("%d\n",a);
14. 请读程序:
main()
{ float x,y;
scanf("%f",&x);
if(x < 0.0) y=0.0
else if((x < 5.0)&&(x!=2.0))
y=1.0/(x+2.0);
else if( x < 10.0) y=1.0/x;
else y=10.0;
printf("%f\n",y);
}
若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是
15. 阅读以下程序:
main()
{ int x;
scanf("%d",&x);
if(x--<5) printf("%d"'x);
else printf("%d"'x++);
}
程序运行后,如果从键盘上输人5,则输出结果是( )

12. 若有定义: float w; int a, b; 则合法的switch语句是( )
A、switch(w)
{ case1.0: printf("*\n");
case2.0: printf("**\n");
}
B、switch(a);
{ case 1 printf("*\n");
case 2 printf("*\n");
}
C、switch(b)
{ case 1: printf("*\n");
case 2: printf("*\n");
}
D、switch(a+b);
{ case 1: printf("*\n");
default: printf("\n");
case 2
}
10. 以下程序的输出结果是
main()
{int x=2,y=-1,z=2;
if(x < y)
if(y < 0) z=0;
else z+=1;
printf("%d\n",z);
}
11. 在C语言中的if语句中,用作判断的表达式为()
A、关系表达式
B、逻辑表达式
C、算数表达式
D、任意表达式
8. 为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的
else总是与____组成配对关系。
A、其上面距它最近的,并且没有其他else与其配对的if相配对
B、在同一行上的if
C、缩排位置相同的if
D、在其之前未配对的if
9. 判断两个字符串S1 和 S2 相等的正确语句是____
A、if (S1=S2)
B、if (S1==S2)
C、if (strcpy(S1,S2))
D、if (strcmp(S1,S2)==0)

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
8---A
9---D

你下个C 自己试试吧