國家二級(jí)(C語言)筆試模擬試卷4(共543題)_第1頁
國家二級(jí)(C語言)筆試模擬試卷4(共543題)_第2頁
國家二級(jí)(C語言)筆試模擬試卷4(共543題)_第3頁
國家二級(jí)(C語言)筆試模擬試卷4(共543題)_第4頁
國家二級(jí)(C語言)筆試模擬試卷4(共543題)_第5頁
已閱讀5頁,還剩130頁未讀, 繼續(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語言)筆試模擬試卷4(共9套)(共543題)國家二級(jí)(C語言)筆試模擬試卷第1套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、算法的時(shí)間復(fù)雜度是指()。A、算法的長(zhǎng)度B、執(zhí)行算法所需要的時(shí)間C、算法中的指令條數(shù)D、算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的工作量,可以用算法在執(zhí)行過程中所需基本運(yùn)算的執(zhí)行次數(shù)來度量算法的工作量。2、以下數(shù)據(jù)結(jié)構(gòu)中,屬于非線性數(shù)據(jù)結(jié)構(gòu)的是()。A、棧B、線性表C、隊(duì)列D、二叉樹標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二叉樹屬于非線性結(jié)構(gòu)。棧是一種特殊的線性表,這種線性表只能在固定的一端進(jìn)行插入和刪除操作;隊(duì)列可看作是插入在一端進(jìn)行,刪除在另一端進(jìn)行的線性表。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、線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)反映的是數(shù)據(jù)元素之間的邏輯關(guān)系,與使用的計(jì)算機(jī)無關(guān)。4、內(nèi)聚性是對(duì)模塊功能強(qiáng)度的衡量,下列選項(xiàng)中,內(nèi)聚性較弱的是()。A、順序內(nèi)聚B、偶然內(nèi)聚C、時(shí)間內(nèi)聚D、邏輯內(nèi)聚標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:內(nèi)聚是從功能角度來衡量模塊的聯(lián)系,它描述的是模塊內(nèi)的功能聯(lián)系。內(nèi)聚有如下種類,它們之間的內(nèi)聚度由弱到強(qiáng)排列:偶然內(nèi)聚——模塊中的代碼無法定義其不同功能的調(diào)用。但它使該模塊能執(zhí)行不同的功能,這種模塊為巧合強(qiáng)度模塊。邏輯內(nèi)聚——這種模塊把幾種相關(guān)的功能組合在一起,每次被調(diào)用時(shí),由傳送給模塊的參數(shù)來確定該模塊應(yīng)完成哪一種功能。時(shí)間內(nèi)聚——這種模塊順序完成一類相關(guān)功能,比如初始化模塊,它順序地為變量置初值。過程內(nèi)聚——如果一個(gè)模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行,則稱為過程內(nèi)聚。通信內(nèi)聚——這種模塊除了具有過程內(nèi)聚的特點(diǎn)外,還有另外一種關(guān)系,即它的所有功能都通過使用公用數(shù)據(jù)而發(fā)生關(guān)系。順序內(nèi)聚——如果一個(gè)模塊內(nèi)各個(gè)處理元素和同一個(gè)功能密切相關(guān),而且這些處理必須順序執(zhí)行,處理元素的輸出數(shù)據(jù)作為下一個(gè)處理元素的輸入數(shù)據(jù),則稱為順序內(nèi)聚。功能內(nèi)聚——如果一個(gè)模塊包括為完成某一具體任務(wù)所必需的所有成分,或者說模塊中所有成分結(jié)合起來是為了完成一個(gè)具體的任務(wù),此模塊則為功能內(nèi)聚模塊。5、在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個(gè)鍵,它們稱為該表的()。A、連接碼B、關(guān)系碼C、外碼D、候選碼標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個(gè)鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個(gè)作為用戶使用的鍵稱為主鍵或主碼。6、檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。A、確認(rèn)測(cè)試B、需求測(cè)試C、驗(yàn)證測(cè)試D、路徑測(cè)試標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:確認(rèn)測(cè)試的任務(wù)是驗(yàn)證軟件的功能和性能,以及其他特性是否滿足需求規(guī)格說明中確定的各種需求。7、數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。A、控制流B、加工C、存儲(chǔ)文件D、源和潭標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,它由一些特定的圖符構(gòu)成,包括4個(gè)方面,即加工、數(shù)據(jù)流、存儲(chǔ)文件、源和潭。8、待排序的關(guān)鍵碼序列為(15,20,9,30,67,65,45,90),要按關(guān)鍵碼值遞增的順序排序,采取簡(jiǎn)單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個(gè)位置。A、2B、3C、4D、5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選擇排序的基本思想是掃描整個(gè)線性表,從中選出最小的元素,將它交換到表的最前面,然后對(duì)剩下的子表采用同樣的方法,直到子表為空。所以第一趟排序后,將選出最小的元素9放在第一個(gè)位置,元素15則放在第二個(gè)位置。9、對(duì)關(guān)系s和關(guān)系R進(jìn)行集合運(yùn)算,結(jié)果中既包含關(guān)系S中的所有元組也包含關(guān)系R中的所有元組,這樣的集合運(yùn)算稱為()。A、并運(yùn)算B、交運(yùn)算C、差運(yùn)算D、除運(yùn)算標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:關(guān)系的并運(yùn)算是指,由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,其中包含兩個(gè)關(guān)系中的所有元組。10、下列選項(xiàng)中,不屬于數(shù)據(jù)管理員(DBA職責(zé)的是()。A、數(shù)據(jù)庫維護(hù)B、數(shù)據(jù)庫設(shè)計(jì)C、改善系統(tǒng)性能,提高系統(tǒng)效率D、數(shù)據(jù)類型轉(zhuǎn)換標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理員(DataBascAdministrator,DBA)是指對(duì)數(shù)據(jù)庫的規(guī)劃、設(shè)計(jì)、維護(hù)、監(jiān)視等的人員,其主要工作如下:?數(shù)據(jù)庫設(shè)計(jì)。DBA的主要任務(wù)之一是數(shù)據(jù)庫設(shè)計(jì),具體地說是進(jìn)行數(shù)據(jù)模式的設(shè)計(jì)。?數(shù)據(jù)庫維護(hù)。DBA必須對(duì)數(shù)據(jù)庫中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)儲(chǔ)等進(jìn)行實(shí)施與維護(hù)。?改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時(shí)監(jiān)視數(shù)據(jù)庫的運(yùn)行狀態(tài),不斷調(diào)整內(nèi)部結(jié)構(gòu),使系統(tǒng)保持最佳狀態(tài)與效率。二、選擇題(1分)(本題共30題,每題1.0分,共30分。)11、對(duì)于一個(gè)正常運(yùn)行的c程序,下列敘述中正確的是()。A、程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束B、程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)結(jié)束C、程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束D、程序的執(zhí)行總是從程序中的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一個(gè)C語言源程序無論包括了多少函數(shù),總是從main函數(shù)開始執(zhí)行,從main函數(shù)結(jié)束。12、以下選項(xiàng)中與if(a==1)a++;elsea=b;語句功能不同的語句是()。A、switch(a){case0:a=b;break;default:a++;}B、switch(a==1){case0:a++;default:a=b;}C、switch(a){default:a=b;break;case1:a++;}D、a=(a==1)?(a++):b標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:ifelse語句的含義是,如果變量a的值等于1,變量a的值加1,否則,則把變量b的值賦給變量a。在本題的4個(gè)選項(xiàng)中,與其含義不同的是選項(xiàng)B,因?yàn)闆]有break語句,當(dāng)a=1的時(shí)候,會(huì)順序執(zhí)行兩條語句,最終結(jié)果是將b的值賦給a。13、以下不合法的用戶標(biāo)識(shí)符是()。A、804zhangB、_hhC、yy614D、If標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或下劃線。14、已知chara;intb;floatc;doubled;則表達(dá)式a-b+c-d結(jié)果為()型。A、doubleB、floatC、intD、char標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語言中允許進(jìn)行不同數(shù)據(jù)類型的混合運(yùn)算,但在實(shí)際運(yùn)算時(shí),要先將不同類型的數(shù)據(jù)轉(zhuǎn)化成同一類型再進(jìn)行運(yùn)算。類型轉(zhuǎn)換的一般規(guī)則是:①運(yùn)算中將所有char型轉(zhuǎn)換成int型,float型轉(zhuǎn)換成double型;②低級(jí)類型服從高級(jí)類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換,數(shù)據(jù)類型由低到高的順序?yàn)椋篶har->int->unsigned->long->float->double;③賦值運(yùn)算中最終結(jié)果的類型,以賦值運(yùn)算符左邊變量的類型為準(zhǔn),即賦值運(yùn)算符右端值的類型向左邊變量的類型看齊,并進(jìn)行相應(yīng)轉(zhuǎn)換。15、假設(shè)有語句sizeof(double),則它是()。A、一個(gè)整型表達(dá)式B、一個(gè)雙精度浮點(diǎn)型表達(dá)式C、一種函數(shù)調(diào)用D、一種函數(shù)定義標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:sizeof(double)是C語言內(nèi)部規(guī)定的一個(gè)計(jì)算參數(shù)(double)在計(jì)算機(jī)的內(nèi)存中所占用的字節(jié)數(shù)量的函數(shù),它返回一個(gè)整數(shù)值。16、若變量都已正確說明,則以下程序段輸出結(jié)果為()。#includemain(){chara=‘a(chǎn)’;intb=2:printf(a>b?“***a=%d”:“###b=%d”,a,b);}A、***a=3B、###b=3C、***a=3##b==5D、全部錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查printf函數(shù)的格式和三日運(yùn)算符“?:”的使用。printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出。本題中a>b為真,所以返回“***a=97”。17、若有以下定義(設(shè)int類型變量占2個(gè)字節(jié))inti=8,j=9;則以下語句:printf(“i=%%d,j=%%%d\n”,i,j);輸出的結(jié)果是()。A、i=8,j=9B、i=%d,j=%8C、i=%d,j=%dD、8,9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查printf函數(shù)的格式。printf函數(shù)中格式說明符之前插入的任何字符都按原樣輸出。對(duì)于printf函數(shù),有兩個(gè)%說明,第一個(gè)%后面的內(nèi)容要按原樣輸出。18、設(shè)a和b均為int型變量,且a=6,b=11,則能使值為3的表達(dá)式是()。A、b%(a%4)B、b%(a-a%5)C、b%a-a%5D、(b%a)-(a%4)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:表達(dá)式“a%b”表示的是求a除以b的余數(shù)。因此,選項(xiàng)A:(6%4)=2,11%2=1;選項(xiàng)B:(6-6%5)5,11%5=1;選項(xiàng)C:11%6-6%5=4;選項(xiàng)D:(11%6)-(6%4)=3。19、有關(guān)return語句說法不正確的是()。A、系統(tǒng)默認(rèn)的返回值類型為整型,故當(dāng)函數(shù)的返回值為int型時(shí),在函數(shù)定義時(shí),返回值的類型說明可以省略。B、當(dāng)函數(shù)有返回值時(shí),凡是允許表達(dá)式出現(xiàn)的地方,都可以調(diào)用該函數(shù)。C、當(dāng)函數(shù)沒有返回值時(shí),函數(shù)的返回值類型可以說明為void型,它表示“無類型”或“空類型”。D、函數(shù)的返回值類型必須與return語句中的表達(dá)式值的類型一致,但C語言也允許不同;這時(shí),系統(tǒng)以函數(shù)定義時(shí)的返回值類型說明為準(zhǔn),并自動(dòng)地將return語句中表達(dá)式的值轉(zhuǎn)換為函數(shù)的返回值類型。標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)的返回值類型一般與return語句中的表達(dá)式值的類型一致,但C語言也允許不同;這時(shí),系統(tǒng)以函數(shù)定義時(shí)的返回值類型說明為準(zhǔn),并自動(dòng)地將return語句中表達(dá)式的值轉(zhuǎn)換為函數(shù)的返回值類型。20、有以下程序:#includemain(){inti=0,a=0;while(i<20){for(;;){if((i%5)==0)break;elsei--;}i+=13,a+=i;}printf(“%dkn”,a);}程序的輸出結(jié)果是()。A、62B、63C、23D、36標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查while循環(huán)。當(dāng)i<20時(shí),進(jìn)入while循環(huán)體,循環(huán)體內(nèi)的for循環(huán)實(shí)現(xiàn)的功能是,當(dāng)i值是0或5的倍數(shù)時(shí),執(zhí)行“i+=13;a+=i;”這兩條語句;若i值不是5的倍數(shù)則一直執(zhí)行for循環(huán)。①當(dāng)i=0時(shí),執(zhí)行i+=13;a+=i;i=13,a=13;②判斷i=13(20,進(jìn)入wlhile循環(huán)體,i=10時(shí),跳出for循環(huán),執(zhí)行i+=13;a+=i;i=23,a=36;⑨判斷i=23>20,循環(huán)結(jié)束。21、在下列選項(xiàng)中,沒有構(gòu)成死循環(huán)的程序段是()。A、inti=100;for(;;){i=i%10+1;if(i>10)break;}B、while(1);C、intk=0:do{++k;}while(k<=10);D、ints=12;while(s);--s:標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查死循環(huán)的知識(shí)。選項(xiàng)A中,for循環(huán)沒有任何控制語句就會(huì)一直執(zhí)行下去,所以不可能通過控制表達(dá)式的值結(jié)束循環(huán)。循環(huán)體內(nèi),i=i%10+1這個(gè)表達(dá)式的值永遠(yuǎn)小于10,所以永遠(yuǎn)不會(huì)跳出循環(huán),是死循環(huán);選項(xiàng)B中,while中表達(dá)式永遠(yuǎn)是非0,不會(huì)結(jié)束循環(huán);選項(xiàng)C中,當(dāng)k>10時(shí),結(jié)束循環(huán);選項(xiàng)D中,while(s);后面沒有任何表達(dá)式而是直接加了一個(gè)分號(hào),會(huì)一直執(zhí)行,形成死循環(huán)。22、若已定義的函數(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ù)的形參標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用的有關(guān)知識(shí)點(diǎn)。函數(shù)調(diào)用①可以出現(xiàn)在表達(dá)式中:②可以作為獨(dú)立的語句存在;③可以作為一個(gè)函數(shù)的實(shí)參。23、以下程序的輸出結(jié)果是()。#includemain(){inta=1,b=3;if((++a<0)&&!(b-<=0))printf(“%d,%d\n”,a,b);elsepfintf(“%d,%d\n”,b,a);}A、2,2B、1,3C、3,2D、3.1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:解答本題的關(guān)鍵在于if語句條件中的表達(dá)式。初始時(shí)a=1,b=3,所以++a=2>0,因此++a<0為假;因?yàn)槭沁M(jìn)行邏輯與(&&)運(yùn)算,在&&的一個(gè)運(yùn)算對(duì)象為假的前提下不用判斷第二個(gè)運(yùn)算對(duì)象的真假,就可以直接得出整個(gè)表達(dá)式的值為邏輯0,所以執(zhí)行else語句。24、有以下程序:#includemain(){intx;scanf(“%d”,&x);if(x<=0);elseif(x!=5)printff“%d\n”,x);}程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果()。A、不等于5的整數(shù)B、大于0且不等5的整數(shù)C、大于0或等于5的整數(shù)D、小于5的整數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:題目中,雖然else和第二個(gè)if不在同一行上,但等價(jià)于在同一行上,因此,程序的意思是當(dāng)x大于0且不等于5時(shí)將其打印出來。25、若執(zhí)行下述程序時(shí),若從鍵盤輸入6和8,結(jié)果為()。main(){inta,b,s;scanf(“%d%d”,&a,&b);s=a:if(s=b)s*=s:printf(“%d”,s);}A、36B、64C、48D、以上都不對(duì)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:首先通過scanf函數(shù)把從鍵盤讀入的數(shù)據(jù)賦給變量a和b,if語句判斷如果a和b不等,執(zhí)行s=s*s=64。26、若運(yùn)行時(shí)給變量x輸入12,則以下程序的運(yùn)行結(jié)果是()。main(){int.x,y;scanf(“%d”,&x);y=x>127x+10:x-12;printf(“%d\n”,y);}A、0B、22C、12D、10標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查三目運(yùn)算符“?:”。表達(dá)式“x>127x+10:x-12”即,如果x>12成立,則x+10的值即為此表達(dá)式的值,否則x-12即為此表達(dá)式的值。因?yàn)閤=12,所以x>12不成立,所以執(zhí)行v=x-12=0。27、運(yùn)行下面程序時(shí),從鍵盤輸入字母A,則輸出結(jié)果是()。#includemain(){charch;ch=getchar();switch(ch){case‘A’:printf(“AAAA\n”);case‘B’:printf(“BBBB﹨n”);default:printf(“CCCC\n”);}}A、AAAAB、AAAABBBBC、AAAABBBBCCCCD、AAAACCCC標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查switch語句。因?yàn)閏h=A,所以第一個(gè)switch語句,執(zhí)行case‘A’面的語句,輸出AAAA,沒有遇到break語句,所以接著再執(zhí)行case‘B’和default,分別輸出BBBB和CCCC。28、以下敘述正確的是()。A、只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句B、contiune語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行C、在循環(huán)體內(nèi)使用break語句或continue語句的作用相同D、從多層循環(huán)嵌套中退出時(shí),只能使用goto語句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查循環(huán)的4個(gè)知識(shí)點(diǎn):①break語句可以出現(xiàn)在循環(huán)體內(nèi)及switch語句體內(nèi),不能用于其他的語句;②continue語句的作用是結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,而接著轉(zhuǎn)去判定循環(huán)條件是否成立,從而確定下一次循環(huán)是否繼續(xù)執(zhí)行,也就是說執(zhí)行contiune語句不會(huì)使整個(gè)循環(huán)終止;③在循環(huán)體內(nèi)使用break語句會(huì)使循環(huán)提前終止;④從多層循環(huán)嵌套中退出時(shí),可以使用goto語句或者break語句。29、下列敘述中錯(cuò)誤的是()。A、在C語言中,對(duì)二進(jìn)制文件的訪問速度比文本文件快B、在C語言中,隨機(jī)文件以二進(jìn)制代碼形式存儲(chǔ)數(shù)據(jù)C、語句FILEfp;定義了一個(gè)名為fp的文件指針D、C語言中的文本文件以ASCII碼形式存儲(chǔ)數(shù)據(jù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語言中,文件指針實(shí)際上是指向一個(gè)結(jié)構(gòu)體類型的指針,一般稱這個(gè)結(jié)構(gòu)體類型名為FILE,可以用此類型名來定義文件指針。定義文件類型指針變量的一般形式為:FILE*指針變量名;選項(xiàng)C中少了“*”,所以選項(xiàng)C錯(cuò)誤。30、若輸入“abcdef”、“abdef”,以下程序的輸出結(jié)果為()。#include#includemain(){intn;chars1[20],s2[20],*p1,*p2;scanf(“%s”,s1);scanf(“%s”,s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf(“%d\n”,n);}A、-1B、0C、“abcdef”D、“abdef”標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查兩個(gè)知識(shí)點(diǎn):①字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s131、以下語句定義正確的是()。A、inta[1][4]={1,2,3,4,5);B、floata[3][]={{1),{2},{3));C、longa[2][3]={{1),{1,2),{1,2,3),{0,0});D、doublea[][3]={0);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查的是如何對(duì)二維數(shù)組進(jìn)行賦值。選項(xiàng)A中數(shù)組第二維的大小是4,但卻給賦了5個(gè)元素;選項(xiàng)B中C語言規(guī)定,對(duì)于二維數(shù)組,只可以省略第一個(gè)方括號(hào)中的常量表達(dá)式而不可以省略第二個(gè)方括號(hào)中的常量表達(dá)式;選項(xiàng)C中數(shù)組第一維的大小是2,但是賦值卻超過了2;選項(xiàng)D中在對(duì)二維數(shù)組元素賦初值時(shí),可以只對(duì)部分元素賦初值,未賦初值的元素自動(dòng)取0。32、下述程序的輸出結(jié)果是()。#includevoidmain(){inta[5]:{1,2,3,4,5};int*p=a,**q=&p;printf(“%d”,*(p++));printf(“%d”,**q);}A、22B、11C、34D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序首先定義了一個(gè)指向一維數(shù)組a的指針p,一個(gè)指向指針變量p的指針變量q,輸出*(p++)是先輸出*p即a[0]的值,再將指針p指向數(shù)組的下一個(gè)元素a[1],輸出**q是輸出指針p所指向單元的內(nèi)容,即a[1]的值。33、字符串“\\\”ABCDEF\“\\”的長(zhǎng)度是()。A、11B、10C、5D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題涉及字符串的兩個(gè)最基本的概念。①字符串的長(zhǎng)度是指字符串中字符的個(gè)數(shù),但不包含字符串結(jié)束符;②以反斜線“\”開頭的特殊字符序列,意思是把反斜線后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來的含義,不包含在字符串長(zhǎng)度之內(nèi),“\”連同后面的字符為一個(gè)長(zhǎng)度。34、若二維數(shù)組a有m列,則在a[i][j]前的元素個(gè)數(shù)為()。A、j*m+iB、i*m+jC、j*m+i+1D、i*m+j+1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標(biāo)是i,說明它前面還有i行,有i*m個(gè)元素,數(shù)組第二維的下標(biāo)是j,說明它前面還有j列,有j個(gè)元素,所以共有i*m+j個(gè)元素。35、下列程序的運(yùn)行結(jié)果是()。#includevoidfun(int*s,int*p){staticintt=3;*p=s[t];t--;}voidmain(){inta[]={2,3,4,5},k,x;for(k=0;k<4;k++){fun(a,&x);printf(“%d,”,x);}}A、5,4,3,2,B、2,3,4,5,C、2,2,2,2,D、5,5,5,5,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:分析fun函數(shù)程序段,可知fun函數(shù)要實(shí)現(xiàn)的功能是將s中第(t+1)個(gè)元素以前的元素逆置賦給數(shù)組D。由于fun函數(shù)定義了靜態(tài)變量t=3,因此,在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)組x,最后輸出x數(shù)組。36、以下有關(guān)宏替換的敘述不正確的是()oA、雙引號(hào)中出現(xiàn)的宏名不替換B、使用宏定義可以嵌套C、宏定義僅僅是符號(hào)替換D、宏名必須用大寫字母表示標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:_本題考查宏替換的規(guī)則。宏替換分為簡(jiǎn)單的字符替換和帶參數(shù)的宏替換兩類。使用宏時(shí)應(yīng)注意以下幾點(diǎn):①定義僅僅是符號(hào)替換,不是賦值語句,因此不做語法檢查;②為了區(qū)別程序中其他的標(biāo)識(shí)符,宏名的定義通常用大寫字母,但不是必須用大寫:③雙引號(hào)中出現(xiàn)的宏名不替換:④使用宏定義可以嵌套,即后定義的宏中可以使用先定義的宏。37、設(shè)有定義:char*c;,以下選項(xiàng)中能夠使字符型指針c正確指向一個(gè)字符串的是()。A、charstr[]=“string”;c=str;B、scanf(“%s”,c);C、c=getchar();D、charstr[]=“string”;strcpy(“c,str”)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在題目的題干中定義了字符指針變量c,在選項(xiàng)A中,首先定義字符數(shù)組str,然后再把字符數(shù)組str的首地址賦給字符指針變量c。所以選項(xiàng)A是正確的。在選項(xiàng)B中,應(yīng)改成scanf(“%s”,&C;在選項(xiàng)C中,getchar函數(shù)的返回值是用戶輸入的第一個(gè)字符的ASCII碼,如出錯(cuò)返回-1,且將用戶輸入的字符回顯到屏幕.如用戶在按回車之前輸入了不止一個(gè)字符,其他字符會(huì)保留在鍵盤緩存區(qū)中,等待后續(xù)getchar調(diào)用讀取。即c只能指向一個(gè)字符而不能指向字符串。在選項(xiàng)D中,strcpy函數(shù)只是將str字符串中的內(nèi)容賦給c,并沒有使其指向str,所以選項(xiàng)D是錯(cuò)誤的。38、有以下程序:#include#includestructA{inta;charb[10];doublec;};voidf(structA*t);main(){structAa={1001,“ZhangDa”,1098.0};f(&a);printf(“%d,%s,%6.1f\n”,a.a(chǎn),a.b,a.c);}voidf(structA*t){t->a=1002;strcpy(t->b,“ChangRong”);t->c=1202.0;}程序運(yùn)行后的輸出結(jié)果是()。A、1001.zhangDa,1098.0B、1002,ChangRong,1202.0C、1001,ChangRong,1098.0D、1002,zhangDa,1202.0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查是的函數(shù)調(diào)用時(shí)參數(shù)之間的傳遞問題。在C語言中參數(shù)之間的傳遞是傳值,也就是把實(shí)參的值復(fù)制一份傳遞給形參,而實(shí)參的值不發(fā)生變化。但對(duì)于指針調(diào)用來說,函數(shù)直接對(duì)實(shí)參的地址操作,因此在這種情況下實(shí)參變化。39、下述程序的輸出結(jié)果是()。#includevoidmain(){chara=1,b=2;charc=a^b<<2:pfintf(“﹨n%d”,c);}A、9B、10C、12D、2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查C語言最基本的算術(shù)運(yùn)算“左移(<<)”和“異或(^)”。“左移”或“右移”運(yùn)算表達(dá)式的一般形式為:x<>n。“左移(<<)”運(yùn)算的規(guī)則是將x的二進(jìn)制位全部向左移動(dòng)n位,將左邊移動(dòng)的高位舍棄,右邊空出的位補(bǔ)0;“右移(>>)”運(yùn)算的規(guī)則是將x的二進(jìn)制位全部向右移動(dòng)n位,將右邊移動(dòng)的高位舍棄,左邊高位空出要根據(jù)原來符號(hào)位的情況進(jìn)行補(bǔ)充,對(duì)無符號(hào)數(shù)則補(bǔ)0,對(duì)有符號(hào)數(shù),若為正數(shù)則補(bǔ)0,若為負(fù)數(shù)則補(bǔ)1?!爱惢颉边\(yùn)算是當(dāng)兩個(gè)運(yùn)算量的相應(yīng)位相同時(shí)結(jié)果為0,不相同時(shí)結(jié)果為1。b=2的二進(jìn)制為(00000010)b<<2后為00001000,a=1的二進(jìn)制為00000001,所以c=a^b<<2為00001001,轉(zhuǎn)化為十進(jìn)制后為9。40、已知一個(gè)文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa{charnumber[100];intage;floatp[6];};定義一個(gè)數(shù)組:structanumber[10];假定文件已正確打開,不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。A、fread(b,sizeof(structa),10,fp);B、for(i=0;i<10;i++)fread(b[i],sizeof(structa),1,fp);C、for(i=0;i<10;i++)flead(b+i,sizeof(structa),1,fp);D、for(i=0;i<5;i+=2)fread(b+i,sezeof(structa),2,fp);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用格式為:fread(buffer,size,count,fp),其中:“buffer”是一個(gè)指針,對(duì)于fread來說,它是讀入數(shù)據(jù)的存放地址?!皊ize”是要讀寫的字節(jié)數(shù);“count”是要進(jìn)行讀寫多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng);“fp”是指文件型指針。選項(xiàng)B)中b[i]是一個(gè)數(shù)組,不是指針,需改為&b[i]。三、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)41、數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、___________和處理過程。標(biāo)準(zhǔn)答案:數(shù)據(jù)存儲(chǔ)知識(shí)點(diǎn)解析:數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng),是數(shù)據(jù)的最小單位;數(shù)據(jù)結(jié)構(gòu),足若干數(shù)據(jù)項(xiàng)有意義的集合;數(shù)據(jù)流,可以是數(shù)據(jù)項(xiàng),也可以是數(shù)據(jù)結(jié)構(gòu),表示某一處理過程的輸入或輸出:數(shù)據(jù)存儲(chǔ),處理過程中存取的數(shù)據(jù),常常是手工憑證、手工文檔或計(jì)算機(jī)文件。42、_____________的目的是分析數(shù)據(jù)問內(nèi)在語義關(guān)聯(lián),在此基礎(chǔ)上建立一個(gè)數(shù)據(jù)的抽象模型。標(biāo)準(zhǔn)答案:數(shù)據(jù)庫概念設(shè)計(jì)知識(shí)點(diǎn)解析:數(shù)據(jù)庫概念設(shè)計(jì)的目的是分析數(shù)據(jù)間內(nèi)在語義關(guān)聯(lián),在此基礎(chǔ)上建立一個(gè)數(shù)據(jù)的抽象模型。43、下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為__________標(biāo)準(zhǔn)答案:3知識(shí)點(diǎn)解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。44、在兩種基本測(cè)試方法中,__________-測(cè)試的原則之一是保證所測(cè)模塊中每一個(gè)獨(dú)立路徑至少要執(zhí)行一次。標(biāo)準(zhǔn)答案:白盒知識(shí)點(diǎn)解析:白盒測(cè)試的基本原則是:保證所測(cè)模塊中每一獨(dú)立路徑至少執(zhí)行一次;保證所測(cè)模塊所有判斷的每一分支至少執(zhí)行一次;保證所測(cè)模塊每一循環(huán)都在邊界條件下至少執(zhí)行一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。45、數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和二仆三線性結(jié)構(gòu),帶鏈的隊(duì)列屬于_______________。標(biāo)準(zhǔn)答案:線性結(jié)構(gòu)知識(shí)點(diǎn)解析:一個(gè)數(shù)據(jù)結(jié)構(gòu)是線性結(jié)構(gòu)還是非線性結(jié)構(gòu),判斷依據(jù)是數(shù)據(jù)結(jié)構(gòu)前后件關(guān)系的復(fù)雜程度,而與其所使用的存儲(chǔ)結(jié)構(gòu)是沒有關(guān)系的。在一個(gè)非空的隊(duì)列中,每一個(gè)元素只有一個(gè)前件和后件,因此它屬于線性結(jié)構(gòu)。四、填空題(本題共10題,每題1.0分,共10分。)46、當(dāng)m=1,n=2,a=3,b=2,c=4時(shí),執(zhí)行d=(m=a!=b)&&(n=b>C后,m的值為________。標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:①“sizeof”、“%”、“>”、“<<”、“*=”運(yùn)算符的優(yōu)先級(jí)順序?yàn)椋骸?=”→“>”→“<<”→“%”→“sizeof”;②位運(yùn)算的優(yōu)先級(jí)順序?yàn)椋骸啊薄?lt;<”→“>>”→“&”→“^”。(b=2)>(c=4)不成立,邏輯為假,所以n=0;(a=3)!=(b=2)成立,邏輯為真,所以m=1。47、若變量x、y已定義為int類型且x的值為33,y的值為3,請(qǐng)將輸出語句printf(__________,x/y1;補(bǔ)充完整,使其輸出的計(jì)算結(jié)果形式為:x/y=11。標(biāo)準(zhǔn)答案:”x/y=%d”知識(shí)點(diǎn)解析:本題考查printf語句的輸出格式。printf()函數(shù)是格式化輸出函數(shù),一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。在編寫程序時(shí)經(jīng)常會(huì)用到此函數(shù)。printf()函數(shù)的調(diào)用格式為:printf(“<格式化字符串>”,<參量表>)其中,格式化字符串包括兩部分內(nèi)容。一部分是正常字符,這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以“%”開始,后跟一個(gè)或幾個(gè)規(guī)定字符,用來確定輸出內(nèi)容格式。參量表是需要輸出的一系列參數(shù),其個(gè)數(shù)必須與格式化字符串所說明的輸出參數(shù)個(gè)數(shù)一樣多,各參數(shù)之間用“,”分開,且順序一一對(duì)應(yīng),否則將會(huì)出現(xiàn)不可意料的錯(cuò)誤。48、若運(yùn)行輸入:3<回車>:則以下程序的輸出結(jié)果是________。main(){inta,b;scanf(“%d”,&a);b=(a>=0)?a:-a;printf(“b=%d”,b);}標(biāo)準(zhǔn)答案:b=3知識(shí)點(diǎn)解析:條件表達(dá)式的基本格式為:“表達(dá)式17表達(dá)式2:表達(dá)式3”;其功能是:表達(dá)式1的值若非0,則計(jì)算表達(dá)式2的值,且為最終結(jié)果;若表達(dá)式1的值為0,則計(jì)算表達(dá)式3的值,且為最終結(jié)果。因?yàn)閍=3,則a>=0成立,所以b=a=3。49、以下程序的運(yùn)行結(jié)果是____________。#defineMAX(a,b)(a>b?a:b)+1main(){inti=6,j=8,k;printf(“%d\n”.MAX(ij));}標(biāo)準(zhǔn)答案:9知識(shí)點(diǎn)解析:本題考查的是條件運(yùn)算符的應(yīng)用。帶參數(shù)的宏定義中定義的MAX函數(shù)的功能是選出a和b中較大的數(shù)然后加1;min()函數(shù)中顯然j比i大,所以輸出的是j加1后的值9。50、下面程序的運(yùn)行結(jié)果是___________。#includemain(){inta,b,c,n;a=2;b=0;c=1;n=1;while(n<=3){c=c*a;b=b+c;++n;}printf(“b=%d”,b);}標(biāo)準(zhǔn)答案:b=14知識(shí)點(diǎn)解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2;b=b+c=2;n=2。第2次:c=c*a=4;b=b+c=6;n=3。第3次:c=c*a=8;b=b+c=14。當(dāng)n=4時(shí),判斷條件不滿足,退出循環(huán)。51、以下程序的輸出結(jié)果是__________。#includemain(){inti=10,j=0;do{j=j+i;i--;}while(i>5);printf(“%d﹨n”j);}標(biāo)準(zhǔn)答案:40知識(shí)點(diǎn)解析:分析程序,初始時(shí)i=10,j=0,這時(shí)do循環(huán)中的“j=+i”語句計(jì)算結(jié)果為10,“i--”后i=9;滿足循環(huán)條件,繼續(xù)執(zhí)行循環(huán),j=j+i=10+9=19,i--后i=8;滿足循環(huán)條件,繼續(xù)循環(huán),j=j+i=19+8=27,i--后i=7,滿足i>5,繼續(xù)循環(huán),j=j+i=27+7=34,i--后i=6,繼續(xù)循環(huán),j=j+i=34+6=40,i--后i=5,此時(shí)不能滿足條件i>5,退出循環(huán),因此最后i的值為40。52、下列程序的功能是:求出ss所指字符串中指定字符的個(gè)數(shù),并返回此值。例如,若輸入字符串123412132,輸入字符1,則輸出3,請(qǐng)?zhí)羁铡?include#include#defineM81inttim(char*ss,charC{inti=0;if(;_______________;ss++)if(*ss==Ci++;returni;}main(){chara[M],ch;printf(“hlPleaseenterastring:”);gets(a);printf(“knPleaseenterachar:”);ch=getchar();printf(“baThenumberofthecharis:%d﹨n”,fun(a,ch));}標(biāo)準(zhǔn)答案:*ss!=‘\0’知識(shí)點(diǎn)解析:本題考查的是指針的應(yīng)用。題目要求求出字符串ss中指定字符的個(gè)數(shù),分析整個(gè)程序,空缺處是檢驗(yàn)指針ss是否指向了字符串的末尾,如沒有,即執(zhí)行下面語句,判斷指針ss指向的字符是否字符c,若是,i自加1;所以空缺處填入*ss!=‘\0’,作為循環(huán)終止的條件。53、以下程序是求矩陣a、b的和,結(jié)果存入矩陣c中,請(qǐng)?zhí)羁铡?includemain(){inta[4][4]={{1,2,6,7),{0,4,2,-8),{1,4,5,2},{2,4,6,8));intb[4][4]={{-4,0,7,9),{2,-7,7,4),{6,9,0,1),{8,8,6,5}};inti,j,c[4][4];for(i=0;i<4;i++)for(j=0;j<4;j++)c[i][j]=____________;for(i=0;i<4;i++)for(j=0;j<4;j++)printf(“%d”,c[i][j]);}標(biāo)準(zhǔn)答案:a[i][j]+b[i][j]知識(shí)點(diǎn)解析:求兩個(gè)矩陣的和只要將對(duì)應(yīng)元素相加即可。54、以下程序的輸出結(jié)果是__________。main(){char*p[]={“ABC”,”DEF”,“GHI”,“JKL”};inti;fbr(i=3;i>=0;i--,i--)printf(“%c”,*p[i]);}標(biāo)準(zhǔn)答案:JD知識(shí)點(diǎn)解析:第一次循環(huán),i=3,*p[3]=“JKL”,但因?yàn)槭且浴埃”格式輸出,只能輸出一個(gè)字符,所以只能輸出J。第二次循環(huán),i=1,*p[1]=“DEF”,同樣也只能輸出D。55、以下程序的功能是:從低位開始取出長(zhǎng)整型變量S中奇數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。請(qǐng)?zhí)羁铡?includemain(){longs,t,s1=10;printf(“﹨nPleaseenters:”);scanf(“%ld”,&s);t=s%10;while(s>0){s=s/100;t=__________;s1=s1*10;}printf(“Theresultis:%ldkn”,t);}標(biāo)準(zhǔn)答案:s%10*s1+t知識(shí)點(diǎn)解析:題日要求從低位開始取出長(zhǎng)整型變量s中奇數(shù)位上的數(shù),設(shè)s為7654321,所要去除的為7531。s在每次循環(huán)均除以100,因此它的作用是將本次循環(huán)所需要得到的奇數(shù)位數(shù)放到最末一位,而要獲得該數(shù)僅需在此后將s對(duì)10取余,sl初始值為10,且在每次循環(huán)后均乘以10,因此可想到是為了將本次循環(huán)所獲得的奇數(shù)位數(shù)放到已有數(shù)的“前面”,即將上一步所得之?dāng)?shù)乘以s1,由于是逐次獲得奇次位數(shù),所以每次還要加上t的原值。國家二級(jí)(C語言)筆試模擬試卷第2套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、計(jì)算機(jī)系統(tǒng)的組成是______。A、主機(jī)、外設(shè)B、運(yùn)算器、控制器C、硬件系統(tǒng)和軟件系統(tǒng)D、CPU、內(nèi)存儲(chǔ)器標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析2、能直接與CPU交換信息的功能單元是______。A、硬盤B、控制器C、主存儲(chǔ)器D、運(yùn)算器標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:內(nèi)存儲(chǔ)器又稱主存儲(chǔ)器,可直接實(shí)現(xiàn)與CPU間的信息交換。3、計(jì)算機(jī)軟件一般包括應(yīng)用軟件和____。A、字處理軟件B、系統(tǒng)軟件C、服務(wù)性軟件D、操作系統(tǒng)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析4、在計(jì)算機(jī)系統(tǒng)中,一個(gè)字長(zhǎng)的二進(jìn)制位數(shù)為______。A、8B、16C、32D、由CPU型號(hào)決定標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:字長(zhǎng)是指微機(jī)能直接處理二進(jìn)制信息的位數(shù),由CPU的類型和型號(hào)決定。5、算法是求解問題的方法,具有輸入、輸出、有窮性、確定性和______的特性。A、可行性B、計(jì)算性C、程序設(shè)計(jì)性D、檢索性標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:操作的實(shí)現(xiàn)是用算法來描述的。算法就是解決問題的方法,它是由一個(gè)若干條指令組成的有窮序列,必須滿足的5個(gè)要素是:有窮性、確定性、輸入、輸出和可行性。6、設(shè)棧S的初始狀態(tài)為空,棧的容量為5,若入棧元素的順序是e1、e2、e3、e4、e5,則出棧元素的順序不可能是______。A、e1、e2、e3、e4、e5B、e5、e4、e3、e2、e1C、e2、e4、e3、e5、e1D、e3、e4、e1、e2、e5標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:棧是僅在表頭和表尾進(jìn)行插入和刪除元素操作的線性表,其特點(diǎn)是“先進(jìn)后出”。本題中,進(jìn)棧的過程中可以出棧。選項(xiàng)D中,如果第一個(gè)出棧的元素為e3,由于入棧順序是e1、e2、e3,那么e3出棧后,棧中元素必定有e1和e2,因?yàn)閑1先入棧,故e1應(yīng)在e2后出棧,所以選項(xiàng)D是不可能的出棧順序。7、以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是______。A、隊(duì)列B、線性表C、二叉樹D、棧標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析8、編碼是指______。A、總體設(shè)計(jì)到詳細(xì)設(shè)計(jì)的過程B、用0、1代碼改寫詳細(xì)設(shè)計(jì)的結(jié)果C、用編程語言改寫詳細(xì)設(shè)計(jì)的結(jié)果D、上述都不對(duì)標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:所謂“編碼”,是指把軟件設(shè)計(jì)的結(jié)果用計(jì)算機(jī)系統(tǒng)可以理解的形式表示出來。用于編碼的程序設(shè)計(jì)語言可以是計(jì)算機(jī)系統(tǒng)能夠直接理解的機(jī)器語言,也可以是必須通過匯編、編譯(或解釋)才能為計(jì)算機(jī)系統(tǒng)所理解的匯編語言或高級(jí)語言。9、軟件生命周期一般包括:軟件計(jì)劃期、開發(fā)期和軟件運(yùn)行期。因此,在下述項(xiàng)目中,______不是軟件開發(fā)期的內(nèi)容。A、需求分析B、結(jié)構(gòu)設(shè)計(jì)C、程序編制D、性能優(yōu)化標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:瀑布模型把軟件生命周期劃分為3個(gè)時(shí)期,時(shí)期又劃分為若干階段:①軟件定義期——問題定義和可行性研究;②軟件開發(fā)期——需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試;③運(yùn)行及維護(hù)階段——維護(hù)。所以,性能優(yōu)化不是軟件開發(fā)期所應(yīng)包含的內(nèi)容。10、數(shù)據(jù)的獨(dú)立性是指______。A、數(shù)據(jù)庫的數(shù)據(jù)相互獨(dú)立B、DBMS和DB相互獨(dú)立C、用戶應(yīng)用程序與數(shù)據(jù)庫的數(shù)據(jù)相互獨(dú)立D、用戶應(yīng)用程序與DBMS相互獨(dú)立標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:修改數(shù)據(jù)庫的物理結(jié)構(gòu)或邏輯結(jié)構(gòu)時(shí),通過兩級(jí)映像,可以使得應(yīng)用程序不必修改,保證數(shù)據(jù)的獨(dú)立性。數(shù)據(jù)的獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性。二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、若x為int類型變量,則執(zhí)行以下程序段后的x值是______。x=6;x+=x-=x*x;A、36B、-60C、60D、-24標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析12、設(shè)x,y均是int類型變量,則以下不正確的函數(shù)調(diào)用為______。A、getchar();B、putchar(’\108’);C、scanf("%d%*2d%d",&x,&y);D、putchar(’\’’);標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:八進(jìn)制中的基本數(shù)為0~7,不可能出現(xiàn)8。13、以下程序的輸出結(jié)果是______。main(){charc1=’6’,c2=’0’;printf("%d,%d,%d\n",c1,c2,c1-c2);}A、因輸出格式不合法,輸出出錯(cuò)信息B、54,48,6C、6,0,7D、6,0,6標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題printf語句輸出字符的ASCⅡ碼值(整型)。14、以下程序的輸出結(jié)果是______。#include<stdio.h>main(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d",a,b);}A、6,1B、2,1C、6,0D、2,0標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在表達(dá)式的值作為邏輯值時(shí),非0值一律為1,0值才為0。15、若有以下定義:chara;intb;floatc;doubled;則表達(dá)式a*b+d-c值的類型為______。A、floatB、intC、charD、double標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析16、在C語言中提供的合法的關(guān)鍵詞是______。A、swicthB、cherC、CaseD、default標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:選項(xiàng)A應(yīng)為多分支語句中的switch,選項(xiàng)B應(yīng)為定義字符類型的char,選項(xiàng)C應(yīng)為多分支語句中的分支關(guān)鍵詞case(小寫)。因此,選項(xiàng)A、B、C都有書寫上的錯(cuò)誤,只有選項(xiàng)D正確。17、下列變量說明語句中,正確的是______。A、chara=b=c;B、chara;b;c;C、intx;z;D、intx,z;標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:同時(shí)說明多個(gè)變量為同一類型時(shí),變量之間應(yīng)用逗號(hào)分隔。故D為正確選項(xiàng)。18、以下程序的輸出結(jié)果是______。inti=010,j=10;printf("%d,%d\n",++i,j--);A、11,10B、9,10C、10,10D、10,9標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在C語言中,以0開頭表示八進(jìn)制數(shù),所以本題程序中010表示八進(jìn)制數(shù)10,相當(dāng)于十進(jìn)制數(shù)8。因此i的初值為8,經(jīng)++i后,i的值為9。變量j經(jīng)j--后,變?yōu)?0,由于自減運(yùn)算符在j的右側(cè),所以是先輸出j的值10后,再自減1。19、標(biāo)有/$$$/的語句的執(zhí)行次數(shù)是______。inty,i;for(i=0;i<20;i++){if(i%2==0)continue;y+=i;/$$$/;}A、20B、19C、10D、9標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:程序中標(biāo)有/$$$/的語句y+=i在for循環(huán)中,由于該語句前面的條件語句使循環(huán)變量i在對(duì)2求余為0時(shí)就結(jié)束本次循環(huán),直接跳過標(biāo)有/$$$/的語句,因此該語句執(zhí)行了10次。20、以下程序的輸出結(jié)果是______。main(){intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--);}A、7B、6C、5D、4標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:注意自增和自減運(yùn)算符在變量的左右側(cè)的不同用法。本題條件表達(dá)式m++>5,即5>5不成立,此時(shí)m=6,執(zhí)行else后面的語句,輸出6后再m--使得m又等于5了。三、選擇題(2分)(本題共30題,每題1.0分,共30分。)21、要正確定義并初始化一個(gè)數(shù)組a,它含有5個(gè)元素,則正確的語句是______。A、inta[5]=(0,0,0,0,0);B、inta[5]={};C、inta[]={0,0,0,0,0};D、inta[]={5*0};標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:A項(xiàng)是錯(cuò)誤的,賦值時(shí)用的是花括號(hào)而不是圓括號(hào)。B項(xiàng)錯(cuò)在不能初始化時(shí)在花括號(hào)內(nèi)為空。D項(xiàng)錯(cuò)在不可以用表達(dá)式對(duì)數(shù)組一一賦值。C項(xiàng)雖然沒有直接定義數(shù)組的大小,但是初始化時(shí)只賦了5個(gè)元素的值,系統(tǒng)會(huì)自動(dòng)定義數(shù)組的大小為5,這種形式是正確的。22、若二維數(shù)組a有m列,且設(shè)a[0][0]位于數(shù)組的第一個(gè)位置上,則計(jì)算任意元素a[i][j]在數(shù)組中位置的公式為______。A、i*m+jB、j*m+iC、i*m+j-1D、i*m+j+1標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:a[i][j]的位置應(yīng)該是第i+1行,第j+1列,那么它的位置是(i+1-1)*m+j+1=i*m+j+1。23、以下程序的輸出結(jié)果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>’\0’;j+=2)s=10*s+p[i][j]-’\0’;printf("%d\n",s);}A、69825B、59713C、6385D、693825標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:p是指向字符的指針數(shù)組。執(zhí)行第1個(gè)循環(huán)后,p[0]指向字符數(shù)組ch的第1行"6937",p[1]指向字符數(shù)組ch的第2行"8254",那么p[0][0]其實(shí)就對(duì)應(yīng)著ch[0][0],表示第1行的第1個(gè)元素“6”。第2個(gè)循環(huán)中,外層i循環(huán)是控制指針數(shù)組p的,內(nèi)層j循環(huán)則是對(duì)每一行內(nèi)的各個(gè)元素進(jìn)行處理,特別注意循環(huán)變量j的改變"j+=2"。這樣就可以看出是對(duì)ch[0][0]、ch[0][2]、ch[1][0]和ch[1][2]進(jìn)行處理。24、以下程序的輸出結(jié)果是______。main(){char*s="121";intk=0,a=0,b=0;do{k++;if(k%2==0){a=a+s[k]-’\0’;continue;}b=b+s[k]-’\0’;a=a+s[k]-’\0’;}while(s[k+1]);printf("k=%da=%db=%d\n",k,a,b);}A、k=3a=98b=49B、k=3a=99b=50C、k=2a=99b=50D、k=2a=98b=49標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:第1次循環(huán)中,k=1,不執(zhí)行if分支,s[k]=‘2’,因此b=2,a=2因s[k+1]=‘1’進(jìn)入第2次循環(huán),k=2,執(zhí)行if分支,s[k]=‘1’,使a=3,進(jìn)而提前結(jié)束本次循環(huán),s[k+1]=‘\0’,則退出循環(huán),所以k=2,a=3,b=2。25、執(zhí)行以下程序后輸出的結(jié)果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}A、-1B、1C、8D、0標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:執(zhí)行第1次循環(huán)體,y--使得y=9,然后y減l后判斷條件為真,此時(shí)y=8。繼續(xù)執(zhí)行4次循環(huán),直到y(tǒng)=0時(shí)條件為假退出循環(huán),然后輸出y=0后再減1。因此輸出的結(jié)果為0。26、以下程序的運(yùn)行結(jié)果是______。#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12};int*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}A、運(yùn)行后報(bào)錯(cuò)B、66C、612D、55標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:用指針變量p+5對(duì)指針變量q進(jìn)行賦值的正確方法為p=q+5。27、下面程序的輸出結(jié)果是______。#include<stdio.h>main(){charch[7]={"12ab56"};inti,s=0;for(i=0;ch[i]>=’0’&&ch[i]<=’9’;i+=2)s=10*s+ch[i]-’0’;printf("%d\n",s);}A、1B、1256C、12ab56D、1256標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:for語句中的條件表達(dá)式?jīng)Q定了循環(huán)體只執(zhí)行一次。因此s=0*10+1,于是輸出結(jié)果為1。28、設(shè)有以下程序段;inta[5]={0},*p,*q;p=a;q=a;則合法的運(yùn)算是______。A、p+qB、p-qC、p*qD、p%q標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:指向同一字符串的指針可以、也只能進(jìn)行減運(yùn)算,返回一個(gè)整型數(shù)。29、函數(shù)fun的返回值是______。fun(char*a,char*b){intnum=0,n=0;while(*(a+num)!=’\0’)num++;while(b[n]){*(a+num)=b[n];num++;n++;}returnnum;}A、字符串a(chǎn)的長(zhǎng)度B、字符串b的長(zhǎng)度C、字符串a(chǎn)和b的長(zhǎng)度之差D、字符串a(chǎn)和b的長(zhǎng)度之和標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題首先通過第一個(gè)while循環(huán)計(jì)算字符串a(chǎn)的長(zhǎng)度,再通過第二個(gè)while循環(huán),將字符串a(chǎn)和b相連,最后返回連接后的總長(zhǎng)度。30、以下程序的輸出結(jié)果是______。main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x--,y);}A、10192B、9876C、10990D、101091標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:第1次循環(huán),i=0,x=10,y=10,先輸出x=10,y=10,再執(zhí)行x--使得x變?yōu)?,其次再執(zhí)行y=++i(i加1后參與賦值)使得y變?yōu)?:第2次循環(huán),i=1,x=9,y=1,先輸出x=9,y=1,再執(zhí)行x--使得x變?yōu)?,其次再執(zhí)行y=++i(i加1后參與賦值)使得y變?yōu)?。x=8,不滿足x>8,循環(huán)結(jié)束。31、以下正確的數(shù)組定義語句是______。A、inty[1][4]={1,2,3,4,5};B、floatx[2][]={{1},{2),{3}};C、longs[2][3]={{1},{1,2},<1,2,3}};D、doublet[][3]={0};標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:A、B、C項(xiàng)均存在行或列上賦初值越界問題,所以都不正確。32、以下程序運(yùn)行后,如果從鍵盤上輸入ABCDEF<回車>,則輸出結(jié)果為______。#include<stdio.h>#include<string.h>func(charstr[]){intnum=0;while(*(str+num)!=’\0’)num++;return(num);p}main(){charstr[10],*p=str;gets(p);printf("%d\n",func(P));}A、8B、7C、6D、5標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題通過函數(shù)gets()從鍵盤接收一個(gè)字符串,并通過調(diào)用fune()函數(shù),統(tǒng)計(jì)串中字符的個(gè)數(shù)。33、若用數(shù)組名作為實(shí)參,則傳遞給形參的是______。A、數(shù)組的首地址B、數(shù)組第一個(gè)元素的值C、數(shù)組中全部元素的值D、數(shù)組元素的個(gè)數(shù)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:用數(shù)組名作為實(shí)參,調(diào)用函數(shù)只是把數(shù)組的首地址傳送給形參指針。34、以下程序的輸出結(jié)果是______。main(){chara[10]={’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’},*p;inti;i=8;p=a+i;printf("%s\n",p-2);}A、6B、789C、’6’D、6789標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:p-2=a+8-2=a+5,則p指向a[6],則p指向7,所以輸出如B所示結(jié)果。35、若有以下的定義和語句:main(){inta[4][3]*p[4],j;for(j=0;j<4;j++)p[j]=a[j];}則能表示數(shù)組元素的表達(dá)式是______。A、*(p[1])B、a[4][3]C、a[1]D、*(p+4)[1]標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:B項(xiàng)錯(cuò)在越界,下標(biāo)最大的元素只到a[3][2];C項(xiàng)錯(cuò)在a[1]只表示第2行;*(p+4)[1]的錯(cuò)誤也在于越界,p+4相當(dāng)于a[4],實(shí)際上是不存在的。36、以下程序的輸出結(jié)果是______。main(){unsignedshorta=65536;intb;printf("%d\n",b=a);}A、0B、1C、2D、3標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:65536等于2的16次方,而短整型無符號(hào)數(shù)的取值范圍為0~65535,65536已經(jīng)超出a的存儲(chǔ)范圍,將截取溢出了的最高第17位,低16位全部為0,因此把a(bǔ)賦值給b,得到的是剩余的16個(gè)0,所以b的值為0。37、以下程序運(yùn)行后,輸出結(jié)果是______。fun(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fun(&p,a);printf("%d\n",*p);}A、1B、7C、9D、11標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:p是指向整型變量的指針,函數(shù)fun的第一個(gè)參數(shù)是指向指針變量的指針,調(diào)用時(shí)將p的地址傳給了形參s,函數(shù)體**s=p[1][1]使得s的內(nèi)容是p[1][1]的地址,即實(shí)參p里存放的是實(shí)參數(shù)組a[1][1]元素的地址,輸出時(shí)取指針運(yùn)算則輸出元素a[1][1]=9。38、要把數(shù)組元素中的最大值放入a[0]中,則在if語句中的條件表達(dá)式應(yīng)該是______。main(){inta[10]={6,7,2,9,1,10,5,8,4,3},*p=a,i;for(i=0;i<10;i++,p++)if(______)*a=*p;printf("%d"t,*a);}A、p>aB、*p>a[0]C、*p>*a[0]D、*p[0p*a[0]標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:p是指向整型的指針,初始指向數(shù)組a的首地址,a[0]本來就表示數(shù)組a的第1個(gè)元素,不是表示地址,因此選項(xiàng)C、D中的*a[0]是錯(cuò)誤的。選項(xiàng)A語法上沒有錯(cuò),但是不合乎題意,沒有比較數(shù)組元素和指針變量p當(dāng)前指向單元的內(nèi)容。39、有如下說明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是______。A、*p+9B、*(p+8)C、*p+=9D、p+8標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:p是指向整型變量的指針,并賦初值指向了數(shù)組a的首地址,*p=1,選項(xiàng)A中*p+9=10;選項(xiàng)C中*p=*p+9=10。而p+8是指向數(shù)組a的第9個(gè)元素的地址,只有*(p+8)才是數(shù)組a的第9個(gè)元素。40、下列程序的輸出結(jié)果是______。intb=2;intfunc(int*a){b+=*a;return(b);}main(){inta=2,res=2;res+=func(&b);printf("%d\n,res);}A、4B、6C、8D、10標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:實(shí)參a按地址傳遞,b是全局變量,函數(shù)func中b=b+*a=2+2=4,故主函數(shù)中res=res+4=2+4=6。41、在以下選項(xiàng)中,操作不合法的一組是______。A、intx[6],*p;p=&x[0];B、intx[6],*p;*p=x;C、intx[6],*p;p=x;D、intx[5],p;p=x[0];標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:對(duì)于A和C都可使p指向數(shù)組x的首地址。D是把數(shù)組元素x[0]賦給p。42、設(shè)a=5,bc6,c=7,d=8,m=2,n=2,執(zhí)行(m=a>b)&&(n=c>b)后n的值為______。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:m=a>b的值為邏輯值0,n=c>b不被執(zhí)行,n的值仍為2。43、下面程序的輸出結(jié)果是______。voidprty(int*x){printf("%d\n",++*x);}main(){inta=25;prty(&a);}A、23B、24C、25D、26標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析44、TurboC將對(duì)以下程序______。main(){intx,y;y=creat(&x):printf("%d\n",y);}creat(inta){returna++;}A、編譯時(shí)會(huì)給出出錯(cuò)信息B、順利進(jìn)行編譯、連接、執(zhí)行,不報(bào)任何錯(cuò)誤C、順利通過編譯、連接,但不能執(zhí)行D、順利通過編譯,但連接出錯(cuò)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題傳送的實(shí)參是變量x的存儲(chǔ)地址,但程序會(huì)把它當(dāng)做實(shí)際傳遞的值來處理,不會(huì)報(bào)錯(cuò)。45、以下程序的輸出結(jié)果是______。structdate{long*a;structdate*next;doubleb;}too;printf("%d",sizeof(too));A、20B、16C、14D、12標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:指針類型占2個(gè)字節(jié),雙精度型占8個(gè)字節(jié),因此sizeof(too)=2+2+8=1246、語句“printf("%d\n",12&012);”的輸出結(jié)果是______。A、12B、8C、6D、12標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:012是八進(jìn)制數(shù),轉(zhuǎn)換成十進(jìn)制為10,12&10轉(zhuǎn)換成二進(jìn)制為00001100&00001010=00001000,00001000轉(zhuǎn)換成十進(jìn)制為8。47、下面程序的運(yùn)行結(jié)果是______。main(){unsigneda=3,b=10;printf("%d\n",a<<2|b>>1);}A、3B、10C、13D、14標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考查移位運(yùn)算和按位或運(yùn)算,注意按位或運(yùn)算時(shí)只要對(duì)應(yīng)的二進(jìn)制位中有一個(gè)為1,結(jié)果為1;若都為0,結(jié)果為0048、設(shè)有以下宏定義:#defineN3#defineY(n)((N+1)*n)則執(zhí)行以下語句后,z的值為______。z=2*(N+Y(3+2));A、出錯(cuò)B、34C、46D、54標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:注意C語言中宏定義是先替換再參與運(yùn)算,因此:z=2*(N+(N+1)*3+2)=2*(3+(3+1)*3+2)=34。49、若定義了以下函數(shù):voidf(...){*p=(double*)malloc(10*sizeof(double));}p是該函數(shù)的形參,要求通過p把動(dòng)態(tài)分配存儲(chǔ)單元的地址傳回主調(diào)函數(shù),則形參p的正確定義應(yīng)當(dāng)是______。A、double*pB、float**pC、double**pD、float*p標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:從上面程序中對(duì)指針變量p值的定義可見,p所指單元的內(nèi)容又是一個(gè)地址,這個(gè)地址是申請(qǐng)分配內(nèi)存空間后的返回首地址,而分配的空間中又存放double型的數(shù)據(jù),因此p是指向指針的指針變量,通過兩層間接尋址對(duì)double型的數(shù)據(jù)操作,故正確答案應(yīng)該是選項(xiàng)C。50、下面程序的輸出結(jié)果是______。main(){enumteam{my,your=4,his,her=his+10};printf("%d%d%d%d\n",my,your,his,her);}A、0123B、04010C、04515D、14515標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考查枚舉型變量的定義及其賦初值。第一個(gè)變量默認(rèn)為1,中間可任意賦值,賦值后其后面的變量依次加1。四、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)51、十進(jìn)制數(shù)111用八位二進(jìn)制數(shù)表示為【】。標(biāo)準(zhǔn)答案:1101111知識(shí)點(diǎn)解析:本題通過除2取余法即可求出十進(jìn)制數(shù)111所對(duì)應(yīng)的二進(jìn)制數(shù)1101111。52、對(duì)于一棵具有n個(gè)結(jié)點(diǎn)的樹,該樹中所有結(jié)點(diǎn)的度為【】。標(biāo)準(zhǔn)答案:n-1知識(shí)點(diǎn)解析:設(shè)該樹中所有結(jié)點(diǎn)的度為x,因?yàn)?,在樹的結(jié)點(diǎn)中,除了根結(jié)點(diǎn)以外,其余結(jié)點(diǎn)都有一個(gè)分支進(jìn)入,所以,n=x+1,所以x=n-1。53、瀑布模型將軟件生存周期劃分為【】、開發(fā)和運(yùn)行3個(gè)階段。標(biāo)準(zhǔn)答案:計(jì)劃知識(shí)點(diǎn)解析:瀑布模型是B.W.Boehm于1976年提出的。它將軟件生存周期劃分為計(jì)劃、開發(fā)、運(yùn)行3個(gè)時(shí)期,每個(gè)時(shí)期又分為若干個(gè)階段。54、關(guān)系可以有3種類型,即基本關(guān)系(又稱基本表或基表)、查詢表和【】。標(biāo)準(zhǔn)答案:視圖表知識(shí)點(diǎn)解析:關(guān)系數(shù)據(jù)庫中通常有3種關(guān)系,即基本關(guān)系(又稱基本表或基表)、查詢表和視圖表?;颈硎窃跈C(jī)器中實(shí)際存儲(chǔ)數(shù)據(jù)的表。查詢表是查詢的結(jié)果所對(duì)應(yīng)的臨時(shí)表。視圖表是由基本表或其他視圖表導(dǎo)出的表,是不實(shí)際存儲(chǔ)數(shù)據(jù)的表。視圖表是一個(gè)虛表。55、存儲(chǔ)300個(gè)16×16點(diǎn)陣的漢字信息需要【】字節(jié)。標(biāo)準(zhǔn)答案:800知識(shí)點(diǎn)解析:一個(gè)16x16點(diǎn)陣的字形碼需要16x16/8=32字節(jié)的存儲(chǔ)空間,所以300個(gè)漢字信息需要9600個(gè)字節(jié)。五、填空題(本題共13題,每題1.0分,共13分。)56、語句X++;、++X;、X=X+1;、X=1+X;,執(zhí)行后都使變量X中的值增1,請(qǐng)寫出一條同一功能的賦值語句(不得與列舉的相同)【】。標(biāo)準(zhǔn)答案:X+=1;知識(shí)點(diǎn)解析:在C語言中使變量增1的方法有:自增運(yùn)算符與賦值語句。其中自增運(yùn)算符有前置與后置方式,賦值語句也有兩種類型。本題中的主要增1方式有:X++;、++X;、X=X+1;、X=1+X;、X+=1;。57、設(shè)Y是int型變量,請(qǐng)寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。標(biāo)準(zhǔn)答案:Y%2=1或Y%2!=0知識(shí)點(diǎn)解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或不為0。本題具體做法如下:Y%2=1或Y%2!=0。58、下程序的輸出是【】。main(){charstr1[]="Howdoyoudo",*p1=str1;strcpy(str1+strlen(str1)/2,"esshe");printf("%s\n",p1);}標(biāo)準(zhǔn)答案:Howdoesshe知識(shí)點(diǎn)解析:strcpy(str1,s1):字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組str1中去。strlen(str):測(cè)試字符串str的長(zhǎng)度,函數(shù)的值為字符串中實(shí)際長(zhǎng)度,不包括’\0’在內(nèi)。本題中strlen(str1)的值為13,則strcpy(str1+strlen(str1)/2,"esshe");相當(dāng)于strcpy(str1+6,"esshe");,因此可得答案為Howdoesshe。59、以上程序運(yùn)行后的輸出結(jié)果是【】。main(){inti=10,j=0;do{j=j+i;i-;}while(i>2);printf("%d\n",j);}標(biāo)準(zhǔn)答案:52知識(shí)點(diǎn)解析:do...while語句的形式為:do{語句;}while(條件表達(dá)式)當(dāng)條件表達(dá)式為非零時(shí),繼續(xù)執(zhí)行循環(huán)體,直到條件表達(dá)式為零時(shí)退出循環(huán)。60、設(shè)有如下程序:main(){intn1,n2;scanf("%d",&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf("%d",n1);}}程序運(yùn)行后,如果從鍵盤上輸入1298,則輸出結(jié)果為【】。標(biāo)準(zhǔn)答案:8921知識(shí)點(diǎn)解析:本題的程序的功能是將輸入的整數(shù)反向輸出。61、以下程序輸出的最后一個(gè)值是【】intff(intn){staticintf=1;f=f*n;returnf;}main(){inti;for(i=1;i<=5;i++)printf("%d\n",ff(i));}標(biāo)準(zhǔn)答案:120知識(shí)點(diǎn)解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)方式,它具有以下特點(diǎn):①靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)類別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元。在程序整個(gè)運(yùn)行期間都不釋放。②對(duì)靜態(tài)局部變量是在編譯時(shí)賦初值的,即只賦初值—次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用函數(shù)時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。③如在定義局部變量時(shí)不賦初值的話,則對(duì)靜態(tài)局部變量來說,編譯時(shí)自動(dòng)賦初值0(對(duì)數(shù)值型變量)或空字符(對(duì)字符變量)。(注意:C語言中的非靜態(tài)變量在定義時(shí),系統(tǒng)并不會(huì)自動(dòng)給它賦初值)④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。本題中函數(shù)的功能是:與for語句一起求一個(gè)整數(shù)的階乘。62、以下函數(shù)的功能是求x的y次方,請(qǐng)?zhí)羁誨oublefun(doublex,inty){inti;doublez;for(i=1,z=x;i<y;i++)z=z*【】;}標(biāo)準(zhǔn)答案:x知識(shí)點(diǎn)解析:函數(shù)的定義形式為:函數(shù)類型函數(shù)名(形參表){類型說明語句;執(zhí)行語句;}本題中函數(shù)的功能是:累積變量以求捐變量的Y次方。63、下列程序的輸出結(jié)果是【】。main(){inta[]={2,4,6},*ptr=&a[0],x=8,y,z;for(y=0;y<3;y++)z=(*(ptr+y)<x)?*(ptr+y):x;printf("%d\n",z);}標(biāo)準(zhǔn)答案:6知識(shí)點(diǎn)解析:條件運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符,因此本題先計(jì)算關(guān)系表達(dá)式(*(ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當(dāng)y=0時(shí),*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=2,所以z=2;當(dāng)y=1時(shí),*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=4,所以z=4;當(dāng)y=2時(shí),*(Ptr+y)=6,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=6,所以z=6;循環(huán)結(jié)束。因此輸出z的結(jié)果為6。64、以下程序運(yùn)行后的輸出結(jié)果是【】。main(){chars[]="9876",*p;for(p=s;p<s+2;p++)printf("%s\n",p);}標(biāo)準(zhǔn)答案:9876876知識(shí)點(diǎn)解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲(chǔ)單元的首地址。指針的定義:類型說明符*指針變量名;65、若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請(qǐng)?zhí)羁找詫?shí)現(xiàn)拷貝。(注:不使用逗號(hào)表達(dá)式)while(s[i]){d[j]=【】;j++;}d[j]=0;標(biāo)準(zhǔn)答案:s[i++]知識(shí)點(diǎn)解析:本題中為了能實(shí)現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應(yīng)使用i的自增后置來實(shí)現(xiàn)。66、若有如下結(jié)構(gòu)體說明:structSTRU{inta,b;charc:doubled;structSTRU*p1,*p2;};請(qǐng)?zhí)羁?,以完成?duì)t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)

溫馨提示

  • 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)論