1. 程式人生 > 其它 >C語言練習題11(函式2)

C語言練習題11(函式2)

技術標籤:錯題

二、選擇題
2-3
有如下函式呼叫語句: func(rec1, rec2+rec3, (rec4, rec5)); 則該函式呼叫語句中,含有的實參個數是( )。

自己認為是,一個型別,即一個逗號表達一個,故此題有4個。

逗號表示式的值只有一個,所以有三個實參。
2-4
有如下程式:

int func(int a, int b)

{ return(a+b)}

main( )

{ int x=2, y=5, z=8, r;

r=func(func(x, y), z);

cout<<r<<endl; }

該程式的輸出的結果是( )。
A.12

B.13
C.14
D.15

自己認為:逗號表示式得出為5,將5與8帶進去
但這並非逗號表示式,應該是2+5+8=15.

2-5
如果預設引數的函式宣告為“ void fun(int a,int b=1,char c=‘a’,float d=3.2);”, 則下面呼叫寫法正確的是( )。

自己:形參只能是變數,這裡宣告有常量,但是檢查時只檢查型別,並不檢查其他的,故這裡仍然是變數。
A.fun();
B.fun(2,3);
C.fun(2, ,‘c’,3.14)
D.fun(int a=1);

自己:C?
正確 B
如果有常量的話,當實參帶入若干個數時,型別相同的話,則將形參若干個數覆蓋,其餘不動,此時實引數可以少於形引數,不可大於;且有常量的話,可以只在宣告時候寫出常量(在主函式前寫在被調函式內,在主函式後寫在宣告內);