糯米文學吧

位置:首頁 > IT認證 > 計算機等級

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

計算和模擬作為一種新的研究手段,常使一些學科衍生出新的分支學科。以下是關於全國計算機二級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;"或相同作用的語句。