當前位置:名人名言大全網 - 經典說說 - 關於C語言的兩個問題?請告訴我這兩個問題的答案,並告訴我為什麽?

關於C語言的兩個問題?請告訴我這兩個問題的答案,並告訴我為什麽?

答案已經驗證過了。

第壹個是標題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。

不懂可以繼續問~