計(jì)算機(jī)等級(jí)考試二級(jí)C語言復(fù)習(xí)專題_第1頁
計(jì)算機(jī)等級(jí)考試二級(jí)C語言復(fù)習(xí)專題_第2頁
計(jì)算機(jī)等級(jí)考試二級(jí)C語言復(fù)習(xí)專題_第3頁
計(jì)算機(jī)等級(jí)考試二級(jí)C語言復(fù)習(xí)專題_第4頁
計(jì)算機(jī)等級(jí)考試二級(jí)C語言復(fù)習(xí)專題_第5頁
已閱讀5頁,還剩214頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)等級(jí)考試二級(jí)c語言考前密卷⑴(1)棧和隊(duì)列的共同特點(diǎn)是A)都是先進(jìn)先出B)都是先進(jìn)后出C)只允許在端點(diǎn)處插入和刪除元素D)沒有共同點(diǎn)(2)已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是acbeddecabdeabccedba(3)鏈表不具有的特點(diǎn)是A)不必事先估計(jì)存儲(chǔ)空間B)可隨機(jī)訪問任一元素C)插入刪除不需要移動(dòng)元素D)所需空間與線性表長度成正比(4)結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)B)分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)C)多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)D)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)(5)為了提高測試的效率,應(yīng)該A)隨機(jī)選取測試數(shù)據(jù)B)取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)C)在完成編碼以后制定軟件的測試計(jì)劃D)集中對(duì)付那些錯(cuò)誤群集的程序A)執(zhí)行算法程序所需要的時(shí)間B)算法程序的長度C)算法執(zhí)行過程中所需耍的基本運(yùn)算次數(shù)D)算法程序中的指令條數(shù)(7)軟件生命周期中所花費(fèi)用最多的階段是A)詳細(xì)設(shè)計(jì)B)軟件編碼C)軟件測試D)軟件維護(hù)(8)數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內(nèi)模式和外模式的語言為CBasicDDLDML(9)下列有關(guān)數(shù)據(jù)庫的描述,正確的是A)數(shù)據(jù)庫是一個(gè)DBF文件B)數(shù)據(jù)庫是一個(gè)關(guān)系C)數(shù)據(jù)庫是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合D)數(shù)據(jù)庫是一組文件(10)下列有關(guān)數(shù)據(jù)庫的描述,正確的是A)數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程B)數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變C)關(guān)系中的每一列稱為元組,一個(gè)元組就是一個(gè)字段D)如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字(11)以下敘述中正確的是C語言比其他語言高級(jí)C語言可以不用編譯就能被計(jì)算機(jī)識(shí)別執(zhí)行c語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點(diǎn)(12)C語言中用于結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)if,switch,breakfor,while,do-whileif,for,continue(13)C語言中最簡單的數(shù)據(jù)類型包括A)整型、實(shí)型、邏輯型B)整型、實(shí)型、字符型C)整型、字符型、邏輯型D)字符型、實(shí)型、邏輯型(14)若變量已正確定義并賦值,以下符合C語言語法的表達(dá)式是a:=b+la=b=c+2int18.5%3a=a+7=c+b(15)下列可用于C語言用戶標(biāo)識(shí)符的一組是void,define,WORDa3_b3,_123,CarFor,-abc,IFCase2a,DO,sizeof(16)C語言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是%=/C)=D)<=(17)若變量aj已正確定義,且i已正確賦值,合法的語句是a==1++i;a=a++=5;a=int(i);(18)已知intt=0;while(t=l){-}則以下敘述正確的是A)循環(huán)控制表達(dá)式的值為0B)循環(huán)控制表達(dá)式的值為1C)循環(huán)控制表達(dá)式不合法D)以上說法都不對(duì)(19)若變量已正確說明為float型,要通過語句scanf("%f%f%f",&a,&b,&c);給2賦予10.0,b賦予22.0,c賦予33.0,下列不正確的輸入形式是10<|可車>22C回車>3女回車〉10.0,22.0,33.0<回車〉10.0〈回車>22.033.0〈回車〉1022(回車>33<回車〉(20)有如下程序:main()(intx=l,a=0,b=0;switch(x)(case0:b++;a++;a++;b++;}printf("a=%d,b=%d\n",a,b);)該程序的輸出結(jié)果是a=2,b=la=l,b=la=l,b=Oa=2,b=2(21)有以下程序main(){inti=lj=l,k=2;if((j++llk++)&&i++)printf("%d,%d,%d\n”,i,j,k);)執(zhí)行后輸出結(jié)果是1,1,22,2,12,2,22,2,3(22)有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf(M%f\n",y);)該程序的輸出結(jié)果是C)0.500000D)1.000000(23)有如下程序:main(){intn=9;while(n>6){n-;printf("%d",n);})該程序的輸出結(jié)果是98787687659876(24)在下列選項(xiàng)中,沒有構(gòu)成死循環(huán)的是inti=100;while(1){i=i%100+l;if(i>100)break;)for(;;);intk=10000;do{k++;}while(k>10000);ints=36;while(s)—s;(25)設(shè)inix=l,y=l;表達(dá)式(!xlly—)的值是01D)-1(26)若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯(cuò)誤的是A)函數(shù)調(diào)用可以作為獨(dú)立的語句存在B)函數(shù)調(diào)用可以作為個(gè)函數(shù)的實(shí)參C)函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中D)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參(27)有以下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));)程序運(yùn)行后的輸出結(jié)果是A)編譯出錯(cuò)9219.0(28)若有以下調(diào)用語句,則不正確的fun函數(shù)的首部是main(){inta[50],n;fun(n,&a[9]);)voidfun(intm,intx[])voidfun(ints,inth[41])voidfun(intp,int*s)voidfun(intn,inta)(29)fseek函數(shù)的正確調(diào)用形式是fseek(文件指針,起始點(diǎn),位移量)fseek(文件指針,位移量,起始點(diǎn))fseek(位移量,起始點(diǎn),文件指針)fseek(起始點(diǎn),位移量,文件指針)(30)若fp是指向某文件的指針,且已讀到文件末尾,則函數(shù)feof(fp)的返回值是EOF-11NULL(31)若有說明語句:charc='\72';則變量cA)包含1個(gè)字符B)包含2個(gè)字符C)包含3個(gè)字符D)說明不合法,c的值不確定(32)若有說明inta[3][4];則a數(shù)組元素的非法引用是a[0][2*1]a[1][3]a[4-2][0]a[0][4](33)設(shè)有以下說明語句structstu{inta;floatb;}stutype;則卜面的敘述不正確的是struct是結(jié)構(gòu)體類型的關(guān)鍵字structstu是用戶定義的結(jié)構(gòu)體類型stutype是用戶定義的結(jié)構(gòu)體類型名a和b都是結(jié)構(gòu)體成員名(34)在C語言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是A)整型常量B)整型表達(dá)式C)整型常量或整型表達(dá)式D)任何類型的表達(dá)式(35)若運(yùn)行時(shí)給變量x輸入12,則以下程序的運(yùn)行結(jié)果是main(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);)0221210((36)以下說法正確的是A)C語言程序總是從第一個(gè)的函數(shù)開始執(zhí)行B)在C語言程序中,要調(diào)用函數(shù)必須在main()函數(shù)中定義C語言程序總是從main()函數(shù)開始執(zhí)行C語言程序中的main()函數(shù)必須放在程序的開始部分(37)表達(dá)式0x13Aox17的值是OxE80x17(38)有以下程序#defineF(X,Y)(X)*(Y)main()nta=3,b=4;printf("%d\n”,F(a++,b++));)程序運(yùn)行后的輸出結(jié)果是12151620(39)下列程序執(zhí)行后的輸出結(jié)果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf(*'%d\n",b[0]);I6789(40)若有下面的程序段:chars[]=',china,';char*p;p=s;A)s和p完全相同B)數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等s數(shù)組長度和p所指向的字符串長度相等*pVs[0]相等(41)以下程序中函數(shù)sort的功能是對(duì)a數(shù)組中的數(shù)據(jù)進(jìn)行由大到小的排序voidsort(inta[],intn){intfor(i=0;i<n-l;i++)for(j=i+l;j<n;j++)if(aLi]<a[j]){t=a[i];a[i]=a[j];a[j]=t;})main(){intaa[10]={1,2,3,4,56,7,8,9,10},i;sort(&aa[31,5);for(i=0;i<10;i++)printf(H%d,M,aaLi]);printf(M\nM);}程序運(yùn)行后的輸出結(jié)果是A)123,4,5,678,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,238,7,6,5,4,9,10,D)1210,9,876,5,4,3,(42)以下程序的運(yùn)行結(jié)果是#include"stdio.h"main(){structdate{intyear,month,day;}today;printf("%d\n*\sizeof(structdate));)681012(43)若有語句int*point,a=4;和point=&a;下面均代表地址的?組選項(xiàng)是A)a,point,*&a&*a,&a,*point*&point,*point,&a&a,&*point,point(44)在調(diào)用函數(shù)時(shí),如果實(shí)參是簡單的變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是A)地址傳遞B)單向值傳遞C)由實(shí)參傳形參,再由形參傳實(shí)參D)傳遞方式由用戶指定(45)已定義以下函數(shù)fun(char*p2,char*pl)(while((*p2=*pl)!='\O'){pl++;p2++;))函數(shù)的功能是A)將pl所指字符串復(fù)制到p2所指內(nèi)存空間B)將pl所指字符串的地址賦給指針p2C)對(duì)pl和p2兩個(gè)指針?biāo)缸址M(jìn)行比較D)檢查pl和p2兩個(gè)指針?biāo)缸址惺欠裼小?T(46)若執(zhí)行下述程序時(shí),若從鍵盤輸入6和8時(shí),結(jié)果為main(){inta,b,s;s=aif(a<b)s=b;s*=s;printf("%d”,s);)366448D)以上都不對(duì)(47)fscanf函數(shù)的正確調(diào)用形式是fscanf(fp,格式字符串,輸出表列);fscanf(格式字符串,輸出表列,fp);fscanf(格式字符串,文件指針,輸出表列);fscanf(文件指針,格式字符串,輸入表列);(48)下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是A)文件由ASCH碼字符序列組成,C語言只能讀寫文本文件B)文件由二進(jìn)制數(shù)據(jù)序列組成,C語言只能讀寫二進(jìn)制文件C)文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件D)文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件(49)有以下程序voidss(char*s,chart){while(*s){if(*s==t)*s=t-,a'+,A,;s++;

}main(){charstr1L100]=,,abcddfefdbd,,,c=,d,;ss(strl,c);printf("%s\nM,strl);)程序運(yùn)行后的輸出結(jié)果是ABCDDEFEDBDabcDDfefDbDabcAAfefAbAAbcddfefdbd(50)若以下定義:structlink{inidata;structlink*next;}a,b,c,*p?q;且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):a bdatanextdata next5tpcdatanext5tpcdatanext7Tq指針p指向變量aq指向變量Co則能夠把c插入到a和b之間并形成新的鏈表的語句組是:a.next=c;c.next=b;p.next=q;q.next=p.next;p->next=&c;q->next=p->next;(*p).next=q;(*q).next=&b;二、填空題(1)算法的基本特征是可行性、確定性、【1】和擁有足夠的情報(bào)。解析:算法是指解題方案的準(zhǔn)確而完整的描述。它有4個(gè)基本特征,分別是可行性、確定性、有窮性和擁有足夠的情報(bào)。(2)在長度為n的有序線性表中進(jìn)行二分查找。最壞的情況下,需要的比較次數(shù)為【2】。解析:對(duì)于長度為n的有序線性表,在最壞情況下,二分查找只需要比較log2n次,而順序查找需要比較n次。(3)在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類描述的是具有相似性質(zhì)的一組【3】.解析:將屬性、操作相似的對(duì)象歸為類,也就是說,類是具有共同屬性、共同方法的對(duì)象的集合。(4)通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為【4】.解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、交付使用以及維護(hù)等活動(dòng)。(5)數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【5】3種。解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個(gè)標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。(6)設(shè)y是int型,請寫出y為奇數(shù)的關(guān)系表達(dá)式【6】。答案(y%2)=l(7)設(shè)inta=5,b=6,表達(dá)式(++a=b-)?++a:--b的值是[7]。解析:此表達(dá)式為三目運(yùn)算符,++a的值為6,b 的值為6,則整個(gè)表達(dá)式的值為++a的值,++a的值為7。請注意前綴++,-和后綴++,-的區(qū)別。(8)下列程序的輸出結(jié)果是[8】。maim(){charb[]="Helloyou";b[5]=0;printf("%s\n",b);}解析:語句b[5]=0;相當(dāng)于語句b[5]=\(y,且,\(y為字符串結(jié)束標(biāo)志,輸出時(shí)遇到'\0,就停止輸出。(9)當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳遞的是【9】。解析:在函數(shù)中,可以通過指針變量來引用調(diào)用函數(shù)中對(duì)應(yīng)的數(shù)組元素,此操作是通過傳遞數(shù)組的首地址來實(shí)現(xiàn)。(10)以下程序的輸出結(jié)果是【10】。inta=1234;printf(M%2d\nH,a);解析:在%與格式符之間插入一個(gè)整形數(shù)來指這輸出寬度,并不影響數(shù)據(jù)的完整性,當(dāng)插入的寬度小于實(shí)際的寬度時(shí),則實(shí)際的寬度輸出。(11)用高級(jí)語言編寫的程序稱為【11】程序,它可以通過解釋程序翻譯一句執(zhí)行一句的方式執(zhí)行,也可以通過編譯程序?次翻譯產(chǎn)生目標(biāo)程序,然后執(zhí)行。解析:用高級(jí)語言編寫的程序稱為源程序,源程序不能在計(jì)算機(jī)上直接運(yùn)行,運(yùn)行源程序有兩種方式:一種是通過解釋程序,對(duì)源程序逐句解釋執(zhí)行;另一種是先讓編譯程序?qū)⒃闯绦蛞淮畏g產(chǎn)生目標(biāo)程序(目標(biāo)程序是計(jì)算機(jī)可直接執(zhí)行的機(jī)器語言程序,它是?種二進(jìn)制代碼程序),然后執(zhí)行目標(biāo)程序。(12)以下程序的輸出結(jié)果是【12】。main(){inta=0;a+=(a=8);printf(M%d\nn,a);)解析:賦值表達(dá)式的值就是所賦值變量的值,本題中a+=8相當(dāng)于a=a+8,對(duì)表達(dá)式逐步進(jìn)行求解:a+=(a=8)此時(shí),a的值由于賦值為8,而不是0a+=8a=a+8a=16(13)函數(shù)l-0I+voidfbn(float*sn,intn)的功能是:根據(jù)以下公式計(jì)算S,計(jì)算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請?zhí)羁铡oidfun(float*sn,intn){floats=0.0,w,f=-1.0;inti=0;for(i=0;i<=n;i++){f=[13]*f;w=f7(2*i+l);s+=w;}=s;}解析:C語言中實(shí)參變量和形參變量的數(shù)據(jù)傳遞是單向的“值傳遞”方式。指針變量作函數(shù)也要遵循這一規(guī)則。調(diào)用函數(shù)不可能改變實(shí)參指針變量的值,但可以改變實(shí)參指針變量所指變量的值。(14)函數(shù)fim的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個(gè)正數(shù)口= ulI 且要求m>n。。!(m-n)!例如:m=12,n=8時(shí),運(yùn)行結(jié)果應(yīng)該是495.000000。請?jiān)陬}目的空白處填寫適當(dāng)?shù)某绦蛘Z句,將該程序補(bǔ)充完整。#include<conio.h>#include<stdio.h>floatfun(intm,intn){inti;doublep=l.0;for(i=l;i<=m;i++)[15];for(i=l;i<=n;i-H-)[16];for(i=l;i<=m-n;i-H-)p=p/i;returnp;}main(){clrscr();printf(np=%f\nM,fun(12,8));}解析:本題中,欲求p的值,需耍先求m,n,m-n的階乘值,可用循環(huán)語句實(shí)現(xiàn)。(15)該程序運(yùn)行的結(jié)果是[17]?#include<conio.h>#include<stdio.h>#defineM100voidfun(intm,int*a,int*n){inti,j=0;for(i=l;i<=m;i++)if(i%7==0lli%ll==0)a[j++]=i;*n=j;}main(){intaa[M],n,k;clrscr();fun(10,aa,&n);for(k=0;k<n;k++)if((k+1)%20==0)printf(”\n");elseprintf("%4dH,aa[k]);printf(M\nM);}解析:解答本題的關(guān)鍵是要讀懂程序,試題要找出能被7或11整除的所有整數(shù),注意數(shù)學(xué)中的“或”和c語言中的“或”的區(qū)別,但在此處,if條件語句中用了“ir運(yùn)算符,若要找能同時(shí)被7和11整除的所有整數(shù)則在if()中應(yīng)用運(yùn)算符。當(dāng)然,如果m的值輸入50,即表達(dá)式firn(10,aa,&n);為fun(50,aa,&n);時(shí)輸入結(jié)果為:711142122283335424449。(16)下列程序的功能是:求出ss所指字符串中指定字符的個(gè)數(shù),并返回此值。例如,若輸入字符串123412132,輸入字符1,則輸出3,請?zhí)羁铡?include<conio.h>#include<stdio.h>#defineM81intfun(char*ss,charc){inti=0;for(;[18];ss++)if(*ss=c)i++;returni;}main(){chara[M],ch;clrscr();printf(M\nPleaseenterastring:n);gets(a);printf("\nPleaseenterachar:");ch=getchar();printf("\nThenumberofthecharis:%d\n",fun(a,ch));}解析:從字符串ss中找出子字符串的方法是:從第1個(gè)字符開始,對(duì)字符串進(jìn)行遍歷;若SS串的當(dāng)前字符等于t串的第1個(gè)字符,兩字符串的指針自動(dòng)加1,繼續(xù)比較下一個(gè)字符;若比較至字符串的結(jié)尾,則跳出循環(huán);若SS串的字符和C串的字符對(duì)應(yīng)不同,繼續(xù)對(duì)SS串的下一個(gè)字符進(jìn)行處理。本程序是采用逐一比較的方式找出出現(xiàn)的次數(shù)。循環(huán)的作用是在串中從左到右逐一走動(dòng),if()的作用是進(jìn)行判斷是否相同,若與C相同則表示又出現(xiàn)一次。(17)下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請?zhí)羁铡?include"stdio.h"FILE*fp;{charch;if((fp=fopen([19]))=NULL)exit(0);while((ch=getchar())!='?')fputc(ch,fp);fclose(fp);}解析:fopen函數(shù)的調(diào)用方式通常為:FILE*fpfp=fopen(文件名,使用文件方式);(18)設(shè)有如下宏定義#defineMYSWAP(z,x,y){z=x;x=y;y=z;}以下程序段通過宏調(diào)用實(shí)現(xiàn)變量a,b內(nèi)容交換,請?zhí)羁?。floata=5,b=16,c;MYSWAP([20].a,b);解析:該題考查兩個(gè)知識(shí)點(diǎn):(1)用一個(gè)指定的標(biāo)識(shí)符(即名字)來代表一個(gè)字符串,它的?般形式為#define標(biāo)識(shí)符字符串(2)在MYSWAP宏定義中,利用中間變量z來交換x和y的值,所以要實(shí)現(xiàn)a和b的交換,只需通過中間變量即可,所以,此處應(yīng)填c。選擇題TOC\o"1-5"\h\z01-05 C D B D D06-10 C D C C B11-15 C A B B B16-20 A B B B A21-25 C C S D B26-30 D B D B C31-35 A D C C A36-40 C A A A D41-45 C A B B A46-50BDDBD計(jì)算機(jī)等級(jí)考試二級(jí)c語言考前密卷Q)一、選擇題(1)已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為GEDHFBCADGEBHFCAABCDEFGHACBFEDHG(2)樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是A)有且只有11或多于10或1D)至少2(3)如果進(jìn)棧序列為el,e2,e3,e4,則可能的出棧序列是e3,el,e4,e2e2,e4,e3,ele3,e4,el,e2D)任意順序(4)在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是A)不限制goto語句的使用B)減少或取消注解行C)程序越短越好D)程序結(jié)構(gòu)應(yīng)有助于讀者理解(5)程序設(shè)計(jì)語言的基本成分是數(shù)據(jù)成分、運(yùn)算成分、控制成分和A)對(duì)象成分B)變量成分C)語句成分D)傳輸成分(6)下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是A)便于用戶、開發(fā)人員進(jìn)行理解和交流B)反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)C)作為確認(rèn)測試和驗(yàn)收的依據(jù)D)便于開發(fā)人員進(jìn)行需求分析(7)下列不屬于軟件工程的3個(gè)要素的是A)工具B)過程C)方法D)環(huán)境(8)單個(gè)用戶使用的數(shù)據(jù)視圖的描述稱為A)外模式B)概念模式C)內(nèi)模式D)存儲(chǔ)模式(9)將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成A)屬性B)關(guān)系C)鍵D)域SQL語言又稱為A)結(jié)構(gòu)化定義語言B)結(jié)構(gòu)化控制語言C)結(jié)構(gòu)化查詢語言D)結(jié)構(gòu)化操縱語言(11)下列敘述中正確的是C語言編譯時(shí)不檢查語法C語言的子程序有過程和函數(shù)兩種C語言的函數(shù)可以嵌套定義C語言的函數(shù)可以嵌套調(diào)用(12)在C語言中,退格符是\n\t\f\b(13)以下敘述中正確的是A)構(gòu)成C程序的基本單位是函數(shù)B)可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)main()函數(shù)必須放在其他函數(shù)之前D)所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義(14)在C程序中,判邏輯值時(shí),用“非0”表示邏輯值“真",又用叩'表示邏輯值“假”。在求邏輯值時(shí),用()表示邏輯表達(dá)式值為“真",又用()表示邏輯表達(dá)式值為“假”。1001C)非0非011(15)在C語言中,運(yùn)算對(duì)象必須是整型數(shù)的運(yùn)算符是%\%和\**(16)字符型數(shù)據(jù)在機(jī)器中是用ASCII碼表示的,字符“5”和在機(jī)器中表示為10100011和0111011101000101和0110001100110101和0011011101100101和01100111(17)若已定義:inta=25,b=14,c=19;以下三目運(yùn)算符(?:)所構(gòu)成語句的執(zhí)行后a<=25&&b—<=2&&c?printf("***a=%d,b=%d,c=%d\nH,a,b,c):printf(n###a=%d,b=%d,c=%d\nH,a,b,c);程序輸出的結(jié)果是***a=25,b=13,c=19B)***a=26,b=14,c=19C)###a=25,b=13,c=19D)###a=26,b=14,c=19(18)若有定義:inta=7;noalx=2.5,y=4.7;則表達(dá)式x+a%3*(int)(x+y)%2/4的值是A)2.5000002.750000C)3.500000D)0.0(X)000(19)下列程序段的輸出結(jié)果是:inta=1234;floatb=123.456;doublec=12345.54321;printf(H%2d,%2.1f,%2.1f;a,b,c);A)無輸出B)12,123.5,12345.5C)1234,123.5,12345.5D)1234,123.4,1234.5(20)若運(yùn)行以下程序時(shí),從鍵盤輸入ADescriptor<CR>(vCR>表示回車),則下面程序的運(yùn)行結(jié)果是#include<stdio.h>main(){charc;intv0=l,vl=0,v2=0;do{switch(c=getchar()){case'a':case'A':caserer:case'E':case'i':caseT:case'o':case'O':case'u':case'U':vl+=1;default:v0+=l;v2+=1;}}while(c!=\nr);printf(,'v0=%d,vl=%d,v2=%d\nH,vO,vl,v2);}A)v0=7,vl=4,v2=7B)v0=8,vl=4,v2=8vO=ll,vi=4,v2=l1D)v0=13,vl=4,v2=12(21)設(shè)有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d”,s);則A)運(yùn)行程序段后輸出0B)運(yùn)行程序段后輸出1C)程序段中的控制表達(dá)式是非法的D)程序段執(zhí)行無限次(22)有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x>10.0)y=1.0/x;elsey=1.0;printf(M%f\nM,y);}該程序的輸出結(jié)果是0.0000000.2500000.5000001.000000(23)執(zhí)行下面的程序段后,變量k中的值為intk=3,s[2];s[0]=k;k=s[1]*10;A)不定值333010(24)以下程序段的描述,正確的是x=-l;do{x=x*x;}while(!x);A)是死循環(huán)B)循環(huán)執(zhí)行兩次C)循環(huán)執(zhí)行次D)有語法錯(cuò)誤(25)以下選項(xiàng)錯(cuò)誤的是A)main(){intx,y,z;x=O;y=x-l;z=x+y;}{intx,y,z;x=O,y=x+1;z=x+y;}main(){intx;intinty;x=O,y=x+l;z=x+y;}main(){intx,y,z;x=O;y=x+l;z=x+y,}(26)有如下程序段inta=14,b=!5,x;charc-Ar;x=(a&&b)&&(cvB);執(zhí)行該程序段后,x的值為turefalse01(27)卜列程序執(zhí)行后的輸出結(jié)果是voidfund(inti);voidfunc2(inti);charst[]=”heno,friend!”;voidfunc1(inti){printf("%cn,stLi]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf(M%cn,st[i]);if(i<3){i+=2;funcl(i);}}main(){inti=0;fund(i);printf(M\n");}hellohelhlohim(28)以下函數(shù)返回a所指數(shù)組中最大值所在的下標(biāo)值fun(int*a,intn){inti,j=O,p;P=j;for(i=j;i<n;i++)if(aLi]>a[p]);return(p);}在下劃線處應(yīng)填入的內(nèi)容是i=pa[p]=aLi]C)p=jD)p=I(29)卜面說明不正確的是chara[10]=HchinaM;chara[10],*p=a;p=uchinaMchar*a;a=,,chinan;chara[10],*p;p=a=,,chinaH(30)以下程序的輸出結(jié)果是#include<stdio.h>voidprt(int*x,int*y,int*z){prinlf("%d,%d,%d\n”,++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);}A)11,42,3112,22,41B)11,41,2012,42,20C)11,21,4011,21,21D)11,41,2112,42,22(31)若有函數(shù)內(nèi)部說明:inta[3][4];則數(shù)組a中各元素A)可在程序的運(yùn)行階段得到初值0B)可在程序的編譯階段得到初值0C)不能得到確定的初值D)可在程序的編譯或運(yùn)行階段得到初值0(34)定義如下變量和數(shù)組:intk;inta[3][3]={9,876,5,4,3,2,1};則下面語句的輸出結(jié)果是for(k=0;kv3;k++)printf("%d",a[k][k]);753951963D)741(35)下列程序執(zhí)行后的輸出結(jié)果是main(){chararr[2][4];strcpy(arr,"you");strcpy(arr[1],"me");arr[0][3]='&,;printf("%s\n",arr);}you&meyoumeerr(36)有以下函數(shù)charfiin(char*p){returnp;}該函數(shù)的返回值是A)無確切的值B)形參p中存放的地址值C)一個(gè)臨時(shí)存儲(chǔ)單元的地址D)形參p自身的地址值(37)以下正確的說法是A)定義函數(shù)時(shí),形參的類型說明可以放在函數(shù)體內(nèi))return后邊的值不能為表達(dá)式C)如果函數(shù)值的類型與返回值類型不一致,以函數(shù)值類型為準(zhǔn)D)如果形參與實(shí)參類型不一致,以實(shí)參類型為準(zhǔn)(38)有以下程序intf(intn)if(n=l)return1;elsereturnf(n-1)+1;}inti,j=O;for(i=l;i<3;i++)j+=f(i);printf("%d\n1,,j);}程序運(yùn)行后的輸出結(jié)果是4321(39)設(shè)有如下定義:struckskinta;floatb;data;int*p;若要使P指向data中的a域,正確的賦值語句是p=&a;p=data,a;p=&data.a;*p=data.a;u(40)以下對(duì)結(jié)構(gòu)體類型變量的定義中,不正確的是typedefstructaa{intn;floatm;}AA;AAtdl;#defineAAstructaaAA{intn;floatm;}tdl;struct{intn;floatm;}aa;structaatdl;struct{intn;floatm;}tdl;(41)若說明int*p,n;則通過語句scanf能夠正確讀入數(shù)據(jù)的程序段是p=&n;scanf("%d",&p);p=&n;scanf(u%d';*p);scanf ;p=&n;scanf(,'%d,',p);(42)在下述程序中,判斷i>j共執(zhí)行的次數(shù)是main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf(u%d';s);break;}s+=i;))A)456(43)以下4個(gè)選項(xiàng)中,不能看做一條語句的是A);a=5,b=2.5,c=3.6;if(a<5);if(b!=5)x=2;y=6;(44)在C語言中,變量的隱含存儲(chǔ)類別是autostaticexternD)無存儲(chǔ)類別(45)若有以下程序#include<stdio.h>voidf(intn);main(){voidf(intn);f(5);)voidf(intn){printf("%d\n",n);}則以下敘述中不正確的是A)若只在主函數(shù)中對(duì)函數(shù)f進(jìn)行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)fB)若在主函數(shù)前對(duì)函數(shù)f進(jìn)行說明,則在主函數(shù)和其后的其他函數(shù)中都可以正確調(diào)用函數(shù)fC)對(duì)于以上程序,編譯時(shí)系統(tǒng)會(huì)提示出錯(cuò)信息:提示對(duì)f函數(shù)重復(fù)說明D)函數(shù)f無返回值,所以可用void將其類型定義為無返回值型(46)若有下面的說明和定義structtest{intml;charm2;floatm3;unionuu{charul[5];intu2[2];}ua;}myaa;則sizeof(structtest)的值是1216149(47)以下程序的輸出是structstintx;int*y;}*p;intdt[4]={10,20,30,40);structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};main()p=aa;printf("%d\n”,++(p->x));110115160(48)若有運(yùn)算符v<,sizeofd&=,則它們按優(yōu)先級(jí)由高至低的正確排列次序是sizeof,&=,?,Asizeof,?,A,&=A,?,sizeof,&=?,A,&=,sizeof(49)函數(shù)fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始點(diǎn)是A)文件開始B)文件末尾C)文件當(dāng)前位置D)以上都不對(duì)(50)有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen("dl.dat","w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("dl.dat","r");fscanf(fp,"%d%d".&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是2030205030503020二、填空題(1)數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【1】。解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式。在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅要存放各數(shù)據(jù)兀素的信息,還需要存放各數(shù)據(jù)兀素之間的前后件關(guān)系的信息。(2)在面向?qū)ο蠓椒ㄖ校愔g共享屬性和操作的機(jī)制稱為【2】?解析:類是面向時(shí)象語言中必備的程序語言結(jié)構(gòu),用來實(shí)現(xiàn)抽象數(shù)據(jù)類型。類與類之間的繼承關(guān)系實(shí)現(xiàn)了類之間的共享屬性和操作,一個(gè)類可以在另一個(gè)已定義的類的基礎(chǔ)上定義,這樣使該類型繼承了其超類的屬性和方法,當(dāng)然,也可以定義自己的屬性和方法。(3)耦合和內(nèi)聚是評(píng)價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中【3】反映了模塊內(nèi)各成分之間的聯(lián)系。解析:內(nèi)聚性是一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量,內(nèi)聚是從功能角度來度量模塊內(nèi)的聯(lián)系;耦合性是模塊間互相連接的緊密程度的度量。(4)一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體"項(xiàng)目主管"與實(shí)體"項(xiàng)目”的聯(lián)系屬于【4】的聯(lián)系。解析:兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,即一對(duì)一(1:1)的聯(lián)系、一對(duì)多(1:N)或多對(duì)一(N:1)的聯(lián)系和多對(duì)多(N:N)的聯(lián)系。(5)數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、【5】、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。解析:數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段及數(shù)據(jù)庫運(yùn)行和維護(hù)階段。(6)以下程序的運(yùn)行結(jié)果是【6】.#defineMAX(a,b)(a>b?a:b)+1main()(inti=6,j=8,k;printf("%d\n",MAX(ij));解析:本題考查宏定義與三目運(yùn)算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個(gè)表達(dá)式的值,否則為b+1的值為整個(gè)表達(dá)式的值,(應(yīng)注意后面的加1)。(7)以下程序的功能是從健盤輸入若干學(xué)生的成績,并輸出最高成績和最低成績,當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束。請?zhí)羁?。main()(floatx,amax,amin;scanf(H%f,,&x);amax=x;amin=x;while([7]){if(x>amax)amax=x;elseif[8]amin=x;elsescanf ;)printf(M\namax=%f\namin=%f\n'\amax,amin);)解析:本題先從鍵盤接受數(shù)值,并分別賦給amax(用于保存最高成績)和amin(用干保存最低成績),然后通過while循環(huán)控制是否結(jié)束輸入,并旦通過if語句來給amax和amin賦值和進(jìn)行下一次的輸入。(8)在對(duì)文件操作的過程中,若要求文件的位置指針回到文件的開始處,應(yīng)當(dāng)調(diào)用的函數(shù)是[9]o答案;rewind()(9)在計(jì)算機(jī)中,字符的比較是對(duì)它們的【10】進(jìn)行比較。解析:C語言中,字符也可以進(jìn)行比較運(yùn)算,且是按照ASCII碼值進(jìn)行的。(10)在內(nèi)存中,存儲(chǔ)字符X要占用1個(gè)字節(jié),存儲(chǔ)字符串"X"要占用[113個(gè)字節(jié)。解析:計(jì)算機(jī)存儲(chǔ)一個(gè)字符用1個(gè)字節(jié),存儲(chǔ)字符串時(shí),每個(gè)字符用占用1個(gè)字節(jié),另在字符串的行效字符之后存儲(chǔ)1個(gè)字符串的結(jié)束標(biāo)記符。所以存儲(chǔ)字符串“X”要占用2個(gè)字節(jié),存儲(chǔ)字符k只要1個(gè)字節(jié)。(11)下列程序的輸出結(jié)果是16.00,請?zhí)羁?。main(){inta=9,b=2;floatx=[12],y=l,l,z;z=a/2+b*x/y+l/2;printf("%5.2f\n",z);)解析:本題最后一條語句,表示以浮點(diǎn)格式輸出z的值,寬度為5,其中所含2位小數(shù),應(yīng)該注意的是,兩個(gè)整型運(yùn)算結(jié)果仍為整型,如1/2的結(jié)果為0,對(duì)本題可逐步求解:16.00=9/2+2*x/l.1+1/216.00=4+2*x/1.1+012.00=2*x/l.l所以,x的值為6.6。(12)設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部[131。要求形參名為bomain(){doubles[10][22];intn;;fun(s);解析:本題中,為了明確表示“不帶回值”,可以用“void”定義“無類型”(或稱“空類型”)。這系統(tǒng)就保證不使函數(shù)帶回任何值,二維數(shù)組的第一維可以省略。(13)下列程序的功能是輸入一個(gè)整數(shù),判斷是否是素?cái)?shù),若為素?cái)?shù)輸出1,否則輸出0,請?zhí)羁?。main(){inti,x,y=l;scanf("%d",&x);for(i=2;i<=x/2;i++)if[14]{y=0;break;}printf("%d\n",y);)解析:為判數(shù)x是否是素?cái)?shù),預(yù)置變量y的值為1(x可能是素?cái)?shù)),然后用循環(huán),用2至x/2的整數(shù)i測試對(duì)x的整除性,若能被其中的某個(gè)整數(shù)整除,則x是合數(shù),置y的值為0(x不是素?cái)?shù)),結(jié)束測試循環(huán)。若都不能整除,則x為素?cái)?shù)。i能否整除x,可用求余運(yùn)算x%i等于0來判定。所以程序中的空框可填x%i=0o加弒x為素?cái)?shù)的代碼可寫成:y=1;for(i=2;i<=x/2;i++)if(x%i=0){y=0;break;}(14)下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?include<string.h>main(){intij.[15];charstr[]={"1234567"}:for(i=O,j=strlen(str)[16];i<j;i++,j—){k=str[i];str[i]=str[j];str[j]=k;)printf("%s\n",str);解析:顛倒一個(gè)字符串中的字符,就是首尾對(duì)應(yīng)的元素兩兩交換。簡單地可用兩個(gè)游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個(gè)變量值為下標(biāo)的元素str[i]和str[j].開始時(shí),i的值為0,j的值為字符串末元素的下標(biāo)(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]還位于str[j]的前面,即i<j。字符串末元素的下標(biāo)是它的長度減1,所以在第二個(gè)空框處應(yīng)填入-1。程序?yàn)榱私粨Qstr[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中一起定義,所以在第一個(gè)空框處應(yīng)填入k。(15)以下程序可把輸入的十進(jìn)制數(shù)以十六進(jìn)制數(shù)的形式輸出,請?zhí)羁?。main(){charb[17]={"0123456789ABCDEF");intc[64],d,i=0,base=16;longn;printf("Enteranumber:\n");scanf("%ld",&n);do{c[i]=[17];i++;n=n/base;}while(n!=0);printf("Transmitenewbase:\n");for(—i;i>=0;—i){d=c[i];printf("%c",b[18]);}printf("\n");)解析:程序中,字符數(shù)組b存儲(chǔ)十六進(jìn)制的16個(gè)數(shù)字符,整型數(shù)組c存儲(chǔ)譯出的十六進(jìn)制數(shù)的各位數(shù)值。從整數(shù)n洋出它的各位十六進(jìn)制數(shù)值,需采用除16取余的方法,即求n除16的余,得到它的十六進(jìn)制的個(gè)位數(shù),接著將n除以16。在n不等于0的情況下循環(huán),能順序求出n的十六進(jìn)制的個(gè)位數(shù)、十位數(shù)、百位數(shù)等等。程序中變量base已預(yù)置16,所以在第I個(gè)空框處可填代碼n%base。當(dāng)n的十六進(jìn)制數(shù)的個(gè)位、Hi、百位等依次存放于數(shù)組C中后,就從最高位至最低位,參照數(shù)組c[i]的內(nèi)容d(以其內(nèi)容為下標(biāo)),取十六進(jìn)制數(shù)字符表中的字符bEd]輸出。所以在第2個(gè)空框處可填入代碼[d]。(16)若給fun函數(shù)的形參s傳送字符串:"]]6354abec"(其中]表示空格字符),則函數(shù)的返回值是[19].#include<ctype.h>longfun(chars口)(longn;intsign;for(;isspace(*s);s++);sign=(*s=z-9if(*s=='+'||*s=='-')s++;fbr(n=O;isdigit(*s);s++)n=10*n+(*s,0');returnsign*n;)解析:函數(shù)fun的第一個(gè)for循環(huán)跳過字符串的前導(dǎo)空白符,接著判斷第一個(gè)非空白符是否是負(fù)號(hào),若是則置變量sign為?1;否則,置變量sign為1。接著的if語句在第一個(gè)非空白字符是負(fù)號(hào)或正號(hào)時(shí),跳過該字符。以后的for循環(huán)將后面的數(shù)字符當(dāng)作十進(jìn)制數(shù)的各位數(shù)字譯出一個(gè)長整數(shù)n。遇字符a時(shí),結(jié)束循環(huán)。最后,函數(shù)返回sign與n的乘積。所以若調(diào)用函數(shù)時(shí)提供的實(shí)參是“UU6354abc",函數(shù)返回值是6354。(17)設(shè)有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;*\則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc[20]a。解析:若有結(jié)構(gòu)變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的標(biāo)記形式有abc.a和p_abc->a0選擇題01-05BABDD

