2015年計算機二級考試《C語言》提高練習題五份(5)
1[單選題] 下述程序的輸出結果是( )。
A.8B.7C.12D.9
參考答案:B
參考解析:根據判斷本題共進行3次for循環,第l次執行for循環,p[1][0]=p[1][0]-1=3;第2次執行for循環,p[1][1]=p[1][1]-1=4;第3次執行for循環,p[l][2]=1,最后輸出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。
2[單選題] 有以下程序
程序的運行結果是
A.14B.20C.10D.16
參考答案:A
參考解析:*(*(P+m)+k)系統默認為指針指向數組中第[m][k]個元素,因此,在for循環中,n+=*(*(P+m)+k);執行的是將數組x[0][1]和x[1][1]累加后賦值給n,最后進行輸出,答案為A選項。
3[單選題] 以下選項中合法的常量是( )
A.999B.2.7eC.OXabD.123E 0.2
參考答案:C
參考解析:A選項中含有非法的空格,所以錯誤。c語言中十六進制常量以0x開頭,所以C正確。實型常量中e的前后必須均有數據,且其后必須為整數,所以B和D錯誤。
4[單選題]有以下程序
若運行時從鍵盤上輸入OPEN THE DOOR<回車>,程序的輸出結果是
A.0PEN THE DOOR
B.oPEN tHE dOOR
C.open the door
D.Open The Door
參考答案:C
參考解析:字符串輸入函數gets的功能是從標準輸入設備鍵盤上輸入一個字符串。首先使指針變量P指向字符串的首字母,while循環語句中對字符串的每個字符進行fun函數操作。fun函數的功能是,將字符串中的大寫字母變小寫字母。將處理結果返回主函數,主函數通過putehar()字符輸出函數進行輸出。因此C選項正確。
5[單選題] 有以下程序
程序的輸出結果是
A.0B.1C.9D.10
參考答案:B
參考解析:本題考查宏定義,宏定義只是做個簡單的替換。執行SQR(k+m)/SQR(k+m)=k+m*k+m/k+m}k+m=15/2,a/=SQR(k+m)/SQR(k+1TI)的結果為1,選項B正確。
6[簡答題]下列給定程序中函數fun()的功能是:用遞歸算法計算斐波拉契數列中第n項的值。從第l項起,斐波拉契數列為:1,1,2,3,5,8,13,21,…
例如,若給n輸入7,則該項的斐波拉契數值為13。
請改正程序中的錯誤,使它能得出正確結果。
注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構!
試題程序:
參考解析:
(1)錯誤:switch(g);
正確:switch(g)
(2)錯誤:case 1:case2:return 1;
正確:case 1;case 2:return 1;
【解析】此題考查C語言的語法規則,switch(表達式)后不應該帶有“;”,case語句常量后應該是“:”。switch語句的一般形式如下:
7[單選題] 有三個關系R、S和T如下:
其中關系T由關系R和s通過某種操作得到,該操作為( )。
A.選擇B.投影C.交D.井
參考答案:D
參考解析:關系T中包含了關系R與s中的所有元組,所以進行的是并的運算。
8[單選題] 若函數調用時的實參為變量時,以下關于函數形參和實參的敘述中正確的是( )。
A.函數的形參和實參分別占用不同的存儲單元
B.形參只是形式上的存在,不占用具體存儲單元
C.同名的實參和形參占同一存儲單元
D.函數的實參和其對應的形參共占同一存儲單元
參考答案:A
參考解析:本題重點考察的是函數的形參和實參。I在定義函數時函數名后面括弧中的變量名稱為“形式參數”l(簡稱形參),在主調函數中調用一個函數時,函數名后面括弧1中的參數(可以是—個表達式)稱為“實際參數”(簡稱實參)。f C語言規定,實參變量對形參變量的數據傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內存中,實參單元與形參單元是不同的單元。因此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[單選題]
程序運行后的輸出結果是( )。
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語言函數參數傳遞大致分為:1、值傳遞過程中。被調函數的形參作為被調函數的局部變量處理,即在內存的堆棧中開辟空間以存放由主調函數放進來的實參的值,從而成為了實參的一個拷貝。值傳遞的特點是被調函數對形參的任何操作都是作為局部變量進行,不會影響主調函數的實參變量的值。2、地址傳遞過程中,被調函數的形參雖然也作為局部變量在堆棧中開辟了內存空間,但是這時存放的是由主調函數放進來的實參變量的地址。被調函數對形參的任何操作都被處理成間接尋址,即通過堆棧中存放的地址訪問主調函數中的實參變量。正因為如此,被調函數對形參做的任何操作都影響了主調函數中的實參變量。結構體中nanle是數組,做實參傳遞,會退化為指針,因此調用f(),b.nanle發生修改,其他的成員,傳遞的是拷貝,不會被修改。因此輸出Sun,f,350。故答案為A選項。