一道c語言題,為什麼執行結果是16?我算出來是
1樓:我就是很煩
那是你自己的問題,怎麼可能會是149呢?我不知道你怎麼算的啊。
這個迴圈,當i>7,這個迴圈就結束了,s是由i相加得到的,i最多從0一直增加到7,最多是0+1+2+3+4+5+6+7=28,一看就知道鐵定不會超過50的啊,怎麼可能整出149呢?
執行結果16是對的,s=1+3+5+7=16。
一開始i=s=0嘛,然後是if語句嘛,是個取餘的判定嘛,i=0;i%2=0,第乙個數是0對2的取餘嘛,結果是0,沒問題吧,0除任何數,商都是0啊,餘數自然也是0。那麼自然跳過後面的if語句的表示式了嘛,做i++,s+=i;i++完了之後不是就加了1嘛,這時候i=1嘛,s+=i,也就是s=s+i嘛,所以s=1了嘛,沒問題吧,這時候i是小於7的嘛,所以繼續做嘛,第二個if語句,i%2的取餘嘛,1/2,商是0嘛,餘數是1嘛,所以i%2的結果是1嘛,做if後面的迴圈嘛,i++嘛,這個時候i=2嘛,然後做continue嘛,自然就跳過了後面i++,s+=i嘛,所以這個時候s還是1嘛,然後i還是小於7的嘛,繼續做第三遍嘛,這個時候i=2了嘛,i%2的結果是0嘛,if語句就不做嘛,做後面的i++嘛,這個時候i變成了3嘛,s+=i;s之前是1嘛,這個時候i是3嘛,s=1+3=4嘛,後面是一樣的了啊,我就不說了吧。
那麼最後就是隔乙個數相加一下嘛,所以s=1+3+5+7,當i=7的時候,已經不滿足i<7了嘛,直接跳出迴圈嘛,s=16啊。你那個式子全是相加的,又沒有相乘的式子,i最大又是限制在7以內,怎麼會有149這麼大的數嘛,自己迴圈和if判斷語句看錯了吧,初學者,也正常,不過整本書看完了的,不應該問這麼簡單的,電腦是不會錯的,當電腦和你的預算不一樣的時候,一定是你的程式邏輯和你自己想的邏輯有出路,按照程式邏輯的語法去算,才能發現問題,這種簡單的,還是自己去除錯吧,其實很容易搞定的。
2樓:網友
i=0時執行的是i++;s+=1;結果是i=1,s=1。
i=1時執行的是i++;continue;結果是i=2,s=1。
i=2時執行的是i++;s+=1;結果是i=3,s=4。
i=3時執行的是i++;continue;結果是i=4,s=4。
i=4時執行的是i++;s+=1;結果是i=5,s=9。
i=5時執行的是i++;continue;結果是i=6,s=9。
i=6時執行的是i++;s+=1;結果是i=7,s=16。
i=7時退出迴圈,所以,s最後等於16。
一道c語言題,如果輸入18,5,則執行結果是?要解題過程
3樓:我就是很煩
答案是n=1
第一次輸出後,m=18,n=5,r=3;
進入while迴圈後,第一次做的是m=5,n=3,r=2;
第二次做while迴圈,m=3,n=2,r=1;
第三次做while迴圈,m=2,n=1,r=0;
結束迴圈,輸出n=1;結束。
一道c語言題,求解答,我算出來的結果是8和15,答案是8和17
4樓:網友
第一次執行fun(4, 1)時,m=0,i=2
i+=m+1執行後i = 2+0+1=3;
m=i+a+b執行後m=3+4+1=8
第二次執行fun(4, 1)時。
m=8, i=3; (static變數只初始化一次,所以還是上一次的值)
i+=m+1執行後i=3+8+1=12
m=i+a+b執行後m=12+4+1=17所以結果是8和17
c語言問題,請問這道題怎樣計算,為什麼我算出來等於16,謝謝
5樓:網友
巨集定義是直接的。
a/=sqr(k+m)/sqr(k+m)後為a/=(k+m)*(k+m)/(k+m)*(k+m)乘除為同一優先順序,從左到右計算,不會先算除號後邊的(k+m)*(k+m)
所有答案是16/(3*3/3*3)=16/9,四捨五入為2
一道c語言題,為啥結果不是
6樓:網友
為什麼會是10呢?
i=5j=0
因為是do-while,所以不管條件滿不滿足,都會先進去一次。然後再判斷。
進入:j=j+(-i) -i是4,j是0,j=0+4,所以j=4然後i=4,i<2的條件不滿足。
直接輸出j,為4
所以應該是4
7樓:貼上樂趣
看不清**,麻煩把**打字打出來吧。
c語言。117題
8樓:網友
這是不是很老的題目了?
指標與整數的加減,其結果取決於該指標指向的變數型別。
在本題中p指向int,p+n的位址就是把p的位址向後偏移n*sizeof(int)個位元組。
在16位系統中,int佔2個位元組,因此p+9就相當於把p的位址向後偏移了18個位元組,18以十六進位表示就是12,因此p+9=194+12=1a6。
9樓:手動閥隧道
注意,194是十六進位,轉換為十進位就是404
int的長度為2位元組,所以p+9=404+2*9=422,十六進位表示就是1a6,選d
c語言的一道題,結果是15嗎
10樓:網友
答案是100;
是三目運算子。
min(i,j)的作用是返回其中小的那個的值 題目中 即返回 10k=10*10;
所以 最後 結果為100
計算機c語言程式設計,這道題我算的是15,答案為啥是1???
11樓:網友
對於for迴圈,第一次迴圈,i=0,s=0,進行如下計算:
s=10*0+'1'-'0';
結果為s=1。
接下去第二次迴圈,i=2,這時候,ch[2]等於'a',不符合條件判斷'0'到'9',將跳出迴圈。所以最終結果,s=1。
12樓:阿布御霖軍
當i = 0的時候 ch[i] = '1',所以 s = 1; i = i+2,當 i =i+2,即i = 2時,ch[i] = 'a'不滿足0-9,所以for迴圈結束。
只執行了一次for迴圈,所以答案是 1
c語言迴圈結構為什麼輸出結果是,c語言迴圈結構為什麼輸出結果是
輸入 hello 之後有回車的吧,這個是 n 貢獻給other 輸入 12345 之後也有回車的,這個是 n 貢獻給other 輸入 之後,本身貢獻給other有4個 也有回車的,這個是 n 貢獻給other 輸入 之後也有回車的,但是因為首先 共享給other一個之後,while迴圈結束了,n 作...
一道簡單的C語言選擇題為什麼選B
m a b先算,比 優先順序高,先算a b,結果為假,用0表示,所以m 0,所以 m a b 這個表示式值為0,0和任何值進行 運算結果都為0,因此編譯器會對運算過程進行優化,右邊的表示式不再計算,所以n的值沒有變. 洪羿 這是個與運算問題,只要有一個為0就是0,所以當m a b這個式子執行之後,整...
一道簡單的c語言習題,為什麼總是出現如圖所示提示,請說明一下,我是初學者
include void main j for k 1 k j k printf d n pp k 1 問題是出現在 pp,t 兩個指標上 你這樣做是很危險的。如果指向系統的記憶體空間,改變系統記憶體的資料,容易造成系統的崩潰 所以在c中講解指標的時候,這個是重點強調過的所以這兩個指標最好申請成比較...