當前位置:首頁 » 編程語言 » c語言二級筆試題庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言二級筆試題庫

發布時間: 2022-02-12 19:21:27

⑴ 請問:全國計算機等級考試二級c語言 筆試 有題庫嗎

10年我們考的時候出現過很多原題,其他的也就是改改問法,比如說題庫上是讓你寫1—20的和,考的時候改成1—20的積什麼的。
不用擔心的,每個學校都會有很多題庫,可以去電子閱覽室看看~~
二級C不難。。

⑵ 全國計算機等級考試二級C語言歷年試題及答案

這里有一份最全的考研歷年真題資料分享給你

鏈接:

提取碼:w2wt

通過不斷研究和學習歷年真題,為考生沖刺階段復習提分指點迷津,做真題,做歷年真題集,對照考綱查缺補漏,提高實戰素養,制定做題策略,規劃方向;

若資源有問題歡迎追問!

⑶ 誰能給我一份二級C語言的筆試題庫

最好做那種題庫的卷子 ,很有效果的,卷子大型書店都有賣,注意看清年份..........

⑷ 計算機二級c語言考試有幾套題庫

不一定的,c語言考試每年題型都不太一樣,並且沒有什麼標准題庫,因為泄漏題目是違法的,但是由於很多老師教過的學生很多,知道每年大概考什麼,所以編出來的題庫能夠覆蓋絕大多數知識面,但是不可能和考試題一模一樣。只要基本的掌握了,考二級完全沒有問題

⑸ 全國計算機C語言二級上機和筆試題庫

我已經給你發你QQ郵箱里了·注意查收~~

⑹ 求二級C語言筆試題庫

2006年4月二級C語言筆試試題

一選擇題((1)-(10)每題2分,(11)-(50)每題1分,共60分)

下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項塗寫在答題卡相應位置上,答在試卷上不得分。

1)下列選項中不屬於結構化程序設計方法的是

A) 自頂向下

B)逐步求精

C)模塊化

D)可復用

2)兩個或兩個以上模塊之間關聯的緊密程度稱為

A)耦合度

B)內聚度

C)復雜度

D)數據傳輸特性

3)下列敘述中正確的是

A)軟體測試應該由程序開發者來完成

B)程序經調試後一般不需要再測試

C)軟體維護只包括對程序代碼的維護

D)以上三種說法都不對

4)按照「後進先出」原則組織數據的數據結構是

A)隊列

B)棧

C)雙向鏈表

D)二叉樹

5)下列敘述中正確的是

A)線性鏈表是線性表的鏈式存儲結構

B)棧與隊列是非線性結構

C)雙向鏈表是非線性結構

D)只有根結點的二叉樹是線性結構

6)對如下二叉樹

進行後序遍歷的結果為

A) ABCDEF

B) DBEAFC

C) ABDECF

D) DEBFCA

7)在深度為7的滿二叉樹中,葉子結點的個數為

A)32

B)31

C)64

D)63

8)「商品」與「顧客」兩個實體集之間的聯系一般是

A)一對一

B)一對多

C)多對一

D)多對多

9)在E-R圖中,用來表示實體的圖形是

A)矩形

B)橢圓形

C)菱形

D)三角形

10)資料庫DB,資料庫系統DBS,資料庫管理系統DBMS之間的關系是

A)DB包含DBS和DBMS

B)DBMS包含DB和DBS

C)DBS包含DB和DBMS

D)沒有任何關系

11)以下不合法的用戶標識符是

A)j2_KEY

B)Double

C) 4d

D) _8_

12)以下不合法的數值常量是

A)011

B)lel

C) 8.0 E0.5

D) 0xabcd

13)以下不合法的字元常量是

A)'\018'

B '\」'

C) '\\'

D) 『\xcc'

14)表達式3.6-5/2+1.2+5%2的值是

A)4.3

B) 4.8

C) 3.3

D) 3.8

15)以下能正確定義字元串的語句是

A)char str[]={『\064'};

B) char str=」\x43」;

C) char str=」;

D) char str[]=」\0」;

16)以下數組定義中錯誤的是

A) int x[][3]={0};

B) int x[2][3]={{1,2},{3,4},{5,6}};

C) nt x[][3]={{1,2,3},{4,5,6}};

D)int x[2][3]={1,2,3,4,5,6};

17)若要求從鍵盤讀入含有空格字元的字元串,應使用函數

A)getc()

B) gets()

C) getchar()

D) scanf()

18) 下四個程序中,完全正確的是

