switch(s-‘2’)
{
case 0:
case 1: putchar(s+4);
case 2: putchar(s+4); break;
case 3: putchar(s+3);
default: putchar(s+2); break;
}
輸入數據:2473<回車>
當2時 由於執行 case 0,1沒有break語句,所以執行case 0,1,2,當執行到case2後的break時,跳出循環,相當於if((s-‘2’)==0)
{
case 0:
case 1: putchar(s+4);
case 2: putchar(s+4); break;
} ;輸出 66;
當輸入4時,執行case 2 語句,輸出 8
當輸入7時,執行default語句, 輸出 9
當輸入3時,執行case1,2,輸出7,7
(2) B
while(num<=2)
{
num++;
printf(“%d\n”,num);
}
執行步驟1、當num=0時,進入循環 輸出 1;
2、當num=1時,進入循環 輸出2;
3、當num=2時,進入循環 輸出 3;
4、當num=3時,不進循環,程序結束。
(3)答案 B
for( i=2 ; i==0; ) printf(“%d”,i--);
這條語句相當於
i=2;
if(i==0)
{
printf(“%d”,i--);
}
(4)答案A
void main( )
{
int y=10;
do{ y--; } while( --y );
printf(“%d\n”, y--);
}
該題 主要的題眼在於 y-- 和 --y的 作用;
例如 y=10;
i=y--;
結果是 i = 10 ;y=9;
y=10;
i=--y;
結果是 i = 9; y=9;
(5)答案 C
x=-1;
do
{
x=x*x;
}
while(!x);
執行步驟:
1、x=-1;
2、x=x*x;(x=1)
3、while(!X);(while (0))
(6)答案 A
int k=10;
while(k=0) k=k-1;
這段程序中的while語句,不是標準的while語句,內部不是比較語句而是賦值語句,
相當於
int k=10;
k=0;
while(k)// 相當於while(0)
{
k=k-1;
}
所以壹次循環也不執行;
如果是
int k=10;
while(k=1) k=k-1;
則是死循環。
(7)答案是C
此題的主要是考慮continue關鍵字的用法。
continue是關鍵字。該語句的功能只是用在循環體中,執行該語句則結束本次循環,再去判斷是否繼續下次循環。該語句也是用於循環體中if語句內,即滿足某種條件才結束本次循環。
以上是個人看法,由於水平有限,可能說的不完全正確,期望對樓主能起到壹些作用。