C語言求解,為什麼下面這道題答案是

時間 2021-08-11 15:51:31

1樓:匿名使用者

因為k是int型,所以在k被賦值為3.4的時候,實際上轉換成了3(精度損失了),add並沒有改變 k的值,因為c中的引數傳遞是按照值傳遞的,a實際上等於4了,但在add()執行完之後,a就被釋放掉了,k仍然沒變,所以還是3.

2樓:

因為你那個add函式的引數a是值傳遞的,

所以呼叫add(k)後不會改變k的值,k還是3.4,呼叫printf函式用%d格式輸出k,使得k丟掉了整數後的尾數只輸出結果3。

c/c++函式引數傳遞方式有三種:值傳遞,指標傳遞,引用傳遞。

可以參考http://www.cnblogs.com/romi/archive/2012/08/09/2630014.html

以下**就會輸出4了

void add(int &a)

main()

3樓:匿名使用者

首先3.4賦值給int型的k,會截斷變成3

其次你的add函式根本沒有返回值,k值沒變過

所以列印出來肯定還是3

4樓:車車

因為int只能儲存整數,你把3.4賦給int,而int只能存整數,所以傳過去的數字後面的小數會被截斷

這道c語言題(例3)的答案是什麼,為什麼

5樓:千鋒教育

首先這個書上題目是錯的

應該是while(y--){}

printf("y=%d\n",y);

因為是後置自減,所以先判斷再自減,可知當y=0時不再迴圈,然後y自減得到-1,所以選b

6樓:匿名使用者

書上答案錯

bai誤。。

while迴圈中的duy只要不為0就會迴圈,當y等於zhi1的時候,執行

daowhile(y--)此時成立,進入專迴圈,y已經屬自減1變為0了,這裡就輸出0,當再次進入迴圈while(y--)的時候,這個時候y等於0,迴圈不會執行,但是while語句過後y--最後y的值是-1,但是不會輸出y=-1,所以書上的答案錯誤(已經敲**測試了,書上答案有誤)

求解一道c語言題。答案為什麼這麼寫?

7樓:匿名使用者

第1堆是a[0],第2堆是a[1],第3堆是a[2]。

這裡說明一下(i+1)%3。表示用(i+1)/3取餘數。當i=2時,i+1=3,3/3餘數為0,則(i+1)%3=0。

程式的思想是倒推。首先第一個for迴圈第一條語句執行,此時i=2。 a[(i+1)%3]表示a[0]。

a[0]/=2就是把自己本身/2,這樣第1堆火柴恢復到第3堆火柴給它火柴之前的狀態。然後a[i]+=a[(i+1)%3];這樣第3堆火柴剛剛分出去的火柴也加回來了。

然後迴圈第二遍,此時i=1。a[(i+1)%3]表示a[2]。分析思路相同……

最後陣列a中存的火柴恢復了初始狀態,迴圈輸出一遍完事。

8樓:匿名使用者

就是把過程倒過來啊

第一堆減半,加到第三堆

第三堆減半,加給第二堆

第二堆減半,加給第一堆

(c語言)這三道題目答案是什麼,為什麼求解答 10

9樓:跑酷大俠

第一題 3 7 15 31 static 靜態變數 會一直存在第二題 9(6+3) 5(2+3) 7(2+5) 6(5+1)自己找規律吧

第三題 5 2 8 6 理解指標的用法

10樓:tcj一笑而過

可以在vc中執行下,看看結果。

求解下面這道題。

11樓:匿名使用者

設提速前相遇時間為t1,提速後相遇時間為t2,乙原來的速度為x,甲速度為a

300/t1-x=300/t2-(x+1)300÷(140/a)=300÷[(300-180)/a]-115a/7=5a/2-1

5/14a=1

a=14/5 米/秒

t1=140÷(14/5)=50秒

x=(300-140)÷50=16/5米/秒

一道c語言題,為什麼輸出結果是3,2,2?題見**。謝謝啦

12樓:匿名使用者

首先,同學,你寫**的格式就不是很規範,最好每行只有一個**語句,例如:

#include "stdio.h"

void main()

我想你之所以沒明白是對if語句的不熟悉; if 條件句只能夠管它下面的一個語句,這道題中就是if(a>c)下面的b=a;這一句。而再下面a=c; c=b; 是不受 if 限制的。

程式執行時,首先檢測if的條件是否為真,此題中a>c為假,故不執行b=a; 程式繼續執行,執行

a=c;

c=b;

兩條賦值語句,此時a=c=3; c=b=2; b=2;

所以列印結果為3,2,2。

13樓:夢見鈔

if(a>c) b=a; a>c不成立,所以這句 b=a不執行。

之後執行a=c;執行後a=3,b=2,c=3c=b;執行後a=3,b=2,c=2

所以最後輸出3,2,2

c語言選擇題(3道題),幫忙解答一下,謝謝!

14樓:匿名使用者

1、int a=1,b=10;

dowhile (b- -<0);

do迴圈執行了一次,b執行了兩次,第一次b=b-a,b變成了9,b=9>0,迴圈結束,執行b--,b=8;

2、結果應為-1,答案是錯的,或者你拉掉了,因為無論上面執行了什麼,都會執行倒數第二行: y=-1; 最後輸入必為-1;

3、c語言中,sqrt()函式原型為double sqrt(double),所以上題為c,當然vc2008後函式有過載,需要指定型別。

15樓:匿名使用者

第一題:迴圈執行一次,b-=a; a++; 此時b=9,a=1,a++之後,a=2,b=8了

第2題 :因為a

3. 18/4*sqrt(4.0)/8開方後進行運算要進行資料轉換

16樓:匿名使用者

1、第一次迴圈後就退出了迴圈。

b = 10 - 1 = 9 --> b-- --> b = 82、答案是d,除非你抄漏了標點。

就 y=-1;

printf("%d",y);

這兩句有用,其他的都是障眼法。

3、這個無所謂吧,想是什麼型別都可以。有xx特色的題目了。

17樓:匿名使用者

1、do while迴圈先執行一次do,執行後b=9,再執行while語句中的b--,得到b=8.

2、這種題目只要遵循else和最近的if匹配是很簡單的,你可以把程式省略的else或if給添上。、

3、這個可以完全遵循數**算,因為sqrt執行完後是double型的,所以結果是double型的

高分求解下面這套簡單c語言題的答案,急

d.28 d.a 0 0 d.strp mba 共用型資料中的成員可以是結構型,但不可以是共用型b.算術運算 關係運算 賦值運算 c.min d.ffff d.1,1 d.p1 n d.指向整型函式的指標變數 烏托邦之神 哥們,你想把人給累死呀!這題目一個也不會?不想做吧! 剛學c,只會 幾道,悲哀...

求解這道線代題,求解下面這道題。

雷帝鄉鄉 這是利用行列式加法運算。 行列式的計算要充分利用他的性質。性質1 行列互換,行列式不變。性質2 把行列式中某一行 列 的所有元素都乘以乙個數k,等於用數k乘以行列式。性質3 如果行列式的某行 列 的各元素是兩個元素之和,那麼這個行列式等於兩個行列式的和。性質4 如果行列式中有兩行 列 相同...

C語言 這道題答案為什麼是0BC而不是10BC

for迴圈後面有乙個分號,也就是說for迴圈的迴圈體為空,這個迴圈不做任何事情,只是改變k的值,直到k為0.答案是bc,c這個答案怎麼來的啊?應該是ac b和c是乙個意思 b是流程再造,屬於改進的一部分 這道題如何算出答案1bc,a23?這兩個字串交換了第乙個位置,在函式裡面。t x 這裡的 x可以...