




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)(C語言)機(jī)試模擬試卷2(共9套)(共381題)國(guó)家二級(jí)(C語言)機(jī)試模擬試卷第1套一、選擇題(本題共39題,每題1.0分,共39分。)1、下列敘述中正確的是()。A、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)會(huì)影響算法的效率B、算法設(shè)計(jì)只需考慮結(jié)果的可靠性C、算法復(fù)雜度是指算法控制結(jié)構(gòu)的復(fù)雜程度D、算法復(fù)雜度是用算法中指令的條數(shù)來度量的標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的基本特征包括可行性、確定性、有窮性、足夠的初始信息,算法的設(shè)計(jì)必須考慮到算法的復(fù)雜度,故B選項(xiàng)錯(cuò)誤。算法的復(fù)雜度是指該算法所需要的計(jì)算機(jī)資源的多少,即時(shí)間和空間的資源,分為時(shí)間復(fù)雜度和空間復(fù)雜度。算法控制結(jié)構(gòu)在具體實(shí)現(xiàn)中影響程序執(zhí)行時(shí)間,與算法復(fù)雜度無關(guān),故C選項(xiàng)錯(cuò)誤。算法的時(shí)間復(fù)雜度是用算法所執(zhí)行的基本運(yùn)算次數(shù)來度量的,而不是算法中指令的條數(shù),故D選項(xiàng)錯(cuò)誤。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與算法的復(fù)雜度有關(guān),會(huì)影響算法的效率。故A選項(xiàng)正確。2、設(shè)數(shù)據(jù)集合為D={1,2,3,4,5}。下列數(shù)據(jù)結(jié)構(gòu)B=(D,R)中為非線性結(jié)構(gòu)的是()。A、R={(1,2),(2,3),(3,4),(4,5)}B、R={(1,2),(2,3),(4,3),(3,5)}C、R={(5,4),(4,3),(3,2),(2,1)}D、R={(2,5),(5,4),(3,2),(4,3)}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)如果滿足以下兩個(gè)條件:有且只有一個(gè)根結(jié)點(diǎn);每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件,稱為線性結(jié)構(gòu)。不同時(shí)滿足以上兩個(gè)條件的數(shù)據(jù)結(jié)構(gòu)就稱為非線性結(jié)構(gòu)。B選項(xiàng)中,由(2,3)、(4,3)可知,結(jié)點(diǎn)3有兩個(gè)前件2和4,為非線性結(jié)構(gòu),故選擇B選項(xiàng)。3、某二叉樹共有150個(gè)結(jié)點(diǎn),其中有50個(gè)度為1的結(jié)點(diǎn),則()。A、不存在這樣的二叉樹B、該二叉樹有49個(gè)葉子結(jié)點(diǎn)C、該二叉樹有50個(gè)葉子結(jié)點(diǎn)D、該二叉樹有51個(gè)葉子結(jié)點(diǎn)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在樹結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件個(gè)數(shù)稱為該結(jié)點(diǎn)的度。對(duì)任何一棵二叉樹,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。二叉樹中有150個(gè)結(jié)點(diǎn),設(shè)葉子結(jié)點(diǎn)個(gè)數(shù)為n0,度為1的結(jié)點(diǎn)個(gè)數(shù)為50,設(shè)度為2的結(jié)點(diǎn)個(gè)數(shù)為n2。150=n0+50+n2且n0=n2+1,則n0=50.5,n2=49.5。由于結(jié)點(diǎn)個(gè)數(shù)必須是整數(shù),所以不存在這樣的二叉樹,故選擇A選項(xiàng)。4、循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:50),初始狀態(tài)為front=rear=50。經(jīng)過一系列正常的人隊(duì)與退隊(duì)操作后,front=rear=25,此后又正常地插入了一個(gè)元素,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為()。A、51B、50C、49D、1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu),用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用排頭指針front指向排頭元素的前一個(gè)位置。入隊(duì)運(yùn)算時(shí),隊(duì)尾指針進(jìn)1(即rear+1),然后在rear指針指向的位置插入新元素。當(dāng)front=rear=25時(shí)可知隊(duì)列空或者隊(duì)列滿,此后又正常地插入了一個(gè)元素說明之前隊(duì)列為空,所以插入操作之后隊(duì)列里只有一個(gè)元素。故D選項(xiàng)正確。5、下列排序方法中,最壞情況下時(shí)間復(fù)雜度(即比較次數(shù))低于O(n2)的是()。A、快速排序B、簡(jiǎn)單插入排序C、冒泡排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:對(duì)長(zhǎng)度為n的線性表排序,常用排序方法最壞情況的時(shí)間復(fù)雜度如下表所示時(shí)間復(fù)雜度低于O(n2)的排序算法是堆排序,故D選項(xiàng)正確。6、下面描述正確的是()。A、軟件測(cè)試是指動(dòng)態(tài)測(cè)試B、軟件測(cè)試可以隨機(jī)地選取測(cè)試數(shù)據(jù)C、軟件測(cè)試是保證軟件質(zhì)量的重要手段D、軟件測(cè)試的目的是發(fā)現(xiàn)和改正錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件測(cè)試有多種方法,根據(jù)軟件是否需要被執(zhí)行,可以分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試,故A選項(xiàng)敘述錯(cuò)誤。軟件測(cè)試應(yīng)在測(cè)試之前制定測(cè)試計(jì)劃,并嚴(yán)格執(zhí)行,排除測(cè)試隨意性,并且需要設(shè)計(jì)正確的測(cè)試用例,故B選項(xiàng)敘述錯(cuò)誤。軟件測(cè)試就是在軟件投入運(yùn)行之前,盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤,改正錯(cuò)誤是調(diào)試的過程,故D選項(xiàng)敘述錯(cuò)誤。軟件測(cè)試是保證軟件質(zhì)量的重要手段,故C選項(xiàng)正確。7、下面圖中屬于軟件設(shè)計(jì)建模工具的是()。A、DFD圖(數(shù)據(jù)流程圖)B、程序流程圖(PFD圖)C、用例圖(L/SE—CASE圖)D、網(wǎng)絡(luò)工程圖標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:結(jié)構(gòu)化分析方法的常用工具:數(shù)據(jù)流程圖(DFD)、數(shù)據(jù)字典(DD)、判定表、判定樹。常用的過程設(shè)計(jì)建模工具:圖形工具(PFD圖、N—S圖、PAD圖、HIPO)、表格工具(判定表)、語言工具(PDL)。用例圖(USE—CASE圖)用于對(duì)系統(tǒng)、子系統(tǒng)或類的功能行為進(jìn)行建模。網(wǎng)絡(luò)工程圖用于網(wǎng)絡(luò)設(shè)備布線。屬于軟件設(shè)計(jì)建模工具的是程序流程圖(PFD圖),故B選項(xiàng)正確。8、數(shù)據(jù)庫(DB)、數(shù)據(jù)庫系統(tǒng)(DBS)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)之間的關(guān)系是()。A、DB包括DBS和DBMSB、DBMS包括DB和DBSC、DBS包括DB和DBMSD、DBS、DB和DBMS相互獨(dú)立標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)庫(DB)是指長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫管理系統(tǒng)(DBMS)是數(shù)據(jù)庫的機(jī)構(gòu),它是一個(gè)系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、數(shù)據(jù)制及保護(hù)和數(shù)據(jù)服務(wù)等。數(shù)據(jù)庫系統(tǒng)(SBS)由如下幾部分組成:數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、硬件平臺(tái)、軟件平臺(tái),這些構(gòu)成了一個(gè)以數(shù)據(jù)庫管理系統(tǒng)為核心的完整的運(yùn)行實(shí)體。數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng),故C選項(xiàng)正確。9、醫(yī)院里有不同的科室,每名醫(yī)生分屬不同科室,則實(shí)體科室與實(shí)體醫(yī)生間的聯(lián)系是()。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:實(shí)體集之間通過聯(lián)系來建立聯(lián)接關(guān)系分為3類:一對(duì)一聯(lián)系(1:1)、一對(duì)多聯(lián)系(1:m)、多對(duì)多聯(lián)系(m:n)。每個(gè)科室有多名醫(yī)生,但每個(gè)醫(yī)生只能在一個(gè)科室里,故實(shí)體科室和實(shí)體醫(yī)生之間的聯(lián)系是一對(duì)多,因此B選項(xiàng)正確。10、以下敘述錯(cuò)誤的是()。A、任何能通過編譯和運(yùn)行的算法都一定能得到所期望的結(jié)果B、一個(gè)算法所包含的操作步驟應(yīng)該是有限的C、算法中每一條指令必須有確切的含義D、算法可以用各種描述方法來進(jìn)行描述標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的特性包括有窮性、確定性、有效性等。有窮性是指一個(gè)算法應(yīng)該包含有限的操作步驟而不能是無限的,故選項(xiàng)B正確;確定性是指算法中每一個(gè)步驟應(yīng)當(dāng)是確定的,而不能是含糊的、模棱兩可的,故選項(xiàng)C正確;算法可以使用自然語言、流程圖、偽代碼等多種描述方法來進(jìn)行描述,故選項(xiàng)D正確;算法的有效性是指算法中每一個(gè)步驟應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果,至于結(jié)果是否符合期望,另當(dāng)別論,故A選項(xiàng)錯(cuò)誤,因此答案選A。11、若有定義語句:intx=10:則表達(dá)式x一=x+x的值為()。A、10B、一20C、0D、一10標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:表達(dá)式x一=x+x等價(jià)于x=x一(x+x),x取值為10,所以結(jié)果為:10—20=一10,答案選D。12、若有定義:doublea=22;inti=0,k=18;則不符合C語言規(guī)定的賦值語句是()。A、a=a++,i++;B、i=(a+k)<:(i+k);C、i=a%11;D、i=!a;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:自增、自減操作符適用于char、short、int、long、float、double等類型,故選項(xiàng)A正確;賦值操作符“=”的優(yōu)先級(jí)小于比較操作符“<=”,所以選項(xiàng)B等價(jià)于:i=((a+k)<=(i+k));,即將后面比較操作符的結(jié)果賦值給i,故選項(xiàng)B也正確;“!”是邏輯非運(yùn)算符,i=!a表示將a表達(dá)式的值取反,賦值給i,故選項(xiàng)D也正確;求模運(yùn)算符“%”的操作數(shù)只能是整數(shù),故選項(xiàng)C錯(cuò)誤,因此答案選C。13、以下選項(xiàng)中,合法的C語言實(shí)數(shù)是()。A、.4e0B、4.3e0.2C、E4.8D、0.29E標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:c語言中,實(shí)數(shù)有兩種形式:十進(jìn)制小數(shù)形式和指數(shù)形式。由4個(gè)選項(xiàng)可知,本題考查的是實(shí)數(shù)的指數(shù)形式,指數(shù)形式一般為:aEn,其中a為十進(jìn)制數(shù),n為十進(jìn)制整數(shù),表示的值為:a×10n;B、C選項(xiàng)錯(cuò)在階碼必須是整數(shù),D選項(xiàng)錯(cuò)在無階碼,故答案為A,A的值為:0.4×100=0.4。14、以下選項(xiàng)中,與k=n++完全等價(jià)的表達(dá)式是()。A、k=n,n=n+1B、n=n+1,k=nC、k=++nD、k+=n+1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查后綴自增++運(yùn)算符,n++表示n的當(dāng)前值參與運(yùn)算后,再自增1,所以表達(dá)式k=n++等價(jià)于k=n,n=n+1,故答案選A。15、以下敘述錯(cuò)誤的是()。A、若用戶標(biāo)識(shí)符的命名與預(yù)定義標(biāo)識(shí)符相同,命名無效B、若用戶標(biāo)識(shí)符的命名與關(guān)鍵字相同,將產(chǎn)生編譯錯(cuò)誤C、若用戶標(biāo)識(shí)符的命名與預(yù)定義標(biāo)識(shí)符相同,預(yù)定義標(biāo)識(shí)符失去原有含義D、若用戶標(biāo)識(shí)符的命名與預(yù)定義標(biāo)識(shí)符相同,可能引發(fā)運(yùn)行錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:標(biāo)識(shí)符分為關(guān)鍵字、預(yù)定義標(biāo)識(shí)符、用戶標(biāo)識(shí)符,關(guān)鍵字不可以作為用戶標(biāo)識(shí)符,故選項(xiàng)B正確;預(yù)定義標(biāo)識(shí)符可以作為用戶標(biāo)識(shí)符,原來的預(yù)定義標(biāo)識(shí)符將會(huì)被用戶標(biāo)識(shí)符覆蓋,預(yù)定義標(biāo)識(shí)符的原意失效,故選項(xiàng)A錯(cuò)誤,選項(xiàng)c正確;用戶標(biāo)識(shí)符與預(yù)定義標(biāo)識(shí)符同名時(shí),可能會(huì)導(dǎo)致運(yùn)行錯(cuò)誤,故選項(xiàng)D正確,因此答案為A。16、設(shè)有定義:doublex;,以下選項(xiàng)中不能將輸入數(shù)據(jù)3.14讀入賦給變量x的是()。A、scanf(“%4.2f.”,&x);B、scanf(“%if”,&x);C、scanf(“%le”,&x);D、scanf(“%4if”,&x);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:scanf()函數(shù)格式字符串的一般形式為:%[*][輸入數(shù)據(jù)寬度][長(zhǎng)度]類型。輸入數(shù)據(jù)寬度必須是十進(jìn)制的整數(shù),它沒有精度控制,%4.2f是錯(cuò)誤的,不能企圖用此語句輸入小數(shù)點(diǎn)為2位的實(shí)數(shù),故選項(xiàng)A錯(cuò)誤;scanf()函數(shù)的長(zhǎng)度格式符為1和h,%lf表示用小數(shù)形式輸入雙精度浮點(diǎn)數(shù),滿足條件,故選項(xiàng)B正確;%le表示用指數(shù)形式輸入雙精度浮點(diǎn)數(shù),滿足條件,故選項(xiàng)C正確;%4lf表示用小數(shù)形式輸入寬度為4的雙精度浮點(diǎn)數(shù),故選項(xiàng)D正確,因此答案為A。17、若有定義:floatx=1.5:inta=1,b=3,c=2;則正確的switch語句是()。A、switch(a+b){case1:prinff(“*\n”);case2+1:prinff(“**\n”);}B、switch((int)x);{case1:prinff(“*\n”);case2:prinff(“**\n”);}C、switch(x){case1.0:prinff(“*\n”);case2.0:prinff(“**\n”);}D、switch(a+b){case1:prinff(“*\n”);casec:prinff(“**\n”);}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無解析18、有以下程序段:#includeinta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;prinff(“a=%db=%dc=%d\n”,a,b,c);程序的輸出結(jié)果是()。A、a=10b=50c=10B、a=10b=50c=30C、a=10b=30c=10D、a=50b=30e=50標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:形式為“if(表達(dá)式)語句”的if作用到語句的第一個(gè)分號(hào)結(jié)束,所以本題中if語句的作用范圍為a=b,b=c;。由于if條件為false,所以這兩條語句不執(zhí)行,執(zhí)行c:a語句,所以程序最終輸出結(jié)果:10,50,10,答案為A。19、以下關(guān)于循環(huán)語句的敘述中正確的是()。A、do…while語句的循環(huán)體至少執(zhí)行一次B、while語句的循環(huán)體至少執(zhí)行一次C、for語句的循環(huán)體至少執(zhí)行一次D、上述A、B、C說法均正確標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:while(表達(dá)式)當(dāng)表達(dá)式為false時(shí),循環(huán)體一次都不執(zhí)行,故選項(xiàng)B、D錯(cuò)誤;for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句,當(dāng)表達(dá)式2為false時(shí),循環(huán)體一次都不執(zhí)行,故選項(xiàng)c錯(cuò)誤;do—while語句循環(huán)體至少執(zhí)行一次,故答案選A。20、有以下程序:#includemain(){intx,y=0,z=0,t;do{seanf(“%d”,&x);t=x>0:switch(t){ease0:break;ease1:y+=x;continue;}z+=x:}while(x);prinff(“%d,%d\n”,y,z);}程序運(yùn)行時(shí)輸入:一11—220<回車>,則輸出結(jié)果是()。A、1,1B、1,0C、3,一3D、3,0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:分析程序結(jié)構(gòu),在do…while循環(huán)中,嵌套一個(gè)switch語句,switch語句中兩個(gè)case語句分別執(zhí)行break和continue,其中break語句是跳出switch語句,接著執(zhí)行d0…while循環(huán)體剩下的部分;而continue語句是直接進(jìn)入do…while的下一個(gè)循環(huán),由此可知每次循環(huán),當(dāng)t=0時(shí),執(zhí)行break語句,接著將z值累加x;當(dāng)t=1時(shí),執(zhí)行continue語句,將y值累加x,所以當(dāng)x輸入一1、一2、0時(shí),t=0,z值累加為一3;當(dāng)x輸入1、2時(shí),t=1,y值累加為3,輸出y、z的值分別為3、一3,故答案選C。21、有以下程序:#includemain(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)f10r(j=i;j<=i;j++)t+=b[i][b[j][i]];prinff(“%d\n”,t);}程序運(yùn)行后的輸出結(jié)果是()。A、3B、4C、1D、9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:分析程序可以發(fā)現(xiàn),內(nèi)層for循環(huán)每次只執(zhí)行一次:即當(dāng)j=i時(shí)。所以可以使用i替換j,去掉for循環(huán),對(duì)應(yīng)外層for循環(huán)的i,執(zhí)行t+=b[i][b[i][i]],所以當(dāng)i取值0、1、2時(shí),1的值累加b[0][b[0][0]]、b[1兒b[1][1]]、b[2][b[2][2]],即b[0][0]、b[1][1]、b[2][2],對(duì)應(yīng)的值為:0、1、2,t取值為4(t初始值為1)。故答案選B。22、以下選項(xiàng)中能正確定義二維數(shù)組的選項(xiàng)是()。A、doublea[][3]={2*3};B、doublea[][3];C、doublea[][3]={};D、doublea[2][3]={{1.0},{2.0},{3.0,4.0}};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:如果第一維的長(zhǎng)度沒有指定,則定義的同時(shí)需要完成初始化,否則不知道分配多大的內(nèi)存空間給它,所以選項(xiàng)B、C錯(cuò)誤;二維數(shù)組a[2][3]中只有兩個(gè)元素,都是一維數(shù)組,一維下標(biāo)最大只能是a[1],所以選項(xiàng)D錯(cuò)誤;若完成初始化的二維數(shù)組,第一維的長(zhǎng)度沒有指定,則第一維的大小按如下規(guī)則確定:若初值個(gè)數(shù)能被第二維大小整除,所得的商就是第一維的大??;若不能整除,則所得的商加1作為第一維的大小,所以選項(xiàng)A相當(dāng)于:doublea[1][3]={6};其中a[0][0]=6,其他元素賦值0,故選項(xiàng)A正確,答案為A。23、若有函數(shù)定義如下:intfun(intx,inty){retumx—y;}則以下涉及上述函數(shù)的說明語句錯(cuò)誤的()。A、intfun(intx,y);B、intfun(int,jnt);C、intfun(inta,intb);D、inti,fun(intx,inty);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語言中函數(shù)的說明形式為:類型說明符函數(shù)名9類型形參名1,類型形參名2,……);其中形參名可以直接省略,故選項(xiàng)B、選項(xiàng)C正確,選項(xiàng)D中,變量i和函數(shù)同時(shí)聲明,正確;A選項(xiàng)中的說明語句中省略類型,故錯(cuò)誤。24、有以下程序:#include#defineN4main(){inta[N][N]={0},i,j,k;for(i=0;iA、1221B、l111C、2112D、2222標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題程序需要輸出二維數(shù)組a中第二行的各個(gè)元素值,即a[1]這個(gè)一維數(shù)組的元素值。分析程序可知只有在兩種情況下才會(huì)對(duì)a[1]中的元素賦值:①外層for循環(huán)中i:0時(shí),內(nèi)層第二個(gè)for循環(huán)的k取值為1,此時(shí)a[k][i]=a[1][0]=1,a[k][N—i—1]=a[1][3]=1;②外層for循環(huán)中i=1時(shí),內(nèi)層第一個(gè)for循環(huán)的j取值為1、2,a[i][j]=a[1][j]=2,即a[1][1]=2,a[1][2]=2。除了這兩種情況,其他情況不會(huì)修改a[1]中的值,所以最終a[1]各個(gè)元素的值為:1、2、2、1,故答案選A。25、有以下程序:#includeintf(intn);main(){inta=3,s;s=f(a);s=s+f(a);prinff(“%d\n”,s);}intf(intn){staticinta=1;n+=a++:retumn:}程序運(yùn)行后的輸出結(jié)果是()。A、7B、8C、9D、10標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:首先main函數(shù)中的局部變量a和f()函數(shù)中的靜態(tài)局部變量a的作用域都只限在其所在的函數(shù)中,相互之間不影響,看作兩個(gè)不同的變量即可。另外,f()函數(shù)中的靜態(tài)局部變量a只在第一次調(diào)用f()函數(shù)時(shí)初始化一次,其他調(diào)用都會(huì)保留上一次調(diào)用結(jié)束時(shí)的值。分析main函數(shù)可知,第一次調(diào)用時(shí)將f(a)的返回值賦給s,所以語句可以改寫為:s=f(a)+f(a),即main函數(shù)中調(diào)用兩次f(a),傳入的參數(shù)8取值都為3,第一次調(diào)用時(shí),靜態(tài)局部變量初始化為1,所以n=4并返回,a自增為2;第二次調(diào)用時(shí)靜態(tài)局部變量a取上一次調(diào)用結(jié)束時(shí)的值2,所以n=5并返回,a自增為3。所以在main()函數(shù)中,s=4+5=9,所以函數(shù)執(zhí)行完輸出結(jié)果為9,答案為C。26、有以下程序:#includemain(){chars[][6]={-.a(chǎn)bed“,”abe”,“ab”};inti;for(i-0;i<3;i++)puts(s[i]);}}執(zhí)行后的輸出結(jié)果是()。A、abedabeabB、aaaC、abedbedcD、dabc標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序初始化一個(gè)二維數(shù)組,其中每個(gè)元素都是一個(gè)字符數(shù)組,for循環(huán)中使用字符串輸出函數(shù)puts()打印二維數(shù)組中的每個(gè)元素,puts()接受字符數(shù)組名當(dāng)做參數(shù),將該字符數(shù)組存儲(chǔ)的字符串打印出來,程序中s[0]存儲(chǔ)的字符串是“abcd”,s[1]存儲(chǔ)的字符串是“abc”,s[2]存儲(chǔ)的字符串是“ab”,所以程序輸出為:abcd、abc、ab,答案選A。27、若有以下函數(shù):intfun(char*a,char*b){intbk=0;while((*a!=‘\0’)&&(*b!=’、0’)&&strlen(a)==strlen(b)){if(*b!=*a){bk=0;break;}a++;b++;bk=1;returnbk;此函數(shù)的功能是()。A、判斷a和b兩個(gè)字符串是否相等B、將字符串a(chǎn)改名為字符串bC、將字符串變量a的值賦給字符串變量bD、檢查字符串a(chǎn)和b中是否有‘\0’標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:分析程序可知:函數(shù)fun在字符指針a和b未遇到字符‘\0’且a指向的字符串A長(zhǎng)度與b指向的字符串B長(zhǎng)度相同時(shí),遍歷A、B,逐個(gè)比較a指向的字符與b指向的字符是否相同,所以程序分3種情況:①A的長(zhǎng)度與B的長(zhǎng)度不同,返回值為0;②A的長(zhǎng)度與B的長(zhǎng)度相等,但A中某個(gè)位置i上的字符與B中位置i上的字符不同,返回值為0;③A的長(zhǎng)度與B的長(zhǎng)度相等,且A中相同位置上的字符與B中相同位置上的字符全部相同,返回值1。由此可知函數(shù)的功能是判斷a和b指向的兩個(gè)字符串是否相等。答案為A。28、設(shè)有如下定義和語句:[1]char*s;s:“string”;[2]chars[7];s=“string”;[3]chars[]=“string”;[4]chars[]={’s’,’t’,’r’,…,’n’,’g’};其中定義項(xiàng)可以作為字符串使用的是()。A、[1]和[4]B、[1]和[2]C、[1]和[3]D、[3]和[4]標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符數(shù)組只能在初始化的時(shí)候完成賦值,否則只能對(duì)數(shù)組元素逐個(gè)賦值,[2]是錯(cuò)誤的;C語言字符串必須包含‘\0’字符,用來表示字符串結(jié)束標(biāo)志,[4]錯(cuò)誤;可以將字符串直接賦給字符指針,使得指針指向字符串首地址,[1]正確;在字符數(shù)組初始化時(shí),可以直接使用字符串,[3]正確;故答案為C。29、有以下程序:#include#includeintfun(intn){int*p;P=(int*)malloc(sizeof(int));*p=n;retum*p;}main(){inta;a=fun(10);printf(“%d\n”,a+fun(10));}程序的運(yùn)行結(jié)果是()。A、10B、20C、0D、出錯(cuò)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由main函數(shù)可知:程序需要打印出變量a與fun(10)返回值相加的結(jié)果,而變量a的值等于fun(10)的返回值,所以最終結(jié)果取決于fun(10)的返回值。在函數(shù)fur()中,傳入整型參數(shù)n,定義整型變量指針p,并使用malloc()函數(shù)為指針p分配了內(nèi)存空間,接著將參數(shù)n的值賦給p指針?biāo)傅恼蛯?duì)象,并返回p指針?biāo)笇?duì)象,由此可知,函數(shù)返回值等于傳入的參數(shù)n,所以fun(10)的返回值為10,且a=10,最終結(jié)果為20。因此答案B正確。對(duì)于選項(xiàng)D,雖然在fun()函數(shù)中,p指向的動(dòng)態(tài)分配的內(nèi)存空問未被釋放,使得程序存在內(nèi)存泄露問題,但只要內(nèi)存還有剩余,就不會(huì)影響程序的運(yùn)行,不會(huì)造成程序運(yùn)行崩潰。30、有以下程序:#includestruetS{inta,b;}data[2]={10,100,20,200};main(){structSp=data[1];printf(“%d\n”,++(P.a(chǎn)));}程序運(yùn)行后的輸出結(jié)果是()。A、10B、11C、20D、21標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)組data包含兩個(gè)元素,元素類型為結(jié)構(gòu)體S,分別為data[0],data[1],初始化時(shí),使用4個(gè)整數(shù)10,100,20,200,分別給data[0].a(chǎn),data[0].b,data[1].a(chǎn),data[1].b賦值,又p.a(chǎn)=data[1].a(chǎn),等于20,在輸出之前執(zhí)行自身加l操作,所以結(jié)果為21,答案選D。31、以下敘述中正確的是()。A、當(dāng)對(duì)文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失B、打開一個(gè)已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋C、在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個(gè)數(shù)據(jù)D、C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:文件一旦使用完畢,應(yīng)該使用關(guān)閉文件函數(shù)把文件關(guān)閉,以避免出現(xiàn)文件數(shù)據(jù)丟失等錯(cuò)誤,所以選項(xiàng)A正確;若使用fopen打開文件函數(shù)打開文件時(shí),指定打開方式為‘a(chǎn)’,則可以向文件追加信息,而不是覆蓋原文件內(nèi)容,故B選項(xiàng)錯(cuò)誤;在文件被打開后,使用文件定位函數(shù)rewind或fseek函數(shù),可以將文件指針移到文件的任何位置,所以在寫操作完成后,可以直接將文件指針定位到文件首,接著讀數(shù)據(jù),而不需要先關(guān)閉文件,再打開讀取,故C選項(xiàng)錯(cuò)誤;使用文件定位函數(shù)可以隨機(jī)讀寫文件,故D選項(xiàng)錯(cuò)誤。所以本題答案為A。32、有以下程序:#includemain()FTIL*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen(”datA)dat”,“w+b”);fwrite(&a[0],sizeof(int),1,fp);for(i=1;i<6;i++){fseek(fp,OL,0);fwrite(&a[i],sizeof(int),1,fp);}fseek(fp,0L,0);fread(&k,sizeof(int),1,fp);fclose(fp);printf(“%d\n”,k);程序運(yùn)行后的輸出結(jié)果是()。A、123456B、21C、6D、654321標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:首先使用fopen函數(shù)以只寫方式打開文件datAdat,返回文件指針fp,然后通過調(diào)用fwrite函數(shù),將起始地址為&a[0]、單位長(zhǎng)度為sizeof(int)的一個(gè)元素寫入文件,即寫入a[0];接著for循環(huán)從數(shù)組a的第二個(gè)元素起,每次首先使用fseek()函數(shù)將指針fp定位到文件datAdat的開始位置,寫入起始地址&a[i]、單位長(zhǎng)度為sizeof(int)的一個(gè)元素,即寫入a[i];此時(shí)數(shù)組元素按照逆序?qū)懭胛募?5432l。循環(huán)結(jié)束后,使用fseek()函數(shù)再將指針fp定位到文件開始位置,調(diào)用fread()函數(shù),從fp所指位置讀取單位長(zhǎng)度為sizeof(int)的一個(gè)元素到變量k中,即k:6,最后調(diào)用fclose()函數(shù)關(guān)閉文件,輸出k的值6,故答案為C。33、有以下程序:#include#defineS(x)(x/x)*xmain(){intk=6,j:3;printf(“%d,%d\n”,S(k+j),S(j+k));}程序運(yùn)行后的輸出結(jié)果是()。A、57,39B、57,57C、9,9D、39,39標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查宏定義。宏定義是在程序預(yù)處理階段直接進(jìn)行文本替換,所以本題中S(k+j)、S(j+k)可以替換為:S(k+j)=(k+j/k+j)×k+j=(6+3/6+3)×6+3=57;S(j+k)=(j+k/j+k)×j+k=(3+6/3+6)×3+6=39,故答案為A。(注:宏定義中的形參一定要使用小括號(hào)括起來,以避免出錯(cuò))34、若要通過位運(yùn)算使整型變量a中的各位數(shù)字全部清零,以下選項(xiàng)正確的是()。A、a=a&0;B、a=a10;C、a=a’0;D、a=!a;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查位運(yùn)算符和位運(yùn)算。“1’運(yùn)算符,110=1,010=0,所以選項(xiàng)B中a變量的各位數(shù)字保持不變,故B錯(cuò)誤;“”’運(yùn)算符,1^0=1,0^0=0,所以選項(xiàng)c中a變量的各位數(shù)字中,1保持不變,0變成1,故C錯(cuò)誤;“!”運(yùn)算符,!1=0,10=1,所以選項(xiàng)D中a變量的個(gè)位數(shù)字中,1變成0,0變成1,故D錯(cuò)誤;“&”運(yùn)算符,1&0=0,0&0=0,所以選項(xiàng)A中各位數(shù)字全部清零,故答案為A。35、程序中若有以下的說明定義和語句:#include#includestruetSTR{charnHm[10];intS;};main(){struetSTRt,*p;P=&t:}}則不能給變量t的s成員賦整數(shù)99,給num成員賦空串的語句組是()。A、(*P).s=99;(*p).RumRm.“”;B、P一>s=99;P一>num[0]=0;C、(*p).s=99;P一>num[0]:‘\0’;D、P一>s=99;strcpy((*p).num,“”);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)體變量使用“.”運(yùn)算符引用結(jié)構(gòu)體成員變量,結(jié)構(gòu)體指針使用“一>”運(yùn)算符引川結(jié)構(gòu)體成員變量,main函數(shù)中聲明結(jié)構(gòu)體STR變量t,和結(jié)構(gòu)體STR指針*p,并將t的地址賦給p,所以使用p訪問成員變量時(shí),使用“一>”運(yùn)算符;使用*p訪問成員變量時(shí),使用“.”運(yùn)算符。另外,由于成員變量num是字符數(shù)組,所以不能直接進(jìn)行賦值,若要對(duì)num賦空字符串值,可以把num中第一個(gè)元素賦值為0或‘\0’,或者使用strcpy復(fù)制函數(shù)將空字符串“”復(fù)制到num中,故選項(xiàng)B、c、D正確,選項(xiàng)A錯(cuò)誤,因此答案為A。36、有以下程序:#includeintfun(inta){intb=2;staticintc=2:b++:c一一;return(a+b+e);}main(){intk,a=2;for(k=0;k<3;k++)printf(“%d”,fun(a));printf(“\n”);}執(zhí)行后的輸出結(jié)果是()。A、678B、666C、654D、456標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于main函數(shù)for循環(huán)中k的取值為0,1,2,所以for循環(huán)三次調(diào)用fun()函數(shù),每次調(diào)用函數(shù)fun,形參a的值為2(實(shí)參a傳入),局部變量b初始化為2(fun函數(shù)中初始化),靜態(tài)局部變量c保留上一次函數(shù)調(diào)用結(jié)束后的值,所以第一次調(diào)用fun(),形參a=2,b=2,c=2,然后執(zhí)行b自增1,c自減1,返回值為:2+3+1=6;第二次調(diào)用fun(),形參a=2,b=2,c=1,然后執(zhí)行b自增1,c自減1,返回值為:2+3+0=5;第三次調(diào)用fun(),形參a=2,b=2,c=0,然后執(zhí)行b自增1,c自減1,返回值為:2+3一1=4,所以結(jié)果為:654,答案為C。37、有定義語句:inti;chars1[10],s2[10]=“Program”;則能正確給sl數(shù)組賦字符串的語句是()。A、for(i=0;i<=7;i++)s1[i]=s2[i];B、s1=s2;C、while(s2)s1++=s2++;D、for(i=0;s2[i];i++)s1[i]=s2[i];標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:首先字符數(shù)組只有在初始化的時(shí)候整體賦值,否則只能對(duì)字符數(shù)組逐個(gè)賦值,所以選項(xiàng)B錯(cuò)誤;字符數(shù)組名s1、s2是常量,不能改變,故選項(xiàng)C錯(cuò)誤;字符串“Program”包含結(jié)尾的‘\0’,選項(xiàng)D中在處理到s2[i]=’\0’時(shí),跳出循環(huán),未將’\0’賦給s1,所以選項(xiàng)D也是錯(cuò)誤的;由于“Program”包含結(jié)尾的’\0’總共有8個(gè)字符,所以選項(xiàng)A是正確的,答案為A。38、以下程序擬讀取一個(gè)姓氏,查找其對(duì)應(yīng)的年齡并輸出:#include#include#includestructperson{charname[10];intage;};structpersongroup[6]={“zhang”,18,“wang”,20,“l(fā)i..,19,“zhao”,18,"liu¨.19},*p;main(){inti,flag=0;P=(structperson*)malloe(sizeof(structperson));gets(&p一>name);for(i=0;i<6;i++)if((strcmp(P一>name,group[i].name)==0)){prinff(“%d\n”,group[i].a(chǎn)ge);flag=1:}if(flag==0)prinff(“Nofind!\n”);}程序有語法錯(cuò)誤,出錯(cuò)的是()。A、gets(&p一>name);B、P=(structperson*)malloe(sizeof(structperson))C、if((strcmp(P一>name,group[i].name)===0))D、prinff(“%d\n”,group[i].a(chǎn)ge)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:語句gets(&p一>name)中,gets的參數(shù)應(yīng)該是成員變量name數(shù)組的首地址,而&p一>name是首先獲取數(shù)組name的首地址,然后再對(duì)首地址取地址符,所以這是錯(cuò)誤的,正確參數(shù)應(yīng)該是:gets(p一>name);,故答案選A。39、有以下程序:#include#includemain(){FILE=l=fo;charch,str[5]:if((fp=fopen(“file.txt”,“wb+”))=NULL){prinff(“error!\n”);exit(0);}eh=getchar();while(ch!=‘!’){fputc(ch,f0);ch=getchar();}rewind(fp);do{.fgets(str,4,f0);puts(str);}while(!feof(fo));fclose(fp);}程序運(yùn)行時(shí)輸入:c:\\test!<回車>,則程序的輸出結(jié)果是()。A、C:\B、e:\test\testC、e:tesD、e:\ttest標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:分析程序可知,程序是首先以可寫方式打開文件file.txt,然后使用getchar()逐個(gè)讀入輸入的字符,寫到文件file.txt中,直到輸入的字符是‘!’,停止寫入文件;然后使用rewind()將文件指針定位到文件開頭位置,再調(diào)用龜ets()函數(shù),將文件中的內(nèi)容讀入str字符數(shù)組中,再用puts()輸出,直到遇到文件結(jié)尾符,關(guān)閉文件。其中寫入文件時(shí)是逐個(gè)寫入的,而讀出時(shí)調(diào)用fgets(str,4,fp),由此可知fgets至多讀取3個(gè)字符到str,然后在結(jié)尾自動(dòng)加上“\0”字符,作為字符串的結(jié)尾標(biāo)志,使用puts輸出時(shí),輸出3個(gè)字符并完成換行,當(dāng)輸入c:\\test!<回車>時(shí),輸出為:c:\\test故答案為A選項(xiàng)。二、程序填空題(本題共1題,每題1.0分,共1分。)40、下列給定程序中,函數(shù)fun的功能是:將形參n中個(gè)位上為偶數(shù)的數(shù)取出,并按原來從高位到低位相反的順序組成一個(gè)新數(shù),作為函數(shù)值返回。例如,輸入一個(gè)整數(shù)27638496,函數(shù)返回值為64862。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#includeunsignedlongfun(unsignedlongn){unsignedlongx=0;intt;while(n){t=n%10;/**********found**********/if(t%2=[1])/**********found**********/x=[2]+t;/**********found**********/n=—[3];}returnx:}main(){unsignedlongn=一1;while(n>99999999||n<0)|printf(“Pleaseinput(0標(biāo)準(zhǔn)答案:(1)0(2)10,*x(3)n/10知識(shí)點(diǎn)解析:暫無解析三、程序修改題(本題共1題,每題1.0分,共1分。)41、下列給定程序中函數(shù)fun的功能是:將tt所指字符串中的小寫字母全部改為對(duì)應(yīng)的大寫字母,其他字符不變。例如,若輸入“Ab,eD”,則輸出“AB,CD”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#includechar*fun(chartt[]){inti;for(i=0;tt[i];i++)/**********found**********/if((‘a(chǎn)’<=tt[i])II(tt[i]<=‘z’))/**********found**********/tt[i]+=32;retum(tt);}main(){chartt[81];prinff(“\nPleaseenterastring:”);gets(tt);printf(“\nTheresultstringis:\n%s”,fun(tt));}標(biāo)準(zhǔn)答案:(1)if((tt[i]>=‘a(chǎn)’)&&(tt[i]<=‘z’))(2)tt[i]一=32;知識(shí)點(diǎn)解析:暫無解析四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)42、N名學(xué)生的成績(jī)已在主函數(shù)中放入一個(gè)帶頭節(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點(diǎn)。請(qǐng)編寫函數(shù)fun,其功能是:求出平均分,并由函數(shù)值返回。例如,若學(xué)生的成績(jī)是:8576698591726487,則平均分應(yīng)當(dāng)是:78.625。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。#include#include#de6neN8structslist{doubles;structslist*next;};typedefstructslistSTREC;doublefun(STREC*h){}STREC*creat(double*s){STREC*h,*P,*q;inti=0;h=P=(STREC*)malloc(sizeof(STREC));p一>s=0;while(is=s[i];i++;P一>next=q;P=q;}P一>next=0:returnh;}oudist(STREC*h){STREC*p;P=h一>next;prinff(“head”);do{prinff(“一>%4.If”,P一>s);P=P一>next;}while(P!=0);prinff(“\n\n”);}main(){doubles[N]={85,76,69,85,9l,72,64,87},ave;voidNONO();STREC*h;h=creat(s);outlist(h);ave=fun(h);prinff(“ave=%6.3f\n”,ave);NONO();{}voidNONO(){/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*in,*out;inti,j;doubles[N],ave;STREC*h:in=fopen(“in.dat”,“r”);out=fopen(“out.dat”,“w”);for(i=0;i<10;i++){for(j=0;j標(biāo)準(zhǔn)答案:doublefun(STREC*h){doubleave=0.0:STREC*p=h->next;while(p!=NULL){ave=ave+p—>s;p=p->next;}retumave/N;}知識(shí)點(diǎn)解析:暫無解析國(guó)家二級(jí)(C語言)機(jī)試模擬試卷第2套一、選擇題(本題共38題,每題1.0分,共38分。)1、下列敘述中正確的是A、循環(huán)隊(duì)列是順序存儲(chǔ)結(jié)構(gòu)B、循環(huán)隊(duì)列是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)D、循環(huán)隊(duì)列的插入運(yùn)算不會(huì)發(fā)生溢出現(xiàn)象標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu).線性結(jié)構(gòu)是n個(gè)數(shù)據(jù)元素構(gòu)成的有限序列,除第一個(gè)元素外的每一個(gè)元素,有且只有一個(gè)前件,除最后一個(gè)元素外,有且只有一個(gè)后件。循環(huán)隊(duì)列是線性結(jié)構(gòu)。當(dāng)需要插入的數(shù)據(jù)大于循環(huán)隊(duì)列的存儲(chǔ)長(zhǎng)度,入隊(duì)運(yùn)算會(huì)覆蓋前面的數(shù)據(jù),發(fā)生溢出現(xiàn)象。故A選項(xiàng)正確。2、下列敘述中正確的是A、所有數(shù)據(jù)結(jié)構(gòu)必須有根結(jié)點(diǎn)B、所有數(shù)據(jù)結(jié)構(gòu)必須有終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))C、只有一個(gè)根結(jié)點(diǎn),且只有一個(gè)葉子結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是線性結(jié)構(gòu)D、沒有根結(jié)點(diǎn)或沒有葉子結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)如果滿足以下兩個(gè)條件:有且只有一個(gè)根結(jié)點(diǎn);每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件,稱為線性結(jié)構(gòu),在數(shù)據(jù)結(jié)構(gòu)中習(xí)慣稱為線性表,D選項(xiàng)正確。圖是可能不包含根結(jié)點(diǎn)或葉子結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu),AB選項(xiàng)錯(cuò)誤。數(shù)據(jù)結(jié)構(gòu)中若有中間結(jié)點(diǎn)不滿足只有一個(gè)前件或者后件條件,則不屬于線性結(jié)構(gòu),C選項(xiàng)錯(cuò)誤。3、下列關(guān)于算法的描述中錯(cuò)誤的是A、算法強(qiáng)調(diào)動(dòng)態(tài)的執(zhí)行過程,不同于靜態(tài)的計(jì)算公式B、算法必須能在有限個(gè)步驟之后終止C、算法設(shè)計(jì)必須考慮算法的復(fù)雜度D、算法的優(yōu)劣取決于運(yùn)行算法程序的環(huán)境標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法是指對(duì)解題方案的準(zhǔn)確而完整的描述,簡(jiǎn)單地說,就是解決問題的操作步驟。算法不同于數(shù)學(xué)上的計(jì)算方法,強(qiáng)調(diào)實(shí)現(xiàn),A選項(xiàng)敘述正確。算法的有窮性是指,算法中的操作步驟為有限個(gè),且每個(gè)步驟都能在有限時(shí)間內(nèi)完成,B選項(xiàng)敘述正確。算法復(fù)雜度包括算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度。算法設(shè)計(jì)必須考慮執(zhí)行算法所需要的資源,即時(shí)間與空間復(fù)雜度,故C選項(xiàng)敘述正確。算法的優(yōu)劣取決于算法復(fù)雜度,與程序的環(huán)境無關(guān),當(dāng)算法被編程實(shí)現(xiàn)之后,程序的運(yùn)行受到計(jì)算機(jī)系統(tǒng)運(yùn)行環(huán)境的限制,故正確答案為D選項(xiàng)。4、在線性表的順序存儲(chǔ)結(jié)構(gòu)中,其存儲(chǔ)空間連續(xù),各個(gè)元素所占的字節(jié)數(shù)A、相同,元素的存儲(chǔ)順序與邏輯順序一致B、相同,但其元素的存儲(chǔ)順序可以與邏輯順序不一致C、不同,但元素的存儲(chǔ)順序與邏輯順序一致D、不同,且其元素的存儲(chǔ)順序可以與邏輯順序不一致標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:順序表具有以下兩個(gè)基本特征:線性表中所有元素所占的存儲(chǔ)空間是連續(xù)的;線性表中各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。在順序表中,每個(gè)元素占有相同的存儲(chǔ)單元。A選項(xiàng)正確。5、設(shè)二叉樹如下:則中序序列為A、ABDEGCFHB、DBGEAFHCC、DGEBHFCAD、ABCDEFGH標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:二叉樹遍歷可以分為3種:前序遍歷(訪問根結(jié)點(diǎn)在訪問左子樹和訪問右子樹之前)、中序遍歷(訪問根結(jié)點(diǎn)在訪問左子樹和訪問右子樹兩者之間)、后序遍歷(訪問根結(jié)點(diǎn)在訪問左子樹和訪問右子樹之后)。本題中前序遍歷為ABDEGCFH,中序遍歷為DBGEAFHC,后序遍歷為DGEBHFCA,故B選項(xiàng)正確。6、下面不屬于軟件需求分析階段工作的是A、需求獲取B、需求計(jì)劃C、需求分析D、需求評(píng)審標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:需求分析階段的工作可以分為4個(gè)方面:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評(píng)審,而需求計(jì)劃不屬于需求分析階段的工作,故正確答案為B選項(xiàng)。7、下面不屬于黑盒測(cè)試方法的是A、邊界值分析法B、基本路徑測(cè)試C、等價(jià)類劃分法D、錯(cuò)誤推測(cè)法標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:常用的黑盒測(cè)試方法和技術(shù)有:等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測(cè)法和因果圖等。基本路徑測(cè)試屬于白盒測(cè)試,故正確答案為B選項(xiàng)。8、在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)模型包括概念模型、邏輯模型和A、物理模型B、空間模型C、時(shí)間模型D、數(shù)據(jù)模型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)模型按照不同的應(yīng)用層次分為3種類型:概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型,故A選項(xiàng)正確。9、若實(shí)體A和B是一對(duì)一的聯(lián)系,實(shí)體B和C是多對(duì)一的聯(lián)系,則實(shí)體A和C的聯(lián)系是A、多對(duì)一B、一對(duì)多C、一對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一般來說,實(shí)體集之間必須通過聯(lián)系來建立聯(lián)接關(guān)系,分為三類:一對(duì)一聯(lián)系(1:1)、一對(duì)多聯(lián)系(1:m)、多對(duì)多聯(lián)系(m:n)。A與B是1:1聯(lián)系,B與C是m:1聯(lián)系,則A與C是m:1聯(lián)系,即多對(duì)一,故A選項(xiàng)正確。10、某二叉樹中共有935個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)有435個(gè),則該二叉樹中度為2的結(jié)點(diǎn)個(gè)數(shù)為A、64B、66C、436D、434標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在樹結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件個(gè)數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)中最大的度稱為樹的度。對(duì)任何一棵二叉樹,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。葉子結(jié)點(diǎn)有435個(gè),則度為2的結(jié)點(diǎn)為434,D選項(xiàng)正確。11、設(shè)a,b,c是整型變量,且已正確賦初值,以下選項(xiàng)中錯(cuò)誤的賦值語句是A、a=1%(b=c=2);B、a=(b=3)*c;C、a=b=c/10;D、a=2=(b=9)=1;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:D選項(xiàng)中,()具有最高優(yōu)先級(jí),b先賦值9,再根據(jù)賦值運(yùn)算符號(hào)自右向左進(jìn)行賦值,再給b賦值為1,再計(jì)算2=b,賦值運(yùn)算左邊必須是一個(gè)變量,2是常量,語法錯(cuò)誤,答案為D選項(xiàng)。12、以下選項(xiàng)中,合法的實(shí)數(shù)是A、1.5E2B、E1.1C、2.10ED、1.9E1.4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:E表示"10的冪次",后面必須接整數(shù),排除B,C,D選項(xiàng),答案為A選項(xiàng)。13、關(guān)于程序設(shè)計(jì)基本概念,以下敘述錯(cuò)誤的是A、計(jì)算機(jī)可以直接執(zhí)行由任意高級(jí)語言編寫的程序B、高級(jí)語言都有與之對(duì)應(yīng)的編譯程序或解釋程序C、用于任何一種計(jì)算機(jī)高級(jí)語言都可以把算法轉(zhuǎn)換為程序D、結(jié)構(gòu)化算法可以解決任何復(fù)雜的問題標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:計(jì)算機(jī)只能識(shí)別機(jī)器語言,不能直接識(shí)別由高級(jí)語言編寫的程序,答案為A選項(xiàng)。14、以下不能用于實(shí)型數(shù)據(jù)的運(yùn)算符是A、%B、/C、*D、+標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:%符號(hào)兩邊必須是整數(shù),因此答案選A。15、C語言中,最基本的數(shù)據(jù)類型包括A、整型、實(shí)型、邏輯型B、整型、字符型、數(shù)組C、整型、實(shí)型、字符型D、整型、實(shí)型、結(jié)構(gòu)體標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語言中,最基本的數(shù)據(jù)類型包括整型、實(shí)型、字符型,答案為C選項(xiàng)。16、若有定義:inta=0,b=0,c=0,d=0;,有C語言表達(dá)式(a++&&b++):c++:d++,以下關(guān)于其執(zhí)行順序的敘述正確是A、先執(zhí)行a++,表達(dá)式a++的值為0,由此即可確定(a++&&b++)的值為0,因此執(zhí)行d++B、先執(zhí)行a++,表達(dá)式a++的值為0;再執(zhí)行b++,表達(dá)式b++的值為0,由此可確定(a++&&b++)值為0,因此執(zhí)行d++C、先執(zhí)行a++,表確定(a++&&b++)值為1,因此執(zhí)行c++達(dá)式a++的值為1;再執(zhí)行b++,表達(dá)式b++的值為1,由此可D、先執(zhí)行b++,表達(dá)式b++的值為1;再執(zhí)行a++,表達(dá)式a++的值為1,由此可確定(a++&&b++)值為1,因此執(zhí)行c++標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:表達(dá)式1:表達(dá)式2:表達(dá)式3,若表達(dá)式1為真,則執(zhí)行表達(dá)式2,否則執(zhí)行表達(dá)式3。邏輯與運(yùn)算符遵循"短路求值"策略,即只有在僅靠左操作數(shù)的值無法確定該邏輯表達(dá)式的結(jié)果時(shí),才會(huì)求解右操作數(shù),表達(dá)式(a++&&b++)中,左操作數(shù)a++的值為0,已經(jīng)可以確定整個(gè)邏輯表達(dá)式的結(jié)果為0,因此右操作數(shù)b++不再求解,直接執(zhí)行表達(dá)式3,即d++,答案為A選項(xiàng)17、有以下程序#include<stdio.h>main(){charch=’B’;while(ch<’E’){printf("%d",ch-’A’);ch++;}printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、123B、ABCC、abcD、12標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:當(dāng)ch滿足<’E’,輸出ch-’A’,即字符在ASCII碼相減進(jìn)行輸出,%d表示輸出十進(jìn)制整數(shù)。循環(huán)開始ch=’B’,print("%d",ch-’A’)=1,以此類推答案為A選項(xiàng)。18、對(duì)于函數(shù)聲明voidfun(floatarray[],int*ptr);下敘述正確的是A、調(diào)用函數(shù)時(shí),array數(shù)組的元素和ptr都是按值傳送B、函數(shù)聲明有語法錯(cuò)誤,參數(shù)array缺少數(shù)組大小定義C、調(diào)用函數(shù)時(shí),array數(shù)組中將存儲(chǔ)從實(shí)參中復(fù)制來的元素值D、函數(shù)參數(shù)array,ptr都是指針變量標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:(floatarray[],int*ptr)均表示定義了2個(gè)指針變量*array和ptr,其中函數(shù)形參中intarray[]其實(shí)相當(dāng)于int*array,答案為D選項(xiàng)。19、有以下程序#include<stdio.h>main(){inti,k;intarray[4][2]={{1,0},{0},{2,9},{3}};for(i=0;i<2;i++)for(k=0;k<3;k++){printf("%d,",array[k][i]);}printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、1,0,2,0,0,9,B、1,2,4,9,6,0,C、2,9,0,0,1,4,D、1,2,0,1,4,1,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題定義一個(gè)4行2列數(shù)組,其中賦值6個(gè)數(shù),其余自動(dòng)為0,根據(jù)for循環(huán),第一次輸出第一列前三行數(shù),分別是1,0,2;第二次輸出第二列前三行數(shù),分別是0,0,9,因此答案為A選項(xiàng)。20、要求定義一個(gè)具有6個(gè)元素的int型一維數(shù)組,以下選項(xiàng)中錯(cuò)誤的是A、intN=6,a[N];B、inta[2*3]={0}C、#defineN3inta[N+N];D、inta[]={1,2,3,4,5,6};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)組名后面括號(hào)的值必須是整形常量,不可以是變量,A選項(xiàng)定義錯(cuò)誤,答案為A選項(xiàng)。21、有以下程序#include<stdio.h>main(){charb[3][10],c;inti;for(i=0;i<2;i++)scanf("%s",b[i]);i=0;while((c=getchar())!=’\n’)b[2][i++]=c;b[2][i]=’\0’;printf("%s%s%s\n",b[0],b[1],b[2]);}執(zhí)行時(shí)若輸入以下字符串:Peachflowerispink.<回車>則輸出結(jié)果是A、Peachflowerispink.B、Peachflowerispink.C、Peachflowerispink.D、Peachflowerispink.標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由于用"%s"格式輸出字符串時(shí),是以空格作為間隔符,因此,輸入給b[0]="Peach",b[1]="flower",而while語句給c賦值時(shí),getchar()能識(shí)別空格符,b[2]="ispink",答案為D選項(xiàng)。22、有以下程序#include<stdio.h>main(){charw[20],a[5][10]={"abcdef","ghijkl","mnopq","rstuv","wxyz"};inti,j;for(i=0;i<5;i++){j=0;while(a[i][j]!=’\0’)j++;w[i]=a[i][j-2];}w[5]=’\0’;puts(w);}程序運(yùn)行后的輸出結(jié)果是A、agmrwB、ekpuyC、djotxD、flqvz標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在for循環(huán)中,執(zhí)行完while語句后,j值為每行字符串的長(zhǎng)度,因此w[i]=a[i][j-2],比如i=0;j=6,則w[0]=a[0][4]=’e’,循環(huán)依次賦值,最后輸出w,答案為B選項(xiàng)。23、有以下程序#include<stdio.h>#include<string.h>main(){charname[9]="c##line";char*str=name;printf("%d,%d,%d,%d\n",sizeof(name),strlen(name),sizeof(str),strlen(str));}程序運(yùn)行后的輸出結(jié)果是A、9,7,4,7B、8,6,9,6C、8,6,3,6D、10,8,5,8標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由于name是一個(gè)長(zhǎng)度為9的一維數(shù)組,故在內(nèi)存中占用9個(gè)字節(jié)長(zhǎng)度,而其中字符串"c##line"只有7個(gè)字符,strlen()函數(shù)返回的是該字符串的長(zhǎng)度,不包含結(jié)束符,str是一個(gè)指針變量,占用4個(gè)字節(jié)長(zhǎng)度,但是由于name首地址賦給了str指針變量,在調(diào)用strlen()函數(shù)時(shí),返回的是指針對(duì)應(yīng)地址單元的字符串的長(zhǎng)度7,因此答案為A選項(xiàng)。24、有以下程序#include<stdio.h>main(){intpassword;char*p,old_str[10]="wind";scanf("%d",&password);p=old_str;while(*p){printf("#%c",*p+password);p++;}printf("\n");}程序運(yùn)行時(shí),從鍵盤輸入2<回車>,輸出結(jié)果是A、#y#k#p#fB、#wi#nd#C、#wi#nd#D、#2222#標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:首先定義了一個(gè)指針p指向數(shù)組的首地址,在while語句中,執(zhí)行功能是如果當(dāng)前指針指向地址單元內(nèi)字符不等于空字符’\0’,則輸出’#’和指針對(duì)應(yīng)地址元素的值在ASCII碼加2后變換的字符常量,因此,答案為A選項(xiàng)。25、若有定義:char*ps[]={"aa","bb","cc","dd"};,則以下敘述正確的是A、ps[0]是字符串"aa"B、*ps[0]是字符串"aa"的首地址C、ps[0]是字符串"aa"的首地址D、*ps[0]是字符串"aa"標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:定義一個(gè)串?dāng)?shù)組指針ps后,ps是指針變量,ps[0]指向的是數(shù)組首個(gè)元素的地址,即字符串"aa"的首地址,答案為C選項(xiàng)。26、若有定義:char*ps[]={"aa","bb","cc","dd"};,則以下敘述正確的是A、*ps[0]是字符’a’B、*ps[0]是字符串"aa"C、ps[0]是字符’a’D、ps是字符串"aa"標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:指針數(shù)組ps[]定義后,ps[0]代表數(shù)組首個(gè)元素的地址,即"aa"的地址,同時(shí)也是"aa"第一個(gè)字符a的地址,所以*ps[0]代表字符a,答案為A選項(xiàng)。27、以下合法的轉(zhuǎn)義字符是A、’\0X41’B、’\0x41’C、’\X41’D、’\x41’標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:’\xhh’表示1到2位十六進(jìn)制所代表的字符,故答案為D選項(xiàng)。28、在源程序的開始處加上#include<stdio.h>進(jìn)行文件引用的原因,以下敘述正確的是A、stdio.h文件中包含標(biāo)準(zhǔn)輸入輸出函數(shù)的函數(shù)說明,通過引用此文件以便能正確使用printf、scanf等函數(shù)B、將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)鏈接到編譯生成的可執(zhí)行文件中,以便能正確運(yùn)行C、將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)的源程序插入到引用處,以便進(jìn)行編譯鏈接D、將stdio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)的源程序插入到引用處,以便進(jìn)行編譯鏈接標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:stdio.h文件中包含標(biāo)準(zhǔn)輸入輸出函數(shù)的函數(shù)說明,預(yù)處理指令#include<stdio.h>是使程序可以去該文件中找到printf,scanf等函數(shù)以便使用,因此答案為A選項(xiàng)。29、設(shè)有定義:inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,若0≤i≤9,則對(duì)a數(shù)組元素的引用錯(cuò)誤的是A、a[10]B、*(&a[i])C、p[i]D、a[p-a]標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:長(zhǎng)度為n的數(shù)組其各個(gè)元素的下標(biāo)應(yīng)該是從0到n-1,因此,長(zhǎng)度為10的數(shù)組a,第10個(gè)元素為a[9],而不是a[10],答案為A選項(xiàng)。30、有以下程序#include<stdio.h>main(){intc,d;c=(13>>1)|1;d=(13>1)||1;printf("%d,%d\n",c,d);}程序運(yùn)行后的輸出結(jié)果是A、6,1B、1,1C、7,1D、7,2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:表達(dá)式c=(13>>1)|1中,>>是右移符號(hào),13換算成二進(jìn)制后右移1位,再和1進(jìn)行按位或運(yùn)算,結(jié)果為7;表達(dá)式d=(13>1)||1中,首先判斷13是否大于1,此時(shí)條件成立返回1后,再和1進(jìn)行或運(yùn)算,結(jié)果為1,因此答案為C選項(xiàng)。31、有以下程序#include<stdio.h>#include<string.h>structS{charname[10];};main(){structSs1,s2;strcpy(,"XXX");strcpy(,"=");s1=s2;printf("%s\n",);}程序運(yùn)行后的輸出結(jié)果是A、=B、XXXC、#NAME?D、X=標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:主函數(shù)首先為結(jié)構(gòu)體定義兩個(gè)變量s1,s2,分別使用字符串拷貝函數(shù)strcpy()為s1和s2的成員name賦值,再將s2中的成員信息賦值給s1,因此輸出為"=",答案為A選項(xiàng)。32、有以下程序#include<stdio.h>main(){inti,array[6]={1,5,0,4};for(i=0;i<5;i++)printf("%d,",array[i]&4);printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、1,2,1,2,0B、1,5,0,4,0,C、1,5,5,4,0,D、0,4,0,4,0標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:主函數(shù)首先定義一個(gè)數(shù)組array[6],初始化前4個(gè)元素的值,其余默認(rèn)值為0。在for循環(huán)中,為數(shù)組array中每一個(gè)元素?fù)Q算成二進(jìn)制數(shù)后和二進(jìn)制整數(shù)"100"進(jìn)行按位與運(yùn)算,再將結(jié)果進(jìn)行輸出,因此答案為D選項(xiàng)。33、有以下程序#include<stdio.h>#include<stdlib.h>voidfun(int**s,intx[2][3]){**s=*(x[1]+1);}main(){inta[2][3]={1,2,3,4,5,6},*p;p=(int*)malloc(sizeof(int));fun(&p,a);printf("%d\n",*p);}程序的運(yùn)行結(jié)果是A、5B、2C、6D、3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:malloc(size)函數(shù)作用是在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)分配一個(gè)長(zhǎng)度為size的連續(xù)空間,函數(shù)的返回值是新分配的存儲(chǔ)區(qū)的首地址,將該地址賦值給p指針,然后取p指針的地址,調(diào)用fun函數(shù)。fun函數(shù)中對(duì)指向指針的指針s指向的內(nèi)存單元賦值,其中x[1]表示二維數(shù)組x的第二行的行地址,x[1]+1表示二維數(shù)組x的第二行第二列的地址,所以fun函數(shù)的功能是將二維數(shù)組x的第二行第二列的值,即x[1][1]賦值給**s,*s為p,所以**s代表*p,x[1][1]與a[1][1]等價(jià),因此答案為A選項(xiàng)。34、有如下定義:struct{intnum;charname[10];struct{inty;intm;intd;}birth;}s,*ps=&s;以下對(duì)內(nèi)嵌結(jié)構(gòu)體成員的引用形式錯(cuò)誤的是A、ps->birth.yB、s.birth.yC、ps.birth.yD、(*ps).birth.y標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:使用結(jié)構(gòu)體指針對(duì)結(jié)構(gòu)體成員進(jìn)行訪問時(shí),形式為結(jié)構(gòu)指針名->結(jié)構(gòu)成員名,或者(*結(jié)構(gòu)指針名).結(jié)構(gòu)成員名,題目中ps為結(jié)構(gòu)體指針,因此判斷C選項(xiàng)引用形式錯(cuò)誤,答案為C選項(xiàng)。35、有以下程序#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen("data.dat","w+");fprintf(fp,"%d\n",a[0]);for(i=1;i<6;i++){rewind(fp);fprintf(fp,"%d\n",a[i]);}rewind(fp);fscanf(fp,"%d",&k);fclose(fp);printf("%d\n",k);}程序運(yùn)行后的輸出結(jié)果是A、6B、21C、123456D、654321標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題首先定義文件指針變量fp和一個(gè)數(shù)組a[],再打開一個(gè)文件"data.dat",隨后先給文件寫入數(shù)據(jù)a[0],由于rewind函數(shù)是將文件指針從當(dāng)前位置重新指向文件開始位置,所以for循環(huán)依次將數(shù)組a中的數(shù)據(jù)寫入文件開始位置,退出循環(huán)后,文件中的數(shù)據(jù)順序?yàn)椋?54321,重新使指針指向文件開始位置,將此時(shí)fp指向的數(shù)據(jù)(即文件中第一個(gè)數(shù)據(jù)6)寫入變量k中,關(guān)閉文件,輸出k值,答案為A選項(xiàng)。36、以下程序段中,與其他三個(gè)功能不同的程序段是A、s=0;i=1;for(;;){s+=i;i++;if(i<=10)break;}B、s=0,i=1;for(;i<=10;){s+=i,i++;}C、s=0;for(i=1;i<=10;i++){s+=i;}D、for(s=0,i=1;i<=10;s+=i,i++);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:B,C,D選項(xiàng)都表示對(duì)1到10進(jìn)行累加后賦給s,而選項(xiàng)A中含break語句,循環(huán)體只執(zhí)行一次,結(jié)束整個(gè)循環(huán)過程,因此答案為A選項(xiàng)。37、設(shè)有定義:inta=0,b=1;,以下表達(dá)式中,會(huì)產(chǎn)生"短路"現(xiàn)象,致使變量b的值不變的是A、+a||++bB、a++||++bC、a++&&b++D、a++&&b++標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:++放在變量前面時(shí),表示將變量+1,再參與其他操作,a++&&b++時(shí),由于a值是0直接判定與運(yùn)算結(jié)果為0,忽視b++的值,因此b值不發(fā)生改變,答案為D選項(xiàng)。38、關(guān)于地址和指針,以下說法正確的是A、通過強(qiáng)制類型轉(zhuǎn)換可以將一種類型的指針變量賦值給另一種類型的指針變量B、可以取一個(gè)常數(shù)的地址賦值給同類型的指針變量C、可以取一個(gè)表達(dá)式的地址賦值給同類型的指針變量D、可以取一個(gè)指針變量的地址賦值給基類型相同的指針變量標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:常數(shù)的地址存儲(chǔ)在內(nèi)存的常量區(qū),常量區(qū)存儲(chǔ)的都是常量,值都是不可修改的,所以直接取常量的地址賦給指針變量沒有任何意義,C語言也不允許這樣做,編譯會(huì)出錯(cuò),B選項(xiàng)錯(cuò)誤;表達(dá)式的值存儲(chǔ)在臨時(shí)變量中,內(nèi)存中存在專門用來存儲(chǔ)臨時(shí)變量的區(qū)域,對(duì)這塊地址進(jìn)行操作也是沒有意義的,C語言不允許這樣做,編譯會(huì)出錯(cuò),C選項(xiàng)錯(cuò)誤;可以取一個(gè)指針變量的地址,但是指針變量的地址屬于指針,只能賦值給指針類型的指針變量,D選項(xiàng)錯(cuò)誤。故答案為A選項(xiàng)。二、程序填空題(本題共1題,每題1.0分,共1分。)39、給定程序中,函數(shù)fun的功能是將帶頭結(jié)點(diǎn)的單向鏈表逆置,即若原鏈表中從頭至尾結(jié)點(diǎn)數(shù)據(jù)域依次為2、4、6、8、10,逆置后,從頭至尾結(jié)點(diǎn)數(shù)據(jù)域依次為10、8、6,4、2。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<stdib.h>#defineN5typedefstructnode{intdata;structnode*next;}NODE;voidfun(NODE*h){NODE*P,*q,*r;/**********found***********/P=h一>【1】;/**********found***********/if(p==【2】)return,q=P一>next:P一>next=NULL;while(q){r=q一>next;tq一>next=p;/**********found***********/P=q;q=【3】;}h一>next=P;}NODE*czeatlist:(inta[]){NODE*h,*P,*q;inti;h=(NODE*)malloc(sizeof(NODE));h一>next=NULL:for(i=0;i<N;i++){q=(NODE*)malloc(sizeof.(NODE));q一>data=a[i],q->next=NULL:if(h一>next==NULL)h一>next=P=q,else{P一>next=q;P=q;)}returnh:}voidoutlist(NODE*h){NODE*P;P=h一>next:if(P==NULL)printf(“ThelistisNULL!\n”);else{printf(“\nttead”);do{printf(“一>%d”,P一>data);P=P一>next;)while(P!=NULL),pzintf(“一>Encl\n”);}}main(){NODE*head;inta[N]={2,4,6,8,10};head=creatliSt(a),pzintf(“\nTheoriginallist:\n”);outlist(head);fun(head);printf{“\nThelistafterinverting:\n”);outlist(head);}標(biāo)準(zhǔn)答案:(1)next(2)NULL(3)r知識(shí)點(diǎn)解析:填空1:本空考查了為p賦初值,根據(jù)題目的要求是將帶頭結(jié)點(diǎn)的單向鏈表逆置可知,p的初值應(yīng)該為h一>next。填空2:if判斷語句表明當(dāng)p等于什么時(shí)就要返回,因此只能當(dāng)p等于NULL時(shí)返回,不用做后面的鏈表的逆置了。填空3:把q的指針向后移動(dòng),才能實(shí)現(xiàn)將帶頭結(jié)點(diǎn)的單向鏈表逆置。因此本空填寫r。三、程序修改題(本題共1題,每題1.0分,共1分。)40、下列給定程序中,函數(shù)fun的功能是:將s所指字符串中的字母轉(zhuǎn)換為按寧母序列的后續(xù)字母
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度新能源項(xiàng)目施工團(tuán)隊(duì)派遣服務(wù)協(xié)議
- 二零二五年度員工期權(quán)激勵(lì)計(jì)劃執(zhí)行與員工福利協(xié)議
- 二零二五年度特色商業(yè)街區(qū)商鋪轉(zhuǎn)讓合同
- 2025年度鋼構(gòu)建筑鋼結(jié)構(gòu)加工與施工合同
- 2025年度電子商務(wù)平臺(tái)合作協(xié)議簽約變更終止全流程手冊(cè)
- 二零二五年度醫(yī)療糾紛調(diào)解與醫(yī)療機(jī)構(gòu)糾紛調(diào)解機(jī)制建設(shè)協(xié)議
- 2025年度電商旺季客服團(tuán)隊(duì)增援服務(wù)協(xié)議
- 2025年度金融科技合作入股協(xié)議書
- 二零二五年度城市綜合體工程款房屋抵償協(xié)議
- 二零二五年度電影學(xué)院電影包場(chǎng)教學(xué)合同
- 2024-2030年中國(guó)游戲直播行業(yè)市場(chǎng)深度分析及投資策略研究報(bào)告
- 統(tǒng)編版小學(xué)語文六年級(jí)下冊(cè)第四單元《理想和信念》作業(yè)設(shè)計(jì)
- 2025年春季學(xué)期學(xué)校工作計(jì)劃及安排表
- 化驗(yàn)班組安全培訓(xùn)
- 英語-廣東省大灣區(qū)2025屆高三第一次模擬試卷和答案
- 丹佛斯變頻器培訓(xùn)經(jīng)典課件
- 2024年06月日照銀行社會(huì)招聘筆試歷年參考題庫附帶答案詳解
- 烤房租賃合同范例
- 建筑地暖系統(tǒng)工程安裝考核試卷
- 專題四 指數(shù)函數(shù)與對(duì)數(shù)函數(shù)【中職專用】2025春季對(duì)口高考數(shù)學(xué)專題復(fù)習(xí)(河南適用)(解析版)
- 江蘇卷2024年高考語文第一次模擬考試一(原卷版+解析版)
評(píng)論
0/150
提交評(píng)論