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

全國計算機二級c語言題庫試題及答案

計算機等級 閱讀(2.95W)

計算和模擬作為一種新的研究手段,常使一些學科衍生出新的分支學科。以下是關於全國計算機二級C語言題庫試題及答案,歡迎大家參考!

全國計算機二級c語言題庫試題及答案

  一、選擇題(每小題1分,共40分)

1). 設有定義: struct {char mark[12]; int num1; double num2;} t1,t2; 若變數均已正確賦初值,則以下語句中錯誤的是 ( )

1=1;

=;

C.t1=t2;

2=2;

正確答案:B

答案解析:這個題目主要涉及到結構體的定義與賦值操作。根據題意結構體變數t1,t2的成員變數mark是字元陣列,對於字元陣列之間的賦值操作應該使用迴圈語句對每個字元進行賦值,而選項A是用陣列名實現字元陣列之間的賦值操作,是錯誤的。

2). 若各選項中所用變數已正確定義,函式fun中通過return語句返回一個函式值,以下選項中錯誤的程式是( )

() { …… x=fun(2,10); ……} float fun(int a,int B{……}

t fun(int a,int B{……} main() { …… x=fun(i,j); ……}

t fun(int ,int); main() { …… x=fun(2,10); …… } float fun(int a,int B{……}

() { float fun(int i,int j); …… x=fun(i,j); …… } float fun(int a,int B{……}

正確答案:A

答案解析:C語言規定,函式必須先定義,後呼叫(函式的返回值型別為int或char時除外)。在選項A中,呼叫的子函式在呼叫後面定義,所以不正確。在選項B、C中,被呼叫函式在主函式之前定義,再在主函式中呼叫,所以是正確的;在選項D中,在主函式中先對子函式float fun(int i,int j)進行了宣告,然後進行呼叫。

3). 資料庫設計包括兩個方面的設計內容,它們是

A.概念設計和邏輯設計

B.模式設計和內模式設計

C.內模式設計和物理設計

D.結構特性設計和行為特性設計

正確答案:A

答案解析:資料庫設計包括資料庫概念設計和資料庫邏輯設計兩個方面的內容。

4). 在設計程式時,應採納的原則之一是

A.不限制goto語句的使用

B.減少或取消註解行

C.程式越短越好

D.程式結構應有助於讀者理解

正確答案:D

答案解析:濫用goto 語句將使程式流程無規律,可讀性差,因此A不選;註解行有利於對程式的理解,不應減少或取消,B也不選;程式的長短要依照實際情況而論,而不是越短越好,C也不選。

5). 關係表中的每一行記錄稱為一個( )。

A.欄位

B.元組

C.屬性

D.關鍵碼

正確答案:B

答案解析:在關係表中,每一列稱為一個屬性,對應表中的一個欄位;每…行稱為一個元組,對應表中的一條記錄。

  二、操作題

真題1】 下列給定程式中,函式fun()的功能是:通過某種方式實現兩個變數值的

交換,規定不允許增加語句和表示式。例如變數a初值為8,b 初值為3,程式執行

後a 中的值為3,b 中的值為8。 試題程式:

#include < conio.h >

#include < stdio.h >

int fun(int *x,int y)

{ __1___ t;

t=*x;*x=y;

return(t)__2__

}

main()

{int a=3,b=8;

printf("%d %dn ",a,b);

b=fun(__3__,b);

printf("%d %dn ",a,b);

}

解析: 填空1:根據題目的意思,這裡應該是聲名一個新的變數t,由後面的賦

值語句以及返回語句可以明白這個變數應該是整型的(因為函式的返回值型別

是int)。

填空2:根據題目的意思,此處是子函式的返回語句,由C 語言的知識,每個

語句的結尾都應該使用";" 。

填空3:fun()函式的呼叫方式說明fun()函式的引數應當為指標型別,即應該

把變數的地址作為引數傳遞(符號"&"是取地址操作)。

答案:【1】int 【2】; 【3】&a

【真題2】 給定程式modi.c 中函式fun的'功能是:求兩個形參的乘積和商數,並

通過形參返回呼叫程式。 例如輸入:61.82 和 12.65,輸出為: c =

782.023000 d = 4.886957。 請改正 fun 函式中的錯誤,使它能得出正確的結

果。 注意:不要改動 main 函式,

#include < stdio.h >

#include < conio.h >

/**********found**********/

void fun ( double a, b, double x,y )

{/**********found**********/

x = a * b; y = a / b;

}

main ( )

{ double a, b, c, d;

clrscr( );

printf ( "Enter a , b : ");

scanf ( "%lf%lf", &a, &b );

fun ( a , b, &c, &d ) ;

printf (" c = %f d = %fn ", c, d );

}

解析: 本題的考核點是C語言中函式的入口引數和指標的使用。

函式的引數表是由逗號分隔的變量表,變量表由變數型別和變數名組成,與普

通的變數說明不同,函式引數必須同時具有變數型別和變數名,因此應該把程

序中"void fun ( double a, b, double x,y )"語句改為"void fun ( double a,

double b, double *x, double *y )"或相同作用的語句。

從主函式裡的" fun ( a , b, &c, &d ) ; "語句可以看出,fun 函式後兩個引數

應為長浮點型資料的指標,因此應該把程式中"x = a * b; y = a / b;"語句改

為"*x = a * b; *y = a / b;"或相同作用的語句。