6[簡答題]下列給定程序中函數(shù)fun()的功能是:用遞歸算法計算斐波拉契數(shù)列中第n項的值。從第l項起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…
例如,若給n輸入7,則該項的斐波拉契數(shù)值為13。
請改正程序中的錯誤,使它能得出正確結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
試題程序:
參考解析:
(1)錯誤:switch(g);
正確:switch(g)
(2)錯誤:case 1:case2:return 1;
正確:case 1;case 2:return 1;
【解析】此題考查C語言的語法規(guī)則,switch(表達式)后不應(yīng)該帶有“;”,case語句常量后應(yīng)該是“:”。switch語句的一般形式如下:
7[單選題] 有三個關(guān)系R、S和T如下:
其中關(guān)系T由關(guān)系R和s通過某種操作得到,該操作為( )。
A.選擇B.投影C.交D.井
參考答案:D
參考解析:關(guān)系T中包含了關(guān)系R與s中的所有元組,所以進行的是并的運算。
8[單選題] 若函數(shù)調(diào)用時的實參為變量時,以下關(guān)于函數(shù)形參和實參的敘述中正確的是( )。
A.函數(shù)的形參和實參分別占用不同的存儲單元
B.形參只是形式上的存在,不占用具體存儲單元
C.同名的實參和形參占同一存儲單元
D.函數(shù)的實參和其對應(yīng)的形參共占同一存儲單元
參考答案:A
參考解析:本題重點考察的是函數(shù)的形參和實參。I在定義函數(shù)時函數(shù)名后面括弧中的變量名稱為“形式參數(shù)”l(簡稱形參),在主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面括弧1中的參數(shù)(可以是—個表達式)稱為“實際參數(shù)”(簡稱實參)。f C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。因此A選項正確。
9[單選題] 若有定義語句:int a=3,b=2,c=1;以下選項中錯誤的賦值表達式是( )。
A.a=(b=4)=3;B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);
參考答案:A
參考解析:不能將變量或常量賦給一個表達式,所以A選項中(b=4)=3是錯誤的。
10[單選題]
程序運行后的輸出結(jié)果是( )。
A.Qian,f,350,Sun,f,350
B.Qiamf,350,Qian,f,350
C.Qian,f,350,Sun,m,370
D.Zha0,m,290,Sun,m,370
參考答案:A
參考解析:c語言函數(shù)參數(shù)傳遞大致分為:1、值傳遞過程中。被調(diào)函數(shù)的形參作為被調(diào)函數(shù)的局部變量處理,即在內(nèi)存的堆棧中開辟空間以存放由主調(diào)函數(shù)放進來的實參的值,從而成為了實參的一個拷貝。值傳遞的特點是被調(diào)函數(shù)對形參的任何操作都是作為局部變量進行,不會影響主調(diào)函數(shù)的實參變量的值。2、地址傳遞過程中,被調(diào)函數(shù)的形參雖然也作為局部變量在堆棧中開辟了內(nèi)存空間,但是這時存放的是由主調(diào)函數(shù)放進來的實參變量的地址。被調(diào)函數(shù)對形參的任何操作都被處理成間接尋址,即通過堆棧中存放的地址訪問主調(diào)函數(shù)中的實參變量。正因為如此,被調(diào)函數(shù)對形參做的任何操作都影響了主調(diào)函數(shù)中的實參變量。結(jié)構(gòu)體中nanle是數(shù)組,做實參傳遞,會退化為指針,因此調(diào)用f(),b.nanle發(fā)生修改,其他的成員,傳遞的是拷貝,不會被修改。因此輸出Sun,f,350。故答案為A選項。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |