第壹個是標題D,其中printf("a=%d,b=%d\n ",a,b)的句子末尾分號少;
第二個題目是2345,其中默認在程序中;應該將其更改為默認值:
以上都是語法錯誤,我自己改正了。
以下是具體分析:
第壹題
開關(x)
{
Case 1: //這裏滿足條件,即x=1,所以開始執行。
開關(y)
{//這裏是判斷y的值。
案例0:a++;打破;//這裏滿足,即y=0,那麽執行a=a+1,即a=1。然後跳出來
案例1:b++;打破;//這裏不執行,因為跳出來了。
}
//剛斷只能跳出壹個大括號。到這裏繼續執行。因為對於switch語句來說,只要前面有壹個case滿足要求,後面case中的語句就要壹直執行,直到滿足break並跳出。
案例二:a++;b++;打破;//所以在這裏執行之後,a=a+1,b=b+1,也就是a=2,b=1,然後看到break,跳出來了。
案例三:a++;b++;//已經跳出來了。
}
最後,printf輸出a=2,b=1。
第二個問題
首先妳要明白,do while語句的特點是先執行再判斷條件,即如果滿足條件,就回到do的起始位置,如果不滿足。跳出循環
做
{
開關(k)
{情況1:情況3:n+= 1;打破;//需要註意的是,這裏的兩個連續格是指,或。即只要k=1或3,就滿足條件。
默認值:n = 0;k-;//默認值意味著前面的案例都不正確,那麽它將被執行。在這裏執行後,n=0,k-1=4。
情況二:情況四:n+= 2;k-;打破;//條件滿足,因為k=4所以執行。N+2=2,k-1=3而跳出。
}
printf("%d ",n);輸出n,即2
} while(k & gt;0 & amp& ampn & lt5);如果判斷滿足循環條件,則從do開始繼續循環。
做
{
開關(k)
{情況1:情況3:n+= 1;打破;//k=3,如果條件滿足,執行。然後n+1=3,跳出去。
違約;n = 0;k-;
情況二:情況四:n+= 2;k-;打破;
}跳出來了。
printf("%d ",n);輸出n,即3
} while(k & gt;0 & amp& ampn & lt5);如果條件滿足,則繼續循環。
做
{
開關(k)
{情況1:情況3:n+= 1;打破;//因為k=3,所以執行。然後n=4,跳出去
違約;n = 0;k-;
情況二:情況四:n+= 2;k-;打破;
}
printf("%d ",n);輸出n,即4
} while(k & gt;0 & amp& ampn & lt5);滿足,繼續循環
做
{
開關(k)
{情況1:情況3:n+= 1;打破;//k=3,所以執行,n+1=5,跳出去。
違約;n = 0;k-;
情況二:情況四:n+= 2;k-;打破;
}
printf("%d ",n);輸出n,即5
} while(k & gt;0 & amp& ampn & lt5);此時因為n=5,不滿足循環條件,跳出循環。
最後,程序結束,輸出2345。
不懂可以繼續問~