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++函式引數傳遞方式有三種:值傳遞,指標傳遞,引用傳遞。
可以參考
以下**就會輸出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型的
這道題求解,求解下面這道題。
解答 復 1.52 42 3 2.ab2 bc2 202 152 625bc2 252 625 a 90 s ab?ac 2 od?ab ac bc 2od 5 3.3 x 2x 4 x 2 5 x 2 3 x 2x 4 x 1 x 1 x 2 3 x 2 x 1 x 1 f x y f x f y...
求解這道題,求解下面這道題。
按正常做,只需要注意要換元,則答案是sin 2x 3 1 2 c 1 定義在 4,4 的奇函式,f 0 0,1 a 0 a 1,x 4,0 時,f x 1 4 x 1 3 x.當x 0,4 時,x 0.4 則 f x 1 1 4 x 1 1 3 x 4 x 3 x,奇函式,則f x f x f x ...
下面這道題答案是啥,下面這道題答案是什麼
第一個來乃 才的意思。自第二個乃 於是。第一bai個但 只不過du的意思,但 zhi,只 的意思.但聞dao 只聽見 的意思.所以b正確,第一個爾是你的意思,第二個爾.文言助詞。而已 罷了。第一個以是用,或者把的意思,第二個以 作介詞,憑藉滿意請採納拉 b呀 因 copy為第一個乃 才的意思。第二個...