2025年C語言二級考試真題集錦及詳細解析_第1頁
2025年C語言二級考試真題集錦及詳細解析_第2頁
2025年C語言二級考試真題集錦及詳細解析_第3頁
2025年C語言二級考試真題集錦及詳細解析_第4頁
2025年C語言二級考試真題集錦及詳細解析_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

3月全國計算機等級考試二級C語言筆試真題

一、選擇題

(1)下列有關(guān)棧論述對的的是

A)棧頂元素最先能被刪除B)棧頂元素最終才能被刪除

C)棧底元素永遠不能被刪除D)以上三種說法都不對

(2)下列論述中對的的是

A)有一種以上根結(jié)點的數(shù)據(jù)構(gòu)造不一定是非線性構(gòu)造

B)只有一種根結(jié)點的數(shù)據(jù)構(gòu)造不一定是線性構(gòu)造

。循環(huán)鏈表是非線性構(gòu)造

D)雙向鏈表是非線性構(gòu)造

(3)某二叉樹共有7個結(jié)點,其中葉子結(jié)點只有1個,則該二叉樹的深度為(假設(shè)根結(jié)點在第1層)

A)3B)4C)6D)7

(4)在軟件開發(fā)中,需求分析階段產(chǎn)生的重要文檔是

A)軟件集成測試計劃B)軟件詳細設(shè)計闡明書

C)顧客手冊D)軟件需求規(guī)格闡明書

(5)構(gòu)造化程序所規(guī)定的基本構(gòu)造不包括

A)次序構(gòu)造B)GO1'O跳轉(zhuǎn)

C)選擇(分支)構(gòu)造D)反復(fù)(循疚)構(gòu)造

(6)下而描述中錯誤的是

A)系統(tǒng)總體構(gòu)造圖支持軟件系統(tǒng)的詳細設(shè)計

B)軟件設(shè)計是將軟件需求轉(zhuǎn)換為軟件表達的過程

C)數(shù)據(jù)構(gòu)造與數(shù)據(jù)庫設(shè)計是軟件設(shè)計的任務(wù)之一

D)PAD圖是軟件詳細設(shè)計的表達工具

(7)負責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是

A)數(shù)據(jù)定義語言B)數(shù)據(jù)管理語言

C)數(shù)據(jù)操縱語言D)數(shù)據(jù)控制語言

(8)?種教師可講授多門課程,一門課程可由多種教師講授。則實體教師用課程間的聯(lián)絡(luò)是

A)l:l聯(lián)絡(luò)B)l:m聯(lián)絡(luò)C)m:l聯(lián)絡(luò)D)m:n聯(lián)絡(luò)

(9)有三個關(guān)系R、S和T如下:

則由關(guān)系R和S得到關(guān)系T的操作是

A)自然連接B)交C)除D)并

(10)定義無符號整數(shù)類為Ulnt,下面可以作為類UInt實例化值的是

A)-369B)369C)0.369D)整數(shù)集合{1,234,5}

(II)計算機高級語言程序的運行措施有編譯執(zhí)行和解釋執(zhí)行兩種,如下論述中對的的是

A)C語言程序僅可以編譯執(zhí)行

B)C語言程序僅可以解釋執(zhí)行

C)C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行

D)以上說法都不對

(12)如下論述中錯誤的是

A)C語言的可執(zhí)行程序是由一系列機器指令構(gòu)成的

B)用C語言編寫的源程序不能直接右計算機上運行

C)通過編譯得到的二進制A的程序需要連接才可以運行

D)在沒有安裝C語言集成開發(fā)環(huán)境的機器上不能運行C源程序生成的.exe文獻

(13)如下選項中不能用作C程序合法常量的是

A)l,234B)'\123'C)123D)"\x7G"

(14)如下選項中可用作C程序合法實數(shù)的是

A).leOB)3.0e0.2C)E9D)9.12E

(15)若有定義語句:inta=3,b=2,c=l;,如下選項中錯誤的賦值體現(xiàn)式是

A)a=(b=4)=3;B)a=b=c+1;

C)a=(b=4)+c;D)a=I+(b=c=4);

(16)有如F程序段

charname[20J;

in(num;

scanf("name=%snum=%d'r,name;&num);

當(dāng)執(zhí)行上述程序段,并從鍵盤輸入:name=Lilinum=100lv回車〉后,name的值為

A)LiliB)namc=Lili

C)Lilinum=D)name=Lilinum=1001

