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可以...