1樓:聽不清啊
最後的輸出是0
選答案d
因為:迴圈體結束:y=9
判斷時:y=8
迴圈體結束:y=9
判斷時:y=8
迴圈體結束:y=9
判斷時:y=8
迴圈體結束:y=9
判斷時:y=8
迴圈體結束:y=7
判斷時:y=6
迴圈體結束:y=5
判斷時:y=4
迴圈體結束:y=3
判斷時:y=2
迴圈體結束:y=1
判斷時:y=0
退出迴圈。
輸出:0 (然後y變成 -1)
2樓:金色潛鳥
關鍵:字首-- 與字尾 -- 的區別。
字首,要先減1再用;字尾,先用原值,用完再減1。
初始 y=10。
do 無論y 等於幾,都要執行一次 y=y-1=9。
while(--y); 迴圈語句開始,--y 是字首--,要先減1,再判斷 是否為0,為0則退出迴圈,否則將執行迴圈體。這裡 9先減1得 8,不為 0,開始迴圈。
y 變 7。 while(--y); y 變 6, 不為 0, 繼續迴圈。
y 變 5。 while(--y); y 變 4, 不為 0, 繼續迴圈。
y 變 3。 while(--y); y 變 2, 不為 0, 繼續迴圈。
y 變 1。 while(--y); y 變 0, 為 0, 結束迴圈。
輸出語句 輸出表示式 ( y--) 的 值。這裡是字尾--,表示式裡用 y 原值,列印 0。
列印後, y 自減 1,變 -1。
題目結果 是 列印出 0。答案 d。
c語言一些小問題,求解答
3樓:流浪者
結果是對的。
首先,funs()定在呼叫的時候形成了遞迴,所以算出來的結果就不會是5+5-1。
其次,你的程式的過程可以表達為5+(4+(3+2)),也就是說你在funs()裡遞迴呼叫了funs()。
在做c語言程式的時候,一定要理清思路,避免不應出現的遞迴,以免形成死迴圈,你這個呼叫如果引數錯誤,很容易出錯。
第三,按你的要求,結果是9的話,正確做法funs()定義return(n-1),main()裡呼叫print(n+funs(n))
4樓:匿名使用者
這是遞迴函式,不是隻執行一次,唉,怕你不明白,再解釋下吧,就是n=5,funs(n-1)=9,n+funs(n-1)=5+9=14,這回明白沒?
5樓:匿名使用者
在這個題中,fun()函式發生了遞迴
呼叫,即函式自己呼叫自己。在滿足發生遞迴的條件時,遞迴呼叫是以逐層巢狀的:形式進入,直到遞迴條件不再滿足,再由最內層開始依次逐層退出。
遞迴呼叫發生的次數由發生遞迴的條件所決定。本題中 n=5,進入fun(5)後,會繼續發生fun(4)、fun(3)呼叫,然後由內層依次返回,程式執行過程如下:
第1次呼叫 : n=5,執行5+fun(4)第2次呼叫 : n=4,執行4+fun(3)第3次呼叫 :
n=3,執行3+fun(2)笫1次返回 : 退出笫3次呼叫,返回值 3+2=5第2次返回 : 退出第2次呼叫,返回值 4+5=9第3次返回 :
退出第1次呼叫,返回值 5+9=14所以主程式輸出s=14。
6樓:梅髏鯊
這是遞迴,funs函式一直呼叫自身,就是funs函式中再不斷執行funs函式,所以n一直減到2結束呼叫,結果是5+4+3+2=14
7樓:匿名使用者
這是條件求和,滿足條件直行,負責就的到下面的大版。
8樓:我陌路我自己
學姐多好的機會大漢帝國,或者**號俗話說得好,還真是是好事。收到回話是個啥就是,好好在家收到回**,畫中畫說的很對。實踐活動回**,好實話實說不上班。
9樓:匿名使用者
這是迴圈語句問題,不是隻執行一次,重新看書吧!
10樓:我是老才不壞
你這問題可難壞了我,我怎麼能幫助你呢?瞧瞧,你提出的問題滿是英文,我連一天英語課都沒上過,我連abc都不知道是幹什麼的!拜託了兄弟,以後不要在這平臺上出現英語的問題,可難壞了我喲。
c語言問題求解答!!謝謝!! 5
11樓:小菜鳥2無聊寫**
//大概可以這麼bai寫
#include
#include
#include
int main()}
printf("%d\n",j);
if(p20!=0)printf("%d\n%d",in,p20);
else printf("第
du10個或zhi者第20個素數不存在dao");
return 0;
}else return 1;
}//編譯速度專和屬執行速度都還行
12樓:匿名使用者
#include
#define n 200
void main()
if ( b )
c語言問題求解答
13樓:時辰八點半
第一個days = day 獲取最後一個月的天數
第二個switch(month-1) 獲取除了最後一個月之外完整月的天數之和
14樓:嶽章戶湘君
逗號表示式從左往右依次計算,取最右邊的表示式的值為整個表示式的值
答案應該是5.000000啊
c語言問題求解答?
15樓:暗夜索光
直接上**
#include
using namespace std;
void main()
cout<<"s="<}
如果a不是整數的話自行修改int為double或者float。衝了
16樓:蹉淑敏瞿珍
main()
printf(("%d\n",i++);}}這個程式的結束條件是if(i>4)
第一個printf函式輸出的是4
第二個printf函式是5.
17樓:來夕橋嬋
執行結果是1,3,5
首先,i
=1,進入迴圈,由於i=1,i<4,,不執行if裡面的語句,執行 printf(("%d\n",i++);輸出1,再使i值加1,i=2,接著執行i++,此時i=3
第二次迴圈,i+1>0為真,進入迴圈體 由於i=3,i<4,,不執行if裡面的語句,執行 printf(("%d\n",i++);輸出3, 再使i值加1,i=4,執行i++,此時i=5
第三次迴圈, i+1>0為真,進入迴圈體,由於i=5,i>5,執行if裡面的 {printf("%d\n",i);輸出5,下一句break;跳出迴圈,程式結束
C語言問題求解答,c語言問題求解答
時辰八點半 第一個days day 獲取最後一個月的天數 第二個switch month 1 獲取除了最後一個月之外完整月的天數之和 嶽章戶湘君 逗號表示式從左往右依次計算,取最右邊的表示式的值為整個表示式的值 答案應該是5.000000啊 c語言問題求解答 5 1 include 2 int ma...
c語言問題求解答具體點,C語言問題求解答
cpp1.exe 1 error s 0 warning s cpp1程式一個錯誤0個警告 c語言問題求解答 時辰八點半 第一個days day 獲取最後一個月的天數 第二個switch month 1 獲取除了最後一個月之外完整月的天數之和 嶽章戶湘君 逗號表示式從左往右依次計算,取最右邊的表示式...
C語言問題,求解答,C語言問題,求大神解答
f函式中的a每次使用外面傳入的2,b是區域性變數,後每次都是1,c是靜態變數,函式每次執行會在上次值 1 所以最後執行三次,輸出為789 聽不清啊 程式的輸出是 789 c語言問題,求解答 執行abc a 1 首先進行巨集代換過程,是把 a 1去替代 定義的巨集函式 x x 中的x,即得到式子 a ...