(17)if語句的基本形式是:if(體現(xiàn)式)語句,如下有關(guān)“體現(xiàn)式”值的論述中對的的是

A)必須是邏輯值B)必須是整數(shù)值

C)必須是正數(shù)D)可以是任意合法的數(shù)值

(18)有如E程序

#include

main()

{ir.tx=011;

printf("%d\n",++x);

I

程序運行后的輸出成果是

A)12B)llC)10D)9

(19)有如卜程序

升include<stdio.h>

main()

{ir.ts;

scanf("%d",&s);

while(s>0)

{switch(s)

{casel:printf("%d",s+5);

case2:printf("%d",s+4);break;

case3:printf("%d",s+3);

defaull:printf("%d",s+1);break;

)

scanf("%d",&s);

運行時,若輸入I23450〈回車〉,則輸出成果是

A)6566456B)66656C)66666D)6666656

(20)有如下程序段

inti.n;

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

{n=rand()%5;

switch(n)

{casei:

case3:piintf("%d\n",n);break;

case2:

case4:printf("%d\ii",n);continue;

case0:exit(0);

)

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

}

如下有關(guān)程序段執(zhí)行狀況的論述,對的的是

A)tor循環(huán)語句固定執(zhí)行8次

B)當(dāng)產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作

C)當(dāng)產(chǎn)生的隨機數(shù)n為1和2時不做任何操作

D)當(dāng)產(chǎn)生的隨機數(shù)n為0時結(jié)束程序運行

(21)有如下程序

#include<stdio.h>

main()

{chars[l="OI2xy\O8s34f4w2";

inti,n=0;

for(i=0:s[ij!=0;i++)

if(s(i]>='0,&&s[i]<=,9,)n++;

piintf("%d\n",n);

|

程序運行后的輸出成果是

A)0B)3C)7D)8

(22)若i和k都是ini類型變量,有如下for語句

for(i=0,k=-l;k=1;k++)printf("*****\n");

下面有關(guān)語句執(zhí)行狀況的論述中對的的是

A)循環(huán)體執(zhí)行兩次B)循環(huán)體執(zhí)行一次

C)循環(huán)體一次也不執(zhí)行D)構(gòu)成無限循環(huán)

(23)有如下程序

#include<stdio.h>

main()

{charb.c;inti;

b=a';c='A';

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

{if(i%2)putchar(i+b);

elseputchar(i+c);

}

printf("'.n");

}

程序運行后的輸出成果是

A)ABCDEFB)AbCdEfC)aBcDeFD)abcdef

(24)設(shè)有定義:doublex[I01,*p=x;,如下能給數(shù)組x下標(biāo)為6的元素讀入數(shù)據(jù)的對的語句是

A)scanf("%f;&x[6]);B)scanf("%lf',*(x+6));

C)scanf("%lf',p+6);D)scanf("%lf',pl6J);

(25)有如下程序(闡明:字母A的ASCII碼值是65)

#include<stdio.h>

voidfun(char*s)

{\vhile(*s)

{if(*s%2)printf("%c",*s);

s++;

main()

{charalJ='BYTE";

fun(a);

printf("\n");

)

程序運行后的輸出成果是

A)BYB)BTC)YTD)YE

(26)有如下程序段

#includc<stdio.h>

main()

{...

while(getchar()!=,\n');

如下論述中對的的是

A)比while語句將無限循環(huán)

B)getchar()不可以出目前while語句的條件體現(xiàn)式中

C)當(dāng)執(zhí)行此while語句時,只有按回車犍程序才能繼續(xù)執(zhí)行

D)當(dāng)執(zhí)行此while語句時,按任意鍵程序就能繼續(xù)執(zhí)行

(27)有如下程序

#include<stdio.h>

main()

{ir.tx=l,y=O;

if(!x)y++;

elseif(x==O)

if(x)y+=2;

elsey+=3;

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

)

程序運行后的輸出成果是

A)3B)2C)lD)0

(28)若有定義語句:chars[3][IO],(*k)[3],*p;,則如下賦值語句對的的是

A)p=s;B)p=k;C)p=s[O];D;k=s;

(29)有如下程序

#include<stdio.h>

voidfun(char*c)

{\vhile(*c)

C++;

}

I

main()

{chars[81];

gcts(s);

fun(s);

puts(s);

)

當(dāng)執(zhí)行程序時從鍵盤上輸入HelloBeijingv回牟>,則程序的輸出成果是

A)hellobeijingB)HelloBeijing

OHELLOBEIJINGD)hELLOBeijing

