有以下程式mainint i,n 0 for i 2 i5 idoif i 3 continue nwh

時間 2021-10-17 04:52:58

1樓:匿名使用者

在這時裡i不可能等於零,所以直接可以把do while去掉,當i=2時 i%3為真,第一個n++沒用,第二個n++後 n=1,當i=3時,i%3為假,第一個n++起作用 ,n=2, 第二個n++後 n=3, 當 i=4時,第一個n++沒用,第二個n++後 n=4,迴圈結束,所以選d

2樓:匿名使用者

輸出結果是n=4。

看這個迴圈的執行:

for(i=2;i<5;i++)

while(!i);

n++;

} i=2:i%3(i除以3取餘為2),if條件成立,continue執行,後續n++不執行,直接判斷while(!i),i不為0,!

i為假,退出do/while迴圈,執行while後面的n++,n=1,再執行下一次for迴圈

i=3:i%3(i除以3取餘為0),if條件不成立,n++執行,n=2。再判斷while(!

i),i不為0,!i為假,退出do/while迴圈,執行while後面的n++,n=3,再執行下一次for迴圈

i=4:i%3(i除以3取餘為1),if條件成立,continue執行,後續n++不執行,直接判斷while(!i),i不為0,!

i為假,退出do/while迴圈,執行while後面的n++,n=4,再執行下一次for迴圈

最後,n=4。

3樓:匿名使用者

選a,我告訴你為什麼

i=2時,if的判斷條件句是真,執行continue,跳過第一個n++,while的判斷句是假,跳出do-while迴圈,執行第二個n++,現在n是1。i=3時,if的判斷句是假,執行第一個n++,現在n是2,while判斷句是假,跳出do-while迴圈,執行第二個n++,現在n是3。i=4的時候,if判斷句是真,所以跳過第一個n++,while判斷句是假,跳出do-while迴圈,執行第二個n++,現在n=4。

然後跳出for輸出n。

好蛋疼的題目。。。就是考驗你的耐心了。。。

#include using namespace std; int main() { int a[10],b[10]; for (int i=0; i<10; i++) {

4樓:兄弟連教育北京總校

#include

usingnamespacestd;

intmain()

1.和2.的句子 為什麼可以作為 if(!

b)下的一個語句之所以可以作為一個語句,是因為程式塊的內部是if-else語句,else 是和離它最近且未和任何 else 配對的 if 進行配對的,雖然沒有使用{}進行限定,但是由於預設的if-else配對關係,會自動將if(!b)裡面的if-else配對,當作一個塊執行!

#include void main() { int i,n=0; for(i=2;i<5;i++) { do { if(i%4+1) continue; n++; }

5樓:匿名使用者

for(i=2;i<5;i++)

while(!i); //當i是0時迴圈,i非0,所以,結束迴圈,去執行下一句:n++;

n++; //i從2到5,for迴圈3次,n++三次後,n為3}printf("n=%d\n",n);//輸出n=3

6樓:cabbage包菜

在你的do while裡面 ,是出口判斷,!i為0那就是隻能迴圈一次,在迴圈的這一次裡if判斷永遠為真,直接跳出,所以你的

do while(!i);

這些**什麼都沒有做。

那麼就只有for(i=2;i<5;i++)n++;迴圈了三次,那n不就是3麼。

7樓:水中游魚的嚮往

if(i%4+1) continue;

題目錯了吧

main(){int i,n=0 for{(i=2:i<

8樓:

本程式for迴圈執行3次,i=2,3,4

當i=2時,i%3=2不為0,執行continue,不執行while中n++,while(! i) 條件為假(0),do -while不迴圈執行,再執行n++後n值為1.

當i=3時,i%3=0 條件為假(0),不執行continue,執行while中的n++,n值為2,while(! i)條件為假(0),do-while不迴圈執行,再執行n++後n值為3.

當i=4時,i%3=1不為0,條件為真,執行continue,不執行while中的n++,while(! i)條件為假(0),do-while 不迴圈執行,再執行n++後n值為4.正確選項是d。

9樓:匿名使用者

n的值為4

為》=2,<5這個區間中,包含的數的個數,與能被3整除的數的個數總和~

10樓:匿名使用者

有括號先算括號內的 而且你的標點。。。

11樓:悉蕙

#include

void main()

while(!i); //7

n++; //8

執行 continue跳出do while迴圈,執行第8行操作n=1;再執行第二次for迴圈i=3,if條件不成立,

//執行第6行n++,n=2,再執行第8行操作n=3;i=4,執行 continue跳出do while迴圈,執行第8行操作n=4;i=5結束for迴圈,結果輸出4}

12樓:池璇璣

(17)有以下程式 main() { int i,s=1; for (i=1;i<50;i++) if(!(i%5)&&!(i%3)) s+=i; printf("%d

13樓:貌似風輕

d)91

for (i=1;i<50;i++)

if(!(i%5)&&!(i%3))

s+=i;

這裡計算的就是1到50中所有能被3和5同時整除的數的和15+30+45  再加上原來s=1  ,和就是91

有以下程式,程式執行後輸出結果是include《stdio h》mainint i,n 0 for i

尾爽巴澤 結果是31,因為你的程式裡面case 後面都沒有break語句跳出,所以會依次執行下去,知道迴圈結束,具體來說就是當i 1的時候先執行case1,在執行case2,在執行default 此時a 8 然後執行i i 2,然後執行case2,在執行default 此時a先加3在加5就等於16,...

以下程式為什麼會是死迴圈呢,以下程式為什麼會是死迴圈呢? 5

浮點數之間比較相等不相等不能直接用 或 因為浮點數本身就是近似值,直接用 或 通常會達不到預期的結果,這就是你的程式為什麼會出現死迴圈的原因 並不是所有機器上都會出現死迴圈,這種問題具有不確定性 比較浮點數是否相等可以用兩個浮點數的差小於一個極小值,比如比較浮點數 a1,a2 是否相等可以這樣寫 i...

以下程式的輸出結果是,C語言問題 以下程式的輸出結果是?

c語言函式引數都是單向傳遞的,直接傳值是不可能改變原來的數值的。此題答案30,20 你的printf好像有點問題 include void fun int p1,int p2,int p3 main 按lz所寫 輸出為30,20,因為函式的引數為所宣告變數的副本,這樣不會改變原有的變數。如果想改變原...