A)#include B)#include

main(); main()

{/*programming*/ {/*/programming/*/

printf(「programming!\n」); } printf(「programming!\n」);}

C) #include D) include

main() main()

{/*/*programming*/*/ {/*programming*/

printf(「programming!\n」);} printf(「programming!\n」);}

19)若有定義:float x=1.5; int a=1,b=3,c=2;則正確的switch語句是

A)switch(x) B) switch((int)x);

{case 1.0: printf(「*\n」); {case 1: printf(「*\n」);

Case 2.0: printf(「**\n」); } case 2: printf(「**\n」);}

C) switch(a+b) D) switch(a+b)

{ case 1: printf(「*\n」); {case 1: printf(*\n」);

case 2+1: printf(「**\n」);} case c: printf(「**\n」);}

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

A)main() B) float fun(int a,int b){……}

{……x=fun(2,10);……} main()

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

C)float fun(int,int); D) main()

main() { float fun(int i,int j);

{……x=fun(2,10);……} ……x=fun(i,j);……}

float fun(int a,int b){……} float fun(int a,int b){……}

21)在以下給出的表達式中,與while(E)中的(E)不等價的表達式是

A)(!E=0)

B) (E>0||E<0)

C) (E==0)

D) (E!=0)

22)要求通過while循環不斷讀入字元,當讀入字母N時結束循環。若變數已正確定義,以下正確的程序段是

A) while((ch=getchar())!='N') printf(「%c」,ch);

B) while(ch=getchar()!='N') printf(「%c」,ch);

C) while(ch=getchar()==N') printf(「%c」,ch);

D) while((ch=getchar())=='N') printf(「%c」,ch);

23)已定義以下函數

int fun(int *p)

{return *p;}

fun 函數返回值是

A)不確定的值

B)一個整數

C)形參p中存放的值

D)形參p的地址值

24)若有說明語句:double *p,a;則能通過scanf語句正確給輸入項讀入數據的程序段是

A)*p=&a; scanf(「%lf」,p);

B)*p=&a; scanf(「%f」,p);

C) p=&a; scanf(「%lf」,*p);

D)p=&a; scanf(「%lf」,p);

25)現有以下結構體說明和變數定義,如圖所示,指針p,q,r分別指向一個鏈表中連續的三個結點。

struct node

{

char data;

struct node *next;

}*p,*q,*r;

現要將q和r所指結點交換前後位置,同時要保持鏈表的連續,以下不能完成此操作的語句是

A)q->next=r->next; p->next=r; r->next=q;

B) p->next=r; q->next=r->next; r-.next=q;

C) q->next=r->next; r->next=q; p->next=r;

D) r->next=q; p-next=r; q-next=r->next;

26)有以下程序段

struct st

{ int x; int *y;}*pt:

int a[]={1,2},b[]={3,4};

struct st c[2]={10,a,20,b};

pt=c;

以下選項中表達式的值為11的是

A) *pt->y

B) pt->x

C) ++pt->x

D) (pt++)->x

27)設fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數feof(fp)的返回值為

A)EOF

B)非0值

C) 0

D)NULL

28)設有以下語句

int a=1,b=2,c;

c=a^(b<<2);

執行後,c的值為

A)6

B) 7

C) 8

D) 9

29)有以下程序

#include

main()

{

char c1,c2,c3,c4,c5,c6;

scanf(「%c%c%c%c」,&c1,&c2,&c3,&c4);

c5=getchar(); c6=getchar();

putchar(c1); putchar(c2);

printf(「%c%c\n」,c5,c6);

}

程序運行後,若從鍵盤輸入(從第1列開始)

123<回車>

45678<回車>

則輸出結果是

A)1267

B)1256

C) 1278

D)1245

30)若有以下程序

main()

{int y=10;

while(y- -); printf(「y=%d\n」y);

}

程序運行後的輸出結果是

A)y=0

B)y=-1

C) y=1

D)while構成無限循環

31)有以下程序

main()

{

int a=0,b=0,c=0,d=0;

if(a=1) b=1;c=2;

else d=3;

printf(「%d,%d,%d,%d\n」,a,b,c,d);

}

程序輸出

A)0,1,2,0

B) 0,0,0,3

C)1,1,2,0

D)編譯有錯

32)有以下程序

main()

{

int i,j,x=0;

for(i=0;i<2;i++)

{ x++;

for(j=0;j<=3;j++)

{

if(j%2) continue;

x++;

}

x++;

}

printf(「x=%d\n」,x);

}

