急需計算機二級C語言機試題庫,歷屆機試真題和答案,機考模擬系統

2021-05-10 23:43:16 字數 5968 閱讀 4163

1樓:匿名使用者

試題一一、單項選擇題

1.c語言程式的執行,總是起始於【 】。

a) 程式中的第一條可執行語句

b) 程式中的第一個函式

c) main函式

d) 包含檔案中的第一個函式

分析:在一個c語言源程式中,無論main函式書寫在程式的前部,還是後部,程式的執行總是從main函式開始,並且在main函式中結束。

本題正確答案為c。

2.下列說法中正確的是【 】。

a) c程式書寫時,不區分大小寫字母

b) c程式書寫時,一行只能寫一個語句

c) c程式書寫時,一個語句可分成幾行書寫

d) c程式書寫時每行必須有行號

分析:c語言嚴格區分大小寫字母,如"a1"和"a1"被認為是兩個不同的識別符號,c程式的書寫非常靈活,既可以一行多句,又可以一句多行,且每行不加行號。

本題正確答案為c。

3.下面對c語言特點,不正確描述的是【 】。

a) c語言兼有高階語言和低階語言的雙重特點,執行效率高

b) c語言既可以用來編寫應用程式,又可以用來編寫系統軟體

c) c語言的可移植性較差

d) c語言是一種結構式模組化程式設計語言

分析:c語言是介於組合語言和高階語言之間的一種語言,由於它可以直接訪問實體地址,對硬體操作,所以c語言既可以編寫應用程式,又可以開發系統軟體,而且c程式可移植性好於組合語言,程式清晰具有模組化的特點。

本題正確答案為c。

4.c語言源程式的最小單位是【 】。

a) 程式行b) 語句c) 函式d) 字元

分析:程式行、語句、函式都是由字元構成的,字元是c語言的最小單位。

本題正確答案為d。

5.以下四項中屬於c語言關鍵字的是【 】。

a) char b) define c) unsigned d) return

分析:c語言有32個關鍵字(或稱保留字),它們都有特定的含意,並且由小寫字母組成,所以選項a是錯的,選項b不是保留字,選項d是return的錯誤拼寫。

本題正確答案為c。

6.十進位制數2403轉換成十六進位制數為【 】。

a) 963 b) 369 c) 953 d) 359

分析:十進位制數化成十六進位制數的方法是:不斷除以16,商0為止,倒取餘數。

本題正確答案為a。

7.二進位制數00110101轉換成八進位制數是【 】。

a) 055 b) 065 c) 056 d) 152

分析:二進位制數化成八進位制數的方法是:從右向左劃分,將每3位二進位制數書寫成1位八進位制數。

本題正確答案為b。

8.將二進位制數1011011.011轉換成十進位制數是【 】。

a) 91.75 b) 91.375 c) 91.125 d) 91.25

分析:二進位制數化成十進位制數的方法是:各數字乘以權重再相加,題中整數部分為:

(1011011)2=1×26+1×24+1×23+1×21+1×20=64+16+8+2+1=91,小數部分為:(0.011)2=0×2-1+1×2-2+1×2-3=0.

25+0.125=0.375,再將兩者合在一起得91.

375。

本題正確答案為b。

9.計算機內部運算使用的數是【 】。

a) 十進位制數 b) 十六進位制數 c) 二進位制數 d) 八進位制數

分析:在實際生活中找不到具有十個穩定狀態的物理元件,而具有兩種穩定狀態的元件到處可見,如一個開關具有通電和斷電兩個穩定狀態,計算機內部的元件正是以"1"代表通電,以"0"代表斷電的,所以計算機內部運算使用的數是二進位制數,至於八進位制數和十六進位制數是對二進位制數的人為縮寫。

本題正確答案為c。

10.一個字長的二進位制位數是【 】。

a) 2個byte,即16個bit b) 3個byte,即24個bit c) 4個byte,即32個bit d) 隨計算機系統不同而不同

分析:一個二進位制位也稱做1bit,八個二進位制位稱做1個byte,即所說的一個位元組,byte和bit有固定的換算關係,但是計算機中的字長word和位元組byte沒有固定的換算關係,字長word是隨cpu型號而異的。

本題正確答案為d。

