k=1 时:switch(1),执行 default 后面的语句 c+=k c=0+1=1 程序继续执行 case 2: c++;break;此时 c=2。
k=2 时:switch(2),执行 case 2 后面的语句 c++ c=3 后遇到 break,终止 switch
循环结束,输出 c 的值为 3。
答案:A
例 6 有以下程序
#include <stdio.h>
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf(“%d %d\n”,k,n);
}
程序运行后的输出结果是_________。(2009.9)
A)0 2 B)1 3 C)5 7 D)1 2
解析:考点为 while 语句的使用。
while(k++&&n++>2);该循环体为空语句。
开始,n=2 k=0
while 中的条件表达式结果为假,退出循环,k 的值增 1,而&&右边的分量并不计算,n 的值不变,仍
然为 2。
答案:D
例 7 有以下程序
#include <stdio.h>
main()
{ int a[ ]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{case 0:switch(a[i]%2)
{case 0:a[i]++;break;
case 1:a[i]--;
}break;
case 1:a[i]=0;
}
for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);
}
程序运行后的输出结果是_________。(2009.9)
A)3 3 4 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4
解析:考点为 switch 语句。
外部 switch 语句在循环中被执行 4 次。