(30)如下函數(shù)的功能是:通過鍵盤輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。

#include<stdio.h>

#defineN10

voidfun(intx|N])

{irti=0;

while(i<N)scanf(<*%dM,);

}

在程序中下劃線處應(yīng)填入的是

A)x+iB)&x[i+1]C)x+(i++)D)&x[++i]

(31)有如下程序

#include<stdio.h>

main()

{chara[3O],b[3O];

scanf("%s",a);

gets(b);

printf("%s\n%s\n".a,b);

)

程序運行時若輸入:

howareyou?Iamfine<回車>

則輸出成果是

A)howareyou?B)how

Iamfineareyou?Iamfine

C)kowareyou?IamfineD)howareyou?

(32)設(shè)有如卜函數(shù)定義

intfun(intk)

{if(k<l)return0;

elseif(k==l)return1;

elsereturnfun(k-1)+1;

}

若執(zhí)行調(diào)用語句:n=fun(3);,則函數(shù)fun總共被調(diào)用的次數(shù)是

A)2B)3C)4D)5

(33)有如下程序

#include<stdio.h>

intfun(inty)

{if(x!=y)return((x+y)/2);

elsereturn(x);

I

main()

{irta=4,b=5,c=6;

prin(f("%d\n",fun(2*a.fun(b.c)));

)

程序運行后的輸出成果是

A)3B)6C)8D)12

(34)有如下程序

#include<stdio.h>

intfun()

{staticintx=l;

x*=2;

returnx;

)

main()

{ir.ti,s=l;

for(i=l;i<=3;i++)s*=fun();

prin(f("%d\n",s);

)

程序運行后的輸出成果是

A)0B)10C)30D)64

(35)有如下程序

#include<stdio.h>

#defineS(x)4*(x)*x+l

main()

{ir.tk=5.j=2;

printf("%d\n",S(k+j));

)

程序運行后的輸出成果是

A)197B)143C)33D)28

(36)設(shè)有定義:struct{charmark[12];intnuml;doublenum2;}若變量為已對的賦初值,則如下語句中錯誤的是

A)tl=t2;B)t2.numl=tl.numl;

C)t2.mark=tl.niark:D)t2.num2=tl.num2;

(37)有如下程序

#includc<stdio.h>

structord

{intx,y;}叫2]={l,2,3,4};

main()

(

structord*p=dt;

printf("%d,",++(p->x));printf("%d\n",++(p->y));

)

程序運行后的輸出成果是

A)l,2B)4,lC)3,4D)2,3

(38)有如下程序

#include<stdio.h>

stirctS

{inta,b;}data[2]={10,100,20,200};

main()

{structSp=data[l];

printf("%d\n",++(p.a));

)

程序運行后的輸出成果是

A)10B)llC)20D)2I

(39)有如卜程序

include<stdio.h>

main()

{unsignedchara=8,c;

c=a?3;

prin(f("%d\n';c);

)

程序運行后的輸出成果是

A)32B)16C)1D)0

(40)設(shè)fp已定義,執(zhí)行語句fp=fopen("file","w");后,如下針對文本文獻file操作論述的選項中對的的是

A)寫操作結(jié)束后可以從頭開始讀B)只能寫不能讀

C)可以在原有內(nèi)容后追加寫D)可以隨意讀和寫

二、填空題

(1)行序線性表能進行二分查找的前提是該線性表必須是【1】存儲的。

⑵一棵二叉樹的中序遍歷成果為DBEAFC,前序遍歷成果為ABDECF,則后序遍歷成果為【2】。

⑶對軟件設(shè)計的最小單位(模塊或程序單元)進行的測試一般稱為【3】測一式。

(4)實體完整性約束規(guī)定關(guān)系數(shù)據(jù)庫中元組的[4]屬性值不能為空。

(5)在關(guān)系A(chǔ)(S.SN,D)和關(guān)系B(DCN,NM)中,A的主關(guān)鍵字是S,B的主關(guān)鍵字是D,則稱【5】是關(guān)系A(chǔ)的外

碼。

⑹如卜.程序運行后的輸出成果是【6】o

#include<stdio.h>

main()