程序執行後的輸出結果是

A)x=4

B) x=8

C) x=6

D) x=12

33)有以下程序

int fun1(oble a){return a*=a;}

int fun2(dpuble x,double y)

{

double a=0,b=0;

a=fun1(x); b=fun1(y); return (int)(a+b);

}

main()

{double w; w=fun2(1.1,2.0);……}

程序執行後變數w中的值是

A)5.21

B) 5

C) 5.0

D) 0.0

34)有以下程序

main()

{

int i,t[][3]={9,8,7,6,5,4,3,2,1};

for(i=0;i<3;i++) printf(「%d」,t[2-i][i]);

}

程序的執行後的輸出結果是

A)7 5 3

B) 3 5 7

C)3 6 9

D)7 5 1

35)有以下程序

fun(char p[][10])

{int n=0,i;

for(i=0;i<7;i++)

if(p[i][0]=='T') n++;

return n;

}

main()

{

char str[][10]={「Mon」, 「Tue」, 「Wed」, 「Thu」,」Fri」,」Sat」,」Sun」};

printf(「%d\n」,fun(str));

}

程序執行後的輸出結果是

A)1

B) 2

C)3

D) 0

36有以下程序

main()

{

int i,s=0,t[]={1,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2) s+=*(t+i);

printf(「%d\n」,s);

}

程序執行後的輸出結果是

A)45

B)20

C)25

D)36

37)有以下程序

void fun1(char *p)

{

char *q;

q=p;

while(*q!='\0')

{ (*q)++; q++; }

}

main()

{ char a[]={「Program」},*p;

p=&a[3]; fun1(p); printf(「%s\n」,a);

}

程序執行後的輸出結果是

A)P rohsbn

B)Prphsbn

C)Progsbn

D)Program

38)有以下程序

void swap(char *x,char *y)

{

char t;

t=*x; *x=*y; *y=t;

}

main()

{

char *s1=」abc」,*s2=」123」;

swap(s1,s2); printf(「%s,%s\n」,s1,s2);

}

程序執行後的輸出結果是

A)123,abc

B) abc,123

C)1bc,a23

D) 321,cba

39)有以下程序

int fun(int n)

{

if(n==1) return 1;

else

return (n+fun(n-1));

}

main()

{

int x;

scanf(「%d」,&x); x=fun(x); printf(「%d\n」,x);

}

程序執行時,給變數x輸入10,程序的輸出結果是

A)55

B) 54

C) 65

D) 45

40)有以下程序

int fun(int x[],int n)

{static int sum=0,i;

for(i=0;i sum+=x[i];

return sum;

}

main()

{int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;

s=fun(a,5)+fun(b,4); printf(「%d\n」,s);

}

程序執行後的輸出結果是

A)45

B)50

C)60

D)55

41)有以下程序

main()

{

union {

char ch[2];

int d;

}s;

s.d=0x4321;

printf(「%x,%x\n」,s.ch[0],s.ch[1]);

}

在16位編譯系統上,程序執行後的輸出結果是

A)21,43

B)43,21

C)43,00

D)21,00

42)有以下程序

main()

{

char *p[]={「3697」,」2584」};

int i,j; long num=0;

for(i=0;i<2;i++)

{j=0;

while(p[i][j]!='\0')

{ if((p[i][j]-『0')%2)num=10*num+p[i][j]-『0';

j+=2;

} }

printf(「%d\n」num);

}

程序執行後的輸出結果是

A)35

B)37

C)39

D)3975

43)執行以下程序後,test.txt文件的內容是(若文件能正常打開)

#include

main()

{

FILE *fp;

char *s1=」Fortran」,*s2=」Basic」;

if((fp=fopen(「test.txt」,」wb」))==NULL)

{ printf(「Can't open test.txt file\n」); exit(1);}

fwrite(s1,7,1,fp); /*把從地址s1開始的7個字元寫到fp所指文件中*/

fseek(fp,0L,SEEK_SET); /*文件位置指針移到文件開頭*/

fwrite(s2,5,1,fp);

fclose(fp);

}

A)Basican

B)BasicFortran

C)Basic

D)FortranBasic

44)以下敘述中錯誤的是

A)C語言源程序經編譯後生成後綴為.obj的目標程序

B)C語言經過編譯、連接步驟之後才能形成一個真正可執行的二進制機器指令文件

C)用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個文本文件中

D)C語言的每條可執行語句和非執行語句最終都將被轉換成二進制的機器指令