06-10D11-15D16-20C21-25BDACD06-10D11-15D16-20C21-25BDACD26-30D31-35CD36-40B41-45DDD46-50AC計(jì)算機(jī)等級(jí)考試二級(jí)c語言考前密卷⑶一、選擇題(1)算法的空間復(fù)雜度是指A)算法程序的長度B)算法程序中的指令條數(shù)C)算法程序所占的存儲(chǔ)空間D)執(zhí)行過程中所需要的存儲(chǔ)空間(2)用鏈表表示線性表的優(yōu)點(diǎn)是A)便于隨機(jī)存取B)花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少C)便于插入和刪除操作D)數(shù)據(jù)元素的物理順序與邏輯順序相同(3)數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無關(guān)的是數(shù)據(jù)的A)存儲(chǔ)結(jié)構(gòu)B)物理結(jié)構(gòu)C)邏輯結(jié)構(gòu)D)物理和存儲(chǔ)結(jié)構(gòu)(4)結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是A)程序的規(guī)模B)程序的效率C)程序設(shè)計(jì)語言的先進(jìn)性D)程序易讀性(5)軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì),其中軟件的過程設(shè)計(jì)是指A)模塊間的關(guān)系B)系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C)軟件層次結(jié)構(gòu)D)軟件開發(fā)過程(6)檢查軟件產(chǎn)品是否符合需求定義的過程稱為A)確認(rèn)測試B)集成測試C)驗(yàn)證測試D)驗(yàn)收測試(7)數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由?些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是A)控制流B)加工C)數(shù)據(jù)存儲(chǔ)D)源和潭(8)應(yīng)用數(shù)據(jù)庫的主要目的是A)解決數(shù)據(jù)保密問題B)解決數(shù)據(jù)完整性問題C)解決數(shù)據(jù)共享問題D)解決數(shù)據(jù)量大的問題(9)在數(shù)據(jù)庫設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于A)需求分析階段B)邏輯設(shè)計(jì)階段C)概念設(shè)計(jì)階段D)物理設(shè)計(jì)階段(10)在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是A)數(shù)據(jù)庫系統(tǒng)B)文件系統(tǒng)C)人工管理D)數(shù)據(jù)項(xiàng)管理(11)以下敘述中正確的是A)構(gòu)成C程序的基本單位是函數(shù)B)可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)main()函數(shù)必須放在其他函數(shù)之前C函數(shù)定義的格式是K&R格式(12)結(jié)構(gòu)化程序所規(guī)定的三種最基本控制結(jié)構(gòu)是A)輸入、處理、輸出B)樹形、網(wǎng)形、環(huán)形C)順序、選擇、循環(huán)D)主程序、子程序、函數(shù)一個(gè)主程序和若干子程序組成B)函數(shù)組成C)若干過程組成D)若干子程序組成(14)請選出可用作C語言用戶標(biāo)識(shí)符的是A)void,define,WORDa3_b3,_123,IFFOR.-abc,Case2a,Do,Sizeof(15)下列各數(shù)據(jù)類型不屬于構(gòu)造類型的是A)枚舉型B)共用型C)結(jié)構(gòu)型D)數(shù)組型(16)在16位C編譯系統(tǒng)上,若定義longa:,則能給a賦40000的正確語句是3=200004-20000;a=4000*10;a=30000+10000;a=4000L*10L(17)以下不正確的敘述是A)在C程序中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低B)在C程序中,APH和叩h是兩個(gè)不同的變量C)若a和b類型相同,在計(jì)算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變D)當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對(duì)于整型變量只能輸入整型數(shù)值,對(duì)于實(shí)型變量只能輸入實(shí)型數(shù)值(18)sizeof(float)是一個(gè)整型表達(dá)式一種函數(shù)調(diào)用一個(gè)不合法的表達(dá)式(19)若x,i,j和k都是int型變量,則計(jì)算表達(dá)式x=(i=4,j=16,k=32)后,x的值為4163252(20)下面程序的功能是把316表示為兩個(gè)加數(shù)的和,使兩個(gè)加數(shù)分別能被13和11整除,請選擇填空。#include<stdio.h>main(){inti=0,j,k;do{i++;k=316-13*i;}while();j=k/ll;printf(,'316=13*%d+ll*%d,,,i,j);)k/11k%llk/ll==0k%ll==0(21)設(shè)有定義:intn=0,*p=&n,**q=&p,則下列選項(xiàng)中正確的賦值語句是p=l;*q=2;q=p;*p=5;(22)下面程序的運(yùn)行結(jié)果是main()inty=10;do{y—;}while(—y);printf("%d\n”,y??);)-1180(23)下面程序的輸出結(jié)果是main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf(M%d\n'\*(p+2));}3412(24)有如下程序intaL10]={1,234,5,6,7,8,9,10};int*p=&a[3],b;b=p[5];則b的值是5698(25)設(shè)有intx=U;則表達(dá)式(x++*l/3)的值是1112(26)請選出以下語句的輸出結(jié)果printf("%d\n*',strlen('>\t\°\065\xff\n*'));5148D)輸出項(xiàng)不合法,無正常輸出(27)下列程序的輸出結(jié)果是main()doubled=3.2;intx,y;x=L2;y=(x+3.8)/5.0;printf(M%d\nn,d*y);)33.203.07(28)卜.列程序的輸出結(jié)果是intb=2;intfunc(int*a){b+=*a;return(b);}main(){inta=2,res=2;res+=func(&a);printf(n%d\n';res);}6810(29)下面能正確進(jìn)行字符串賦值操作的是chars[5]={"ABCDE");chars[5]={'A','B','C','D','E'};char*s;s="ABCDE";char*s;chara;scanf("%s",&s);(30)執(zhí)行以下程序后,4b的值分別為main(){inta,b,k=4,m=6,*pl=&k,*p2=&m;a=pl==&m;b=(*pl)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}-1,51,60,74,10(31)設(shè)有數(shù)組定義:chararray[]="China";則數(shù)組array所占的空間為4個(gè)字節(jié)5個(gè)字節(jié)6個(gè)字節(jié)7個(gè)字節(jié)(32)若已定義:inta[]={0,1,2,345,6,7,8,9},*p=aj;其中0<i<9,則對(duì)a數(shù)組元素不正確的引用是a[p-a]*(&a[i])p[i]a[10](33)以下不正確的定義語句是doublex[5]={2.0,4.0,6.0,8.0,10.0};inty[5]={0,1,3,5,7,9);charcl[]={T/2,,3,4,5};charc2[]={'\xl。,'\xa','\x8'};(34)若有以下程序#include<stdio.h>inta[]={2,4,6,8);main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p;printf("%d\n",a⑵);}上面程序輸出結(jié)果是6842(35)下面程序段的運(yùn)行結(jié)果是char*format="%s,a=%d,b=%d\n";inta=ll,b=10;a+=b;printf(format,"a+=b",a,b);A)for,"a+=b",abformat,"a+=b”a+=b,a=21,b=10D)以上結(jié)果都不對(duì)(36)C語言允許函數(shù)類型缺省定義,此時(shí)函數(shù)值隱含的類型是floatintlongdouble(37)以下程序有語法錯(cuò)誤,有關(guān)錯(cuò)誤原因的正確說法是main(){intG=5,k;voidprt__char();k=prt_char(G);A)語句voidprt_char();有錯(cuò),它是函數(shù)調(diào)用語句,不能用void說明B)變量名不能使用大寫字母C)函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾D)函數(shù)名不能使用下劃線(38)以下敘述中不正確的是A)在不同的函數(shù)中可以使用相同的名字的變量B)函數(shù)中的形式參數(shù)是局部變量C)在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效D)在一個(gè)函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效(39)有以下程序:unionpw{inti;charch[2];}a;main(){axh[0]=13;a,ch[1]=O;printf("%d\nu,a.i);}程序的輸出結(jié)果是1314208209(40)在16位IBM-PC機(jī)上使用C語言,若有如下定義structdatainti;charch;doublef;b;則結(jié)構(gòu)變量b占用內(nèi)存的字節(jié)數(shù)是12711(41)下面程序的運(yùn)行結(jié)果是#include<stdio.h>main(){inta=l,b=10;do{b-=a;a++;}while(b—<0);printf(na=%d,b=%d\n'\a,b);a=3,b=l1a=2,b=8a=l,b=-la=4,b=9(42)以下程序的輸出結(jié)果是voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-l-i];a[n-l-i]=t;})main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\nM,s);)22103430(43)有如下程序:longfib(intn)if(n>2)return(fib(n-l)+fib(n-2));elsereturn(2);)main()該程序的輸出結(jié)果是2468(44)假定以下程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入:PROGABCDEFGHIJKLv「可車》,則輸出結(jié)果為main(intargc,char*argv[]){while(—argc>0)printf("%s”,argvLarge]);printf(n\nu);}ABCDEFGUHLABCDEFGHIJKLIJKLABCDEFGH(45)以下程序有錯(cuò),錯(cuò)誤原因是main(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;)p和q的類型不--致,不能執(zhí)行*p=*q;語句*p中存放的是地址值,因此不能執(zhí)行*p=40;語句q沒有指向具體的存儲(chǔ)單元,所以*q沒有實(shí)際意義q雖然指向了具體的存儲(chǔ)單元,但該單元中沒有確定的值,所以執(zhí)行*p=*q;沒有意義,可能會(huì)影響后面語句的執(zhí)行結(jié)果(46)函數(shù)rewind的作用是A)使文件位置指針重新返回文件的開始位置B)將文件位置指針指向文件中所要求的特定位置C)使文件位置指針指向文件的末尾D)使文件位置指針自動(dòng)移至下一個(gè)字符位置(47)設(shè)有以下說明語句structex{intx;floaty;charz;}example;則下面的敘述中不正確的是struct結(jié)構(gòu)體類型的關(guān)鍵字example是結(jié)構(gòu)體類型名x,y,z都是結(jié)構(gòu)體成員名structex是結(jié)構(gòu)體類型名(48)設(shè)有以下語句:charx=3,y=6,z;z=xAy?2;則z的二進(jìn)制值是00010100000110110001110000011000(49)閱讀以下程序及對(duì)程序功能的描述,其中正確的描述是#include<stdio.h>main()FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n");scanf(M%sH,infile);printf("Entertheoutfilename:\nM);scanf(,,%s,,,outfile);if((in=fopen(infileJr"))==NULL)(printf("cannotopeninfile\nu);exit(0);)if((out=fopen(outfile,"w"))=NULL)(printf("cannotopenoutfile\nM);exit(0);1while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);)A)程序完成將磁盤文件的信息在屏幕上顯示的功能B)程序完成將兩個(gè)磁盤文件合二為一的功能C)程序完成將一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件中D)程序完成將兩個(gè)磁盤文件合并并在屏幕上輸出(50)C語言中,能識(shí)別處理的文件為A)文本文件和數(shù)據(jù)塊文件B)文本文件和二進(jìn)制文件C)流文件和文本文件D)數(shù)據(jù)文件和二進(jìn)制文件二、填空題(1)數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和【1】兩大類。解析:數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和非線性結(jié)構(gòu)兩大類。(2)順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置【2】的存儲(chǔ)單元中。解析:常用的存儲(chǔ)表示方法有4種,順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)、索引存儲(chǔ)、散列存儲(chǔ)。其中,順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置也相鄰的存儲(chǔ)單元中。(3)一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的[3]。解析:本題考查了繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。(4)軟件工程研究的內(nèi)容主要包括:[4]技術(shù)和軟件工程管理。解析:基于軟件工程的目標(biāo),軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。軟件開發(fā)技術(shù)包括:軟件開發(fā)方法學(xué)、開發(fā)過程、開發(fā)工具和軟件工程環(huán)境,其主體內(nèi)容是軟件開發(fā)方法學(xué)。軟件工程管理包括:軟件管理學(xué)、軟件工程經(jīng)濟(jì)學(xué),以及軟件心理學(xué)等內(nèi)容。(5)關(guān)系操作的特點(diǎn)是【5】操作。解析:在關(guān)系操作中,所有操作對(duì)象與操作結(jié)果都是關(guān)系。而關(guān)系定義為元數(shù)相同的元組的集合。因此,關(guān)系操作的特點(diǎn)是集合操作。(6)下面程序是指從終端讀入的20個(gè)字符放入字符數(shù)組中,然后利用指針變量輸出上述字符串,請?zhí)羁铡?include<stdio.h>main(){inti;chars[21],*p;for(i=0;i<20;i++)s[i]=getchar();s[i]=[6];p=[7]while(*p)putchar([8]);}解析:本題選通過for循環(huán)從鍵盤讀入20個(gè)字符,然后在最后賦?定值、(T后為結(jié)束標(biāo)志,再使指針P指向字符串的首地址。最后通過while循環(huán)對(duì)字符串進(jìn)行掃描并輸出。(7)以下程序?qū)?shù)組a的4個(gè)元素和數(shù)組b的6個(gè)元素寫到名為lett.dat的二進(jìn)制文件中,請?zhí)羁铡?include<stdio.h>main(){FILE*fp;chara[4]="1234",b[6]="abcedf,;if((fp=fopen("[9]","wb"))=NULL)exit(0);fwrite(a,sizeof(char),4,fp);fwrite(b,[10],l,fp);fclose(fp);)解析:本題主要考查函數(shù)fwrite(char*pt,unsignedsize,unsignedn,FILE*fp),把pt所指向的n*size個(gè)字節(jié)輸出到fp所指定的文件中。(8)在C語言中(以16位PC機(jī)為例),?個(gè)float型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為4;一個(gè)double型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為[II].解析:在-一般系統(tǒng)中,一個(gè)float型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié)(32位),一個(gè)double型數(shù)據(jù)占8個(gè)字節(jié)。(9)以下程序輸出的結(jié)果是[12]。main(){inta=5,b=4,c=3,d;d=(a>b>c);printf("%d\n",d);}解析:本題的關(guān)鍵在于對(duì)變量c的賦值運(yùn)算:d=(a>b>c)d=(5>4>3)先算5>3,為真,得1,即:d=(1>3),此時(shí)1>3,為假,得0。(10)以下函數(shù)的功能是求出能整除x且不是偶數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個(gè)數(shù)通過形參n返回。例如,若x中的值為30,則有4個(gè)數(shù)符合要求,它們是1,3,5,15?請按題意,完成填空。試題程序:#include<conio.h>#include<stdio.h>voidfun(intx,intpp口,int*n){intij=0;[13]if(x%i==0)pp[j++]=i;[14];){intx,aaL1000],n,i;clrscr();printf(M\nPleaseenteranintegernumber:\nH);scanf(n%d0,&x);fiin(x,aa,&n);for(i=0;i<n;i++)printf("%d",aa[i]);printf("\n");)解析:本題題干信息是能整除且不是偶數(shù)的所有整數(shù)之和。循環(huán)語句中i從1開始且每次增2,所以i始終是奇數(shù),*n=j;語句是記錄能夠符合題意的各個(gè)整數(shù)的各數(shù)。#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;[15]if(s[*k]<s[i])*k=i;return[16];)main()(inta[10]={876,675,896,101,301,401,980,431,451,777),k;clrscr();fun(a,10,&k);printf("%d,%d\n",k,a[k]);)解析:本題中宜接使用指針變量k,但在使用時(shí)要注意對(duì)k的指針運(yùn)算,此外,一開始應(yīng)認(rèn)*k的值為數(shù)組中的某一下標(biāo)值,即*k=0。(12)mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁?。intmystrlen(char*str)(inti;for(i=0;[17]!='\O';i++);return(i);)解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+i)來訪問字符串中的第i個(gè)元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+L繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+i)的值為,\0,為止,也可以用下標(biāo)的方式引用字符,如*(str+i)相當(dāng)于str[i].(13)以下程序的輸出結(jié)果為【181o#defineJFT(x)x*xmain(){inta,k=3;a=++JFT(k+1);printf("%d",a);)解析:宏替換的原則是按原樣替換,本題中遇到形參x則以實(shí)參k+1替換,其他字符不變。所以JFT(k+1)經(jīng)替換后為k+l*k+l,所以a=++k+l*k+l,若k+1,若k的值為3,則經(jīng)過運(yùn)算為a=4+l*4+l=9o(14)以下定義的結(jié)構(gòu)體類型擬包含兩個(gè)成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補(bǔ)充完整。structnode{intinfo;[19]link;);解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個(gè)指向自身的結(jié)構(gòu)體指針。(15)設(shè)有以下結(jié)構(gòu)體類型:structst{charname[8];intnum;floats[4];}student[50];并且結(jié)構(gòu)體數(shù)組student中的元素都已有值,若要將這些元素寫到硬盤文件fp中,請將以下fwrite語句補(bǔ)充完整:fwrite(student,[20],l,fp);解析:fwrite函數(shù)的一般調(diào)用形式為:fwrite(buffer,size,count,fp),其中:buffer:是一個(gè)指針變量,是要輸出數(shù)據(jù)的起始地址size:要寫的字節(jié)數(shù)count:要進(jìn)行寫多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng)fp:文件型指針選擇題01-05DC06-10AACB11-1516-20D

21-25DDACA26-30ACB31-35CDBDC31-35CDBDC36-40B41-45BABDD41-45BABDD46-50AB計(jì)算機(jī)等級(jí)考試二級(jí)C語言考前密卷(4)選擇題(1)在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為32311615(2)若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問順序是bdgcefhagdbecfhabdgaechfgdbehfca(3)一些重要的程序語言(如C語言和Pascal語言)允許過程的遞歸調(diào)用。而實(shí)現(xiàn)遞歸調(diào)用中的存儲(chǔ)分配通常用A)棧B)堆C)數(shù)組D)鏈表(4)軟件工程的理論和技術(shù)性研

溫馨提示

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

評(píng)論

0/150

提交評(píng)論