{ir.ta;

a=(int)((double)(3/2)+0.5+(int)1.99*2);

printf("%d\n';a);

I

(7)有如下程序

#include<stdio.h>

main()

{ir.tx;

scanf("%d'\&x);

if(x>15)printf("%d",x-5);

if(x>10)printf("%d",x);

if(x>5)printf(',%d\n",x+5);

)

若程序運行時從鍵盤輸入12〈回車〉,則輸出成果為【7】o

(8)有如下程序(闡明:字符。的ASCII碼直為48)

#include<stdio.h>

main()

{charcl,c2;

scanf("%d",&cl);

c2=cl+9;

printf("%c%c\nH,cl,c2);

)

若程序運行時從鍵盤輸入48〈回車〉,則輸出成果為【8】。

(9)有如下函數(shù)

voidprt(charch,intn)

{inti;

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

printf(i%6!=0?,,%c',:,,%c\n,\ch);

|

執(zhí)行調(diào)用語句priC叫24);后,函數(shù)共輸出了[9]行*號。

(10)如下程序運行后的輸出成果是【10】.

#include<stdio.h>

main()

|intx=10,y=20,t=0;

if(x==y)t=x;x=y;y=(;

printf("%d%d\n",x,y);

(11)已知a所指的數(shù)組中有N個元素。函數(shù)fun的功能是,將卜標(biāo)k(k>0>開始的后續(xù)元素所有向前移動一種位置。

請?zhí)羁铡?/p>

voidfun(inta[Nl,intk)

{inti;

for(i=k;i<N;i++)a([11]]=a(i];

(12)有如卜程序,請在[12]處填寫對的語句,使程序可正常編譯運行。

#include<stdio.h>

[12];

main()

{doublex,y,(*p)();

scanfC'%lf%lf',&x,&y);

P=avg;

printf("%f\n",(*p)(x,y));

}

dotbleavg(doublea.doubleb)

{retum((a+b)/2);}

(13)如F程序運行后的輸出成果是[13]。

#include<stdio.h>

main()

{inti,n[5]={0};

fbr(i=l;i<=4;i++)

{n[i]=n[i-l]*2+l;printf("%d",n[i]);}

printt("\n");

I

(14)如F程序運行后的瑜出成果是【14】。

include<stdio.h>

#include<stdlib.h>

#include<string.h>

main()

{char*p;inti;

p=(char*)malk)c(sizeof(char)*20);

strcpy(p,"welcome");

for(i=6;i>=0;i-)putchar(*(p+i));

printf("\n");free(p);

}

(15)如下程序運行后的輸出成果是[15]o

#include<stdio.h>

main()

{FILE*fp;intx[6]={l,2,3,4,5,6},i;

fp=fbpen("test.<iat","wb");

fwri(c(x,sizcof(in(),3.fp);

rewind(fp);

fread(x,sizeof(int).3,fp);

for(i=0;i<6;i++)printf("%d",x[il);

printf("\n");

fcbse(fp);

參照答案

一、選擇題:

1-5ABDDB6-10ACDCB

11-15ADAAA16-20ADCAD

21-25BDBCD26-30CDCCC

31-35BBBDB36-40CDDCB

二、填空題:

[1]有序【2】DEBFCA13】的元

[4]主鍵[5]D[6]3

[7]1217[8]09[9]4

[10]200[II]M

[12]doubleavg(double,double);或doubleavg(doublea,doubleb);

【13】13715[14]emoclew[15]123456

9月二級C語言筆試真題及答案

((I)—(10)每題2分,(11)—(50)每題I分,共60分)

下列各題A)B)、C)D)四個選項中,只有一種選項是對的的,靖將對的選項涂寫在答題卡對應(yīng)位置上,答

在試卷上不得分

(1)下列論述中對的的是

A)棧是先進先出的線性表

,,

B)隊列是先進先出的線性表

C)循環(huán)隊歹IJ是非線性構(gòu)造

D)有序性表既可以采用次序存儲構(gòu)造,乜可以采用鏈?zhǔn)酱鎯?gòu)造

(2)支持子程序調(diào)用的數(shù)據(jù)構(gòu)造是

A)棧B)樹C)隊列D)二義樹

(3)某二叉樹有5個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)是

、

A)10B)8C/6D)4

(4)下列排序措施中,最壞狀況下比較次數(shù)至少的是

A)冒泡排序

B)簡樸選擇排序

C)直接插入排序

D)堆排序

(5)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是

A)編譯軟件

B)操作系統(tǒng)

C)教務(wù)管理系統(tǒng)

D)匯編程序

(6)下面論述中錯誤的是

A)軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤

B)對被調(diào)試的程序進行“錯誤定位”是程序調(diào)試的必要環(huán)節(jié)

C)程序調(diào)試一般也稱為Debug