11.在c語言系統中,假設int型別資料佔2個位元組,則double、long、unsigned int、char型別資料所佔位元組數分別多少【 】。

a) 8,2,4,1 b) 2,8,4,1 c) 4,2,8,1 d) 8,4,2,1

分析:由上題知cpu字長決定了分配給各種型別變數多少個位元組,當int型別佔2個位元組時,double、long、unsigned int、char型所佔的位元組分別為8、4、2、1個位元組。

本題正確答案為d。

12.下面程式段執行結果是【 】。

int i=5,k;

k=(++i)+(++i)+(i++);

printf("%d,%d",k,i);

a) 24,8 b) 21,8 c) 21,7 d) 24,7

分析:k=(++i)+(++i)+(i++)表示式中,"++"號在i前面的有兩個,所以在計算k之前,i要先增兩次,即i變為7,然後再將3個7相加,使k得21,表示式中"++"號在i後面的有1個,所以得出k的值以後i又增1次變為8。

本題正確答案為b。

13.下面程式段執行結果是【 】。

int i=5;

printf("%d,%d,%d", i,(++i)+(++i)+(i++),i);

a) 8,20,5 b) 8,21,5 c) 5,20,8 d) 5,21,8

分析:此題不能看作將12題中的k=(++i)+(++i)+(i++)代入printf函式,因為函式處理引數的順序是從右向左,所以(++i)+(++i)+(i++)表示式的值不再是求7+7+7,而是為8+7+5=20。

本題正確答案為a。

14.下面程式段的輸出結果是【 】。

int i=32769;

printf("%d\\n",i);

a) 32769 b) 32767 c) -32767 d) 輸出不是確定的數

分析:int型變數表示資料的範圍是-32768~+32767,賦值時比-32768小或比+32767大,都會發生溢位,溢位後存放的數值是:正向溢位時,為該數減去模65536,負向溢位時,為該數加上模65536,所以本題輸出為32769-65536=-32767。

本題正確答案為c。

15.下面的程式執行後輸出為【 】。

main( )

a) 32769 b) %8u c) 32767 d) -32767

分析:格式字元必須小寫,題中的"%8u"不會當作格式控制符,而是原樣輸出,變數a將沒有對應的格式說明,也不會送出。

本題正確答案為b。

二、填空題

1.若以下程式的輸出結果是13,請填空。

main( )

分析:在c語言中以0開頭的數字是八進位制數,016相當於十進位制數14,執行printf語句時,輸出項應為x的值減1。

本題正確答案為 【1】 --x或x-=1。

2.下面程式段的輸出結果是【2】。

int k=10;

float a=3.5,b=6.7,c;

c=a+k%3*(int)(a+b)%2/4;

分析:本題考查運算子的優先順序概念,式中要先算(a+b)的值,再算強制型別變換,*、/、%是同級的要從左到右計算,最後算加法和賦值。

本題正確答案為【2】 3.500000

3.若執行下面程式段後的輸出為:3,4,5,請填空。

int a,b=3,c=5;

a=b=′a′&&ch<=′z′)?(【1】):ch

printf("【2】\\n",ch);

分析:題目中條件運算為判斷輸入字母是否為大寫,當ch>=′a′&&ch<=′z′為真時,將其轉換成對應的小寫字母,需ascii碼值加上32,已知題意是將大寫字母對應的小寫字母ascii值輸出,所以printf語句中的輸出格式應為十進位制格式。

本題正確答案為 【1】 ch+32, 【2】 %d。

2.下面程式段的執行結果是x=【3】,y=【4】。

inta=3,b=5,x,y;

x=a+1,b+6;

y=(a+1,b+6);

printf("x=%d,y=%d",x,y);

分析:此題考查逗號表示式的概念,因逗號運算子的優先順序比賦值號還低,所以執行x=a+1,b+6時,x得到的是a+1的值。

本題正確答案為 【3】 4, 【4】 11。

3.下面程式執行後k的值為【5】。

int a=1,b=2,c=3,d=4,k;

k=a>b?a:c>d?c:d

分析:因題中a>b的值為假,故求解表示式k=a>b?a:c>d?c:d相當於求k=a>b?a:(c>d?c:d)。

本題正確答案為 【5】 4。

