點擊查看:2016計算機二級《C語言》基礎(chǔ)練習(xí)題及答案匯總
1[單選題] 設(shè)有定義:int x,Y,z;,且各變量已賦正整數(shù)值,則以下能正確表示代數(shù)式‘
的C語言表達式是( )。
A.…1.…0/x。/y,/zB.1/x * Y * zC.1/(x * Y * z)D.1/x/y/(double)z
參考答案:A
參考解析:代數(shù)表達式1/(X·Y·z)是小數(shù),轉(zhuǎn)為cf語言的表達式必須是小數(shù)。A選項由于l.0為浮點數(shù),計算結(jié)1果自動轉(zhuǎn)換為浮點數(shù),故A選項正確。選項B,C,D的表達式均為0。答案為A選項。
2[單選題] 以下敘述中正確的是( )
A.用戶自己定義的函數(shù)只能調(diào)用庫函數(shù)
B.實用的C語言源程序總是由一個或多個函數(shù)組成
C.不同函數(shù)的形式參數(shù)不能使用相同名稱的標(biāo)識符
D.在C語言的函數(shù)內(nèi)部,可以定義局部嵌套函數(shù)
參考答案:B
參考解析:A選項中,”用戶自己定義的函數(shù)只能調(diào)用庫函數(shù)”描述是不正確的,也可以調(diào)用自定義函數(shù);C選項中,對于不同函數(shù)的形式參數(shù)可以使用相同名稱的標(biāo)識符;D選項中,關(guān)于函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套。因此B選項正確。
3[單選題] 以下關(guān)于C語言數(shù)據(jù)類型使用的敘述中錯誤的是( )。
A.若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型
B.若要保存帶有多位小數(shù)的數(shù)據(jù),可使用雙精度類型
C.若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型
D.整數(shù)類型表示的自然數(shù)是準(zhǔn)確無誤差的
參考答案:C
參考解析:C語言中沒有邏輯類型,所以c錯誤。若要保存帶有多位小數(shù)的數(shù)據(jù),可以用單精度類型也可以用雙精度類型。處理包含不同類型的相關(guān)數(shù)據(jù)可以定義為結(jié)構(gòu)體類型。整數(shù)類型可以無誤差的表示自然數(shù)。
4[單選題] 下面選項中關(guān)于編譯預(yù)處理的敘述正確的是
A.預(yù)處理命令行必須使用分號結(jié)尾
B.凡是以#號開頭的行,都被稱為編譯預(yù)處理命令行
C.預(yù)處理命令行不能出現(xiàn)在程序的最后一行
D.預(yù)處理命令行的作用域是到最近的函數(shù)結(jié)束處
參考答案:B
參考解析:本題考查預(yù)編譯的預(yù)編譯處理命令行,預(yù)處理命令行不能以分號結(jié)尾,所以A選項錯誤,預(yù)處理命令行可以出現(xiàn)在程序的最后一行,預(yù)處理命令行作用域是整個文件。
5[單選題] 有以下程序
程序的輸出結(jié)果是
A.0B.1C.9D.10
參考答案:B
參考解析:本題考查宏定義,宏定義只是做個簡單的替換。執(zhí)行SQR(k+m)/SQR(k+m)=k+m*k+m/k+m}k+m=15/2,a/=SQR(k+m)/SQR(k+1TI)的結(jié)果為1,選項B正確。
6[單選題] 設(shè)--X樹共有150個結(jié)點,其中度為l的結(jié)點有l(wèi)0個,則該---X樹中的葉子結(jié)點數(shù)為( )。
A.71B.70C.69D.不可能有這樣的二叉樹
參考答案:D
參考解析:在樹結(jié)構(gòu)中,一個結(jié)點所擁有的后件個數(shù)稱為該結(jié)點的度,所有結(jié)點中最大的度稱為樹的度。對任何一棵二叉樹,度為0的結(jié)點總是比度為2的結(jié)點多一個。如果有一棵二叉樹,結(jié)點總數(shù)為l50,假設(shè)度為0的結(jié)點個數(shù)為n,則有n+10+n一1=150,n=70.5,由于結(jié)點個數(shù)必須是整數(shù),所以不可能有題目中這樣的二叉樹。故選擇D選項。
7[單選題] 有以下程序:
程序運行后的輸出結(jié)果是( )。
A.2.3B.1,3C.1,4D.1,2
參考答案:B
參考解析:在f(int+P,int 4 q)函數(shù)中,執(zhí)行P=P+1是將P所對應(yīng)的地址加1,而0 q=+q+1是將q所指向的n的地址所對應(yīng)的值加1,所以m的得知所對應(yīng)的值沒有變,而n的值則為3了。因此B選項正確。
8[單選題] 以下選項中,能用作用戶標(biāo)識符的是( )。
A.-0-B.8-;8C.voidD.unsigned
參考答案:A
參考解析:C語言中標(biāo)識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。另外,關(guān)鍵字不能作為標(biāo)識符。8中以數(shù)字8開頭,所以錯誤。c與D中用的是關(guān)鍵字void與unsigned,所以錯誤。
9[單選題] 以下敘述正確的是( )。
A.表達式sizeof(FILE*)==sizeof(int*)的值為真
B.文件指針的值是一個整數(shù),它的值一定小于文件字節(jié)數(shù)
C.文件指針的值是所指文件的當(dāng)前讀取位置
D.使用fscanf函數(shù)可以向任意類型的文件中寫入任意數(shù)量的字符
參考答案:A
參考解析:
slzeof(FILE})=4,因為file·為指針,指針的大小4,sizeof(int·)=4,理由同前面。文件指針的值是地址,是一個16進制的數(shù),它的值不一定小于文件字節(jié)數(shù),因此選項8錯誤。文件指針是所指文件的當(dāng)前讀取位置,而不是文件指針的值因此選項C錯誤。mgscanf(FILE-stream,constchar}format,[argument…]fmanf函數(shù)可以向任意類型的文件,寫入任意數(shù)量不能超過系統(tǒng)的緩沖區(qū),寫文件先寫入緩沖區(qū),最后一起寫入文件,因此選項D錯誤。答案為A選項。
10[簡答題]下列給定程序中函數(shù)fun的功能是:將tt所指字符串中的小寫字母全部改為對應(yīng)的大寫字母,其他字符不變。
例如,若輸入“Ab,cD”,則輸出“AB,CD”。
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODIl.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
參考解析:
(1)if((tt[i]>=’a’)&&(tt[i]<=‘z’))
(2)tt[i]一=32;
【考點分析】
本題考查:if語句條件表達式;小寫字母轉(zhuǎn)大寫字母的方法。
【解題思路】
(1)分析本題可知,要判斷字符是否為小寫字母,即判斷其是否在a—z之間,所以這里需要進行連續(xù)的比較,用&&。(2)從ASCIl碼表中可以看出,小寫字母的ASCIl碼值比對應(yīng)大寫字母的ASCIl值大32。將字符串中的小寫字母改為大寫字母的方法是:從字符串第一個字符開始,根據(jù)ASCIl碼值判斷該字母是不是小寫字母,若是,則ASCIl碼值減32即可。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |