全国计算机等级考试二级C语言考前辅导 选择结构程序设计 Page 3
(1) [2011.3.7]运行时输入12,则输出结果为
int x; scanf("%d", &x);
if (x > 15) printf("%d", x - 5);
if (x > 10) printf("%d", x);
if (x > 5) printf("%d", x + 5);
(2) [2011.3.10]以下程序的运行结果是
int x = 10, y = 20, t = 0;
if (x == y) t = x; x = y; y = t;
printf("%d %d", x, y);
(3) [2008.9.20]以下程序的运行结果是
int a = 10, b = 50, c = 30;
if (a > b) a = b, b = c; c = a;
printf("%d%d%d", a, b, c);
(4) [2009.9.17]以下执行效果与其它三个不同的是
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; }
(5) [2005.4.8]以下程序的运行结果是
int a = 3, b = 4, c = 5, t = 99;
if (b < a && a < c) t = a; a = c; c = t;
if (a < c && b < c) t = b; b = a; a = t;
printf("%d%d%d", a, b, c);
(6) 以下程序的运行结果是
int a = 3;
if (a-- < 3) printf("%d\n", a);
else printf("%d\n", --a);
(7) 以下程序的运行结果是
int a = 0, b = 2, c = 6;
if (c = a != 0) printf("%d", a++ + ++c);
else printf("%d", b-- - --c);
(8) [2005.9.7]以下程序的运行结果是
int a = 1, b = 2, c = 3;
if (c = a) printf("%d", c);
else printf("%d", b);
(9) [2009.3.18]若有定义int x; 则以下程序运行时,x的值在哪个范围才会有输出结果
if (x <= 3) ; else
if (x != 10) printf("%d", x);
A)不等于10 B)大于3或等于10
C)小于3 D)大于3且不等于10
(10) [2006.4.31]以下程序的运行结果是
int a = 0, b = 0, c = 0, d = 0;
if (a = 1) b = 1; c = 2; else d = 3;
printf("%d%d%d%d", a, b, c, d);
A)0120 B)0003 C)1120 D)编译有错
(11) 程序运行后a、b、c、d的值分别是
int a = 1, b = 2, c = 3, d = 0;
if (a == 1 && b++ == 2)
if (b != 2 || c-- != 3) d = 1;
else d = 2;
(12) [2010.9.18][2011.3.27]以下程序的运行结果是
int a = 1, b = 0;
if (!a) b++;
else if (a == 0) if (a) b += 2;
else b += 3;
printf("%d\n", b);
(13) [2011.9.18]以下程序运行后,b的值是
int a = 1, b = 0;
if (--a) b++;
else if (a == 0) b += 2;
else b += 3;
(14) 以下程序的运行结果是
int a = 10;
if (a = 20) printf("%d", a = 20);
else printf("%d", a != 10);
(15) [2010.3.7]以下程序运行后,d的值是
int a = 1, b = 2, c = 3, d = 0;
if (a == 1)
if (b != 2)
if (c == 3) d = 1;
else d = 2;
else
if (c != 3) d = 3;
else d = 4;
else d = 5;
(16) [2004.4.19]以下选项,不能看作一条语句的是
A){ ; } B)a = 0, b = 0, c = 0;
C)if (a>0); D)if (b==0) m = 1; n = 2;
(17) [2004.9.22]以下程序的运行结果是
int a = 3, b = 4, c = 5, d = 2;
if (a < b)
if (b > c) printf("%d", d++ + 1);
else printf("%d", ++d + 1);
printf("%d\n", d);
(18) [2006.9.16]与条件表达式(x-y)?(x++):(y++)中的表达式(x-y)等价的是
A)(x-y>0)B)(x-y<0)
C)(x-y<0 || x-y>0)D)(x-y==0)
(19) [2007.9.21][2008.9.17]与(E)?(i++):(j--)中E等价的是
A)E==0 B)E!=0C)E==1 D)E!=1
(20) [2004.9.23][2011.9.19]下列语句功能与其他语句不同的是
A)if (a) printf("%d", x);
else printf("%d", y);
B)if (a == 0) printf("%d", y);
else printf("%d", x);
C)if (a != 0) printf("%d", x);
else printf("%d", y);
D)if (a == 0) printf("%d", x);
else printf("%d", y);
(21) [2006.4.19]若有int a = 1, b = 3, c = 2; float x = 1.5; 则正确的switch语句是
A)switch (x) C)switch (a+b)
{{
case 1.0: b = 0;case 1: b = 0;
case 2.0: b = 1;case 2+1: b = 1;
} }
B)switch ((int)x);Dswitch (a+b)
{{
case 1: b = 0;case 1: b = 0;
case 2: b = 1;case c: b = 1;
}}
(22) [2004.9.9]以下程序运行后,a和b的值是
int x = 1, y = 0, a = 0, b = 0;
switch (x)
{
case 1: switch (y)
{
case 0: a++; break;
case 1: b++; break;
}
case 2: a++; b++; break;
}
(23) [2007.4.9]若有:int a=2, b=7, c=5; 则输出
switch (a > 0)
{
case 1: switch (b < 0)
{
case 1: printf("@"); break;
case 2: printf("!"); break;
}
case 0: switch (c==5)
{
case 0: printf("*"); break;
case 1: printf("#"); break;
}
default: printf("&");
}
(24) [2010.3.19]有如下嵌套的if语句
if (a < b)
if (a < c) k = a; else k = c;
else
if (b < c) k = b; else k = c;
以下选项中与上述if语句等价的语句是
A)k = (ac)?b:c);
C)k = (a0 ? 1 : x < 0 ? -1 : 0;
A)if (x > 0) y = 1;
else if (x < 0) y = -1;
else y = 0;
B)y = 0;
if (x > 0) y = 1;
else if (x < 0) y = -1;
C)if (x < 0) y = -1;
else y = x > 0;
D)switch (x > 0)
{
case 1: y = 1;
case 0: y = x < 0 ? -1 : 0;
}
(26) [2010.3.18]与if (a==1) a = b; else a++;语句功能不同的switch语句是
A)switch (a==1) C)switch (a)
{ {
case 1: a = b; default: a++;
break; break;
case 0: a++; case 1: a = b;
} }
B)switch (a==1) D)switch (a)
{ {
case 0: a = b; case 1: a = b;
break; break;
case 1: a++; default: a++;
} }
(27) [2007.9.20]若程序前面已包含 math.h 文件,则不能正确计算右边公式的程序是
A)if (x >= 0) y = sqrt(x);
else y = sqrt(-x);
B)y = sqrt(x);
if (x < 0) y = sqrt(-x);
C)if (x >= 0) y = sqrt(x);
if (x < 0) y = sqrt(-x);
D)y = sqrt(x >= 0 ? x : -x);
- - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(1) 1217
(2) 20 0
(3) 105010
(4) B
(5) 4599
(6) 1
(7) 3
(8) 1
(9) D
(10) D
(11) 1331
(12) 0
(13) 2
(14) 20
(15) 4
(16) D
(17) 43
(18) C
(19) B
(20) D
(21) C
(22) 2,1
(23) #&
(24) C
(25) D
(26) B
(27) B
展开阅读全文