1樓:
c語言函式引數都是單向傳遞的,直接傳值是不可能改變原來的數值的。此題答案30,20(你的printf好像有點問題)。
#include
void fun(int *p1, int *p2, int *p3)
main()
2樓:匿名使用者
按lz所寫**輸出為30,20,因為函式的引數為所宣告變數的副本,這樣不會改變原有的變數。如果想改變原來的值可以有如下寫法:
(ps:舉一個例子,直接傳遞值相當於複製貼上操作,傳地址相當於複製貼上快捷方式)
void fun(int* a,int* b,int* c)main()
3樓:匿名使用者
這道題的結果很簡單,x,y,z都沒夠改變數值,結果是30,20,10你問的是否交換數值,涉及到了你形式引數的問題了,像這道題,形參是數值,當然你本來的變數值不會改變,因為你只是把變數的值作為引數傳給了函式;
但是如果你的引數是指標或者引用的話,那麼你對形參的改變就相當於對變數的改變,因為他們對應的是同一個地址空間;
#include
void fun(int a,int b,int c)void fun1(int &a,int &b,int &c)int main()
關於指標做形參的情況,下面已經有人給你舉例了
4樓:匿名使用者
你需要傳地址進去而不是一個副本。
c語言問題:以下程式的輸出結果是?
5樓:polaris北斗
陣列a中的值沒有改變,所以a[2]的值還是6,選a
c語言,以下程式執行後的輸出結果是
6樓:匿名使用者
c=(a+=a-=5)是一個
表示式,(a=b,b+3)是另一個表示式。
a=0,a=a-5=-5,a=a+a=(-5)+(-5)=-10,將值賦給c,c=-10,此時,a=-5
a=b,將b的值賦給a,a=0,執行b+3=0+3=3,這個3不對任何變數賦值。
因此最終結果a=0,b=0,c=-10
輸出a、b、c的值,輸出0,0,-10
以下程式的輸出結果是()main(){ int a=3,b=2,c=1;
7樓:莘振梅果琴
你把**這麼寫應該能看的清晰一點12
3456
78910
1112
1314
1516
1718
1920
21main()
8樓:匿名使用者
我測試出來的結果不是2,5,1,2,2,3, -2
9樓:小陸仁
我沒看明白 你宣告2個int b 是怎麼通過的
別弄的眼花繚亂了 讓人去看,我一看語法已經不對 了 就看不下去了
10樓:謊言一樣的誓言
我輸出的時18,而且我覺得也應該是18
++b之後b=3,b*=(a+b) b=b*(a+b)=3*(3+3)=18
11樓:匿名使用者
不對吧?第二個b應該是18啊
12樓:我是胡歌粉
c-=++b//b=3,c=c-(++b)=-2
b*=a+b//b=b*(a+b)=3
13樓:夏若樹森
題錯了吧,要想b=3先把題改一下,b*=a+c
b=3,是因為在c-=++b處,b自增了,++b//b=b+1=2+1=3
b*=a+c//b=b*(a+c)=3*(3-2)=3
以下程式的輸出結果是,以下程式的輸出結果是( )?
if a 10 ok1 a 10,所以 a 10 不成立,btw,這個地方 if else 之間 什麼都沒有,至少應該有個分號 else if ok2 x 10 ok2 0,所以 不成立 else x 1 最後結果 x 1 小章33學姐 if後面邏輯值為真時執行,if a 10 false else...
c語言,以下程式的輸出結果是,C語言問題 以下程式的輸出結果是?
輸出1 3 這是遞迴了,所以先是fun 3 進入後發現3 2 1,所以又繼續func 3 2 也就是fun 1 進入發現1 2 0,就執行prinft,輸出1,然後fun 1 就返回了 返回出去正好是fun 3 的prinft,輸出3 進入fun 3 進入fun 1 輸出1退出fun 1 輸出3退出...
c語言以下程式的輸出結果是a為什麼
輸出結果是字元z 位元組是20是因為 10 定義了你為x資料組準備了10個位子,沒個位子可以存放乙個資料 佔2節 10 2 20 位元組 printf c 由於沒有輸出列表所以c編譯器不知道是列印哪個變數裡的值 他產生的當然是個隨機數.假定int型別變數占用兩個位元組,其有定義 int x 10 則...