當前位置:才華齋>IT認證>計算機等級>

2017年下半年計算機二級考試C語言考試試題

計算機等級 閱讀(3.08W)

系統評價對計算機應用系統的開發有直接指導意義,需要對功能指標、效能指標、可用性、可靠性、易理解性、可維護性、可移植性和系統成本進行定性或定量的分析。這些指標的好壞決定系統壽命的長短。下面是小編整理的關於計算機二級考試C語言考試試題,歡迎大家參考!

2017年下半年計算機二級考試C語言考試試題

  選擇題

1). 下列敘述中正確的是( )。

A.呼叫printf( )函式時,必須要有輸出項

B.使用putchar( )函式時,必須在之前包含標頭檔案stdio.h

C.在C語言中,整數可以以二進位制、八進位制或十六進位制的形式輸出

D.調節getchar( )函式讀入字元時,可以從鍵盤上輸入字元所對應的ASCII碼

正確答案:B

答案解析:選項A,若printf函式沒有輸出項,且格式字串中不含格式資訊,則輸出的是格式字串本身,若格式字串含有格式資訊,執行時則出現錯誤提示;選項C,在C語言中,整數可以十進位制、八進位制或十六進位制的形式輸出;選項D,getchar函式是從標準輸入裝置讀取一個字元。

2). 以下結構體型別說明和變數定義中正確的是( )

def struct { int n; char c; } REC; REC t1,t2;

ct REC ; { int n; char c; }; REC t1,t2;

def struct REC; { int n=0; char c=′A′; } t1,t2;

ct { int n; char c; } REC; REC t1,t2;

正確答案:A

答案解析:定義結構體型別的一般形式為:struct 結構體名 {成員列表};struct 結構體名後不能加″;″號,所以選項B、C)錯誤,選項D中定義無名稱的結構體型別同時定義結構體變數形式應為struct t1,t2;選項A為使用者自定義型別,其為正確的定義形式。

3). 若實體A和B是一對多的聯絡,實體B和C是一對一的聯絡,則實體A和C的聯絡是( )

A.一對一

B.一對多

C.多對一

D.多對多

正確答案:B

答案解析:由於B和C有一一對應的聯絡,而A和B只間有一對多的聯絡,則通過關係之間的傳遞,則A和C之間也是一對多的聯絡。

4). 關於C語言的變數,以下敘述中錯誤的是( )

A.所謂變數是指在程式執行過程中其值可以被改變的量

B.變數所佔的儲存單元地址可以隨時改變

C.程式中用到的所有變數都必須先定義後才能使用

D.由三條下劃線構成的符號名是合法的變數名

正確答案:B

答案解析:變數是指在程式執行過程中其值可以改變的值,一個變數實質上是代表了記憶體中的某個儲存單元。在程式中對某個變數的操作實際上就是對這個儲存單元的操作,程式執行期間,這個分配的`儲存單元不會改變,但是其值可以變化。變數命名要符合識別符號的規定,其中下劃線是識別符號的組成字元。程式中所有變數都必須先定義後使用。

5). 當變數c的值不為2、4、6時,值也為″真″的表示式是( )

A.(c==2)||(c==4)||(c==6)

B.(c>=2 && c<=6)&& !(c%2)

C.(c>=2 && c<=6)&&(c%2!=1)

D.(c>=2 && c<=6) || (c!=3) || (c!=5)

正確答案:D

答案解析:邏輯或運算中,只要有一項為真,表示式的值就為真,故選項D中c的值不為2、4、6時,那麼表示式(c>=2 && c<=6)以及(c!=3)、(c!=5)必有一個成立,表示式的值也為真。

6). 在C語言中,函式返回值的型別最終取決於

A.函式定義時在函式首部所說明的函式型別

rn語句中表達式值的型別

C.呼叫函式時主調函式所傳遞的實參型別

D.函式定義時形參的型別

正確答案:A

答案解析:在C語言中,應當在定義函式時指定函式值的型別,凡不加型別說明的函式,一律按整型處理。在定義函式時,對函式值說明的型別一般應該和return語句中的表示式型別一致。如果函式值的型別和return語句中的表示式型別不一致,則以函式型別為主,即函式型別決定返回值的型別。

  程式設計試題詳解

1: 第1題請編寫函式fun,其功能使:將兩個兩位正整數a b合併形成一個整數放在c中。合併的方式使:將a數的十位和個位數依次放在c數的百位和個位上,b數的十位和個位數依次放在c數的千位和十位上。

答案:

void fun(int a,int b,long *c)

{*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;}

2: 第2題請編寫一個函式fun,它的功能使:計算n門課程的平均分,計算結果作為函式值返回。

答案:

float fun(float *a,int n)

{float ave=0.0;

int i;

for(i=0;i

ave+=a;

ave/=n;

return ave;}

3: 第3題假定輸入的字串中只包含字母和*號。請編寫函式fun,它的功能使:將字串尾部的*號全部刪除,前面和中間的*號不刪除。

答案:

void fun(char *a)

{int i=0;

char *p,*q;

p=q=a;

while(*p)

p++;

p--;

while(*p==‘*’)

p--;

while(q<=p)

{a=*q;

i++;

q++;}

a=‘