4.已知:int a=5;則執行a+=a-=a*a;語句後,a的值為【6】。

分析:a+=a-=a*a的運算順序是從右向左,相當於求a+=(a-=a*a),其中小括號內的運算得a=5-5*5即a=-20,下一步再求a+=a,即a=a+a,將-20代入得a=-40。

本題正確答案為 【6】 -40。

5.下面程式的執行結果是x=【7】,y=【8】。

main( )

分析:強制型別變換並不改變x的原值,x仍為4.9,而變換得到的是中間結果,此題將中間結果賦給了y,另外注意是捨棄小數部分,而不是四捨五入。

本題正確答案為 【7】 4.900000 【8】 4。

試題四一、單項選擇題

1.對if語句中表示式的型別,下面正確的描述是【 】。

a) 必須是關係表示式

b) 必須是關係表示式或邏輯表示式

c) 必須是關係表示式或算術表示式

d) 可以是任意表示式

分析:c語言中if語句的表示式可以是任意型別,只要表示式的值非0就算作真,是0就作為假。

本題正確答案為d。

2.多重if_else語句巢狀使用時,尋找與else配套的if方法是【 】。

a) 縮排位置相同的if

b) 其上最近的if

c) 下面最近的if

d) 同行上的if

分析:多重if_else巢狀時,else總是與它上面最近的if配對。

本題正確答案為b。

3.以下錯誤的if語句是【 】。

a) if(x>y) z=x;

b) if(x==y) z=0;

c) if(x!=y) printf("%d",x) else printf("%d",y);

d) if(x

分析:選項c)中的第一個printf語句後面丟了分號,所以是錯誤的。

本題正確答案為c。

4.以下判斷兩個字串相等的正確方法是【 】。

a) if(str1=str2)

b) if(str1==str2)

c) if(strcpy(str1,str2)=0)

d) if(strcmp(str1,str2)==0)

分析:選項a)中用了賦值號,顯然是錯誤的,選項c)中的字串拷貝函式strcpy不能比較大小,選項b)中的"=="號也不具有串比較功能,比較兩個字串的大小應用字串比較函式。

本題正確答案為d。

5.執行下面程式的正確結果是【 】。

main( )

printf("%f",a);

}a) 1.900000

b) 111122221.900000

c) 22221.900000

d) 0000111122221.900000

分析:題中定義了單精度實數a,所以最下面的printf語句輸出有6位小數,另外c語言在判斷switch表示式的值時,是按整型資料處理的(但不4舍5入),所以程式是從case 1處開始執行的,因沒有break語句,接著會執行case 2。

本題正確答案為b。

6.以下程式的輸出為【 】。

main( )

{ int a=20,b=30,c=40;

if(a>b) a=b,

b=c;c=a;

希望對你有所幫助!!! 也希望能賞點分!!!謝謝

計算機二級c語言與計算機二級的區別

計算機c語言考試分為筆試和上機,筆試內容包括公共基礎和一些c語言語法,上機就三個題,有經驗的話頂多十分鐘就可以作出來,這三個題是 程式填空題 2 3個空 程式改錯題,程式編寫題,其實都不難,好好學就ok了,挺好過的,這種考試比自己編寫一個程式簡單多了,好多人都是考試時過了,但程式設計還是一塌糊塗!計...

計算機二級c語言怎麼備考,全國計算機等級考試二級C語言難嗎??考過的給點經驗

如果沒有學過c語言,我建議你最好考前3個月學習c。c這種東西看人悟性,有的人容易,有的人學起來很費勁。如果你是容易的,那你的備考方案是,多做幾套c語言練習題,爭取練的知識點多一些,並且一些二級基礎知識背了,那些東西就是純粹的背,沒有捷徑。如果你是不容易的,你還是別考了,花你時間比較多,還痛苦。當然要...

計算機二級考試C語言和vb該選哪個

我也學c語言,我也報考計二的c語言專案,但是告訴你一個可怕的訊息,計二c語言不會考書上的題目,聽說考未來教育上面的題目。計算機二級考試c語言應用哪個好 考試用書 教育部考試中心出版 全國計算機等級考試教程 c語言程式設計 複習資料 購買一套正版2012年版 二級考試模擬練習題 裡面就是今年考試的題庫...