45)以下敘述中錯誤的是

A)演算法正確的程序最終一定會結束

B)演算法正確的程序可以有零個輸出

C)演算法正確的程序可以有零個輸入

D)演算法正確的程序對於相同的輸入一定有相同的結果

46)以下敘述中錯誤的是

A)C程序必須由一個或一個以上的函數組成

B)函數調用可以作為一個獨立的語句存在

C)若函數有返回值,必須通過return語句返回

D)函數形參的值也可以傳回對應的實參

47)設有以下定義和語句

char str[20]=」Program」,*p;

p=str;

則以下敘述中正確的是

A)*p與str[0]中的值相等

B)str與p的類型完全相同

C)str數組長度和p所指向的字元串長度相等

D)數組str中存放的內容和指針變數p中存放的內容相同

48)以下敘述中錯誤的是

A)C程序中的#include和#define行均不是C語句

B)除逗號運算符外,賦值運算符的優先順序最低

C)C程序中,j++;是賦值語句

D)C程序中,+、-、*、/、%號是算術運算符,可用於整型和實型數的運算

49)以下敘述中正確的是

A)預處理命令行必須位於C源程序的起始位置

B)在C語言中,預處理命令行都以「#」開頭

C)每個C程序必須在開頭包括預處理命令行:#include

D)C語言的預處理不能實現宏定義和條件編譯的功能

50)以下敘述中錯誤的是

A)可以通過typedef增加新的類型

B)可以用typedef將已存在的類型用一個新的名字來代表

C)用typedef定義新的類型名後,原有類型名仍有效

D)用typedef可以為各種類型起別名,但不能為變數起別名

二:填空題(每空2分,共40分)

請將每一個空的正確答案寫在答題卡[1]至[20]序號的橫線上,答在試卷上不得分

1)對長度為10的線性表進行冒泡排序,最壞情況下需要比較的次數為_______[1]________。

2)在面向對象方法中,_____[2]______描述的是具有相似屬性與操作的一組對象。

3)在關系模型中,把數據看成是二維表,每一個二維表稱為一個___[3]_____。

4)程序測試分為靜態分析和動態測試,其中__[4]______是指不執行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發現程序中的錯誤。

5)數據獨立性分為邏輯獨立性與物理獨立性,當數據的存儲結構改變時,其邏輯結構可以不變,因此,基於邏輯結構的應用程序不必修改,稱為_[5]______。

6)若變數a,b已定義為int類型並賦值21和55,要求用printf函數以a=21,b=55的形式輸出,請寫出完整的輸出語句__[6]____。

7)以下程序用於判斷a,b,c能否構成三角形,若能輸出YES,若不能輸出NO。當a,b,c輸入三角形三條邊長時,確定a,b,c能構成三角形的條件是需要同時滿足三條件:a+b>c,a+c>b,b+c>a。 請填空。

main()

{

float a,b,c;

scanf(「%f%f%f」,&a,&b,&c);

if(__[7]__)printf(「YES\n」);/*a,b,c能構成三角形*/

else printf(「NO\n」);/*a,b,c不能構成三角形*/

}

8)以下程序的輸出結果是__[8]_____

main()

{ int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;

for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1];

printf(「%d\n」,s);

}

9)當運行以下程序時,輸入abcd,程序的輸出結果是:_[9]____。

insert(char str[])

{ int i;

i=strlen(str);

while(i>0)

{ str[2*i]=str[i]; str[2*i-1]='*';i--;}

printf(「%s\n」,str);

}

main()

{char str[40];

scanf(「%s」,str ); insert(str);

}

10)以下程序的運行結果是:__[10]____

fun(int t[],int n)

{ int i,m;

if(n==1) return t[0];

else

if(n>=2) {m=fun(t,n-1); return m;}

}

main()

{

int a[]={11,4,6,3,8,2,3,5,9,2};

printf(「%d\n」,fun(a,10));

}

11)現有兩個C程序文件T18.c和myfun.c同時在TC系統目錄(文件夾)下,其中T18.c文件如下:

#include

#include」myfun.c」

main()

{ fun(); printf(「\n」); }

myfun.c文件如下:

void fun()

{ char s[80],c; int n=0;

while((c=getchar())!='\n') s[n++]=c;

n--;

while(n>=0) printf(「%c」,s[n--]);

}

當編譯連接通過後,運行程序T18時,輸入Thank!則輸出的結果是:___[11] 。

