國家二級(jí)(C語言)筆試模擬試卷58(題后含答案及解析)_第1頁
國家二級(jí)(C語言)筆試模擬試卷58(題后含答案及解析)_第2頁
國家二級(jí)(C語言)筆試模擬試卷58(題后含答案及解析)_第3頁
國家二級(jí)(C語言)筆試模擬試卷58(題后含答案及解析)_第4頁
國家二級(jí)(C語言)筆試模擬試卷58(題后含答案及解析)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

國家二級(jí)(C語言)筆試模擬試卷58(題后含答案及解析)題型有:1.選擇題2.填空題選擇題(1-10、21-40每題2分,11-20每題1分,共70分)下列各題A、B、C、D四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上。1.最簡(jiǎn)單的交換排序方法是A.快速排序B.選擇排序C.堆排序D.冒泡排序正確答案:D解析:冒泡排序是一種最簡(jiǎn)單的交換類排序方法,它是通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。注意:交換排序方法有冒泡排序和快速排序,顯然選項(xiàng)B)和選項(xiàng)C)錯(cuò)誤,冒泡排序比較簡(jiǎn)單,其算法也容易理解,但快速排序本身較為復(fù)雜,且采用了遞歸調(diào)用,其算法理解也稍難。注意:插入排序、選擇排序、歸并排序、基數(shù)排序等排序方法的特點(diǎn)。2.棧通常采用的兩種存儲(chǔ)結(jié)構(gòu)是A.順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B.散列方式和索引方式C.鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組D.線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)正確答案:A解析:和線性表類似,棧也有兩種存儲(chǔ)方法,一是順序棧,二是鏈?zhǔn)綏!5捻樞虼鎯?chǔ)結(jié)構(gòu)是利用一組地址連續(xù)的存儲(chǔ)單元一次存儲(chǔ)自棧底到棧頂?shù)臄?shù)據(jù)元素,同時(shí)附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對(duì)而言,鏈?zhǔn)綏5牟僮鞲子趯?shí)現(xiàn)。注意:這3種運(yùn)算方法在各種存儲(chǔ)結(jié)構(gòu)中的應(yīng)用。3.線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是A.順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)B.隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)C.隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)D.任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu)正確答案:B解析:順序存儲(chǔ)結(jié)構(gòu)中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲(chǔ)單元中,每個(gè)數(shù)據(jù)元素地址可通過公式LOC(ai)=LOC(a1)+(i-1)L計(jì)算得到,從而實(shí)現(xiàn)了隨機(jī)存取。對(duì)于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),要對(duì)某結(jié)點(diǎn)進(jìn)行存取,都得從鏈的頭指針指向的結(jié)點(diǎn)開始,這是一種順序存取的存儲(chǔ)結(jié)構(gòu)。注意:順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的定義和性質(zhì),兩種存儲(chǔ)結(jié)構(gòu)的操作方法。4.完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例的測(cè)試方法是A.黑箱測(cè)試法B.白箱測(cè)試法C.錯(cuò)誤推測(cè)法D.安裝測(cè)試法正確答案:A解析:黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)功能導(dǎo)出測(cè)試用例。注意:白箱測(cè)試是根據(jù)對(duì)程序內(nèi)部邏輯結(jié)構(gòu)的分析來選取測(cè)試用例,白箱測(cè)試也稱為邏輯覆蓋測(cè)試,故選項(xiàng)B)不正確;錯(cuò)誤推測(cè)法只是黑箱測(cè)試所使用的一種具體的方法,故選項(xiàng)C)不正確;安裝測(cè)試是測(cè)試層次中的一種,它屬于高級(jí)測(cè)試,故選項(xiàng)D)不正確。注意:常用的黑箱測(cè)試方法及其定義,白箱測(cè)試用例的準(zhǔn)則。5.在結(jié)構(gòu)化設(shè)計(jì)方法中,生成的結(jié)構(gòu)圖(SC)中,帶有箭頭的連線表示A.模塊之間的調(diào)用關(guān)系B.程序的組成成分C.控制程序的執(zhí)行順序D.?dāng)?shù)據(jù)的流向正確答案:A解析:常用的軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖(SC-StructureChart),也稱程序結(jié)構(gòu)圖。其中,矩形內(nèi)用于注明模塊的功能和名字;箭頭表示模塊間的調(diào)用關(guān)系,帶實(shí)心圓的箭頭表示傳遞的是控制信息,帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。注意:根據(jù)結(jié)構(gòu)圖設(shè)計(jì)思想,了解結(jié)構(gòu)圖構(gòu)成的基本形式。6.下列選項(xiàng)中,不屬于模塊間耦合的是A.?dāng)?shù)據(jù)耦合B.標(biāo)記耦合C.異構(gòu)耦合D.公共耦合正確答案:C解析:模塊之間的耦合程度反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強(qiáng),可以將其分成5級(jí),分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項(xiàng)C),沒有這種耦合方式。注意:評(píng)價(jià)模塊獨(dú)立性的主要標(biāo)準(zhǔn),以及對(duì)它們的定義和分類。7.一個(gè)關(guān)系中屬性個(gè)數(shù)為1時(shí),稱此關(guān)系為A.對(duì)應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系正確答案:C解析:在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個(gè)具有N個(gè)屬性的關(guān)系稱為N元關(guān)系。注意:各種關(guān)系查詢語言與過程性語言和非過程性語言的關(guān)系,過程性語言的特點(diǎn)。8.為用戶與數(shù)據(jù)庫系統(tǒng)提供接口的語言是A.高級(jí)語言B.?dāng)?shù)據(jù)定義語言(DDL)C.?dāng)?shù)據(jù)操縱語言(DML)D.匯編語言正確答案:C解析:DBMS提供數(shù)據(jù)操縱語言(DML)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中數(shù)據(jù)的操作,數(shù)據(jù)操縱語言(DML)是用戶(包括應(yīng)用程序)與數(shù)據(jù)庫系統(tǒng)的接口。數(shù)據(jù)操縱語言通常包括檢索和更新功能。注意:程序模塊中語言處理部分的分類,各子類的定義及其功能。9.相對(duì)于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和A.可重用性差B.安全性差C.非持久性D.冗余性正確答案:D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨(dú)立的,因此相對(duì)于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個(gè)缺點(diǎn),數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡(jiǎn)稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點(diǎn),人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點(diǎn)。10.需求分析階段的任務(wù)是確定A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費(fèi)用D.軟件系統(tǒng)功能正確答案:D解析:需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(組織、部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。注意:選項(xiàng)A)軟件開發(fā)方法是在總體設(shè)計(jì)階段完成的任務(wù);選項(xiàng)B)軟件開發(fā)工具是在實(shí)現(xiàn)階段需完成的任務(wù);選項(xiàng)C)軟件開發(fā)費(fèi)用是在可行性研究階段需完成的任務(wù)。注意:需求分析的任務(wù)和它的6種方法。11.以下敘述正確的是()。A.在C語言程序中,main函數(shù)必須位于程序的最前面B.C語言程序的每行中只能寫一條語句C.C語言本身沒有輸入輸出語句D.在對(duì)一個(gè)C語言程序進(jìn)行編譯的過程,可發(fā)現(xiàn)注釋中的拼寫錯(cuò)誤正確答案:C解析:選項(xiàng)A)中,main函數(shù)可以放在程序的任何位置,不一定要放在程序的最前面,不論main函數(shù)放在什么位置,程序的執(zhí)行卻總是從main函數(shù)開始的;選項(xiàng)B)中,因?yàn)镃語言的語法限制不嚴(yán)格,所以可以多條語句放在同一行上;選項(xiàng)C)是正確的,C語言中沒有專門的輸入輸出語句,輸入輸出是通過使用輸入輸出庫函數(shù)來實(shí)現(xiàn)的;選項(xiàng)D)是錯(cuò)誤的,因?yàn)镃語言中的注釋是不會(huì)被編譯的。注意:掌握算法的相關(guān)特性。12.下列字符串是合法的標(biāo)識(shí)符的是()。A._HJB.9_studentC.longD.LINE1正確答案:A解析:標(biāo)識(shí)符是以字母、數(shù)字和下劃線組成的字符串,且只能是字符或下劃線開頭,且C語言的關(guān)鍵字不能用作用戶自定義的標(biāo)識(shí)符。注意:熟記C語言中常用的關(guān)鍵字。13.以下合法的十六進(jìn)制數(shù)是()。A.0xB.0x4deC.0x1hD.oX77正確答案:B解析:十六進(jìn)制數(shù)以0x開頭,后面跟著若干位1~f的數(shù),所以正確答案為B)。注意:整形常量、實(shí)型常量和字符型常量的合法性判斷。14.若有以下定義,則能使值為3的表達(dá)式是intk=7,x=12;A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)正確答案:D解析:運(yùn)算符“%”的兩側(cè)都應(yīng)該是整型數(shù)。另外,本題需要掌握的知識(shí)點(diǎn)是:x%=k,等價(jià)于x=x%k。注意:強(qiáng)制類型轉(zhuǎn)換表達(dá)式。15.x,y,z被定義為int型變量,若從鍵盤給x,y,z輸入數(shù)據(jù),正確的輸入語句是A.INPUTx、v、z;B.scanf(“%d%d%d”,&x,&y,&z);C.scanf(“%d%d%d”,x,y,z);D.read(“%d%d%d”,&x,&y,&z);正確答案:B解析:scanf函數(shù)的一般格式是:scanf(格式控制,地址表列)該格式中,地址表列中應(yīng)是變量地址,而不是變量名。注意:調(diào)用putchar和getchar函輸出和輸入字符。16.以下敘述正確的是()。A.continue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行B.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同D.從多層循環(huán)嵌套中退出時(shí),只能使用goto語句正確答案:B解析:continue是結(jié)束本次循環(huán),直接進(jìn)入到下次循環(huán)中,break用于循環(huán)語句中的作用是直接跳出本層循環(huán),能從多層循環(huán)中退出的語句除了goto語句,exit,return等語句也能直接跳出多層循環(huán)。注意:continue和break語句在while語句中的作用。17.執(zhí)行下面的程序后,a的值為()。main(){inta,b;for(a=1,b=1;a<=10;a++){if(b%3==1){b+=3;continue;}b=5;}}A.7B.8C.9D.10正確答案:D解析:continue語句的作用是結(jié)束本次循環(huán),直接進(jìn)入到下次循環(huán)中。18.以下程序段的輸出結(jié)果是inta=1234;printf(“%2d\n”,a);A.12B.34C.1234D.提示出錯(cuò)、無結(jié)果正確答案:C解析:在C語言中,對(duì)于不同類型的數(shù)據(jù)用不同的格式字符,其中,“%d”是按整型數(shù)據(jù)的實(shí)際長度輸出,“%md”中,m為指定的輸出字段的寬度,如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空格,若大于m,則按實(shí)際位數(shù)輸出。注意:格式輸入函數(shù)scanf的使用。19.能正確表示邏輯關(guān)系:”a≥10或a≤0”的C語言表達(dá)式是A.a(chǎn)>=10ora<=0B.a(chǎn)>=0|a<=10C.a(chǎn)>=10&&a<=0D.a(chǎn)>=10||a<=0正確答案:B解析:本題考查C語言的邏輯表達(dá)式及邏輯或(“||”)運(yùn)算符的用法。“||”表示或的意思,“|”是按位或的意思,“&&”是并且的意思,C語言中沒有“or”。20.設(shè)變量a、b、c、d和y都已正確定義并賦值。若有以下if語句if(a<b)if(c==d)y=0;elsey=1;該語句所表示的含義是A.B.C.D.正確答案:C解析:整個(gè)語句都是以a<b為假設(shè)的,在a<b的情況下,如果c=d則y=0,否則y=1。所以答案為選項(xiàng)C)。注意:if嵌套語句的使用。21.若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是A.’a’<=c<=‘2’B.(c>=‘a(chǎn)’)||(c<=‘2’)C.(‘a(chǎn)’<=c)and(‘2’>=c)D.(c>=‘a(chǎn)’)&&(c<=‘z’)正確答案:D解析:字符型數(shù)據(jù)在計(jì)算機(jī)內(nèi)部是以ASCII存儲(chǔ)的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的,大寫字母A到Z是從65到90,小寫字母a到z是97到122。所以只要變量c大于a并且小于z就能保證其為小寫字母。22.有以下程序:#include<stdio.h>main(){intc;while((c=getchar())!=‘\n’){switch(c-’2’){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf(“\n”)}從第一列開始輸入以下數(shù)據(jù)<CR>代表一個(gè)回車符。2743<CR>程序的輸出結(jié)果是A.66877B.668966C.6677877D.6688766正確答案:A解析:本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備上讀入一個(gè)字符,putchar(c)函數(shù)是將字符變量c中的字符輸出到標(biāo)準(zhǔn)輸出設(shè)備上。并且字符可以看作整數(shù)參與運(yùn)算。23.C語言允許函數(shù)類型缺省定義,此時(shí)函數(shù)值隱含的類型是A.floatB.intC.longD.double正確答案:B解析:在C語言中,對(duì)于自定義函數(shù)要遵循“先定義,后使用”的規(guī)則,如定義時(shí),不指定函數(shù)類型,C編譯系統(tǒng)都默認(rèn)函數(shù)的返回值是int型。24.若有說明:int*p,m=5,n;以下正確的程序段是A.p=&n;scanf(“%d”,&p);B.p=&n;scanf(“%d”,*p)C.scanf(“%d”,&n);*p=n;D.p=&n;*p=m;正確答案:D解析:“&”是求址運(yùn)算符,“*”是指變量說明符。選項(xiàng)A)、B)應(yīng)改為scanf(“%d”,p);選項(xiàng)C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,并且這樣做很危險(xiǎn)建議不使用。25.有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向此鏈表中的3個(gè)連續(xù)結(jié)點(diǎn)。structnode{intdata;structnode*next;}*p,*q,*r;現(xiàn)要將q所指結(jié)點(diǎn)從鏈表中刪除,同時(shí)要保持鏈表的連續(xù),以下不能完成指定操作的語句是A.p->next=q->next;B.p-next=p->next->next;C.p->next=r;D.p=q->enxt;正確答案:D解析:本題考查鏈表結(jié)點(diǎn)的刪除。q->next中存放的是r所指結(jié)點(diǎn)的首地址,將r所指結(jié)點(diǎn)的首地址存于p->next中,則實(shí)現(xiàn)刪除q所指結(jié)點(diǎn)的功能,并保持鏈表連續(xù),p所指結(jié)點(diǎn)與r所指結(jié)點(diǎn)相連。26.以下程序的運(yùn)行結(jié)果是#include”stdio.h”main(){structdate{intyear,month,day;}today;printf(“%d\n”,sizeof(structdate));}A.6B.8C.10D.12正確答案:A解析:在解答本題時(shí)應(yīng)該考慮兩個(gè)問題:結(jié)構(gòu)體變量的長度及sizeof()求字節(jié)數(shù)的運(yùn)算符。結(jié)構(gòu)體變量的長度是其內(nèi)部成員總長度之和,本題中,structdate中包含year,month,day三個(gè)整型變量。一個(gè)整型變量所占的字節(jié)數(shù)為2。27.若fp是指向某文件的指針,且已讀到文件末尾,則函數(shù)feof(fp)的返回值是A.EOFB.-1C.1D.NULL正確答案:C解析:EOF是指向文本文件的結(jié)束標(biāo)志,NULL是打開文件錯(cuò)誤時(shí)的返回值。feof(fp)用來判斷文件是否在文件末尾,文本文件和二進(jìn)制文件均可以使用此函數(shù),如果遇到文件結(jié)束就返回1,否則返回0。28.以下程序的輸出結(jié)果是main(){intc=35;printf(“%d\n”,c&c);}A.0B.70C.35D.1正確答案:C解析:本題考查按位與“&”。因?yàn)?&1=1,0&0=0,所以任何數(shù)與自身按位與,結(jié)果仍為此數(shù),不發(fā)生變化。29.當(dāng)運(yùn)行以下程序時(shí),從鍵盤輸入;AhaMA(空格)Aha<CR>,則下面程序的運(yùn)行結(jié)果是#include<stdio.h>main(){chars[80],c=‘a(chǎn)’;inti=0;scanf(“%s”,s);while(s[i]!=‘\n’){if(s[i]==c)s[i]-32;elseif(s[i]==c-32)s[i]=s[i]+32;i++;}puts(s);}A.a(chǎn)haMaB.AbAMaC.AhAMa[空格]ahAD.a(chǎn)hAMa[空格]ahA正確答案:A解析:本題主要考查的知識(shí)點(diǎn)是大寫字母比它對(duì)應(yīng)的小寫字母ASCII碼值小32,并且字符可以看作整數(shù)進(jìn)行算術(shù)運(yùn)算等操作。30.有如下程序:main(){intn=9;while(n>6){n--;printf(“%d”,n);}}該程序的輸出結(jié)果是A.987B.876C.8765D.9876正確答案:B解析:該題目應(yīng)該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時(shí)的輸出結(jié)果來決定哪一項(xiàng)是正確的。第一次進(jìn)入循環(huán)時(shí),n的值是9,循環(huán)體內(nèi),先經(jīng)過n--運(yùn)算,n的值變?yōu)?,所以第一次的輸出值是8,由此可以排除選項(xiàng)A)和D)。由循環(huán)條件n>6可以知道,最后一次循環(huán)開始時(shí),n的值應(yīng)該為7,所以最后一次執(zhí)行循環(huán)體時(shí)輸出為6,由此可以排除選項(xiàng)C)。31.若執(zhí)行下面的程序時(shí),從鍵盤上輸入5和2,則輸出結(jié)果是main(){inta,b,k;scanf(“%d,%d”,&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printf(“%d\n”,k);}A.5B.3C.2D.0正確答案:C解析:本題考查簡(jiǎn)單的if...else語句。先執(zhí)行條件if(a<b),顯然不成立,則執(zhí)行else語句。32.有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf(“%d,%d”,x,y);}程序的輸出結(jié)果是()。A.2,1B.2,2C.2,5D.5,2正確答案:A解析:本題考查了continue和break語句用在循環(huán)語句中的作用。break語句的作用是結(jié)束本層循環(huán),而continue語句的作用是結(jié)束本次循環(huán)直接進(jìn)入到下次循環(huán)。33.有以下函數(shù)定義:intmypr(doublea,doubleb){returna*b;}若以下選項(xiàng)中所用變量都已正確定義并賦值,錯(cuò)誤的函數(shù)調(diào)用是A.if(mypr(x,y)){……}B.z=mypr(mypr(x,y),mypr(x,y));C.z=mypr(mypr(x,y)x,y);D.mypr(x,y);正確答案:C解析:本題考查了函數(shù)調(diào)用的方法。選項(xiàng)C函數(shù)調(diào)用mypr(x,y)可以作為表達(dá)式再參與運(yùn)算,但是與另一個(gè)運(yùn)算數(shù)x之間沒有任何運(yùn)算符所以是錯(cuò)誤的。34.現(xiàn)有如下程序段#include”stdio.h”main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf(“%d\n”,*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為A.21B.78C.23D.28正確答案:A解析:通過地址來引用二維數(shù)組;若有以下定義:inta[3][4],i,j;且當(dāng)0≤i<3,0≤j<4,則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表達(dá)式&a[0][0]+2*i+j-2相當(dāng)于是地址&a[0][0]加上多少偏移量。35.以下程序的輸出結(jié)果是#include<stdio.h>inta[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf(“%d\n”,*p);free(p);}f(int*s,intp[][3]){*s=p[1][1];}A.1B.4C.7D.5正確答案:D解析:本題考查了二維數(shù)組元素引用的方法。題中用動(dòng)態(tài)存儲(chǔ)分配函數(shù)malloc分配了一個(gè)int型數(shù)據(jù)長度大小的內(nèi)存,然后指針p指向了這段內(nèi)存,函數(shù)f()中對(duì)p所指向的數(shù)據(jù)進(jìn)行了賦值,p[1][1]為二維數(shù)組第二行第二列的元素,對(duì)應(yīng)于實(shí)參a的元素5,所以輸出結(jié)果為5。36.有以下語句,則對(duì)a數(shù)組元素的引用不正確的是(0≤i≤9)inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A.a(chǎn)[p-a)B.*(&a[i])C.p[i]D.*(*(a+i))正確答案:D解析:本題考查數(shù)組指針的應(yīng)用。選項(xiàng)D)第一層括號(hào)中為數(shù)組a中第i項(xiàng)元素的值,外面再加指針運(yùn)算符沒有意義。37.以下程序的輸出結(jié)果是voidfun(float*p1,float*p2,float*s){s=(float*)calloc(1,sizeof(float));*s=*p1+*p2++;}main(){floata[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;fun(a,b,s);printf(“%5.2f\n”,*s);}A.11.1B.12C.21.1D.1.1正確答案:D解析:本題主要考查了一維數(shù)組名用作函數(shù)實(shí)參進(jìn)行的運(yùn)算,數(shù)組名作實(shí)參相當(dāng)于傳遞的是地址,這樣在函數(shù)中對(duì)形參進(jìn)行的操作可以影響到實(shí)參。38.請(qǐng)選出正確的程序段A.int*p;scanf(“%d”,p);…B.int*s,k;*s=100;…C.int*s,k;char*p,c;s=&k;p=&c;*p=‘a(chǎn)’;…D.int*s,k;char*p,e;s=&k;p=&c;s=p;*s=1;…正確答案:C解析:本題的選項(xiàng)A)和B)犯了一個(gè)同樣的錯(cuò)誤,即指針變量p定義后并沒有指向具體的變量。也就是說,p中沒有確定的地址值,它的值是不可預(yù)見的,所指向的單元也是不可預(yù)見的,因此不能進(jìn)行賦值操作。另外,在選項(xiàng)D)中,s是int型指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。39.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+=f(i);printf(“%d\n”,j);}程序運(yùn)行后的輸出結(jié)果是A.4B.3C.2D.1正確答案:B解析:在main函數(shù)中,對(duì)f(1)和f(2)的值進(jìn)行了累加。f(1)=1f(2)=f(1)+1=2最后,j的值為1+2=340.在C語言中,變量的隱含存儲(chǔ)類別是A.a(chǎn)utoB.staticC.externD.無存儲(chǔ)類別正確答案:A解析:auto變量:無static聲明的局部變量。用auto作存儲(chǔ)類別的聲明時(shí),可以不寫auto,存儲(chǔ)類別隱含確定為auto(自動(dòng)存儲(chǔ)類別)。是動(dòng)態(tài)存儲(chǔ)方式。大多數(shù)變量是自動(dòng)變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結(jié)束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲(chǔ)單元空間不釋放,局部變量保留原值,下次調(diào)用時(shí)可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變?nèi)肿兞康淖饔糜?,?shí)際上,關(guān)鍵字”auto”可以省略,auto不寫則隱含確定為:自動(dòng)存儲(chǔ)類別”,它屬于動(dòng)態(tài)存儲(chǔ)方式。41.以下程序的輸出結(jié)果是unionmyun{struct{intx,y,z;}u;intk;}a;main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf(“%d\n”,a.u.x);}A.4B.5C.6D.0正確答案:D解析:本題考查共用體變量起作用的范圍。共用體變量中起作用的成員是最后一次存放的成員,在存入一個(gè)新的成員后原有的成員就失去作用,在本題中,當(dāng)對(duì)a.u.y成員賦值時(shí),a.u.x的值就不存在了,當(dāng)對(duì)a.u.2賦值時(shí),a.u.y的值就不存在了。42.下面程序輸出的結(jié)果是main(){intinta[3)[3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf(“%d”,a[2-i][i]);}A.159B.753C.357D.591正確答案:B解析:本題用循環(huán)的方法考查對(duì)數(shù)組概念的掌握。首先,當(dāng)i=0時(shí),數(shù)組中的位置是a[2][0]=7,當(dāng)然,如果用排除法的話,就不用考慮后面的循環(huán)了,因?yàn)樵?個(gè)選項(xiàng)中,第1個(gè)數(shù)為了的選項(xiàng)只有B)。本題執(zhí)行第2次循環(huán)時(shí),i的值為1,則printf函數(shù)中的數(shù)組指向?yàn)閍[1][1]=5,依次循環(huán),可求出答案。43.有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen(“d1.dat”,”w”);fprintf(fp,”%d\n”,i);fprintf(fp,”%d\n”,j);fclose(fp);fp=fopen(“d1.dat”,”r”);fscanf(fp,”%d%d”,&k,&n;printf(“%d%d\n”,k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是A.2030B.2050C.3050D.3020正確答案:A解析:本題中,最主要的是掌握幾個(gè)有關(guān)文件的函數(shù)的應(yīng)用。函數(shù)名:fopen功能:打開一個(gè)文件調(diào)用方式FILE*fp;fp=fopen(文件名,使用文件方式);函數(shù)名:fprintf功能:傳送格式化輸出到一個(gè)文件中調(diào)用方式:fprintf(文件指針,格式字符串,輸出表列);函數(shù)名:fclose功能:關(guān)閉一個(gè)文件調(diào)用方式:fclose(文件指針);函數(shù)名:fscanf功能:從磁盤文件執(zhí)行格式化輸入調(diào)用方式:fscanf(文件指針,格式字符串,輸入表列)。44.一個(gè)C語言程序是由A.一個(gè)主程序和若干子程序組成B.函數(shù)組成C.若干過程組成D.若干子程序組成正確答案:B解析:C程序是由函數(shù)構(gòu)成的。一個(gè)C源程序至少包括一個(gè)main函數(shù),也可以包含一個(gè)main函數(shù)和若干個(gè)其他函數(shù)。因此,函數(shù)是C程序的基本單位,被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫函數(shù),也可以是用戶根據(jù)需要自己編制設(shè)計(jì)的函數(shù)。45.C語言規(guī)定,在一個(gè)源程序中,main函數(shù)的位置A.必須在最開始B.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C.可以任意D.必須在最后正確答案:C解析:一個(gè)C程序總是從main函數(shù)開始執(zhí)行的,不論main函數(shù)在整個(gè)過程中的位置如何。46.下列敘述中正確的是A.C語言編譯時(shí)不檢查語法B.C語言的子程序有過程和函數(shù)兩種C.C語言的函數(shù)可以嵌套定義D.C語言的函數(shù)可以嵌套調(diào)用正確答案:D解析:C語言相對(duì)其他高級(jí)語言來說,放寬了語法檢查,因此程序設(shè)計(jì)自由度大,但并不是不檢查語法,C語言的程序是由函數(shù)構(gòu)成的。函數(shù)不能嵌套定義,但是可以嵌套調(diào)用。47.下面程序段的運(yùn)行結(jié)果是chara[]=“l(fā)anuage”,*p;p=a;while(*p!=‘u’){printf(“%c”,*p-32);p++;}A.LANGUAGEB.languageC.LAND.langUAGE正確答案:C解析:本段程序的作用是輸出字符串“l(fā)anuage”中字母u之前的字符,并將其轉(zhuǎn)化為大寫字母。注意:如果一個(gè)字符數(shù)組用來作為字符串使用,那么在定義該字符數(shù)組時(shí),數(shù)組的大小就應(yīng)該比它將要實(shí)際存放的最長字符多一個(gè)元素,以存放‘\0’。48.若執(zhí)行下述程序時(shí),若從鍵盤輸入6和8時(shí),結(jié)果為main(){inta,b,s;scanf(“%d%d”,&a,&b);s=aif(a<b)s=b;s*=s;printf(“%d”,s);}A.36B.64C.48D.以上都不對(duì)正確答案:B解析:本題中a的值為6,b的值為8,最后s的值為8,s*=s等價(jià)于s=s*s。49.以下敘述中不正確的是A.預(yù)處理命令行都必須以#號(hào)開始B.在程序中凡是以#號(hào)開始的語句行都是預(yù)處理命令行C.宏替換不占用運(yùn)行時(shí)間,只占編譯時(shí)間D.在以下定義是正確的:#definePI3.1415926;正確答案:D解析:帶參數(shù)的宏定義如下:#define宏名(參數(shù))字符串。本題中,宏定義的作用是指定用標(biāo)識(shí)符PI來代替“3.1415926”這個(gè)字符串,但宏定義不是C語句,不必在行末加分號(hào)。50.下列各數(shù)據(jù)類型不屬于構(gòu)造類型的是A.枚舉型B.共用型C.結(jié)構(gòu)型D.?dāng)?shù)組型正確答案:A解析:共用型、結(jié)構(gòu)型和數(shù)組型是C語言中的構(gòu)造類型。填空題(每空2分,共30分)請(qǐng)將每一個(gè)空的正確答案寫在答題卡上。注意:以命令關(guān)鍵字填空的必須拼寫完整。51.?dāng)?shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。正確答案:存儲(chǔ)結(jié)構(gòu)解析:數(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)系的信息。52.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和操作的機(jī)制稱為【】。正確答案:繼承解析:類是面向?qū)ο笳Z言中必備的程序語言結(jié)構(gòu),用來實(shí)現(xiàn)抽象數(shù)據(jù)類型。類與類之間的繼承關(guān)系實(shí)現(xiàn)了類之間的共享屬性和操作,一個(gè)類可以在另一個(gè)已定義的類的基礎(chǔ)上定義,這樣使該類型繼承了其父類的屬性和方法,當(dāng)然,也可以定義自己的屬性和方法。53.耦合和內(nèi)聚是評(píng)價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中【】反映了模塊內(nèi)各成分之間的聯(lián)系。正確答案:內(nèi)聚解析:內(nèi)聚性是一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量,內(nèi)聚是從功能角度來度量模塊內(nèi)的聯(lián)系;耦合性是模塊間互相連接的緊密程度的度量。54.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體“項(xiàng)目主管”與實(shí)體“項(xiàng)目”的聯(lián)系屬于【】的聯(lián)系。正確答案:一對(duì)多(或1: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)系。55.?dāng)?shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、【】、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。正確答案:概念設(shè)計(jì)階段解析:數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論