#include <stdio.h>
main()
{ int x=1,y=2,z=3;
if(x>y)
if(y<z) printf("%d",++z);
else printf("%d",++y);
printf("%d\n", x++ );
printf("%d\n", x);
}
程序的运行结果是
A)331 B)41 C)2 D)1
答案:c
解析:if(y<z) printf("%d",++z);
else printf("%d",++y); 是一条语句
2009-03-17.以下是 if 语句的基本形式: if(表达式) 语句
其中"表达式"
A)必须是逻辑表达式
B)必须是关系表达式
C)必须是逻辑表达式或关系表达式
D)可以是任意合法的表达式
答案:D
解析:如 if(a>b && a>c) 是逻辑表达式、 if(a>b)是关系表达式、 if(2)所有非 0 为真。
2009-03-18.有以下程序
#include <stdio.h>
main()
{ int x; scanf("%d",&x);
if(x<=3) ; else if(x!=10) printf("%d\n",x); }
程序运行时,输入的值在哪个范围才会有输出结果()
A)不等于 10 的整数 B)大于 3 且不等于 10 的整数
C)大于 3 或等于 10 的整数 D)小于 3 的整数
答案:B
解析:if(x<=3) ; 在这是 if 后是空语句,什么也没有执行。
2009-03-19.有以下程序
#include <stdio.h>
main()
{ int a=1,b=2,c=3,d=0;
if (a==1 && b++==2)
if (b==2||c--!=3)
printf("%d,%d,%d\n",a,b,c);
else printf("%d,%d,%d\n",a,b,c);
else printf("%d,%d,%d\n",a,b,c); }
程序运行后输出结果是
A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1
答案:C
解析:c--!=3 在这里没有执行,因为 b!=2 为 3!=2 为真。详看课本 95 页第一条 a&&b&&c 的说明。
2009-09-17 设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是
A)if(a>b) c=a,a=b,b=c; B)if(a>b) {c=a,a=b,b=c;}
C)if(a>b) c=a;a=b;b=c; D)if(a>b) {c=a;a=b;b=c;}
答案:C
解析:c=a,a=b,b=c;只是一条语句,而 C 答案 if(a>b) c=a;只管这条语句,不执行,然后接着执行后两个语句。所以
ABD 最后 abc 分别为 123,而 C 最后 abc 为 233.