12)以下函數fun的功能是返回str所指字元串中以形參c中字元開頭的後續字元串的首地址,例如:str所指字元串為Hello!, c中的字元為e,則函數返回字元串:ello!的首地址。若str所指字元串為空串或不包含c中的字元,則函數返回NULL。請填空。

char *fun(char *str,char c)

{ int n=0;char *p=str;

if(p!=NULL)

while(p[n]!=c&&p[n]!='\0') n++;

if(p[n]=='\0' return NULL;

return (_[12]_);

}

13)以下程序的功能是:輸出100以內(不含100)能被3整除且個位數為6的所有整數,請填空。

main()

{ int i,j;

for(i=0;__[13]__;i++)

{ j=i*10+6;

if(_[14]____) continue;

printf(「%d 」,j);

}

}

14)以下isprime函數的功能是判斷形參a是否為素數,是素數,函數返回1,否則返回0,請填空

int isprime(int a)

{ int i;

for(i=2;i<=a/2;i++)

if(a%i==0) __[15]___;

__[16]___;

}

15)以下程序的功能是輸入任意整數給n後,輸出n行由大寫字母A開始構成的三角形字元陣列圖形,例如,輸入整數5時(注意:n不得大於10),程序運行結果如下:

A B C D E

F G H I

J K L

M N

O

請填空完成該程序。

main()

{ int i,j,n; char ch='A';

scanf(「%d」,&n);

if(n<11)

{

for(i=1;i<=n;i++)

{ for(j=1;j<=n-i+1;j++)

{ printf(「%2c」,ch);

___[17]____;

}

【18】

}

}

else printf(「n is too large!\n」);

printf(「\n」);

}

16)以下程序中函數fun的功能是:構成一個如圖所示的帶頭結點的單向鏈表,在結點數據域中放入了具有兩個字元的字元串。函數disp的功能是顯示輸出該單鏈表中所有結點中的字元串。請填空完成函數disp。

#include

typedef struct node /*鏈表結點結構*/

{ char sub[3];

Struct node *next;

}Node;

Node fun(char s) /*建立鏈表*/

{ …… }

void disp(Node *h)

{

Node *p;

p=h->next;

While(【19】)

{

printf(「%s\n」,p->sub); p=【20】;}

}

main()

{

Node *hd;

hd=fun(); disp(hd); printf(「\n」);
}

答案
一、選擇題
1-10 : DADBA DCDAC
11-20:CCADD BBBCA
21-30:CABDD CBDDD
31-40:DBCBB CACAC
41-50:ACADB DADBA

二、填空題
1、45
2、類
3、關系
4、靜態分析
5、物理獨立性
6、printf("a=%d,b=%d",a,b)
7、(a+b>c)&&(a+c>b)&&(b+c>a)
8、30
9、a*b*c*d*
10、11
11、!knahT
12、p+n 或 str+n
13、i<=9 或 i<10
14、j%3!=0
15、return 0
16、return 1
17、ch=ch+1
18、printf("\n")
19、p!=NULL
20、p->next

⑺ 全國計算機C語言二級 筆試題庫,套題 .上機的就不要了。

可以去上學吧網站看看,這裡面有歷年真題 模擬試題 預測試題 以及 單科練習,可以在線測試,也可以下載,是完全免費的,我去做過,覺得還不錯

⑻ 哥哥姐姐們,急求計算機二級c語言筆試題庫及答案。

上機考試的考題一般是題庫里選的。考試大會員中心的計算機會計從業資格考試都可以免費做的,你上網路搜索就可以。那個不能拷出來下載的,是在線題庫,模擬真實考場的,需要自己去在線做題。如果你要和人交流真題答案,可以去考試大論壇的計算機等級考試版塊里看看,有答案交流帖的。

⑼ 全國計算機等級考試二級C語言的考試題目都是從《C語言題庫》裡面抽取的題目嗎

全國計算機等級考試二級C語言的考試題目的小題不是從《C語言題庫》中抽取的,後面的大題即編程題全部是從最近的一年的《C語言題庫》中抽取的。考題大部分是C語言,少部分是演算法與數據結構裡面的東西。就算不是《C語言題庫》題庫里的題,但是題型都差不多的。

c語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言具有高效、靈活、功能豐富、表達力強和較高的可移植性等特點,在程序設計中備受青睞。C語言編譯器普遍存在於各種不同的操作系統中,例如Microsoft Windows、macOS、Linux、Unix等。C語言的設計影響了眾多後來的編程語言,例如C++、Objective-C、Java、C#等。