D)軟件測試應(yīng)嚴格執(zhí)行測試計劃,排除測試的隨意性

(7)耦合性和內(nèi)聚性是對模塊獨立性度量的兩個原則。下列論述中對的的是

A)提高耦合性減少內(nèi)聚性有助于提高模塊的獨立性

B)減少耦合性提高內(nèi)聚性有助于提高模塊的獨立性

c)耦合性是指一種模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度

D)內(nèi)聚性是指模塊間互相連接的緊密程度

(8)數(shù)據(jù)庫應(yīng)用系統(tǒng)中的關(guān)鍵問題是

A)數(shù)據(jù)摩設(shè)計

B)數(shù)據(jù)庫系統(tǒng)設(shè)計

C)數(shù)據(jù)庫維護

D)數(shù)據(jù)庫管理員培訓(xùn)

有兩個關(guān)系RS如下

R

ABC

a32

b01

c21

S

AB

a3

b0

c2

由關(guān)系R通過運算得到關(guān)系則所使用的運算為

A)選擇B)投影C)插入D)連接

(10)將E-R圖轉(zhuǎn)換為關(guān)系模式時實體和聯(lián)絡(luò)都可以表達為

A;屬性B)鍵C)關(guān)系D)域

(li)如下選項中合法的標(biāo)識符是

A)1-1B)I—1C)-11D)I-

(12)若函數(shù)中有定義語句intk:.則

A)系統(tǒng)將自動給k賦初值0

B)這時k中值無定義

C)系統(tǒng)將自動給k賦初值“

D)這時k中無任何值

13)如下選項中能用作數(shù)據(jù)常量的是

A0115B)0118C)1.5el.5D)II5L

(14)設(shè)有定義intx=2;如下體現(xiàn)式中值不為6的是

Ax*=x+l

B)x++,2*x

C))

D)2*x,x+=2

(15)程序段intx=I2;

doubley=3.141593;printf%d%8.6f,x,y)的輸出成果是

A)123.141593

B)12

3.141593

C)123.141593

D)123.141593

(16)若有定義語句:doublex,y,*px,*py,執(zhí)行了px=&x,py=&y;之后,對的的輸入語句是

A)scanf(“%f%f”,x,y)

B)scanf("%f%f”,&x,&y)

C)scanf("%lf%le”,px,py)

D)scanf(“%lf%lf”,x,y)

(17)如下是if語句的基本形式:

if(體現(xiàn)式)

語句

其中體現(xiàn)式”

A)必須是邏輯體現(xiàn)式

B)必須是關(guān)系體現(xiàn)式

C)必須是邏輯休觀式或關(guān)系體現(xiàn)式

D)可以是任意合法的體現(xiàn)式

(18)有如下程序

#inckidc<s(dio.h>

main()

{intX;

scanf(%d”,&x);

if(x<=3);else

if(x!=IO)

printf(%d\n,x);

1

J

程序運行時,輸入的值在哪個范圍才會有輸出成果

A)不等于10的整數(shù)

B)不小于3且不等于10的整數(shù)

C)

不小于3或等于10的整數(shù)

D)不不小于3的整數(shù)

(19)有如下程序

#include<stdio.h>

Main()

(

inta=l.b=2,c=3,d=0;

if(a==1&&b++==2)

if(b!=2||c-!=3)

printf(%d,%d,%d\n”,a,b,c)

elseprintf(“%d,%d,%d\n”,a,b,c)

elseprintf(“%d,%d,%d\n”,a,b,c)

1

J

程序運行后的輸出成果是

A)1,2,3

B)1,3,2

C)1,3,3

D)3,2』

(二>0)如下程序中的變量已對的定義

for(i=0:i<4;i++,i++

for(k=l;k<3;k++)iprintf(*”);

程序段的輸出成果是

A)********

B**木木

c)**

D)*

(21)有如下程序

#include<stdio.h>

main()

{char

*s=(aABC)■

do

{printf(“%d”,*s%10);S++;

}while(*s)?

i

注意,字母A的ASCII碼值為65。程序運行后的輸出成果是

A)5670

B)656667

C)567

D)ABC

(22)設(shè)變量已對的定義,如下天能記錄出一行中輸入字符個數(shù)(不包括回車符)的程序段是

A)n=0;while((ch=getchar())!=\n)n++

B)n=0;while(getchar()!=''n')n++

C:for(n=0;gctchar()!=\n';n++)

D)n=0;for(ch=getchar();ch!='\n';n++)

(23)有如下程序

#includc<stdio.h>

main

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論