國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷8(共285題)_第1頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷8(共285題)_第2頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷8(共285題)_第3頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷8(共285題)_第4頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷8(共285題)_第5頁(yè)
已閱讀5頁(yè),還剩74頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷8(共9套)(共285題)國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、以下選項(xiàng)中關(guān)于程序模塊化的敘述錯(cuò)誤的是A、把程序分成若干相對(duì)獨(dú)立、功能單一的模塊,可便于重復(fù)使用這些模塊B、可采用自底向上、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序C、把程序分成若干相對(duì)獨(dú)立的模塊,可便于編碼和調(diào)試D、可采用自頂向下、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:如果應(yīng)用結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)程序,那么可采用自頂向下,逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序。2、下列關(guān)于棧的敘述中正確的是()。A、棧按“先進(jìn)先出”組織數(shù)據(jù)B、棧按“先進(jìn)后出”組織數(shù)據(jù)C、只能在棧底插入數(shù)據(jù)D、不能刪除數(shù)據(jù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是只允許在棧頂進(jìn)行插入和刪除運(yùn)算的線性表,按“先進(jìn)后出”組織數(shù)據(jù)。3、下列敘述中正確的是()。A、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的B、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要多于順序存儲(chǔ)結(jié)構(gòu)C、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)D、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間與順序存儲(chǔ)結(jié)構(gòu)沒(méi)有任何關(guān)系標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:線性鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中每個(gè)結(jié)點(diǎn)都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲(chǔ)空間,所以一般要多于順序存儲(chǔ)結(jié)構(gòu)。4、設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:35),初始狀態(tài)為front=rear=35。現(xiàn)經(jīng)過(guò)一系列入隊(duì)與退隊(duì)運(yùn)算后,fronl=15,rear=15,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為A、15B、16C、20D、0或35標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列的隊(duì)頭指針和尾指針都等于15,此循環(huán)隊(duì)列中元素的個(gè)數(shù)有兩種情況,第一種情況是隊(duì)頭指針和尾指針都是第一次到達(dá)15,此時(shí)元素個(gè)數(shù)為0;第二種情況是隊(duì)頭指針第一次到達(dá)15,而尾指針第二次到達(dá)15,此時(shí)元素個(gè)數(shù)為35。5、下列關(guān)于棧的描述中正確的是A、在棧中只能插入元素而不能刪除元素B、在棧中只能刪除元素而不能插入元素C、棧是特殊的線性表,只能在一端插入或刪除元素D、棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧是限定在一端進(jìn)行插入與刪除的線性表,在棧中。允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。6、以下敘述中正確的是A、標(biāo)識(shí)符的長(zhǎng)度不能任意長(zhǎng),最多只能包含16個(gè)字符B、語(yǔ)言中的關(guān)鍵字不能作變量名,但可以作為函數(shù)名C、用戶自定義的標(biāo)識(shí)符必須“見(jiàn)名知義”,如果隨意定義,則會(huì)出編譯錯(cuò)誤D、標(biāo)識(shí)符總是由字母、數(shù)字和下劃線組成,且第一個(gè)字符不得為數(shù)字標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:標(biāo)識(shí)符就是C語(yǔ)言中的變量名、函數(shù)名、數(shù)組名、文件名、類(lèi)型名等。C語(yǔ)言合法標(biāo)識(shí)符的命名規(guī)則是:①標(biāo)識(shí)符由字母、數(shù)字和下劃線組成;②第一個(gè)字符必須為字母或下劃線;③大寫(xiě)字母與小寫(xiě)字母被認(rèn)為是兩個(gè)不同的字符;④C語(yǔ)言規(guī)定了一個(gè)標(biāo)識(shí)符允許的字符個(gè)數(shù),為32,超過(guò)的字符將不被識(shí)別。C語(yǔ)言的標(biāo)以符可分為以下3類(lèi):①火鍵字,不能用于為自定義標(biāo)識(shí)符命名。②預(yù)定義標(biāo)識(shí)符。③用戶標(biāo)識(shí)符。由用戶根據(jù)需要定義的標(biāo)識(shí)符稱為用戶標(biāo)識(shí)符,又稱自定義標(biāo)識(shí)符,一般用來(lái)給變量、函數(shù)、數(shù)組等命名,一般做到見(jiàn)名知義,但是沒(méi)有特殊規(guī)定。7、下列敘述中正確的是A、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為nB、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(n/2)C、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(log2n)D、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(nlog2n)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查的知識(shí)點(diǎn)為查找技術(shù)。順序查找的使用情況:①線性表為無(wú)序表;②表采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。二分法查找只適用于順序存儲(chǔ)的有序表,并不適用于線性鏈表。8、表達(dá)式:(int)((double)9/2)-9%2的值是A、0B、4C、3D、5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:這個(gè)表達(dá)式的計(jì)算過(guò)程為,首先求出9除以2的商等于4,再把其強(qiáng)制轉(zhuǎn)化為實(shí)型數(shù)據(jù)為4.0,然后再?gòu)?qiáng)制轉(zhuǎn)4,減去9對(duì)2求余數(shù)1,得到其結(jié)果等于3。9、已知字符’A’的ASCII代碼值是65,字符變量c1的值是’A’,c2的值是’D’。則執(zhí)行語(yǔ)句printf("%d,%d",c1,c2-2);的輸出結(jié)果是A、A,68B、A,BC、65,66D、65,68標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言中,字符常量在內(nèi)存中占一個(gè)字節(jié),存放的是字符的ASCII碼值。所有的字符常量都作為整型量來(lái)處理。在本題中輸出語(yǔ)句用整型格式輸出字符時(shí),輸出的是其ASCII碼值。因?yàn)樽址疉’和’D’的ASCII碼值分別為65和68,所以c2-2=68-2=66。10、在軟件開(kāi)發(fā)中,需求分析階段產(chǎn)生的主要文檔是A、可行性分析報(bào)告B、軟件需求規(guī)格說(shuō)明書(shū)C、概要設(shè)計(jì)說(shuō)明書(shū)D、集成測(cè)試計(jì)劃標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:需求分析的最終結(jié)果是生成軟件需要規(guī)格說(shuō)明書(shū),可以為用戶、分析人員和設(shè)計(jì)人員之間的交流提供方便,可以直接支持目標(biāo)與確認(rèn),又可以作為控制軟件開(kāi)發(fā)進(jìn)程的依據(jù)。11、以下敘述中正確的是A、賦值語(yǔ)句是一種執(zhí)行語(yǔ)句,必須放在函數(shù)的可執(zhí)行部分B、scanf和printf是C語(yǔ)言提供的輸入和輸出語(yǔ)句C、由printf輸出的數(shù)據(jù)都隱含左對(duì)齊D、由printf輸出的數(shù)據(jù)的實(shí)際精度是由格式控制中的域?qū)捄托?shù)的域?qū)拋?lái)完全決定的標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言本身沒(méi)有提供輸入輸出語(yǔ)句,但是可以通過(guò)調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù)中提供的輸入和輸出函數(shù)來(lái)實(shí)現(xiàn)輸入和輸出,選項(xiàng)B錯(cuò)誤;采用printf輸出數(shù)據(jù),輸出數(shù)據(jù)都默認(rèn)為右對(duì)齊,若要左對(duì)齊,可以存格式控制中的”%”和寬度之間加一個(gè)”-”號(hào)來(lái)實(shí)現(xiàn),選項(xiàng)C錯(cuò)誤;printf的輸出精度由變量的類(lèi)型決定,與域?qū)挓o(wú)關(guān),選項(xiàng)D錯(cuò)誤。12、設(shè)有定義:inta;floatb;執(zhí)行scanf(’’%2d%f’,&a,&b);語(yǔ)句時(shí),若從鍵盤(pán)輸入876543.0則a和b的值分別是A、876和543.0B、87和6.0C、87和543.0D、76和543.0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在輸入函數(shù)scanf的輸入格式符%2d%f中,2d表示輸入的數(shù)據(jù)的寬度為2,所以當(dāng)從鍵盤(pán)輸入876543.0<CR>時(shí),這時(shí)把輸入數(shù)字串的前兩位87賦給變量a,然后將緊接著將6按照格式控制符%f的形式賦給變量b,所以b的值為6.000000。13、設(shè)有關(guān)系表學(xué)生S(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),每個(gè)學(xué)生學(xué)號(hào)唯一。除屬性學(xué)號(hào)外,也可以作為鍵的是()。A、姓名B、身份證號(hào)C、姓名,性別,年齡D、學(xué)號(hào),姓名標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在二維表中凡能唯一標(biāo)識(shí)元組的最小屬性集成為該表的鍵或碼。根據(jù)這個(gè)概念,在以上選項(xiàng)中,身份證號(hào)可以作為該表的鍵,答案選B。14、數(shù)據(jù)流圖(DFD)中的有向箭頭(→)表示A、數(shù)據(jù)流B、控制流C、輸入流D、輸出流標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)流圖(DataFlowDiagram):簡(jiǎn)稱DFD,它從數(shù)據(jù)傳遞和加工角度,以圖形方式來(lái)表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過(guò)程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法。數(shù)據(jù)流程圖中有以下幾種主要元素:→:數(shù)據(jù)流。數(shù)據(jù)流是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑,因此由一組成分固定的數(shù)據(jù)組成;□:數(shù)據(jù)源或宿(“宿”表示數(shù)據(jù)的終點(diǎn))。代表系統(tǒng)之外的實(shí)體;○:對(duì)數(shù)據(jù)的加工(處理)。加工是對(duì)數(shù)據(jù)進(jìn)行處理的單元,它接收一定的數(shù)據(jù)輸入,對(duì)其進(jìn)行處理,并產(chǎn)生輸出:〓:數(shù)據(jù)存儲(chǔ)。表示信息的靜態(tài)存儲(chǔ)。15、程序調(diào)試的任務(wù)是A、設(shè)計(jì)測(cè)試用例B、驗(yàn)證程序的正確性C、發(fā)現(xiàn)程序中的錯(cuò)誤D、診斷和改正程序中的錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。它與軟件測(cè)試不同,軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于一定的調(diào)試工具去執(zhí)行并找出錯(cuò)誤的具體位置。軟件測(cè)試貫穿整個(gè)軟件生命期,調(diào)試主要在開(kāi)發(fā)階段。16、設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。A、x=y+z+5,++yB、int(15.8%5)C、x=y*5=x+zD、x=25%5.0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查運(yùn)算符與表達(dá)式。求余運(yùn)算符"%"要求參與運(yùn)算的量均為整型,選項(xiàng)B)、D)錯(cuò);賦值運(yùn)算符的左側(cè)必須為變量而不能是表達(dá)式,選項(xiàng)C)錯(cuò)。選項(xiàng)A)為正確的逗號(hào)表達(dá)式,答案選A)。17、設(shè)有以下函數(shù):voidfun(intn,char*s){…},則下列對(duì)函數(shù)指針的定義和賦值均正確的是()。A、void(*pf)(int,char);pf=&fun;B、void*pf();pf:fun;C、void*pf();*pf=pf=fun;D、void(*pf)(int,char*);pf=fun;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)的參數(shù)可以是指針類(lèi)型,它的作用是將一個(gè)變量的地址傳送到另一個(gè)函數(shù)中。函數(shù)名代表函數(shù)的人口地址,指向函數(shù)的指針應(yīng)該定義為void(*pf)()。如果定義為void*pf(),則表示函數(shù)pf的返回值是一個(gè)基類(lèi)型為void的指針,因此D選項(xiàng)正確。18、以下選項(xiàng)中,合法的實(shí)數(shù)是()。A、4.5E2B、E1.3C、7.11ED、1.2E1.2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:科學(xué)計(jì)數(shù)法中,e/E前后必須有數(shù)字并且后面的數(shù)字必須為整數(shù),答案選A。19、有以下程序:#include<stdio.h>struetS{inta,b;}data[2]={10,100,20,200};main(){struetSp=data[1];prinff("%d\n",++(p.a(chǎn)));}程序的運(yùn)行結(jié)果是()。A、10B、11C、20D、21標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:聲明data是結(jié)構(gòu)s數(shù)組,初始化data[0].a(chǎn)=10;data[0].b=100;data[1].a(chǎn)=20;data[1].b=200。主函數(shù)中p=data[1];即p.a(chǎn)=data[1].a(chǎn);p.b=data[1].b;,執(zhí)行語(yǔ)句printf("%d\n",++(p.a(chǎn)));,打印輸出時(shí),p.a(chǎn)先增1再打印,p.a(chǎn)=data[1].a(chǎn)=20,先增1等于21。20、以下敘述中正確的是A、C語(yǔ)言程序總是從最前面的函數(shù)開(kāi)始執(zhí)行B、C語(yǔ)言程序總是從main函數(shù)開(kāi)始執(zhí)行C、C語(yǔ)言程序中main函數(shù)必須放在程序的開(kāi)始位置D、C語(yǔ)言程序所調(diào)用的函數(shù)必須放在main函數(shù)的前面標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言中一個(gè)源程序都有一個(gè)且只能有一個(gè)main函數(shù),即主函數(shù);C語(yǔ)言規(guī)定必須用main作為主函數(shù)名。其后的一對(duì)圓括號(hào)中可以是空的,但不能省略。程序中的main()是主函數(shù)的起始行,也是C程序執(zhí)行的起始行。每一個(gè)程序都必須有一個(gè)且只能有一個(gè)主函數(shù)。一個(gè)C程序總是從主函數(shù)開(kāi)始執(zhí)行,到main函數(shù)體執(zhí)行完后結(jié)束,而不論main函數(shù)在整個(gè)程序中的位置如何。而調(diào)用函數(shù)的定義位置和調(diào)用沒(méi)有直接關(guān)系。21、閱讀以下程序#include<stdio.h>main(){intcase;floatprintF;printf("請(qǐng)輸入2個(gè)數(shù):");scanf("%d%f",&case,&printF);printf("%d%f\n",case,printF);}該程序在編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是A、定義語(yǔ)句出錯(cuò),printF不能用作用戶自定義標(biāo)識(shí)符B、定義語(yǔ)句出錯(cuò),case是關(guān)鍵字,不能用作用戶自定義標(biāo)識(shí)符C、定義語(yǔ)句無(wú)錯(cuò),scanf不能作為輸入函數(shù)使用D、定義語(yǔ)句無(wú)錯(cuò),printf不能輸出case的值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:case是C語(yǔ)言中的一個(gè)關(guān)鍵字,不能用作用戶標(biāo)識(shí)符來(lái)使用,所以這段程序代碼在編譯時(shí)就會(huì)出錯(cuò)。22、與數(shù)學(xué)表達(dá)式x≥y≥z對(duì)應(yīng)的C語(yǔ)言表達(dá)式是A、(x>=y(tǒng)>=z)B、(x>=y(tǒng))&&(y>=z)C、(x>=y(tǒng))!(y>=z)D、(x>=y(tǒng))‖(y>=x)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:若要表示x大于等于y,同時(shí)y大于等于z,需要用邏輯與表達(dá)式連接。23、有以下程序main(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;case2:case4:n+=2;k--;break;}printf("%d",n);}while(k>0&&n<5)}運(yùn)行以后的輸出結(jié)果是A、0235B、235C、02356D、2356標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)樽兞康某跏贾捣謩e為k=5,n=0,所以程序第1次進(jìn)入循環(huán)時(shí),執(zhí)行default語(yǔ)句,“n=0,k=4”,沒(méi)有break語(yǔ)句,因此執(zhí)行case2分支語(yǔ)句,n為2,k為3,程序進(jìn)行第2次循環(huán),執(zhí)行“case3:n=3,k=2”,輸出n值為3,程序進(jìn)行第3次循環(huán),執(zhí)行case3這個(gè)分支,結(jié)果是“n=5,k=1”,打印出5;這時(shí)因?yàn)閚=5不滿足n<5的循環(huán)條件,因此退出循環(huán),程序運(yùn)行結(jié)束。24、一名員工可以使用多臺(tái)計(jì)算機(jī),每臺(tái)計(jì)算機(jī)只能由一名員工使用,則實(shí)體員工和計(jì)算機(jī)間的聯(lián)系是A、一對(duì)多B、多對(duì)多C、多對(duì)一D、一對(duì)一標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:一名員工可以使用多臺(tái)計(jì)算機(jī),每臺(tái)計(jì)算機(jī)只能由一名員工使用,所以實(shí)體員工和計(jì)算機(jī)間的聯(lián)系是多對(duì)一。所以選項(xiàng)C正確。25、若有以下程序#includeintk=7,m=5;voidf(int**s){int*t=&k;s=&t;*s=&m;printf("%d,%d,%d,",k,*t,**s);}main(){inti=3,*p=&i,**r=&p;f(r);printf("%d,%d,%d\n",i,*p,**r);}則程序的輸出結(jié)果是A、7,5,7,3,3,3,B、7,5,7,3,5,7,C、7,5,5,3,3,3,D、7,7,5,3,3,3,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查二級(jí)指針作為函數(shù)的參數(shù),可以通過(guò)函數(shù)調(diào)用來(lái)改變主函數(shù)中一級(jí)指針的指向。主函數(shù)中指針變量p指向i,r指向p,調(diào)用f函數(shù),形參指針s指向p,流程轉(zhuǎn)到f函數(shù)執(zhí)行,指針變量t指向k,s指向t,此時(shí)更改了s的指向,s指向了t,更改了s指向的地址空間內(nèi)容為m的地址,同時(shí)t也指向變量m,因此**s的值為m的值,*t為m的值,k為7。流程返回到主函數(shù),沒(méi)有對(duì)主函數(shù)空間的數(shù)據(jù)和指向作出更改,因此全部為3。26、能夠減少相同數(shù)據(jù)重復(fù)存儲(chǔ)的是A、數(shù)據(jù)庫(kù)B、字段C、文件D、記錄標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)(Database)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),它產(chǎn)生于距今六十多年前,隨著信息技術(shù)和市場(chǎng)的發(fā)展,特別是二十世紀(jì)九十年代以后,數(shù)據(jù)管理不再僅僅是存儲(chǔ)和管理數(shù)據(jù),而轉(zhuǎn)變成用戶所需要的各種數(shù)據(jù)管理的方式。數(shù)據(jù)庫(kù)主要特點(diǎn):實(shí)現(xiàn)數(shù)據(jù)共享、減少數(shù)據(jù)的冗余度、數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)實(shí)現(xiàn)集中控制、數(shù)據(jù)一致性和可維護(hù)性,以確保數(shù)據(jù)的安全性和可靠性和故障恢復(fù)。27、有以下程序#include<stdio.h>#include’’string.h’’typedefstruct{charname[9];charsex;floatscore[2];}STU;voidf(STUa){STUb={”Zhao’’,’m’,85.0,90.0);inti;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];}程序的運(yùn)行結(jié)果是A、Qian,m,85,90B、Zhao,m,85,90C、Zhao,f,95,92D、Qian,f,95,92標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查在結(jié)構(gòu)體中函數(shù)的實(shí)參和形參的傳遞,調(diào)用ffc1后,實(shí)參傳向形參,進(jìn)行f()函數(shù)功能的實(shí)現(xiàn),但程序中沒(méi)有返回語(yǔ)句,故形參不能將值傳回實(shí)參,它們值的傳遞具有不可逆性,所與printf輸出的還是c中實(shí)參的值。28、s1和s2已正確定義并分別指向兩個(gè)字符串。若要求:當(dāng)s1所指串大于s2所指串時(shí),執(zhí)行語(yǔ)句S;則以下選項(xiàng)中正確的是A、if(s1>s2)S;B、if(strcmp(s1,s2))S;C、if(strcmp(s2,s1)>0)S;D、if(strcp(s1,s2)>0)S;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:字符串標(biāo)記使用strcmp函數(shù),該函數(shù)有兩個(gè)參數(shù)分別是需要比較大小的兩個(gè)字符串s1和s2,如果s1大于s2則返回值大于0,如果s1小于s2則返回值小于0,否則s1和s2相同返回0。題目要求s1大于s2時(shí)執(zhí)行語(yǔ)句s,因此strcmp(s1,s2)的返回值大于0時(shí)執(zhí)行S。29、若要求從鍵盤(pán)讀入含有空格字符的字符串,應(yīng)使用函數(shù)()。A、gets()B、getc()C、getchar()D、scanf()標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:getc()、getchar()能輸入單個(gè)字符,在C語(yǔ)言中能輸入字符串的函數(shù)有scanf()和gets(),但是在scanf()函數(shù)中,空格和回車(chē)都會(huì)作為分隔符,而gets()函數(shù)則會(huì)將空格作為普通字符輸入,回車(chē)作為分隔符,所以答案選A。30、有下列程序,程序執(zhí)行后的輸出結(jié)果是fun(charP[][10]){intn=0,i;for(i=0;i<7;i++)if(P[i][0]==’T’)n++;returnn;}main(){charstr[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};printf("%d\n",fun(str));}A、1B、3C、0D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題在主函數(shù)中定義了一個(gè)字符二維數(shù)組str[][10],并用{“Mon”,“Tue”,“Wed”,“Thu”,“Fri”,“Sat”,“Sun”}初始化。函數(shù)fun(charp[][10])的功能是統(tǒng)計(jì)出p[][10]中p[i][0]等于字符T的個(gè)數(shù)。所以fun(str)的功能是統(tǒng)計(jì)一周七天中英文名稱首字母為“T”的個(gè)數(shù)。因?yàn)樽址癟ue”和“Thu”的首字符是“T”,所以n=2。31、在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的是()。A、人工管理階段B、文件系統(tǒng)階段C、數(shù)據(jù)庫(kù)系統(tǒng)階段D、三個(gè)階段相同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)管理發(fā)展至今已經(jīng)歷了三個(gè)階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。其中最后一個(gè)階段結(jié)構(gòu)簡(jiǎn)單,使用方便邏輯性強(qiáng)物理性少,在各方面的表現(xiàn)都最好,一直占據(jù)數(shù)據(jù)庫(kù)領(lǐng)域的主導(dǎo)地位,所以選擇C)。32、若有定義語(yǔ)句:intk[2][3],*pk[3];,則以下語(yǔ)句中正確的是A、pk=k;B、pk[0]=k[1][2];C、pk=k[0];D、pk[1]=k;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查多維數(shù)組和數(shù)組指針。k是一個(gè)二維數(shù)組,pk是一個(gè)指針數(shù)組,該數(shù)組有3個(gè)元素,每個(gè)元素都是一個(gè)指向整型對(duì)象的指針。選項(xiàng)A)錯(cuò)誤,等號(hào)的左邊是一個(gè)數(shù)組地址,不是變量:選項(xiàng)B)是把元素k[1][2]賦值給pk[0];選項(xiàng)C)中等號(hào)左邊不是變量;選項(xiàng)D)類(lèi)型不匹配,pk[1]是指向一個(gè)整型對(duì)象,而k是一個(gè)二維數(shù)組首地址。33、有以下程序#includemain()#defineN4{intx[][N]={{1,2,3),{4),{5,6,7,8),{9,10}},voidfun(inta[][N],intb[])y[N],i;{inti;fun(x,y);for(i=0;iA、1,2,3,4,B、1,4,5,9,C、1,0,7,0,D、3,4,8,10,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun(inta[][N],intb[])的功能是把矩陣a[N][N]主對(duì)角線上的元素賦給…維數(shù)組b[]。在主函數(shù)中由想[][N]的初始化可知,其主對(duì)角線上的元素是1,0,7,0。所以當(dāng)執(zhí)行完函數(shù)fun(x,y)后,一維數(shù)組元素y[]中的元素值為1,0,7,0。34、以下敘述中正確的是A、結(jié)構(gòu)體類(lèi)型中的各個(gè)成分均不能是數(shù)組或指針B、結(jié)構(gòu)體類(lèi)型的變量,不能在聲明結(jié)構(gòu)體類(lèi)型組成時(shí)一起定義C、使用typedef定義新類(lèi)型名后,新類(lèi)型名與原類(lèi)型名實(shí)際上是等價(jià)的D、元素為結(jié)構(gòu)體類(lèi)型的數(shù)組,只能在聲明過(guò)結(jié)構(gòu)體類(lèi)型之后,單獨(dú)進(jìn)行定義標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言允許用tyoedef說(shuō)明一種新類(lèi)型名,typedef語(yǔ)句的作用僅僅是用“標(biāo)識(shí)符”來(lái)代表已存在的“類(lèi)型名”,并未產(chǎn)生新的數(shù)據(jù)類(lèi)型,原有類(lèi)型名依然有效。結(jié)構(gòu)體變量定義有下面三種形式;(1)先定義結(jié)構(gòu),再說(shuō)明結(jié)構(gòu)變量。(2)在定義結(jié)構(gòu)類(lèi)型的同時(shí)說(shuō)明結(jié)構(gòu)變量。(3)直接說(shuō)明結(jié)構(gòu)變量。35、有以下程序#includemain(){chara=4;printf("%d\n",a=a<<1);}A、8B、16C、40D、4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查按位右移運(yùn)算。a=4的二進(jìn)制為00000100,a<<1后為00001000,其值為十進(jìn)制數(shù)值8。36、設(shè)有定義:doublea,b,c;若要求通過(guò)輸入分別給a、b、c輸入1、2、3,輸入形式如下(注:此處□代表一個(gè)空格)□□1.0□□2.0□□3.0<回車(chē)>則能進(jìn)行正確輸入的語(yǔ)句是A、scanf("%lf%lf%lf",a,b,c);B、scanf("%lf%lf%lf",&a,&b,&c);C、scanf("%f%f%f",&a,&b,&c);D、scanf("%5.1lf%5.1lf%5.1lf",&a,&b,&c);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:scanf函數(shù)的一般形式為scanf(格式控制,變量1地址,變量2地址,…),其中,格式字符串要與數(shù)據(jù)類(lèi)型保持一致,所以格式字符串中應(yīng)為%lf,后面應(yīng)該為變量地址,所以需要加上符號(hào)"&",所以選擇B。37、有以下程序#includemain(){intk,j,s;for(k=2;k<6;k++,k++){s=1;for(j=k;j<6;j++)s+=j;}printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是A、6B、10C、24D、40標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題重點(diǎn)考察for語(yǔ)句循環(huán)嵌套,首先k=2,進(jìn)行一次循環(huán)后,k自增兩次,變成4,這時(shí)s為1。即當(dāng)k=4的時(shí)候,s=1,j=4,執(zhí)行內(nèi)層循環(huán),s=1+4,j自增1后等于5,s=5+5,j再自增1后即為6,跳出內(nèi)層循環(huán)。k自增兩次后等于6,不成立,跳出外層循環(huán)。最后輸出s的值,即為10。因此B選項(xiàng)正確。38、有以下程序#includetypedefstructstu{charname[10];chargender;intscore;}STU;voidf(STU*a,STU*b){*b=*a;printf("%s,%c,%d,",b->name,b->gender,b->score);}main(){STUa={"Zhao",’m’,290},b={"Qian",’f’,350};f(&a,&b);printf("%s,%c,%d\n",,b.gender,b.score);}程序的運(yùn)行結(jié)果是()。A、Zhao,m,290,Zhao,m,290B、Zhao,m,290,Qian,f,350C、Qian,f,350,Qian,f,350D、Qian,f,350,Zhao,m,290標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)體變量地址作為函數(shù)參數(shù)為地址傳參,形參和實(shí)參指向的為同一塊內(nèi)存地址,所以對(duì)數(shù)組元素的改變能夠影響到實(shí)參。語(yǔ)句"*b=*a;"則將a指向的結(jié)構(gòu)體變量中的數(shù)據(jù)賦值給b指向的結(jié)構(gòu)體變量,實(shí)參b的值也發(fā)生改變,輸出結(jié)果為選項(xiàng)A)。39、以下敘述中錯(cuò)誤的是A、gets函數(shù)用于從終端讀入字符串B、getchar函數(shù)用于從磁盤(pán)文件讀入字符C、fputs函數(shù)用于把字符串輸出到文件D、fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查的是輸入輸出函數(shù)的使用,gets和getchar函數(shù)用于從標(biāo)準(zhǔn)輸入設(shè)備終端讀入字符串和字符,并非從磁盤(pán)文件讀入,fputs用于把字符串輸出到文件,fwrite用于以二進(jìn)制形式輸出數(shù)據(jù)到文件。40、以下敘述中正確的是A、在一個(gè)程序中,允許使用任意數(shù)量的#include命令行B、在包含文件中,不得再包含其他文件C、#include命令行不能出現(xiàn)在程序文件的中間D、雖然包含文件被修改了,包含該文件的源程序也可以不重新進(jìn)行編譯和連接標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查預(yù)處理中文件包含的概念,包含文件中可以包含其他文件,B選項(xiàng)錯(cuò)誤,#include可以出現(xiàn)在程序文件的中間,C選項(xiàng)錯(cuò)誤,包含文件被修改了,包含該文件的源程序必須重新進(jìn)行編譯和連接。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是()。A、有一個(gè)以上根節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B、只有一個(gè)根節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C、循環(huán)鏈表是非線性結(jié)構(gòu)D、雙向鏈表是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:線性結(jié)構(gòu)應(yīng)滿足:有且只有一個(gè)根節(jié)點(diǎn);每個(gè)節(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件,所以B選項(xiàng)正確。有一個(gè)以上根節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu),所以A選項(xiàng)錯(cuò)誤。循環(huán)鏈表和雙向鏈表都是線性結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)。2、某帶鏈棧的初始狀態(tài)為top=bottom=NULL,經(jīng)過(guò)一系列正常的入棧與退棧操作后,top=bottom=20。該棧中的元素個(gè)數(shù)為()。A、0B、1C、20D、不確定標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:帶鏈的棧就是用一個(gè)單鏈表來(lái)表示的棧,棧中的每一個(gè)元素對(duì)應(yīng)鏈表中的一個(gè)結(jié)點(diǎn)。棧為空時(shí),頭指針和尾指針都為NULL;棧中只有一個(gè)元素時(shí),頭指針和尾指針都指向這個(gè)元素。3、下列敘述中正確的是A、棧是“先進(jìn)先出”的線性表B、隊(duì)列是“先進(jìn)后出”的線性表C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)D、有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查了棧、隊(duì)列、循環(huán)隊(duì)列的概念,棧是先進(jìn)后出的線性表,隊(duì)列是先進(jìn)先出的線性表。根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間的前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類(lèi)型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),又可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。4、設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為O(1:35),初始狀態(tài)為front=rear=35?,F(xiàn)經(jīng)過(guò)一系列入隊(duì)與退隊(duì)運(yùn)算后,front=15,rear=15,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為A、15B、16C、20D、0或35標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列的隊(duì)頭指針和尾指針都等于15,此循環(huán)隊(duì)列中元素的個(gè)數(shù)有兩種情況,第一種情況是隊(duì)頭指針和尾指針都是第一次到達(dá)15,此時(shí)元素個(gè)數(shù)為0;第二種情況是隊(duì)頭指針第一次到達(dá)15,而尾指針第二次到達(dá)15,此時(shí)元素個(gè)數(shù)為35。5、下面不屬于軟件設(shè)計(jì)階段任務(wù)的是()。A、軟件總體設(shè)計(jì)B、算法設(shè)計(jì)C、制訂軟件確認(rèn)測(cè)試計(jì)劃D、數(shù)據(jù)庫(kù)設(shè)計(jì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件設(shè)計(jì)階段總體分為兩部分:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),此階段的主要任務(wù)就是將需求規(guī)格說(shuō)明文檔轉(zhuǎn)換為軟件設(shè)計(jì)文檔,將需求階段提出的問(wèn)題一一解釋,形成詳細(xì)設(shè)計(jì)文檔,并根據(jù)功能要求定制相應(yīng)數(shù)據(jù)結(jié)構(gòu)、各種流程圖等,為下一步編碼做準(zhǔn)備。6、有以下程序#includevoidmain(){intn=2,k=-1;while(!(k>0‖n++));printf("%d%d\n",k,n);}程序運(yùn)行后的輸出結(jié)果是()。A、02B、13C、57D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在程序中整型變量n的初始值等于2,整型變量k的初始值等于1,在執(zhí)行while語(yǔ)句時(shí),由于表達(dá)式k的值大于0為真,所以不再需要判斷“n++”是否為真,“(k>0∥n++)”表達(dá)式的值為真。“!(k>0∥n++)”表達(dá)式的值為假,所以while語(yǔ)句中的條件不滿足,循環(huán)語(yǔ)句不會(huì)執(zhí)行,變量n的值也不會(huì)加1,所在輸出變量k和n的值是1和2。7、若有以下程序#includemain(){inta=0,b=0,c=0c=(a+=++b,b+=4);printf("%d,%d,%d\11",a,b,c);}則程序的輸出結(jié)果是A、1,5,1B、-1,4,4C、1,5,5D、-1,4,-1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)于語(yǔ)句c=(a+=++b,b+=4);首先計(jì)算a=a+(++b),a,b初值為0,則計(jì)算以后a為1,b為1,然后計(jì)算b+=4,得到b的值為5,此時(shí)表達(dá)式b+=4的值為整個(gè)逗號(hào)表達(dá)式的值,因此c的值為5。8、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的()。A、存儲(chǔ)問(wèn)題B、共享問(wèn)題C、安全問(wèn)題D、保護(hù)問(wèn)題標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有“集成”“共享”之特點(diǎn),即數(shù)據(jù)庫(kù)集中了各種應(yīng)用的數(shù)據(jù)。進(jìn)行統(tǒng)一的構(gòu)造與存儲(chǔ),而使它們能被不同的應(yīng)用程序所使用。因而數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是解決數(shù)據(jù)的共享問(wèn)題。9、下面不屬于結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是A、程序結(jié)構(gòu)良好B、程序的易讀性C、不濫用Goto語(yǔ)句D、程序的執(zhí)行效率標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)(stmcturedprogramming)是進(jìn)行以模塊功能和處理過(guò)程設(shè)計(jì)為主的詳細(xì)設(shè)計(jì)的基本原則。結(jié)構(gòu)化程序設(shè)計(jì)是過(guò)程式程序設(shè)計(jì)的一個(gè)子集,它對(duì)寫(xiě)入的程序使用邏輯結(jié)構(gòu),使得理解和修改更有效更容易。10、C語(yǔ)言中的標(biāo)識(shí)符分為關(guān)鍵字、預(yù)定義標(biāo)識(shí)符和用戶標(biāo)識(shí)符,以下敘述中正確的是()。A、預(yù)定義標(biāo)識(shí)符(如庫(kù)函數(shù)中的函數(shù)名)可用作用戶標(biāo)識(shí)符,但失去原有含義B、用戶標(biāo)識(shí)符可以由字母和數(shù)字任意順序組成C、在標(biāo)識(shí)符中大寫(xiě)字母和小寫(xiě)字母被認(rèn)為是相同的字符D、關(guān)鍵字可用作用戶標(biāo)識(shí)符,但失去原有含義標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:用戶標(biāo)識(shí)符不能以數(shù)字開(kāi)頭,C語(yǔ)言中標(biāo)識(shí)符是區(qū)分大小寫(xiě)的,關(guān)鍵字不能用作用戶標(biāo)識(shí)符。11、有以下程序:#includevoidfun(char*c,intd){*c=*c+1:d=d+1:prinff(“%c,%c,”,*c,d);}main(){charb=’a’,a=’A’;fun(&b,a);printf(“%c,%c\n”,b,a);}程序的運(yùn)行結(jié)果是()。A、b,B,b,AB、b,B,B,AC、a,B,B,aD、a,B,a,B標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題重點(diǎn)考查函數(shù)的調(diào)用。首先要了解字母對(duì)應(yīng)的ASCII碼,例如A為65,a為97,字母+1可得到下一個(gè)字母。其次是函數(shù)形參和實(shí)參的問(wèn)題,運(yùn)行過(guò)程如下:在fun(&b,a)中,*e=‘a(chǎn)’,d=65。*c+1=’b’,d+1=66,prinff(“%c,%c,”,*c,d);輸出b,B;因?yàn)橹羔榗指向地址的值為b,此時(shí)b=*c=’b’;函數(shù)返回執(zhí)行prinff(“%c,%c\n”,b,a);輸出b,A,因此A選項(xiàng)正確。12、以下選項(xiàng)中不屬于字符常量的是A、’C’B、"C"C、’LxCC’D、\072標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查字符型常量。選項(xiàng)A)正確,是大小字母c;選項(xiàng)B)錯(cuò)誤,使用雙引號(hào)括起來(lái)的是字符串,不是字符;選項(xiàng)C)正確,使用了轉(zhuǎn)義字符“\”,xcc表示16進(jìn)制的CC;選項(xiàng)D)正確,使用了轉(zhuǎn)義字符“\”,072表示8進(jìn)制的72。13、設(shè)有課程關(guān)系模式:R(C#,Cn,T,TA)(其中,C#為課程號(hào),Cn為課程名,T為教師名,Ta為教師地址)并且假定不同課程號(hào)可以有相同的課程名,每個(gè)課程號(hào)下只有一位任課教師,但每位教師可以有多門(mén)課程。關(guān)系R中對(duì)主屬性的傳遞依賴為A、(C#,T)→TaB、C#→Cn,Cn→TaC、C#→T,T→TaD、C#→Tn標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:R關(guān)系模式中,不同課程號(hào)可以對(duì)應(yīng)相同的課程名而每個(gè)課程號(hào)下自由一位任課教師,因此課程號(hào)和教師名為傳遞依賴、教師名和教師地址為傳遞依賴,因此R對(duì)主屬性的傳遞依賴為“C#→T,T→Ta”。14、有以下程序:#include<stdio.h>main(){FILE*f;f=fopen("filea.txt","w");fprintf(f,"abc");fclose(f);}若文本文件filea.txt中原有內(nèi)容為hello,則運(yùn)行以上程序后,文件filea.txt中的內(nèi)容為()。A、abcloB、abcC、helloabcD、abchello標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查文件操作函數(shù)。執(zhí)行f13rintf(f,"abc");后,f文件的內(nèi)容就變?yōu)榱薬bc,所以B選項(xiàng)正確。15、以下選項(xiàng)中,值為1的表達(dá)式是A、1一’0’B、’1’一0C、1一’\0’D、’\0’一’0’標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C程序中,字符量可參與任何整數(shù)運(yùn)算。字符參與運(yùn)算時(shí),首先要將字符轉(zhuǎn)換為其對(duì)應(yīng)的ASCII碼值再參與整數(shù)運(yùn)算。字符“’1’”對(duì)應(yīng)的ASCII碼值是49,字符’0’對(duì)應(yīng)的ASCII碼值是48,字符“’\0’”是字符串結(jié)束標(biāo)識(shí)符NULL,其對(duì)應(yīng)的ASCII碼值是0。16、表達(dá)式3.6-5/2+1.2+5%2的值是A、4.8B、3.3C、3.8D、4.3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:表達(dá)式的計(jì)算過(guò)程為:3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8。此題要注意5/2的結(jié)果是2,而不2.5,因?yàn)槌ㄟ\(yùn)算符兩邊的數(shù)值類(lèi)型均為整型,故運(yùn)算結(jié)果的數(shù)值類(lèi)型也被認(rèn)定為整型。17、有以下程序#include#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}voidmain(){intx[N][N]={{1,2,3,4),{5,6,7,8},{9,10,11,12},{13,14,15,16)),y[N],i;fun(x,y);for(i=0;i<N;i++)printf("%d,",y[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、-12,-3,0,0,B、-3,-1,1,3,C、0,1,2,3,D、-3,-3,-3,-3,標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:fun函數(shù)的功能是求出二維數(shù)組a中第i行第i個(gè)元素與第N-1-i元素的差,賦給b[i]。在主函數(shù)中,把實(shí)參二維數(shù)組x和一維數(shù)組y傳遞給形參a和b,最后輸出一維數(shù)組y中元素的值。18、要求通過(guò)while循環(huán)不斷讀入字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是A、while(ch=getchar()=’N’)printf("%c",ch);B、while(ch=getchar()=="N")printf("%c",ch);C、while((ch=getchar())!=’N’)printf("%c",ch);D、while((ch=getchar())==’N’)printf("%c",ch);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:while循環(huán)的執(zhí)行過(guò)程如下:①計(jì)算while后面圓括號(hào)中表達(dá)式的值,當(dāng)值為非0時(shí),執(zhí)步驟②;當(dāng)值為0時(shí),執(zhí)行步驟④:②執(zhí)行循環(huán)體一次:③轉(zhuǎn)去執(zhí)行步驟①;④退出循環(huán)。在選項(xiàng)C)中,表達(dá)式(ch=getchar())!=’N’表示輸入的字符不等于N,如果這個(gè)條件表達(dá)式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個(gè)條件表達(dá)式不成立,即輸入的字符等于N,則退出循環(huán)。19、有以下程序#include<stdio.h>main(){intx=8;for(;x>0;x--){if(x%3){printf("%d,",x--);continue;}prinff("%d,",--x);}}程序的運(yùn)行結(jié)果是A、8,7,5,2,B、9,7,6,4,C、7,4,2,D、8,5,4,2,標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:“x--”表示先執(zhí)行程序,再令x的值減1;而“--x”表示令x的值減1,再執(zhí)行程序。x=8時(shí),x%3為非0值,執(zhí)行語(yǔ)句“{printf("%d,”,x--);continue;}”,輸出“8,”,此時(shí)經(jīng)過(guò)x--,x的值變?yōu)?,跳出此次循環(huán);執(zhí)行“x--,x=6,x%3=0”,后面語(yǔ)句不執(zhí)行,執(zhí)行語(yǔ)句“prjnt("%d,",--x);”,輸出“5,”;執(zhí)行for語(yǔ)句中的x--,得到x=4,判斷x%3,輸出“4,”,執(zhí)行兩次x--后,x=2,執(zhí)行“{printf("%d,",x--);continue;}”后,輸出“2,”;然后執(zhí)行兩次x--后,x=0,不符合“x>0”,循環(huán)全部結(jié)束。20、以下定義數(shù)組的語(yǔ)句中錯(cuò)誤的是A、int=num[][3]={{1,2},3,4,5,6};B、intnum[]={1,2,3,4,5,6};C、intnum[][4]={1,2,3,4,5,6};D、intnum[2][4]={{1,2},{3,4},{5,6}};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在選項(xiàng)D)的數(shù)組定義中,賦值號(hào)左邊定義了一個(gè)2行4列的二維數(shù)組,而在右邊定義了一個(gè)3行2列的二維數(shù)組。21、有以下程序#include<stdio.h>main()intf(intx,inty){inta=3,b=4,c=5,d;{return((y-x)*x);}d=f(f(a,b),f(a,c));printf("%d\n",d);}程序運(yùn)行后的輸出結(jié)果是A、10B、8C、9D、7標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查函數(shù)的嵌套調(diào)用。首先計(jì)算f(a,b)與f(a,c),f(a,b)=(b—a)*a=3,f(a,c)=(c—a)*a=6,然后計(jì)算f(3,6)=(6—3)*3=9。22、設(shè)有宏定義:#definelsDIV(k,n)((k%n==1)?1:0)且變量m已正確定義并賦值,則宏調(diào)用:IsDIV(m,5)&&IsDIV(m,7)為真時(shí)所要表達(dá)的是A、判斷m是否能被5和7整除B、判斷m被5或者7整除足否余1C、判斷m被5和7整除是否都余1D、判斷m是否能被5或者7整除標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查宏定義和三目運(yùn)算符。三目運(yùn)算符的格式為:test?語(yǔ)句1:語(yǔ)句2其中,test可以是任何Boolean表達(dá)式。語(yǔ)句1,當(dāng)test是true時(shí)執(zhí)行該語(yǔ)句,可以是復(fù)合語(yǔ)句;語(yǔ)句2,當(dāng)test是false時(shí)執(zhí)行該語(yǔ)句,可以是復(fù)合語(yǔ)句。isDIV(k,n)要表達(dá)的是當(dāng)k除n的余數(shù)是1時(shí)表達(dá)式的值為1,否則為0,所以題中要表達(dá)的是m被5和7整除是否都余1。23、有以下程序,程序運(yùn)行后的輸出結(jié)果是main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}A、1,2,1,2B、1,2,2,1C、2,1,2,1D、2,1,1,2標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在主函數(shù)定義了3個(gè)整數(shù)指針變量p,q,r,并且使p指向m,q指向n,再執(zhí)行“r=p;p=q;q=r;”這三條語(yǔ)句,使q指向m,p指向n,再輸出變量“m,n,*p,*q”時(shí),它們值分別為1,2,2,1。24、不能正確表示數(shù)學(xué)式的表達(dá)式是A、a/c*bB、a*b/cC、a/b*cD、a*(b/c)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:/號(hào)和*號(hào)的優(yōu)先級(jí)處于平級(jí),結(jié)合性都是自左至右,所以選擇C,C式子表示的是。25、有以下程序#includemain(){inti=1;i=i^i;printf("%d\n",i);}程序運(yùn)行后的輸出結(jié)果是A、1B、-1C、0D、7標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查位運(yùn)算中按位異或運(yùn)算符,異或運(yùn)算只有在兩個(gè)比較的位不同時(shí)其結(jié)果是1,否則結(jié)果為0,i^i運(yùn)算符兩邊相同,所以結(jié)果為0,選項(xiàng)C正確。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是A、算法就是程序B、設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C、設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D、以上三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:所謂算法是指解題方案的準(zhǔn)確而完整的描述。是一組嚴(yán)謹(jǐn)?shù)囟x運(yùn)算順序的規(guī)則,并且每一個(gè)規(guī)則都是有效的,且是明確的,此順序?qū)⒃谟邢薜拇螖?shù)下終止。算法不等于程序,也不等于計(jì)算方法。設(shè)計(jì)算法時(shí)不僅要考慮對(duì)數(shù)據(jù)對(duì)象的運(yùn)算和操作,還要考慮算法的控制結(jié)構(gòu)。2、下列敘述中正確的是A、循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B、循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)D、循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查循環(huán)隊(duì)列的概念,循環(huán)隊(duì)列作為隊(duì)列的一種也應(yīng)該是線性結(jié)構(gòu)。隊(duì)列是一種邏輯結(jié)構(gòu),而循環(huán)隊(duì)列是一種順序存儲(chǔ)結(jié)構(gòu)的隊(duì)列。3、有以下程序:#include<stdio.h>main(){intsum=0,x=5;do{sum+=x;}while(!——X);printf(″%d\n″,sum);}程序的運(yùn)行結(jié)果是()。A、0B、5C、14D、15標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:先執(zhí)行do中的表達(dá)式sum+=x,則sum=sum+x=0+5=5,再執(zhí)行while中的表達(dá)式,結(jié)果為0,退出循環(huán),所以運(yùn)行結(jié)果是5。4、若有以下程序#includemain(){inta=0,b=0,c=0,d;c=(a+=b,,b+=a);/*第4行*/d=c;;/*第5行*/;/*第6行*/printf(“%d,%d,%d\n”,a,b,c);/*第7行*/}編譯時(shí)出現(xiàn)錯(cuò)誤,你認(rèn)為出錯(cuò)的是A、第4行B、第5行C、第6行D、第7行標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:第4行出錯(cuò),在第4行括號(hào)中兩個(gè)逗號(hào)不可以為空。單獨(dú)的分號(hào)為C語(yǔ)言的空語(yǔ)句,是編譯程序可以識(shí)別并且編譯的,因此第5、6行都是正確的。5、從工程管理角度看,軟件設(shè)計(jì)一般分為兩步完成,它們是A、概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)B、數(shù)據(jù)設(shè)計(jì)與接□設(shè)計(jì)C、軟件結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)D、過(guò)程設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件設(shè)計(jì)是開(kāi)發(fā)階段最重要的步驟。從王程管理的角度來(lái)看可分為兩步:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)是將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu),確定系統(tǒng)級(jí)接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫(kù)模式:詳細(xì)設(shè)計(jì)是指確立每個(gè)模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用適應(yīng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。從技術(shù)觀點(diǎn)來(lái)看,軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)(定義軟件系統(tǒng)各主要部件之間的關(guān)系)、數(shù)據(jù)設(shè)計(jì)(將分析時(shí)創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu))、接口設(shè)計(jì)(描述軟件內(nèi)部、軟件與協(xié)作系統(tǒng)之間以及軟件與人之問(wèn)如何通信)、過(guò)程設(shè)計(jì)(把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過(guò)程)四個(gè)步驟。6、下面不屬于軟件設(shè)計(jì)階段任務(wù)的是()。A、軟件的詳細(xì)設(shè)計(jì)B、軟件的總體結(jié)構(gòu)設(shè)計(jì)C、軟件的需求分析D、軟件的數(shù)據(jù)設(shè)計(jì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件的需求分析屬于軟件的定義階段的任務(wù),答案選C。7、有以下程序:#includeintfun(intx,inty){if(x==y)return(x);elsereturn((x+y)/2);}main(){inta=1,b=2,c=3;printf("%d\n",fun(2*a,fun(b,c)));}程序運(yùn)行后的輸出結(jié)果是()。A、2B、3C、4D、5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:fun(b,c)即fun(2,3),2!=3,所以返回(2+3)/2=2;fun(2*a,2)即fun(2,2),2==2,所以返回2。8、有以下程序:#includeinta=1,b=2;voidfunl(inta,intb){printf(“%d%d”,a,b);}voidflun2(){a=3;b=4;}main(){funl(5,6);fun2();printf(“%d%d\n”,a,b);}程序運(yùn)行后的輸出結(jié)果是()。A、5634B、3456C、1256D、5612標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在一個(gè)源文件中,如果外部變量和局部變量同名,則在該局部變量的作用域內(nèi),該外部變量會(huì)被“屏蔽”,所以函數(shù)funl()輸出的是局部變量a、b的值:56;fun2()改變的是全局變量a、b的值,輸出結(jié)果為34,答案選A。9、下面描述中不屬于數(shù)據(jù)庫(kù)系統(tǒng)特點(diǎn)的是A、數(shù)據(jù)共享B、數(shù)據(jù)完整性C、數(shù)據(jù)冗余度高D、數(shù)據(jù)獨(dú)立性高標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)系統(tǒng)的基本特點(diǎn)有數(shù)據(jù)的集成性、數(shù)據(jù)的高共享性與低冗余性、數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)統(tǒng)一管理與控制。10、設(shè)已有定義floatx;,則下列對(duì)指針變量P進(jìn)行定義且賦初值的語(yǔ)句中正確的是()。A、int*p=(float)X;B、float*p=&x;C、floatp=&x;D、float*p=1024;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:指針是用來(lái)存放地址的變量,用(類(lèi)型名*指針變量名)的形式定義。賦值時(shí)應(yīng)將某個(gè)變量地址即&x賦給指針變量,所以選擇B。11、有三個(gè)關(guān)系R、S和T如下:其中關(guān)系T由關(guān)系R和S通過(guò)某種操作得到,該操作為A、選擇B、投影C、交D、并標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由關(guān)系T中的數(shù)據(jù)可以看出,其數(shù)據(jù)由關(guān)系R和S的數(shù)據(jù)組成。所以關(guān)系T是由關(guān)系R和T通過(guò)并運(yùn)算得到的。12、數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和A、編碼設(shè)計(jì)B、測(cè)試階段C、運(yùn)行階段D、物理設(shè)計(jì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)目前一般采用生命周期法,即把整個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)分解成目標(biāo)獨(dú)立的四個(gè)階段。它們分別是需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段。13、以下選項(xiàng)中合法的變量是A、5aB、A%C、_10_D、sizeof標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)于變量的命名要利用標(biāo)識(shí)符命名,所謂標(biāo)識(shí)符就是C語(yǔ)言中的變量名、函數(shù)名、數(shù)組名、文件名、類(lèi)型名等。其中標(biāo)識(shí)符構(gòu)成如下:①標(biāo)識(shí)符由字母、數(shù)字和下劃線組成;②第一個(gè)字符必須為字母或下劃線;因此選項(xiàng)A中數(shù)字開(kāi)頭,選項(xiàng)B出現(xiàn)了非法字符%,而選項(xiàng)D中sizeof為關(guān)鍵字,不能為變量命名。14、下列函數(shù)的功能是()。voidfun(char*a,char*b){while((*b=**a)!=’\0’){a++;b++;}}A、將a所指字符串賦給b所指空間B、使指針b指向a所指字符串C、將a所指字符串和b所指字符串進(jìn)行比較D、檢查a和b所指字符串中是否有’\0’標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:while循環(huán)條件為:(*b=*a)!=’\0’,執(zhí)行時(shí)先把指針a所指向的字符賦給指針b所在的內(nèi)存單元,如果該字符不是結(jié)束標(biāo)識(shí)“\0”,執(zhí)行循環(huán)體“a++;b++;”,指針a、b分別指向下一個(gè)字符單元。再判斷循環(huán)條件,如果成立,繼續(xù)把指針a所指向的字符賦給指針b所在的內(nèi)存單元,直到遇到結(jié)束標(biāo)識(shí)為止,因此A選項(xiàng)正確。15、以下敘述中正確的是A、函數(shù)的類(lèi)型不能足指針類(lèi)型B、函數(shù)的形參類(lèi)型小能是指針類(lèi)型C、基類(lèi)型不同的指針變量可以相互混用D、設(shè)有指針變量為double*p,則p+1將指針p移動(dòng)8個(gè)字節(jié)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在對(duì)指針進(jìn)行加、減算術(shù)運(yùn)算時(shí),數(shù)字1表示1個(gè)存儲(chǔ)單元的長(zhǎng)度。而double類(lèi)型數(shù)據(jù)在內(nèi)存中占8個(gè)字節(jié),因此移動(dòng)一次移動(dòng)8個(gè)字節(jié)。其他三個(gè)都不正確。16、以下函數(shù)的功能是:通過(guò)鍵盤(pán)輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。#include<stdio_h>#defineN10voidfun(intx[N]){inti=0;while(i<N)scanf("%d",_______);}在程序中下劃線處應(yīng)填入的是A、x+iB、x[i+1]C、x+(i++)D、x[++i]標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查數(shù)組和scanf函數(shù)的使用。程序通過(guò)while循環(huán)來(lái)給數(shù)組元素賦值,賦值語(yǔ)句通過(guò)調(diào)用seanf函數(shù)來(lái)實(shí)現(xiàn)。scanf函數(shù)從鍵盤(pán)接收數(shù)據(jù),第二個(gè)參數(shù)是數(shù)據(jù)保存的地址,因此選項(xiàng)B)和選項(xiàng)D)不是地址,錯(cuò)誤。選項(xiàng)A)和選項(xiàng)C)是地址,但是選項(xiàng)A)的i值不會(huì)發(fā)生變化,循環(huán)體內(nèi)每次都是給同一個(gè)元素賦值,不滿足要求,選項(xiàng)C)正確。17、有以下程序#includemain(){intx=1,y=2,z=3;if(x>y)if(yA、1B、41C、2D、331標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:嵌套的if-else語(yǔ)句執(zhí)行條件不滿足所以整個(gè)條件嵌套語(yǔ)句并沒(méi)有執(zhí)行,只執(zhí)行了最后一句"printf("%d\n",x++);",輸出x的值為1,答案選A。18、有以下程序#include#includevoidfun(chars[][10],intn){chart;intij;for(i=0;is[j][0]){t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;}}main(){charss[5][10]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運(yùn)行結(jié)果是A、aaaacc,xyB、bcc,aabccC、xy,aaaaccD、aabcc,bcc標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun(chars[][10],intn)通過(guò)兩重for循環(huán)語(yǔ)句,比較二維字符數(shù)組s[][10]的每個(gè)字符串的首字符大小,如果前一個(gè)字符串首字符大于后一個(gè)字符串的首字符,則交換這兩個(gè)字符串的首字符。在主函數(shù)中,語(yǔ)句fun(ss,5)的作用是對(duì)二維字符數(shù)組ss[5][10]的5個(gè)字符串的首字符進(jìn)行從小到大的排序,不影響各個(gè)字符串另外的字符。所以排序結(jié)束后,5個(gè)字符串的第一個(gè)字符依次變?yōu)閍、a、b、b和x:最后輸出第1個(gè)和第4個(gè)字符串。19、有以下程序#includemain()voidfun(char*a,char*b){char*s="*****a*b****",t[80];{while(*a==’*’)a++;fun(s,t);puts(t);while(*b=*a){b++;a++;}}}程序的運(yùn)行結(jié)果是A、a*bB、*****a*bC、a*b****D、ab標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:主函數(shù)main()定義了指向字符串的指針和一個(gè)字符數(shù)組,接著調(diào)用fun(s,t)函數(shù),進(jìn)行實(shí)參向形參傳遞,函數(shù)fun()第一個(gè)while語(yǔ)句判斷*a中的值為“*”時(shí)繼續(xù)掃描,當(dāng)遇到不是“*”時(shí)結(jié)束,接著第二個(gè)while循環(huán)語(yǔ)句,將*a中從“a”開(kāi)始的后續(xù)所有字符都賦予.b,也就是t[80]中的內(nèi)容為“a.b,……。20、下面選項(xiàng)中關(guān)于“文件指針”概念的敘述正確的是A、文件指針就是文件位置指針,表示當(dāng)前讀寫(xiě)數(shù)據(jù)的位置B、文件指針指向文件在計(jì)算機(jī)中的存儲(chǔ)位置C、文件指針是程序中用FILE定義的指針變量D、把文件指針傳給fscanf函數(shù),就可以向文本文件中寫(xiě)入任意的字符標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:文件指針實(shí)際上是指向一個(gè)結(jié)構(gòu)體類(lèi)型的指針,這個(gè)結(jié)構(gòu)體中包含如緩沖區(qū)的地址、在緩沖區(qū)中當(dāng)前存取的字符的位置、對(duì)文件是“讀”或“寫(xiě)”、是否出錯(cuò)、是否已經(jīng)遇到文件結(jié)束標(biāo)志等信息。一般稱文件指針結(jié)構(gòu)體類(lèi)型名為FILE,可以用此類(lèi)型名來(lái)定義文件指針?!靖袷健縁ILE*指針變量名【說(shuō)明】FILE是一個(gè)存儲(chǔ)文件信息的結(jié)構(gòu)體類(lèi)型的變量。注意不要和文件位置指針混淆,在文件內(nèi)部有一個(gè)位置指針,用以指示文件內(nèi)部的當(dāng)前讀寫(xiě)位置。使用fetc函數(shù),每讀寫(xiě)一次,該指針均向后移動(dòng),它不需在程序中定義說(shuō)明,而是由系統(tǒng)自動(dòng)設(shè)置的。而文件指針是指向整個(gè)文件的,須在程序中定義說(shuō)明,只要不重新賦值,文件指針的值是不變的。fscanf函數(shù)可以向文本文件和二進(jìn)制文件輸入數(shù)據(jù)。21、以下敘述中錯(cuò)誤的是A、可以用typedef將已存在的類(lèi)型用一個(gè)新的名字來(lái)代表B、可以通過(guò)typedef增加新的類(lèi)型C、用typedef定義新的類(lèi)型名后,原有類(lèi)型名仍有效D、用typedef可以為各種類(lèi)型起別名,但不能為變量起別名標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言允許用typedef說(shuō)明一種新類(lèi)型名:typedef類(lèi)型名標(biāo)示符;。其中“類(lèi)型名”必須是在此語(yǔ)句之前已定義的類(lèi)型標(biāo)識(shí)符;“標(biāo)識(shí)符”是一個(gè)用戶定義標(biāo)識(shí)符,用作新的類(lèi)型名:typedef語(yǔ)句的作用僅僅是用“標(biāo)識(shí)符”來(lái)代表已存在的“類(lèi)型名”,并未產(chǎn)生新的數(shù)據(jù)類(lèi)型,原有類(lèi)型名依然有效。22、有以下程序main(){charch[]="uvwxyz",*pc;pc=ch;printf("%c\n",*(pc+5));}程序運(yùn)行后的輸出結(jié)果是A、0B、元素ch[5]的地址C、zD、字符y的地址標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在程序中語(yǔ)句pc=ch;的功能是字符指針pc指向字符串?dāng)?shù)組ch[]的地址,而*(ps+5)表示字符串?dāng)?shù)組ch[]中第6個(gè)字符z。23、有以下程序#includemain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是A、a=1,b=0B、a=1,b=1C、a=2,b=1D、a=2,b=2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題重點(diǎn)考察switch語(yǔ)句,switch語(yǔ)句中case分支后面如果沒(méi)有break,那么就會(huì)順序執(zhí)行下面的case,直到遇到break跳出。由于變量a和變量b均賦初值為0,當(dāng)程序執(zhí)行完語(yǔ)句case0:a++;break;后,a的值為1,繼續(xù)執(zhí)行語(yǔ)句case2:a++;b++;break;a的值為2,b的值為1。因此C選項(xiàng)正確。24、若有以下程序structstu{char*name,gender;intscore;};main(){structstua={NULL,’m’,290},b;=(char*)malloc(10);strcpy(,"Zhao");b=a;b.gender=’f’;b.score=350;strcpy(,"Qian");printf("%s,%c,%d,",,a.gender,a.score);printf("%s,%c,%d\n",,b.gender,b.score);}則程序的輸出結(jié)果是A、Zhao,m,290,Qian,f,350B、Qian,f,350,Qian,f,350C、Zhao,m,290,Zhao,f,350D、Qian,m,290,Qian,f,350標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:主函數(shù)中定義結(jié)構(gòu)體類(lèi)型structstu,有三個(gè)成員,第一個(gè)成員為字符指針變量。主函數(shù)中為stu類(lèi)型變量a賦值,首先為成員分配存儲(chǔ)空間,存入數(shù)據(jù)。b=a;語(yǔ)句執(zhí)行完畢以后,a和b的各個(gè)成員值相同,需要注意的是和成員都保存了同一段內(nèi)存的地址,因此當(dāng)為變量b賦值的時(shí)候,同樣更改了a的name成員,而其他成員由于有單獨(dú)的存儲(chǔ)空間而不會(huì)發(fā)生改變。25、設(shè)有定義:doublea[10],*s=a;,以下能夠代表數(shù)組元素a[3]的是()。A、(*s)[3]B、*(s+3)C、*s[3]D、*s+3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:題中,首先定義了double型的數(shù)組a,并將數(shù)組首地址賦給指針s。s[3]能夠表示a[3],故選項(xiàng)A、C不能表示a[3];選項(xiàng)D的*s+3=a[0]+3。故本題答案為B選項(xiàng)。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共40題,每題1.0分,共40分。)1、設(shè)R是一個(gè)2元關(guān)系,有3個(gè)元組,S是一個(gè)3元關(guān)系,有3個(gè)元組。如T=R×S,則T的元組的個(gè)數(shù)為()。A、6B、8C、9D、12標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:R為n元關(guān)系,有p個(gè)元組S為m元關(guān)系,有q個(gè)元組。兩個(gè)關(guān)系笛卡兒積是一個(gè)n+m元的關(guān)系,元組個(gè)數(shù)是q×p。所以T的元組的個(gè)數(shù)為9個(gè)。2、下列敘述中正確的是A、有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B、只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C、循環(huán)鏈表是非線性結(jié)構(gòu)D、雙向鏈表是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在數(shù)據(jù)結(jié)構(gòu)中,樹(shù)這類(lèi)的數(shù)據(jù)結(jié)構(gòu)只有一個(gè)根結(jié)點(diǎn),但它不是線性結(jié)構(gòu)。3、某二叉樹(shù)的前序序列為ABCDEFG,中序序列為DCBAEFG,則該二叉樹(shù)的深度(根結(jié)點(diǎn)在第1層)為()。A、2B、3C、4D、5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:二叉樹(shù)的前序序列為ABCDEFG,則A為根結(jié)點(diǎn);中序序列為DCBAEFG,可知結(jié)點(diǎn)D、C、B位于根結(jié)點(diǎn)的左子樹(shù)上,結(jié)點(diǎn)E、F、G位于根結(jié)點(diǎn)的右子樹(shù)上。另外,結(jié)點(diǎn)B、c、D在前序序列和中序序列中順序相反,則說(shuō)明這三個(gè)結(jié)點(diǎn)依次位于前一個(gè)結(jié)點(diǎn)的左子樹(shù)上;結(jié)點(diǎn)E、F、G順序未變,則說(shuō)明這三個(gè)結(jié)點(diǎn)依次位于前一個(gè)結(jié)點(diǎn)的右子樹(shù)上。故二叉樹(shù)深度為4。4、在帶鏈隊(duì)列中,經(jīng)過(guò)一系列正常的操作后,如果front=rear,則隊(duì)列中的元素個(gè)數(shù)為A、0或1B、0C、1D、隊(duì)列滿標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:隊(duì)列是一種特殊的線性表,特殊之處在于它只允許在表的前端(front)進(jìn)行刪除操作。而在表的后端(rear)進(jìn)行插入操作,和棧一樣,隊(duì)列是一種操作受限制的線性表。進(jìn)行插入操作的端稱為隊(duì)尾,進(jìn)行刪除操作的端稱為隊(duì)頭。隊(duì)列的鏈?zhǔn)酱鎯?chǔ)也稱為鏈隊(duì)列。為了便于操作,可給鏈隊(duì)列添加1個(gè)頭結(jié)點(diǎn),并令頭指針指向頭結(jié)點(diǎn)。隊(duì)列為空的判斷條件是頭指針和尾指針的值相同,且均指向頭結(jié)點(diǎn)。當(dāng)隊(duì)列為空(0)或1時(shí),front=rear。5、以下敘述中錯(cuò)誤的是()。A、使用3種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問(wèn)題B、結(jié)構(gòu)化程序由順序、分支、循環(huán)3種基本結(jié)構(gòu)組成C、C語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言D、結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:使用順序、選擇(分支)、循環(huán)3種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問(wèn)題,而不只是解決簡(jiǎn)單問(wèn)題,所以A選項(xiàng)錯(cuò)誤。6、下列敘述中錯(cuò)誤的是A、向量是線性結(jié)構(gòu)B、非空線性結(jié)構(gòu)中只有一個(gè)結(jié)點(diǎn)沒(méi)有前件C、非空線性結(jié)構(gòu)中只有一個(gè)結(jié)點(diǎn)沒(méi)有后件D、只有一個(gè)根結(jié)點(diǎn)和一個(gè)葉子結(jié)點(diǎn)的結(jié)構(gòu)必定是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:線性結(jié)構(gòu)是n個(gè)數(shù)據(jù)元素的有序(次序)集合。①集合中必存在唯一的一個(gè)“第一個(gè)元素”;②集合中必存在唯一的一個(gè)“最后的元素”;③除最后元素之外,其它數(shù)據(jù)元素均有唯一的“后件”;④除第一元素之外,其它數(shù)據(jù)元素均有唯一的“前件”。相對(duì)應(yīng)于線性結(jié)構(gòu),非線性結(jié)構(gòu)的邏輯特征是一個(gè)結(jié)點(diǎn)元素可能對(duì)應(yīng)多個(gè)直接前驅(qū)和多個(gè)后繼。向量符合線性結(jié)構(gòu)特點(diǎn)。非線性結(jié)構(gòu)也會(huì)存在只有一個(gè)根結(jié)點(diǎn)和葉子結(jié)點(diǎn)的情況。7、下列各排序法中,最壞情況下的時(shí)間復(fù)雜度最低的是A、堆排序B、快速排序C、希爾排序D、冒泡排序標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:堆排序法,最壞情況需要O(nlog2n)次比較。相比以上幾種“除希爾排序法外”,堆排序法的時(shí)間復(fù)雜度最小,故選項(xiàng)A正確。8、以下程序的輸出結(jié)果是()。#includevoidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);}A、11,42,3112,22,41B、11,41,2012,42,20C、11,21,4011,21,21D、11,41,2112,42,22標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查的是函數(shù)參數(shù)的傳遞及自加運(yùn)算符。主函數(shù)中第一次調(diào)用函數(shù)“prt(&a,&b,&c);”,此函數(shù)中的輸出語(yǔ)句“printf("%d,%d,%d\n",++*x,++*y,*(z++));”使得a和b的值均加1,而“*(z++)”由于先執(zhí)行“z++”,所以c的值不變;第二次調(diào)用函數(shù)“prt(&a,&b,&c);”使得a和b在上一次的基礎(chǔ)上再各自加1(因?yàn)樾螀⒑蛯?shí)參進(jìn)行的是地址傳遞),而c的值仍不變。9、在軟件生命周期中,能準(zhǔn)確確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是A、概要設(shè)計(jì)B、詳細(xì)設(shè)計(jì)C、可行性分析D、需求分析標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件需求是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、設(shè)計(jì)約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求的過(guò)程。10、設(shè)有定義:intx=2;,以下表達(dá)式中,值不為6的是()。A、2*x,x+=2B、x++,2*xC、X*=(1+x)D、x*=x+1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:A選項(xiàng)中逗號(hào)表達(dá)式先計(jì)算第一表達(dá)式2*x,然后計(jì)算表達(dá)式x+=2的值,即x=x+2即4,整個(gè)逗號(hào)表達(dá)式為第二個(gè)表達(dá)式的值4,所以選擇A選項(xiàng)。B選項(xiàng)中首先計(jì)算逗號(hào)表達(dá)式中第一表達(dá)式x++,此時(shí)x為3,再執(zhí)行第二個(gè)表達(dá)式2*x=2*3=6,所以逗號(hào)表達(dá)式為第二個(gè)表達(dá)式的值6。C選項(xiàng)的賦值表達(dá)式可以表示為x=x*(1+x)=2*(1+2)=6。D選項(xiàng)中的表達(dá)式可以表示為x=x*(x+1)=2*3=6。11、以下敘述中正確的是A、a表示一個(gè)字符常量B、’\0’表示字符0C、表達(dá)式:’a’>’b’的結(jié)果是“假”D、’\"’是非法的標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符常量可以參加關(guān)系運(yùn)算,按照其存儲(chǔ)的ASCII碼值進(jìn)行比較,’a’>’b’不成立,值為假。而’\0’表示NULL,ASCII碼值為0。12、有以下程序main(){intx=1,y=0,a=0,b=0switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf("a=%d,b=%d\n",a,b);}程序的運(yùn)行結(jié)果是A、a=2,b=2B、a=1,b=1C、a=1,b=0D、a=2,b=1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查的是用switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu),首先進(jìn)入第一個(gè)switch(x)判斷,進(jìn)入case1中進(jìn)行嵌套判斷.如果switch(y)也成立,a自加1,遇到break,退出嵌套,接著執(zhí)行case2,a自加為2,b自加為1,遇到break,結(jié)束循環(huán),此時(shí)a=2,b=1。13、下列對(duì)于軟件測(cè)試的描述中正確的是A、軟件測(cè)試的目的是證明程序是否正確B、軟件測(cè)試的目的是使程序運(yùn)行結(jié)果正確C、軟件測(cè)試的目的是盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤D、軟件測(cè)試的目的是使程序符合結(jié)構(gòu)化原則標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。一個(gè)好的測(cè)試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的用例;一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。軟件測(cè)試的目的要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。14、有以下程序main(){inta=-2,b=0;while(a++&&++b);printf("%d,%dha",a,b);}程序運(yùn)行后輸出結(jié)果是A、0,3B、1,2C、1,3D、0,2標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:循環(huán)體為空,共執(zhí)行2次。第一次變量a初值為-2,b初值為0,表達(dá)式a++&&++b值為1,同時(shí)a的值為-1,b的值為1,第二次循環(huán)條件判斷以后,a的值為0,b的值2,執(zhí)行循環(huán)體空,第三次判斷條件表達(dá)式值為0,不執(zhí)行循環(huán)體,而a的值為l,但是表達(dá)式a++的值為0,因此不計(jì)算表達(dá)式++b的值,b的值仍為2。15、負(fù)責(zé)數(shù)據(jù)庫(kù)中查詢操作的數(shù)據(jù)庫(kù)語(yǔ)言是A、數(shù)據(jù)定義語(yǔ)言B、數(shù)據(jù)管理語(yǔ)言C、數(shù)據(jù)操縱語(yǔ)言D、數(shù)據(jù)控制語(yǔ)言標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:負(fù)責(zé)數(shù)據(jù)庫(kù)中查詢操作的數(shù)據(jù)庫(kù)語(yǔ)言是數(shù)據(jù)操縱語(yǔ)言。16、閱讀以下程序#includemain(){intcase;floatprintF:printfi("請(qǐng)輸入2個(gè)數(shù):");scanf("%d%f",&case,&printF);printf("%d%f\n",case,printF);}該程序在編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是A、定義語(yǔ)句出錯(cuò),printF不能用作用戶自定義標(biāo)識(shí)符B、定義語(yǔ)句出錯(cuò),case是關(guān)鍵字,不能用作用戶自定義標(biāo)識(shí)符C、定義語(yǔ)句無(wú)錯(cuò),scanf不能作為輸入函數(shù)使用D、定義語(yǔ)句無(wú)錯(cuò),printf不能輸出case的值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:case是C語(yǔ)言中的一個(gè)關(guān)鍵字,不能用作用戶標(biāo)識(shí)符來(lái)使用,所以這段程序代碼在編譯時(shí)就會(huì)出錯(cuò)。17、有以下程序段:intfun(char*s){char*P;P=s:if(*s==0)return0;while(*++P);return(P—S);}該段程序是用來(lái)()。A、計(jì)算字符串所占字節(jié)數(shù)B、實(shí)現(xiàn)字符串的賦值C、計(jì)算字符串的長(zhǎng)度D、將字符串逆序存放標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在fun()函數(shù)中定義了指針p,首先把s地址賦給p,再通過(guò)while函數(shù)移動(dòng)指針p,當(dāng)p指針指向單元為0時(shí),退出while循環(huán),返回此時(shí)p和s地址之差,即字符串長(zhǎng)度。18、下列選項(xiàng)中,不是面向?qū)ο笾饕卣鞯氖茿、復(fù)用B、抽象C、繼承D、封裝標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:面向?qū)ο蠹夹g(shù)是目前流行的系統(tǒng)設(shè)計(jì)開(kāi)發(fā)技術(shù),它包括面

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論