C語言這段程式第一次執行是對的,但是在第二次執行i的值就一直是0,這是為什麼啊includ

2021-05-19 12:31:57 字數 3177 閱讀 8751

1樓:紅人鹹乾飯胖胖

由於a=2 ;fun(a++);a++是前加復加,所制以先加一再返回,所以傳遞過去的是a=3,括號表示式計算順序是從左到右,然後整個表示式返回的是最右邊表示式的值,所以返回a=0;

k=0;

所以有下面的揭露

int fun(int a )

追問我忘打了一句 int a=2,i,k; 後還有一句是 for(i=0;i<2;i++) 這個程式是執行兩次的第一次我也算出來是0 可第二次我就算不出來了

回答第二次和第一次一樣,只要把它值傳過去,還是返回b=0的值,所以依然是零

c語言,for迴圈問題for(i=0;i<=1;++i)這樣的迴圈會執行幾次,最後i的值是多少?

2樓:

是那樣理解的,實在不放心,執行驗證就可以了

3樓:匿名使用者

for迴圈的基本語法你應該看過的,再簡單說下

第一個語句是迴圈前執行的操作,一般是用來初始化計數器,這個語句只執行一次

第二個語句是迴圈進行的條件,是一個判斷表示式,如果為真迴圈繼續,否則退出迴圈

第三個語句是每次迴圈執行完畢,判斷是否繼續迴圈之前執行,每迴圈一次執行一次

下面看這個題的分析

i進入迴圈 0 i<=1為真,進入,第一次迴圈

第一次迴圈後 1 i<=1為真,第二次迴圈

第二次迴圈後 2 i<=1為假,退出

所以一共執行2次,i=2

以後可以用迭代法走查,然後有條件的話可以用編譯器除錯。不過最好不要過分依賴編譯器,要有解決問題的能力,這樣會好很多

c語言問題有程式片段:int i=0;while(i++<=2); printf("%d\n",i);正確執行結果答案是?

4樓:匿名使用者

退出迴圈時i=3

由於i++的緣故,退出迴圈後還要自增一次,所以i=4

你把i++換成++i,結果就是3

5樓:匿名使用者

第一次進入的

du時候 i++ = 0 <= 2; 此時zhii變化為dao1

第二次進入的時候

內 i++ = 1 <= 2; 此時容i變化為 2第三次進入的時候 i++ = 2 <= 2; 此時i變化為 3第四此進入的時候 i++ = 3 > 2; while中止,i變化為4

列印,所以結果為4;

還有一個簡單的做法; i++ >= 2 的跳出條件為 i++ = 3; 很明顯此時i=3; 又做了++; 所以會

變為4,列印的時候就自然是4了。

6樓:記住一座城

i =0 ,1,2時執行迴圈。

i++=3時條件為假,結束迴圈,然後i自增,i=4

7樓:匿名使用者

#include

int main()

8樓:

while(i++ <=2); //第1次 i = 0; 執行後

zhidao i = 1;

while(i++ <=2); //第2次 i = 1; 執行後 i = 2;

while(i++ <=2); //第3次 i = 2; 執行後 i = 3;

while(i++ <=2) //第4次 i = 3; 執行後 i = 4;同時跳出內迴圈。

希望你能容理解。

c語言中為什麼for(i=0;i<3;i++) printf("*"); 為什麼表示式1執行1次

9樓:匿名使用者

執行3次

第一次 i=0,i<3,輸出*,i+1;

第二次 i=1,i<3,輸出*,i+1;

第三次 i=2,i<3,輸出*,i+1;

第四次 i=3,i=3,程式終止。

這一題考的是for迴圈問題,如果還有不懂的地方請追問哦。

10樓:匿名使用者

肯定是三次,除非在for迴圈內,你修改了i的值。

11樓:匿名使用者

明明是三次好吧,怎麼說是一次呢

c語言關於i++的問題,是在下次迴圈i加1,還是說遇到i時加1?

12樓:hi漫海

i++的意思是將變數i中的

數值參加運算後,i中的數值自動加一。

「++」符號是程式語言中的自增運算子,作用是在執行後將變數的數值自動加一,「++」符號所處的位置不同,運算規則也不同,當「++」放在變數前方時,如 ++i,此時的作用是先將i變數中的數值進行加一運算,然後再將運算後的數值加入運算,而i++是先將i中的數值加入運算,然後再自加一。

13樓:匿名使用者

一、(i++)*(i++) 這種**,至今我也沒有在應用中見誰寫過,所以沒有必須分析這個!

二、for(j=0;j<4;j++) //這是一個for迴圈語句,括號中是三個步驟,

for( 初始化資料,只做一次; 迴圈條件,每次迴圈前先進行檢查,不成立,則結束迴圈; 迴圈變數變化 ,每次執行完迴圈體中的操作,就跳到這裡,進行迴圈變數改變 ) //三個步驟間以分號分隔

printf("%2d ",*(*(p+i)+j)) ; //迴圈第一次時,j=0 第二次時,j=1 。。。

14樓:匿名使用者

for語句是先執行 j = 0;j<4然後每次執行j<4;j++,第一次不執行j++.

15樓:軍師明眸

首先第一點, i++ 和 ++i 用法是不一樣的;對於 i++ 先使用i的值,然後i再加一

,而對於++i 是先讓i的值加一再用i的值。i-- 和 --i 也是同樣的道理,c語言書上有明確的講解,主要看一下書上給的例子。

其次,對於

for(j=0;j<4;j++)

是一個for迴圈,它執行的順序如下:

首先j的初始值是0,然後執行j<4,0<4成立,所以執行下面的printf函式,最後是執行j++(j的值加一變為二)。 接下來就是迴圈上面的步驟,一直到的值等於4為止停止迴圈。

要多看書,尤其是基礎,必須精讀。希望可以幫助你。

易語言如何讓程式每次只執行一次,易語言程式按鈕只允許點一次

我會一個簡單的方法,是比較初級的,高深點的別來問我了,我不懂,我也是新手 你先插入一個新的dll命令,就叫api 查詢視窗吧,返回值為整數型,dll庫檔名為user32.dll,對應名是findwindowa,注意大小寫,引數有兩個,兩個都是文字型的,第一個叫視窗類名,第二個叫視窗文字,你就這樣新建...

c語言執行以下程式段後m的值是,C語言,執行以下程式段後,m的值是。staticinta7,4,6,3,10intm,k,ptr

答案 d 分析 ptr a 0 指標bai指du向陣列首地址zhi,ptr k 指標指向陣列第k個存 dao儲單元 m ptr k 等價於專 m a k 屬a k 與m的最小數並賦值給m 故此程式段是去陣列a中元素的最小值 如還有不懂的地方可以密我 d 3 陣列a中的最小值 c語言,執行以下程式段後...

第一次吃飯慘對的作文,第一次吃飯慘對的500字作文

我有很多 bai事情是第一 次做du,但是最有趣的是我 zhi第一次做dao飯。有一次,爸爸媽媽版都不在家,快中權午了還沒回來。我就想給爸爸媽媽一個驚喜,平時我都是吃現成的,今天我要給爸爸媽媽做回飯。不用做稀飯,冰箱有饅頭,微波爐熱一下就行。可炒什麼菜呢?說真的,我不會炒別的菜,就會炒雞蛋。那就炒雞...