1樓:
這個問題是入門時典型的題目,因為fun函式的定義是void fun(int a,int b,int c).所以在呼叫該函式的時候,是對實參的副本進行操作,並沒有改變實參的值,改變的只是實參的副本。如果要想對實參的操作有效,那麼可以用引用。
即通過該方法定義函式,則在呼叫的時候,就是就實參直接放入函式中,函式直接對實參進行操作。所以說這道題目並沒有改變x,y,z的值,故答案選b。如果定義函式的時候是void(int &a,int &b,int &c)那麼答案就會是c。
引用與普通的函式定義在呼叫的時候是一樣的,都是用fun(x,y,z)。實踐出真知,把程式敲出來,自己執行一下。
2樓:
什麼叫「傳值」?我想你從這題中領教了!
3樓:清風苓
x=10,y=20,z=30;相當於fun()函式的型參,他會覆蓋a=456,b=567,c=678;也就是說a=10,b=20,z=30了所以答案是b
4樓:匿名使用者
在main函式中呼叫了fun(x,y,z);就相當於a=x,b=y,c=z;所以輸出為10,20,30.
一道c++題目,求詳解
5樓:匿名使用者
a、swap(int p,int q)定義的時候用的是整型變數,不是指標變數,而在使用的時候不應該是swap(&a,&b)
b、如果將語句swap(&a,&b)的引數改為a,b,函式的功能不能將a和b值交換
c、在swap()函式中的形參p和q可以定義為引用swap(int &p,int &q),這樣就行了
所以選d
6樓:
首先程式肯定是錯誤的,swap(&a,&b)和swap(int p,int q)中不能將int*傳遞給int。
b項中swap(a,b)傳遞的只是a,b的副本並未對a,b的值起到交換作用。
c改變後,交換的只是p,q指向的地址位置,但沒有改寫a,b地址中的內容。
正確程式如下;
#include
void swap(int *p,int *q)void main()
7樓:匿名使用者
d。因為是引用傳遞,該函式可以完成變數的交換。
一道c語言題目求解,一道C語言題目 求解
用最笨的辦法,一圈圈的看,case 0和case 1是一樣的,case2和case3是一樣的 m 4 1 case 1 s 1 k 1m 4 2 case 3 s 1 k 0m 4 3 case 3 s 4 k 4m 4 0 case 1,s 0 k 4 step 1 m 1 s m s 0 1 1...
問一道C語言的題目,問一道C語言題目
二進位制數不能像十進位制那樣 d直接輸出。如果想輸出一個數的二進位制可以通過函式把其轉成2進位制字串再將其輸出。itoa函式 原型 char itoa int value,char string,int radix 引數 int value 被轉換的整數,char string 轉換後儲存的字元陣列...
一道c語言題目求教非常感謝,一道C語言題目,求教,非常感謝
include using namespace std class time time time void print time int gethour int getminute int getsecond time time time private int hour,minute,second...