國(guó)家二級(jí)(C語言)筆試模擬試卷17(共534題)_第1頁(yè)
國(guó)家二級(jí)(C語言)筆試模擬試卷17(共534題)_第2頁(yè)
國(guó)家二級(jí)(C語言)筆試模擬試卷17(共534題)_第3頁(yè)
國(guó)家二級(jí)(C語言)筆試模擬試卷17(共534題)_第4頁(yè)
國(guó)家二級(jí)(C語言)筆試模擬試卷17(共534題)_第5頁(yè)
已閱讀5頁(yè),還剩120頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)(C語言)筆試模擬試卷17(共9套)(共534題)國(guó)家二級(jí)(C語言)筆試模擬試卷第1套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、算法的空間復(fù)雜度是指A、算法程序的長(zhǎng)度B、算法程序中的指令條數(shù)C、執(zhí)行算法程序所占的存儲(chǔ)空間D、算法執(zhí)行過程中所需要的存儲(chǔ)空間標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:算法的空間復(fù)雜度一般是指這個(gè)算法執(zhí)行時(shí)所需要的內(nèi)存空間,其中包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行過程中所需要的額外空間,其中額外空間還包括算法程序執(zhí)行過程的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲(chǔ)空間。2、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是一種A、隨機(jī)結(jié)構(gòu)B、順序結(jié)構(gòu)C、索引結(jié)構(gòu)D、散列結(jié)構(gòu)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中的每一個(gè)存儲(chǔ)結(jié)點(diǎn)不僅含有一個(gè)數(shù)據(jù)元素,還包括指針,每一個(gè)指針指向一個(gè)與本結(jié)點(diǎn)有邏輯關(guān)系的結(jié)點(diǎn)。此類存儲(chǔ)方式屬于順序存儲(chǔ)。3、設(shè)有下列二叉樹:對(duì)此二叉樹先序遍歷的結(jié)果是A、ABCDEFB、DBEAFCC、ABDECFD、DEBFCA標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求先序遍歷;遍歷順序應(yīng)該為:訪問根結(jié)點(diǎn)->先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF。4、編制一個(gè)好的程序,首先要保證它的正確性和可靠性,還應(yīng)強(qiáng)調(diào)良好的編程風(fēng)格,在書寫功能性注釋時(shí)應(yīng)考慮A、僅為整個(gè)程序作注釋B、僅為每個(gè)模塊作注釋C、為程序段作注釋D、為每個(gè)語句作注釋標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:功能性注釋是嵌在源程序體中的,用以描述其后的語句或程序段是在做什么工作,或者執(zhí)行了下面的語句會(huì)怎么樣。所以它描述的是一段程序,是為程序段做注釋,而不是每條語句。5、下列哪個(gè)面向?qū)ο蟪绦蛟O(shè)計(jì)不同于其他語言的主要特點(diǎn)A、繼承性B、消息傳遞C、多態(tài)性D、靜態(tài)聯(lián)編標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:繼承是一個(gè)子類直接使用父類的所有屬性和方法。它可以減少相似的類的重復(fù)說明,從而體現(xiàn)出一般性與特殊性的原則,這使得面向?qū)ο蟪绦蛟O(shè)計(jì)語言有了良好的重用性,也是其不同于其他語言的主要特點(diǎn)。6、需求分析最終結(jié)果是產(chǎn)生A、項(xiàng)目開發(fā)計(jì)劃B、需求規(guī)格說明書C、設(shè)計(jì)說明書D、可行性分析報(bào)告標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:需求分析應(yīng)交付的主要文檔就是需求規(guī)格說明書。7、在進(jìn)行單元測(cè)試時(shí),常用的方法是A、采用白盒測(cè)試,輔之以黑盒測(cè)試B、采用黑盒測(cè)試,輔之以白盒測(cè)試C、只使用白盒測(cè)試D、只使用黑盒測(cè)試標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:白盒測(cè)試是測(cè)試程序內(nèi)部邏輯結(jié)構(gòu),黑盒測(cè)試只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。從程序內(nèi)部的邏輯結(jié)構(gòu)對(duì)系統(tǒng)進(jìn)行測(cè)試才是測(cè)試的根本,更容易發(fā)現(xiàn)和解決程序中的問題,因此單元測(cè)試時(shí)應(yīng)該以白盒測(cè)試為主,而黑盒測(cè)試為輔。8、數(shù)據(jù)庫(kù)是()的集合,它具有統(tǒng)一的結(jié)構(gòu)格式并存放于統(tǒng)一的存儲(chǔ)介質(zhì),可被各個(gè)應(yīng)用程序所共享A、視圖B、消息C、數(shù)據(jù)D、關(guān)系標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)是數(shù)據(jù)的集合,其中的數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,它能構(gòu)造復(fù)雜的數(shù)據(jù)結(jié)構(gòu),以建立數(shù)據(jù)之間的內(nèi)在聯(lián)系與復(fù)雜的關(guān)系。9、下列敘述中,不正確的是A、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題B、數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致C、數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)一個(gè)能滿足用戶要求,性能良好的數(shù)據(jù)庫(kù)D、數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),但是需要操作系統(tǒng)的支持標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)應(yīng)該具有物理獨(dú)立性和邏輯獨(dú)立性,改變其—而不影響另一個(gè)。10、規(guī)范化理論中,分解()是消除其中多余的數(shù)據(jù)相關(guān)性A、關(guān)系運(yùn)算B、內(nèi)模式C、外模式D、視圖標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)規(guī)范化的基本思想是逐步消除數(shù)據(jù)依賴中不合適的部分,根本思想是通過分解關(guān)系運(yùn)算來消除多余的數(shù)據(jù)相關(guān)性。二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、以下敘述中正確的是A、構(gòu)成C語言程序的基本單位是函數(shù)B、可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)C、main()函數(shù)必須放在其他函數(shù)之前D、所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:根據(jù)函數(shù)的定義語法規(guī)定,在C語言程序中,不能嵌套定義,即不能在函數(shù)中再定義函數(shù);main()函數(shù)在C語言程序中是必須的,但函數(shù)可以放在程序中的任意位置;當(dāng)在所有函數(shù)的外部、被調(diào)用之前說明函數(shù)時(shí),在函數(shù)說明后面的任何位置上都可以對(duì)函數(shù)進(jìn)行調(diào)用。函數(shù)說明也可以放在調(diào)用函數(shù)的說明部分,如在main函數(shù)內(nèi)部進(jìn)行說明,則只能在main函數(shù)內(nèi)部才能識(shí)別函數(shù)。12、以下選項(xiàng)中合法的實(shí)型常數(shù)是A、5E2.0B、E-3C、2.00E+00D、1.3E標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在C語言中,實(shí)數(shù)有兩種表示形式:十進(jìn)制數(shù)形式與指數(shù)形式。1)一般形式的實(shí)數(shù):小數(shù)形式的實(shí)數(shù)由整數(shù)部分、小數(shù)點(diǎn)和小數(shù)部分組成(必須要有小數(shù)點(diǎn))。2)指數(shù)形式的小數(shù):指數(shù)形式的實(shí)數(shù)由尾數(shù)部分、e(E)和指數(shù)部分組成(字母e或E的前后必須要有數(shù)字,且其后面的指數(shù)必須為整數(shù))。選項(xiàng)A中,5E2.0中E后面的2.0不是整數(shù);選項(xiàng)B中,E前面沒有數(shù)字;選項(xiàng)D中,E后面沒有數(shù)字。13、以下選項(xiàng)中合法的用戶標(biāo)識(shí)符是A、longB、_2TestC、3DmaxD、A.dat標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在C語言中,合法的標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或者下劃線,long為C語言的保留字,不能作為用戶標(biāo)識(shí)符。3Dmax開頭的第一個(gè)字符為數(shù)字,而C語言規(guī)定,第一個(gè)字符必須為字母或者下劃線;A.dat中的字符“.”不符合C語言中用戶標(biāo)識(shí)符規(guī)定。14、已知大寫字母A的ASCII碼值是65,小寫字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量’\101’是A、字符AB、字符aC、字符eD、非法的常量標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:題目中的關(guān)鍵是八進(jìn)制101的十進(jìn)制是多少。八進(jìn)制的101轉(zhuǎn)換為十進(jìn)制為65,也就是字符A的ASCII碼。15、以下非法的賦值語句是A、n=(i=2,++i);B、j++;C、++(i+1);D、x=j>0;標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在表達(dá)式的運(yùn)算中,雙目賦值運(yùn)算符的格式為“變量=表達(dá)式”,單目運(yùn)算符一般形式為“運(yùn)算符表達(dá)式”或“表達(dá)式運(yùn)算符”。常量和表達(dá)式是不能被賦值的。選項(xiàng)A為復(fù)合表達(dá)式,首先計(jì)算(i=2,++i)的值,然后賦值給n;選項(xiàng)B為簡(jiǎn)單自加運(yùn)算;選項(xiàng)C在表達(dá)式++(i+1);中,(i+1)不是變量,該表達(dá)式的值為常量,而在++運(yùn)算中,其運(yùn)算對(duì)象必須為變量;選項(xiàng)D中為復(fù)合賦值表達(dá)式。16、設(shè)a和b均為double型變量,且a=5.5、b=2.5,則表達(dá)式(int)a+b/b的值是A、6.5B、6C、5.5D、6標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:在這個(gè)表達(dá)式中,優(yōu)先級(jí)最高的是(int)a,也就是對(duì)5.5取整,結(jié)果是5,其次是b/b,即2.5/2.5,結(jié)果是1.000000,最后相加結(jié)果為6.000000(表達(dá)式的最終結(jié)果為實(shí)型)。17、已知i、j、k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為1、j的值為2、k的值為3,以下選項(xiàng)中正確的輸入語句是A、scanf(“%2d%2d%2d”,&i,&j,&k);B、scanf(“%d%d%d”,&i,&j,&k);C、scant(“%d,%d,%d”,&i,&j,&k);D、scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:輸入函數(shù)scanf使用該語句時(shí),要求除格式控制符以外的字符都要原樣輸入,“,”為非格式符,要原樣輸入。選項(xiàng)A,輸入格式描述為“%2d%2d%2d”,輸入要用空格隔開,不滿足鍵盤輸入1,2,3的條件;選項(xiàng)B中,輸入格式描述符為“%d%。d%d”,輸入也要用空格隔開;選項(xiàng)D中,輸入格式描述符為“i=%d,j=%d,k=%d”,應(yīng)該從鍵盤輸入i=1,j=2,k=3,才能使得i,j,k的值為1,2,3。18、與數(shù)學(xué)式子應(yīng)的C語言表達(dá)式是A、3*xn/(2*x-1)B、3*x**n/(2*x-1)C、3*pow(x,n)*(1/(2*x-1))D、3*pow(n,x)/(2*x-1)標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在該題中,x的n次方應(yīng)該調(diào)用函數(shù)pow(x,n)計(jì)算,pow(x,n)的參數(shù)寫反了。19、設(shè)有定義:longx=-123456L;,則以下能夠正確輸出變量x值的語句是A、printf(“x=%d\n”,x);B、printf(“x=%1d\n”,x);C、printf(“x=%8dL\n”,x);D、pfintf(“x=%LD\n”,x);標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:x為一個(gè)長(zhǎng)整型的變量,而且是一個(gè)十進(jìn)制的數(shù),它的輸出控制符是“%1d”;由于C語言中是區(qū)分大小寫的,“1d”中的“d”不能為大寫。20、若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf(“%d,%d\n”,m,i);}執(zhí)行后的輸出結(jié)果是A、8,6B、8,3C、6,4D、7,4標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在復(fù)合賦值語句中,應(yīng)該由右向左依次賦值,在表達(dá)式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6。三、選擇題(2分)(本題共30題,每題1.0分,共30分。)21、設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則運(yùn)算后,n的值為______。A、0B、1C、2D、3標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C語言中比較表式的運(yùn)算結(jié)果為0或1。0代表不成立,1表示成立。22、以下程序的輸出結(jié)果是______。main(){intnum=0;while(num<=2){num++;printf("%d\n",num);}}標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:while的執(zhí)行過程是:先計(jì)算條件表達(dá)式的值,若成立則執(zhí)行循環(huán)體,重復(fù)上述過程,直到條件表達(dá)式的值為“假”(值為零)時(shí),退出循環(huán),并轉(zhuǎn)下一語句去執(zhí)行。本題在輸出num的值為3之后,再判斷while的循環(huán)條件3<=2,不成立,所以不再輸出num的值,故本題的答案選B。23、下面的關(guān)鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。A、gotoB、breakC、returnD、continue標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在C語言中,可以用break語句和continue語句跳出本層循環(huán)和結(jié)束本次循環(huán)。goto語句可跳出多層循環(huán),如果在函數(shù)的循環(huán)體內(nèi)使用return語句,就會(huì)直接結(jié)束循環(huán)返回函數(shù)值。24、以下各選項(xiàng)企圖說明一種新的類型名,其中正確的是______。A、typedefvlint;B、typedefv2=intC、typedefintv3;D、typedefv4:int標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當(dāng)于為數(shù)據(jù)類型取個(gè)別名。25、為了避免嵌套的if-else的二義性,C語言規(guī)定:else與______配對(duì)。A、縮排位置相同的ifB、其之前最近的ifC、其之后最近的ifD、同一行上的if標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在if語句中又包含一個(gè)或多個(gè)if語句稱為if語句的嵌套。應(yīng)當(dāng)注意if與else的配對(duì)關(guān)系,在C語言中,從最內(nèi)層開始,else總是與它上面最近的(未曾配對(duì)的)if配對(duì)。26、在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是v。A、地址傳遞B、單向值傳遞C、由實(shí)參傳給形,再由形參傳回實(shí)參D、傳遞方式由用戶指定標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:C語言函數(shù)中的參數(shù)傳遞方式有傳值與傳址兩種方式,傳值方式是指將實(shí)參的值復(fù)制一份傳遞給形參,而傳址方式是指將實(shí)參的變量地址傳遞給形參,也就是實(shí)參的引用。27、以下函數(shù)值的類型是______。fun(floatx){floaty;y=3*x-4;returny;}A、intB、不確定C、voidD、float標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C語言中如果函數(shù)前不加任何數(shù)據(jù)類型時(shí),默認(rèn)函數(shù)的類型為整型,函數(shù)的類型就是函數(shù)返回值的類型。28、以下選項(xiàng)中,非法的字符常量是______。A、’\t’B、’\17’C、\nD、’\xaa’標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:C語言中字符常量是以單引號(hào)括起來的單個(gè)字符,或?yàn)橐浴癨”與三位八進(jìn)制數(shù)或兩位十六進(jìn)制數(shù)值代替單個(gè)字符。29、以下程序的輸出結(jié)果是______。#include<stdio>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}A、200100B、100100C、100200D、200200標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:#define宏名的有效范圍為定義命令之后到本源文件結(jié)束,可以在程序中使用#undef命令終止宏定義的作用域。本題由于#undef的作用,使a的作用范圍在#definea100到#undefa之間,故答案為C。30、若有說明inti,j=2,*p=&i;,則能完成i=j賦值功能的語句是______。A、i=*p;B、*p=&j;C、i=&j;D、i=**p;標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:指針是一種用宋存放變量地址的特殊變量。本題中指針變量p用于存放整型變量i的地址,改變*p的值即為改變i的值。又因?yàn)椤?”和“*”兩個(gè)運(yùn)算符的優(yōu)先級(jí)別相同,按自右而左的方向結(jié)合,所以*&j運(yùn)算,得j的地址,再進(jìn)行*運(yùn)算,取所得地址里面的值,故*&j與i等價(jià)。31、假定int類型變量占用兩個(gè)字節(jié),若有定義:intx[10]={0,2,4);,貝數(shù)組x在內(nèi)存中所占字節(jié)數(shù)是______。A、3B、6C、10D、20標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:當(dāng)數(shù)組定義后,系統(tǒng)就為其分配內(nèi)存空間,而不論其中有沒有內(nèi)容。因此,本題中數(shù)組x(10)不論是否為其元素初始化,它所分配的存儲(chǔ)空間仍為2*10=20個(gè)字節(jié)。32、執(zhí)行以下的程序段后,m的值是______。inta[2][3]={{(1,2,3),{4,5,6}}intm,*p;p=aa[0][0];m=p[4];A、4B、5C、3D、不確定標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:程序中定義了一個(gè)指向整型變量的指針變量,并對(duì)其賦值為二維整型數(shù)組a的首元素的地址。p[4]等價(jià)于*(p+4),即二維數(shù)組a中第四個(gè)元素的值,而a是一個(gè)2*3的二維數(shù)組,其第四個(gè)元素為a[1][1],即5。33、以下程序的輸出結(jié)果是______。main(){inti,a[10];for(i=9;i>=0;i--)a[i]=10-i;printf("%d%d%d,",a[2],a[5],a[8]);}A、258B、741C、852D、369標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在本題運(yùn)行時(shí)主要注意的是當(dāng)i=9時(shí),a[i]=10-9=1;i=8時(shí),a[i]=10-8=2;i=7時(shí),a[i]=10-7=3;……依此類推,直到i=0時(shí),a[i]=10-0=10;此時(shí),i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8]分別為8,5,2。34、下面程序的輸出結(jié)果為______。#include<string.h>main(){charpl[7]="abc",p[]2="ABC"str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s"str);}A、xyzabcABCB、abcABCC、xyzabcD、xyzABC標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:strcpy(strl,s1).-作用是將字符串s1拷貝到字符數(shù)組strl中去。strcat(字符數(shù)組1,字符數(shù)組2):把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,函數(shù)調(diào)用后返回字符數(shù)組1的地址。本題定義了三個(gè)字符數(shù)組p1,p2,str,strcat(p1,p2)函數(shù)的作用是將字符串?dāng)?shù)組p2接到符串p1的后面,結(jié),果放在字符數(shù)組P1,再通過strcpy()函數(shù)將該字符串拷貝到str數(shù)組中,原str數(shù)組中的字符串xyz被覆蓋,因此打印輸出字符串str即可得到abcABC。35、以下數(shù)組定義中不正確的是______。A、inta[2][3];B、intb[][3]={0,1,2};C、intc[100][100]{0};D、intd[3][]={{1,2},{1,2,3},{1,2,3,}};標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:一維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達(dá)式];選項(xiàng)A符合此定義形式,正確;C語言中多維數(shù)組賦初值時(shí)可以部分賦值,也可以不指定除第一維以外的其他維的大小,故選項(xiàng)C正確;另外,如果對(duì)全部數(shù)組元素都賦初值,則定義數(shù)組時(shí)對(duì)第一維的長(zhǎng)度可以不指定,但第二維的長(zhǎng)度不能省,所以選項(xiàng)B正確,而選項(xiàng)D是錯(cuò)誤的。36、以下程序的輸出結(jié)果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],[3][0]);}A、650B、1470C、5430D、輸出值不定標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:對(duì)未給出初始值的整數(shù)數(shù)組元素,被默認(rèn)初始化為零。37、在說明語句int*f();中,標(biāo)識(shí)符f代表的是______。A、一個(gè)用于指向整型數(shù)據(jù)的指針變量B、一個(gè)用于指向一維數(shù)組的行指針C、一個(gè)用于指向函數(shù)的指針變量D、一個(gè)返回值為指針型的函數(shù)名標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:帶回指針值的函數(shù),其一般定義形式為:類型標(biāo)識(shí)符*函數(shù)名(參數(shù)表);例如:int*f(x,y);其中,f是函數(shù)名,調(diào)用它以后能得到一個(gè)指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)(的形參。在f的兩側(cè)分別為*運(yùn)算符和()運(yùn)算符,而()優(yōu)先級(jí)高于*,因此f先與()結(jié)合,顯然是函數(shù)形式。這個(gè)函數(shù)前面有一個(gè)*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。38、以下程序的輸出結(jié)果是______。main(){charst[20]="hello’、0\t\\";printf("%d%d\n",strlen(st),sizeof(st));}A、99B、520C、1320D、2020標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:C語言中字符串是以’0’字符結(jié)束的,且strlen()函數(shù)計(jì)算的是’0’字符前的所有字符的個(gè)數(shù)。本題中strlen(st)應(yīng)為5。數(shù)組定義以后系統(tǒng)就為其分配相應(yīng)大小的內(nèi)存空間,而不論其中有投有內(nèi)容。sizeof()函數(shù)是計(jì)算變量或數(shù)組的所分配到的內(nèi)存空間的大小。所以本題的sizeof(st)為20。39、以下程序運(yùn)行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",D);returnd;}main(){inta=3;printf("%d\n,fun(a+fun(D)));}A、699B、669C、61515D、6615標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:靜態(tài)局部變量在編譯時(shí)賦初值,即只賦初值一次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,而對(duì)自動(dòng)變量賦初值,不是在編譯時(shí)進(jìn)行的,而在函數(shù)調(diào)用時(shí)進(jìn)行,每調(diào)用一次函數(shù)重新給一次初值,相當(dāng)于執(zhí)行一次賦值語句。本題在程序開頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時(shí),d初值為5,p由主函數(shù)傳遞過來的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時(shí)d=d+p=6+9=15,最后打印輸出d的值并返回主函數(shù)。40、以下選項(xiàng)中,不能正確賦值的是______。A、chars1[10];s1="chest";B、chars2[]={’C’,’t’,’e’,’s’,’t’};C、chars3[20]="Chest";D、char*s4="Cest\n"標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C語言中不能將字符串常量直接賦給數(shù)組。但在賦初值時(shí)可以。41、以下程序輸出正確的是______。amovep(int*P,int(*A)[3],intn){inti,j;for(i=0;i<n;i++for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);amovep(p,a,3);printf("%d%d\n",p[2],p[5]);free(p);}A、56B、25C、34D、程序錯(cuò)誤標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題main函數(shù)中定義了指針p和二維數(shù)組a,通過函數(shù)amovep將數(shù)組的值存入指針p所指向的存儲(chǔ)單元中,a的各各元素分別為:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通過malloc()函數(shù)紿指針分配內(nèi)存空間,free()函數(shù)用于釋放指針變量所用內(nèi)存空間。在主函數(shù)中通過amovep(p,a,3)調(diào)用函數(shù)amovep,使得實(shí)參p與形參p,實(shí)參數(shù)組a與形參中指向數(shù)組的指針變量共用同一存儲(chǔ)空間。最后輸出p[2],p[5]為56。42、下面程序的輸出結(jié)果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}A、121,0,4B、2,2,2C、0,2,4D、0,2,2標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:sizeof函數(shù)是取變量所占的存儲(chǔ)空間的字節(jié)數(shù),標(biāo)識(shí)a代表常量121;constb=12;,其中數(shù)據(jù)類型可以缺省,默認(rèn)為整型;enumc{a1,a2};定義了一個(gè)枚舉類型enumc,a1,a2為枚舉元素,在C編譯時(shí),對(duì)枚舉元素按常量處理,它們的值按定義順序依次為0,1。因此它們的字節(jié)數(shù)均為2,2,2。43、以下程序的輸出結(jié)果是______。structHAR{intx,y;structHAR*p;}h[2];main(){h[0],x=1;h[0].y=2;h[1]x=3;h[1].y=4;h[0].p、&h[1];h[1]..p=h;printf("%d%d\n",(h[0].p)->x,(h[1].p)->y;}A、12B、23C、14D、32標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題中是一個(gè)含有兩個(gè)結(jié)點(diǎn)的循環(huán)鏈表。C語言中結(jié)構(gòu)體的定義為:struct結(jié)構(gòu)體類型名{成員項(xiàng)表;};44、變量a所占的內(nèi)存字節(jié)數(shù)是______。A、4B、5C、6D、8unionU{charst[4];inti;longl;};StructA{intc;unionUu;}a;標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:結(jié)構(gòu)體變量所占內(nèi)存長(zhǎng)度是各成員占內(nèi)存長(zhǎng)度之和,而共用體變量所占的內(nèi)存長(zhǎng)度等于最長(zhǎng)的成員的長(zhǎng)度。本題結(jié)構(gòu)體變量a中成員c為整型占2個(gè)字節(jié),共用體變量u最大長(zhǎng)度為4個(gè)字節(jié),故選C。45、以下程序的結(jié)果是______。inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun()printf("%d%d\n",a,b);}A、100200B、57C、200100D、75標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:全程變量是可以在子函數(shù)中對(duì)其值作改變,且它也可作為函數(shù)間的值傳遞。但當(dāng)函數(shù)或子函數(shù)中定義了與全程變量名稱相同的局部變量,則全程變量將被屏蔽。46、以下程序的輸出結(jié)果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}A、19B、17C、15D、12標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:C語言的宏定義包括不帶參數(shù)的宏定義與帶參數(shù)的宏定義。本題為帶參數(shù)的宏定義,其形式為:#define宏名(形參表)字符串本題的M(a+b,b+c,c+a)被字符串a(chǎn)+b*b+c+c+a代替。47、若有以下說明和語句:structst{intn;char*ch;};structsta[3]={5,"abc",7,"def",9,"ghk"},*p=a;則值為6的表達(dá)式是______。A、p++->nB、p->n++C、(*p).n++D、++p->n標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:根據(jù)結(jié)構(gòu)變量的存儲(chǔ)特點(diǎn),p+1意味著增加地址值為結(jié)構(gòu)體數(shù)組a的一個(gè)元素所占的字節(jié)數(shù),即p++使p由a[0]指向a[1]起始地址。本題++p->n得到p指向的結(jié)構(gòu)體變量中成員n的值使之加1。因?yàn)閜指向數(shù)組a起始地址,p->n的值為5,再執(zhí)行自加1運(yùn)行,結(jié)果為6。48、整型變量X和Y的值相等,且為非0值,則以下選項(xiàng)中結(jié)果為0的表達(dá)是______。A、X||YB、X|YC、X&YD、XY標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:“||”為或運(yùn)算符,當(dāng)其左右表達(dá)式中只要一個(gè)為非零則整個(gè)表達(dá)式的值1。是按位或,&是按位與,^是按位異或,這三位運(yùn)算符是按值的二進(jìn)制位來比較的。49、C語言中,組成數(shù)據(jù)文件的成分是______。A、記錄B、數(shù)據(jù)行C、數(shù)據(jù)塊D、字符(字節(jié))序列標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:C語言中的文件是流式文件。流式文件是一種無結(jié)構(gòu)文件,即整個(gè)文件是一串字符流或二進(jìn)制流。文件的存取以字符或字節(jié)為單位。50、下面的程序執(zhí)行后,文件test.t中內(nèi)容是______。#include<stdio.h>voidfun(char*fName,char*st){FILE*myf;inti;myf=fopm(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}A、hello,B、newworldhelloC、newworldD、hello.rld標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C語言中文件有文本文件與二進(jìn)制文件,對(duì)文件的使用前必須先打開,打開方式有只讀、寫入、讀寫等方式。四、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)51、棧的基本運(yùn)算有三種:入棧、退棧和【】。標(biāo)準(zhǔn)答案:讀棧頂元素知識(shí)點(diǎn)解析:棧的基本運(yùn)算有三種:入棧、退棧和讀棧頂元素。入棧運(yùn)算是指在棧頂位置插入一個(gè)新元素。這個(gè)運(yùn)算有兩個(gè)基本操作:首先將棧頂指針進(jìn)一(即top加1),然后將新元素插入到棧頂指針指向的位置。退棧運(yùn)算是指取出棧頂元素并賦給一個(gè)指定的變量。這個(gè)運(yùn)算有兩個(gè)基本操作:首先將棧頂元素(棧頂指針指向的元素)賦給一個(gè)指定的變量,然后將棧頂指針退一(即top減1)。讀棧頂元素是指將棧頂元素賦給一個(gè)指定的變量。這個(gè)運(yùn)算不刪除棧頂元素,只是將它的值賦給一個(gè)變量。52、在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過對(duì)象的【】性來實(shí)現(xiàn)的。標(biāo)準(zhǔn)答案:封裝知識(shí)點(diǎn)解析:軟件工程的基本原則包括抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗(yàn)證性。信息隱蔽是指采用封裝技術(shù),將程序模塊的實(shí)現(xiàn)細(xì)節(jié)隱藏起來,使模塊接口盡量簡(jiǎn)單。53、數(shù)據(jù)流的類型有【】和事務(wù)型。標(biāo)準(zhǔn)答案:變換型知識(shí)點(diǎn)解析:典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型:是指信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換為內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。事務(wù)型:在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個(gè)或多個(gè)處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。54、數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。標(biāo)準(zhǔn)答案:數(shù)據(jù)庫(kù)管理系統(tǒng)或DBMS知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心。55、關(guān)系模型的數(shù)據(jù)操縱即是建立在關(guān)系上的數(shù)據(jù)操縱,一般有【】、增加、刪除和修改四種操作。標(biāo)準(zhǔn)答案:查詢知識(shí)點(diǎn)解析:關(guān)系模型的數(shù)據(jù)操縱即是建立在關(guān)系上的數(shù)據(jù)操縱,一股有查詢、增加、刪除和修改四種操作。數(shù)據(jù)查詢:用戶可以查詢關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù),它包括一個(gè)關(guān)系內(nèi)的查詢以及多個(gè)關(guān)系間的查詢。數(shù)據(jù)刪除的基本單位是一個(gè)關(guān)系內(nèi)的元組,它的功能是將指定關(guān)系內(nèi)的指定元組刪除。數(shù)據(jù)插入僅對(duì)一個(gè)關(guān)系而言,在指定關(guān)系中插入一個(gè)或多個(gè)元組。數(shù)據(jù)修改是在一個(gè)關(guān)系中修改指定的元組和屬性。五、填空題(本題共14題,每題1.0分,共14分。)56、表示""整數(shù)x的絕對(duì)值大于5""時(shí)值為""真""的C語言表達(dá)式是【】。標(biāo)準(zhǔn)答案:x>5||x<-5或x<-5||x>5知識(shí)點(diǎn)解析:要使整數(shù)x的絕對(duì)值大于5,則x大于5或x小于5,用C語言表示即為:x>5||x<-5或者x<-5||x>5。故本題答案為:x>5||x<-5或者x<-5||x>5。57、以下程序的輸出結(jié)果是【】。main(){unsignedshorta=65536;intb;printf("%d\n",b=A);}標(biāo)準(zhǔn)答案:0知識(shí)點(diǎn)解析:對(duì)于一個(gè)unsignedshort來說,它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實(shí)際為0。58、若有定義inta=10,b=9,c=8;,接著順序執(zhí)行下列語句,變量b中的值是【】。c=(a-=(b-5));c=(a%11)+(b=3);標(biāo)準(zhǔn)答案:3知識(shí)點(diǎn)解析:這里:b-5=4,a=4之后a的值為6,并把它賦給c。此時(shí)b的值并未被改變。在第2千表達(dá)式中,也只有賦值表達(dá)式b=3改變了b的值。所以兩行語句執(zhí)行完畢,b的值應(yīng)該為3。59、以下程序運(yùn)行后的輸出結(jié)果是【】。main(){intp=30;printf("%d\n",(p/3>0?p/10:p%3));}標(biāo)準(zhǔn)答案:3知識(shí)點(diǎn)解析:條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3條件運(yùn)算符的執(zhí)行順序:先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值;若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。30/3=10>0,所以執(zhí)行p/10,結(jié)果為3。60、函數(shù)pi的功能是根據(jù)以下近似公式求π值:(π*π)/6=1+1/(2*2)+1/(3*3)+…+1(n*n)現(xiàn)在請(qǐng)你在下面的函數(shù)中填空,完成求π的功能。#include“math.h"{doubles=0.0;longi;for(i=1;i<=n;i++)s=s+【】;return(sqrt(6*s));}標(biāo)準(zhǔn)答案:1.0(i*i)或(double)1/(i*i)知識(shí)點(diǎn)解析:表達(dá)式1+1/(2*2)+1/(3*3)+…+1(n*n)可寫為1/(1*1)+1/(2*2)+1/(3*3)+…+1(n*n)n即:∑1÷(i×i)i=1對(duì)應(yīng)的C語言的表達(dá)式s=s+1.0/(i*i)。注:必須要寫成1.0的形式,否則1/(i*i)返回值為其值截尾取整,即恒為0。61、函數(shù)pi的功能是根據(jù)以下公式近似求得的:pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)請(qǐng)?jiān)谙旅娴暮瘮?shù)中填空,完成求pi的功能。#include<math.h>doublepi(longn){doubles=0.0,longi;for(i=1;i<=n;i++)s=s+【】;return(sqrt(6*s));}標(biāo)準(zhǔn)答案:1.0/i/i或1.0/(i*i)知識(shí)點(diǎn)解析:由題面中提供的計(jì)算pi的公式可知:在第i項(xiàng)其值為1/(i*i),考慮到運(yùn)算結(jié)果為浮點(diǎn)數(shù),故必須要將1轉(zhuǎn)化為浮點(diǎn)數(shù)或采用1.0/(i*i)的形式。故本題應(yīng)填1.0/(i*i)或其等效形式。62、若輸入字符串:abcde↓,則以下while循環(huán)體將執(zhí)行【】次。while((ch=getchar())==’e’)printf("*");標(biāo)準(zhǔn)答案:0知識(shí)點(diǎn)解析:函數(shù)getchar()是從鍵盤得到用戶輸入的一個(gè)字符。用戶輸入的第1個(gè)字符是a,不管后面輸入的是什么ch的值都是’a’,因此條件(ch=getchar())==’e’為假,這個(gè)循環(huán)不會(huì)被執(zhí)行。63、以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結(jié)果傳回,請(qǐng)?zhí)羁?。voidfunc(intx,inty,【】z){*z=x+y;}標(biāo)準(zhǔn)答案:int*知識(shí)點(diǎn)解析:從題中代碼可知:z應(yīng)該是一個(gè)整型指針,因此應(yīng)填int*。64、若有以下定義,則不移動(dòng)指針p,且通過指針p引用值為98的數(shù)組元素的表達(dá)式是【】。intw[10]={23,54,10,33,47,98,72,80,61},*p=w;標(biāo)準(zhǔn)答案:p[5]或*(p+5)知識(shí)點(diǎn)解析:98是數(shù)組w的第5個(gè)元素(最開始的為第0個(gè)),而通過*p=w已經(jīng)將p指向了數(shù)組w,要想不移動(dòng)指針p而引用98,可以有以下兩種寫法:p[5]、*(p+5)。65、設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請(qǐng)寫出fun函數(shù)的首部【】。要求形參名為b。main(){doubles[10][22];intn;fun(s);}標(biāo)準(zhǔn)答案:voidfun(doubleb[10][22])知識(shí)點(diǎn)解析:本題答案:voidfun(doubleb[10][22])。66、有以下程序:intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+t(i);printf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是【】。標(biāo)準(zhǔn)答案:3知識(shí)點(diǎn)解析:i=1時(shí),f(1)=1,j=j+f(1)=0+1=1;i=2時(shí),f(2)=f(1)+1=1+1=2:j=j+f(2)=1+3=3;此時(shí)循環(huán)結(jié)束,程序運(yùn)行后的輸出結(jié)果是3。67、以下程序的輸出結(jié)果是【】。voidfun(){staticinta=0;a+=2;printf("%d",A);}main(){intcc;for(cc=1;cc<4;cc++)fun();printf("\n");}標(biāo)準(zhǔn)答案:246知識(shí)點(diǎn)解析:循環(huán)for(cc=1;cc<4;cc++)被執(zhí)行了3次。在函數(shù)fun中,由于a是static型變量,所以函數(shù)第1次調(diào)用后,a=2;第2次調(diào)用后,a=4:第3次調(diào)用后,a=6。68、以下程序的輸出結(jié)果是【】。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=5,b=2,c=3,d=3,t;t=MAX(a+b,c+D)*10;printf("%d\n",t);}標(biāo)準(zhǔn)答案:7知識(shí)點(diǎn)解析:在C語言中,宏定義是直接替換的,所以在對(duì)表達(dá)式MAX(a+b,c+d)*10進(jìn)行替換后,表達(dá)式變?yōu)?a+b>(c+d)?(a+b):(c+d)*10。在這個(gè)條件表達(dá)式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個(gè)表達(dá)式的值(否則用(c+d)*10的值作為整個(gè)表達(dá)式的值),而(a+b)的值為7。所以整個(gè)表達(dá)式的值為7。69、實(shí)現(xiàn)程序可將磁盤中的一個(gè)文件復(fù)制到另一個(gè)文件中,兩個(gè)文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請(qǐng)補(bǔ)全程序。#include<stdio.h>voidmain(intargc,char*argv[]){FILE*f1,*f2;if(argc<【】){printf("parametererror!\n");exit(0);}f1=fopen(argv[1],"r");f2=fopen(argv[2],"w");while(【】)fputc(fgetc(f1),f2);fclose(f1);fclose(f2);}標(biāo)準(zhǔn)答案:3!feof(f1)知識(shí)點(diǎn)解析:要實(shí)現(xiàn)文件復(fù)制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時(shí)至少要指定兩個(gè)參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應(yīng)填3。while循環(huán)中語句fputc(fgetc(f1)f2);的目的是將f1中的字符依次讀出并寫入到f2對(duì)應(yīng)的文件中去,直至文件f1結(jié)束為止,因此第二空為!feof(f1)。國(guó)家二級(jí)(C語言)筆試模擬試卷第2套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、下列敘述中錯(cuò)誤的是()。A、一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)B、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率無關(guān)C、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)D、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等,選項(xiàng)A和選項(xiàng)D正確。采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率不同,因此,在進(jìn)行數(shù)據(jù)處理時(shí),選擇合適的存儲(chǔ)結(jié)構(gòu)是很重要的,選項(xiàng)C正確,選項(xiàng)B錯(cuò)誤,應(yīng)為本題正確答案。2、從工程管理角度,軟件設(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、過程設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:從工程管理的角度,軟件設(shè)計(jì)可分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩大步驟。3、設(shè)樹T的度為4,其中度為1,2,3,4的結(jié)點(diǎn)個(gè)數(shù)分別為4,2,1,1,則T中的葉子結(jié)點(diǎn)數(shù)為()。A、5B、6C、7D、8標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:根據(jù)給定的條件,在樹中,各結(jié)點(diǎn)的分支總數(shù)為:4×1+2×2+1×3+4×1=15,樹中的總結(jié)點(diǎn)數(shù)為:15(各結(jié)點(diǎn)的分支總數(shù))+1(根結(jié)點(diǎn))=16:非葉子結(jié)點(diǎn)總數(shù)為:4+2+1+1=8。因此,葉子結(jié)點(diǎn)數(shù)為16(總結(jié)點(diǎn)數(shù))-8(非葉子結(jié)點(diǎn)總數(shù))=8。4、對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為()。A、log2nB、n/2C、nD、n+1標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在長(zhǎng)度為n的線性表中進(jìn)行順序查找,最壞情況下需要比較n次。5、數(shù)據(jù)庫(kù)設(shè)計(jì)的4個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和()。A、編碼設(shè)計(jì)B、測(cè)試階段C、運(yùn)行階段D、物理設(shè)計(jì)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)的生命周期可以分為兩個(gè)階段:一是數(shù)據(jù)庫(kù)設(shè)計(jì)階段;二是數(shù)據(jù)庫(kù)實(shí)現(xiàn)階段。數(shù)據(jù)庫(kù)的設(shè)計(jì)階段又分為如下4個(gè)子階段:即需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。6、在軟件生存周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。A、概要設(shè)計(jì)B、詳細(xì)設(shè)計(jì)C、可行性分析D、需求分析標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:在需求分析階段中,根據(jù)可行性研究階段所提交的文檔,特別是從數(shù)據(jù)流圖出發(fā),對(duì)目標(biāo)系統(tǒng)提出清晰、準(zhǔn)確和具體的要求,即要明確系統(tǒng)必須做什么的問題。7、下面不屬于軟件設(shè)計(jì)原則的是()。A、抽象B、模塊化C、自底向上D、信息隱蔽標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:軟件設(shè)計(jì)遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計(jì)中應(yīng)該遵循的基本原理和與軟件設(shè)計(jì)有關(guān)的概念。它們是:抽象、模塊化、信息隱蔽,模塊獨(dú)立性。沒有白底向上。8、在長(zhǎng)度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為()。A、63B、64C、6D、7標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在長(zhǎng)度為64的有序線性表中,其中的64個(gè)數(shù)據(jù)元素是按照從大到小或從小到大的順序有序排列的。在這樣的線性表中進(jìn)行順序查找,最壞的情況就是查找的數(shù)據(jù)元素不在線性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數(shù)據(jù)和線性表的第一個(gè)數(shù)據(jù)元素進(jìn)行比較,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較,即和線性表的第二個(gè)數(shù)據(jù)元素進(jìn)行比較。同樣,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較。依次類推,直到在線性表中查找到該數(shù)據(jù)或查找到線性表的最后一個(gè)元素,算法才結(jié)束。因此,在長(zhǎng)度為64的有序線性表中進(jìn)行順序查找,最壞的情況下需要比較64次。因此,本題的正確答案為B。9、下列敘述中正確的是()。A、數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持B、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題C、數(shù)據(jù)庫(kù)管理系統(tǒng)就是數(shù)據(jù)庫(kù)系統(tǒng)D、以上3種說法都不對(duì)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)除了數(shù)據(jù)庫(kù)管理軟件之外,還必須有其他相關(guān)軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應(yīng)用軟件開發(fā)工具等,選項(xiàng)A的說法是錯(cuò)誤的.?dāng)?shù)據(jù)庫(kù)具有為各種用戶所共享的特點(diǎn),選項(xiàng)B的說法是正確的。通常將引入數(shù)據(jù)庫(kù)技術(shù)的計(jì)算機(jī)系統(tǒng)稱為數(shù)據(jù)庫(kù)系統(tǒng)。一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)通常由5個(gè)部分組成,包括相關(guān)計(jì)算機(jī)的硬件、數(shù)據(jù)庫(kù)集合、數(shù)據(jù)庫(kù)管理系統(tǒng)、相關(guān)軟件和人員。因此,選項(xiàng)C的說法是錯(cuò)誤的。10、將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成()。A、屬性B、關(guān)系C、鍵D、域標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:把概念模型轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型就是把E-R圖轉(zhuǎn)換成一組關(guān)系模式,每一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式,每個(gè)聯(lián)系分別轉(zhuǎn)換為關(guān)系模式。二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、用C語言編寫的代碼程序A、可立即執(zhí)行B、是一個(gè)源程序C、經(jīng)過編譯即可執(zhí)行D、經(jīng)過編譯解釋即可執(zhí)行標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:C語言一種高級(jí)語言,C語言源程序經(jīng)過C語言編譯程序編譯之后,生成一個(gè)后綴為。OBJ的二進(jìn)制文件(稱為目標(biāo)文件),最后還要由稱為“連接程序”(Link)的軟件,把此。OBJ文件與C語言提供的各種庫(kù)函數(shù)連接在一起,生成一個(gè)后綴.EXE的可執(zhí)行文件。顯然C語言不能立即執(zhí)行,故選項(xiàng)A錯(cuò)誤;根據(jù)以上定義,選項(xiàng)C和選項(xiàng)D錯(cuò)誤,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。12、以下敘述中正確的是A、C語言的源程序不必通過編譯就可以直接運(yùn)行B、C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令C、C源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運(yùn)行D、C語言中的函數(shù)不可以單獨(dú)進(jìn)行編譯標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考核的知識(shí)點(diǎn)是C程序從編寫到生成可執(zhí)行文件的步驟。C語言采用編譯方式將源程序轉(zhuǎn)換為二進(jìn)制的目標(biāo)代碼,編寫好一個(gè)C程序到完成運(yùn)行一般經(jīng)過以下幾個(gè)步驟:編輯;編譯,就是將已經(jīng)編輯好的源程序翻譯成二進(jìn)制的目標(biāo)代碼,經(jīng)編譯后的得到的二進(jìn)制代碼還不能直接執(zhí)行,因?yàn)槊恳粋€(gè)模塊往往是單獨(dú)編譯的,必須把經(jīng)過編譯的各個(gè)模塊的目標(biāo)代碼與系統(tǒng)提供的標(biāo)準(zhǔn)模塊連接后才能運(yùn)行;連接,將各模塊的二進(jìn)制目標(biāo)代碼與系統(tǒng)標(biāo)準(zhǔn)模塊經(jīng)連接處理后,得到具有絕對(duì)地址的可執(zhí)行文件,它是計(jì)算機(jī)能直接執(zhí)行的文件;執(zhí)行,執(zhí)行一個(gè)經(jīng)過編譯和連接的可執(zhí)行的目標(biāo)文件。由以上定義可知,選項(xiàng)A、C、D均不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。13、以下定義語句中正確的是A、chara=’A’b=’B’;B、floata=b=10.0;C、inta=10,*b=&a;D、float*a,b=&a;標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:選項(xiàng)A中定義兩個(gè)變量a和b,并賦初值,C語言中可以同時(shí)定義多個(gè)變量,但變量之間必須用“,”隔開,顯然,選項(xiàng)A中少了一個(gè)逗號(hào)“,”,故選項(xiàng)A不正確;選項(xiàng)B中定義變量時(shí)用了連續(xù)的賦值語句,這在定義變量是不正確的,故選項(xiàng)B不正確,選項(xiàng)D定義一個(gè)指針,然后定義了一個(gè)變量并讓這個(gè)變量的初值為該指針變量,顯然這這時(shí)的指針變量還沒初始化就被賦值給變量,是不對(duì)的,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。14、有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.lf%3.lf\n",a,c,f,x);}程序運(yùn)行后的輸出結(jié)果是A、16516.5B、1651.56.5C、1651.06.5D、2651.56.5標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:主函數(shù)中先定義了一個(gè)整型變量a,一個(gè)字符變量c并賦初值10,一個(gè)浮點(diǎn)型變量f并賦初值100.00和一個(gè)double型x,接著執(zhí)行“a=f/=C*=x=6.5)”,該語句從右向左計(jì)算,先把6.5賦值給x(該括號(hào)表達(dá)式的值也為6.5),此時(shí)x的值的變?yōu)?.5,然后執(zhí)行“c*=(x=6.5)”相當(dāng)于執(zhí)行“c=c*(x=6.5)”,此時(shí)c的值為65,接著向左執(zhí)行“f/c*=(x=6.5)”,語句相當(dāng)于執(zhí)行“f=f/c”接著向最右邊執(zhí)行“a=f”,由于a是整型變量,所以a最后去f的整數(shù)部分為1。程序最后輸出的a、c、f和x的值分別為1、65、1.5、6.5。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。15、數(shù)據(jù)庫(kù)設(shè)計(jì)的根本目標(biāo)是要解決A、數(shù)據(jù)共享問題B、數(shù)據(jù)安全問題C、大量數(shù)據(jù)存儲(chǔ)問題D、倘化數(shù)據(jù)維護(hù)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)就是要解決數(shù)據(jù)的共享問題,選項(xiàng)A正確。16、設(shè)有定義:floata=2,b=4,h=3;,以下C語言表達(dá)式中與代數(shù)式計(jì)算結(jié)果不相符的是A、(a+b)*h/2B、(1/2)*(a+b)*hC、(a+b)*h*1/2D、h/2*(a+b)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:選項(xiàng)B中由于1和2都是整型,其1/2的運(yùn)算結(jié)果為0,故整個(gè)表達(dá)式的值為0,所以它的結(jié)果和題目中要求的代數(shù)式的計(jì)算結(jié)果不相符,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。17、有以下程序main(){intm=0256,n=256;printf("%o%o\n",m,n);}程序運(yùn)行后的輸出結(jié)果是A、02560400B、0256256C、256400D、400400標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:程序中定義了兩個(gè)整型變量,一個(gè)用八進(jìn)制表示,一個(gè)用十進(jìn)制表示,輸出語向中要求m,n都為八進(jìn)制輸出,顯然m原樣輸出為256,n的值轉(zhuǎn)換為八進(jìn)制輸出(256的八進(jìn)制為400),故輸出400.所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。18、數(shù)據(jù)庫(kù)系統(tǒng)的核心是A、數(shù)據(jù)模型B、數(shù)據(jù)庫(kù)管理系統(tǒng)C、數(shù)據(jù)庫(kù)D、數(shù)據(jù)庫(kù)管理員標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的核心,它對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行管理,還在用戶的個(gè)別應(yīng)用與整體數(shù)據(jù)庫(kù)之間起接口作用,選項(xiàng)B正確。19、以下敘述中錯(cuò)誤的是A、用戶所定義的標(biāo)識(shí)符允許使用關(guān)鍵字B、用戶所定義的標(biāo)識(shí)符應(yīng)盡量做到“見名知意”C、用戶所定義的標(biāo)識(shí)符必須以字母或下劃線開頭D、用戶定義的標(biāo)識(shí)符中,大、小寫字母代表不同標(biāo)識(shí)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:用戶標(biāo)識(shí)符是由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或下劃線,并且不能與c語言關(guān)鍵字相同。所以本題應(yīng)該選擇A)。20、有以下程序:main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case’0’:printf("another\n");case’1’:printf("number\n");}}}程序運(yùn)行時(shí),從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是A、anothernumberB、anothernumberanotherC、anothernumbernumberD、numbernumber標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:switch語句的執(zhí)行過程是:在switch后面的表達(dá)式的值和case后面常量表達(dá)式的值吻合時(shí),就執(zhí)行后面的語句.如果在該語句的后面沒有break語句,則繼續(xù)執(zhí)行下一個(gè)case,直到遇到break語句或switch多分支的結(jié)束,在switch語句中,break語句的作用是使流程跳出switch結(jié)構(gòu),終止Switch語句的執(zhí)行.本題中在for循環(huán)中嵌套了swish語句,每循環(huán)一次通過scanf()函數(shù)從鍵盤上輸入一個(gè)k值,然后執(zhí)行switch語句。for循環(huán)共循環(huán)了2次,當(dāng)i=1時(shí),從鍵盤上輸入0,使得k的值為0,執(zhí)行switch語句中case:0后面的語句,輸出another,接著執(zhí)行case:0下面的語句輸出number,退出switch語句,當(dāng)i=2時(shí),從鍵盤上輸入1,使得k的值為1,執(zhí)行switch語句中case1后面的語句,輸出number,退出switch語句.當(dāng)i=3時(shí)退出循環(huán).故最后的輸出為another、number和number,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。三、選擇題(2分)(本題共15題,每題1.0分,共15分。)21、以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}A、intB、不確定C、voidD、float標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C語言中如果函數(shù)前不加任何數(shù)據(jù)類型時(shí),默認(rèn)函數(shù)的類型為整型,函數(shù)的類型就是函數(shù)返回值的類型。22、以下程序的輸出結(jié)是_______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf(%d",a);}A、200100B、100100C、100200D、200200標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:#define宏名的有效范圍為定義命令之后到本源文件結(jié)束,可以在程序中使用#undef命令終止宏定義的作用域。本題由于#undef的作用,使a的作用范圍在#definea100到#undefa之間,故答案為C。23、若有說明inti,j=2,*P=&i;,則能完成i=j賦值功能的語句是_______。A、i=*p;B、*P2=*&j;C、i=&j;D、i=**p;標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:指針是一種用來存放變量地址的特殊變量。本題中指針變量p用于存放整型變量i的地址,改變*p的值即為改變i的值。又因?yàn)椤?”和“*”兩個(gè)運(yùn)算符的優(yōu)先級(jí)別相同,按自右而左的方向結(jié)合,所以*&j先進(jìn)行&j運(yùn)算,得j的地址,再進(jìn)行*運(yùn)算,取所得地址里面的值,故*&j與j等價(jià)。24、以下程序的輸出結(jié)果是_______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;print("%d%d%d,a[2],a[5],a[8]);}A、258B、741C、852D、369標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在本題運(yùn)行時(shí)主要注意的是當(dāng)i=9時(shí),a[i]=10-9=1:i=8時(shí),a[i]=10-8=2;i=7時(shí),a[i]=10-7=3;……依此類推,直到i=0時(shí),a[i]=10-0=10:此時(shí),i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8]分別為8,5,2。25、以下數(shù)組定義中不正確的是_______。A、inta[2][3];B、intb[][3]={0,1,2};C、intc[100][100={0};D、intd[3][]={{1,2},{1,2,3},{1,2,3,4}};標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:一維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達(dá)式];選項(xiàng)A符合此定義形式,正確;C語言中多維數(shù)組賦初值時(shí)可以部分賦值,也可以不指定除第一維以外的其他維的大小,故選項(xiàng)C正確;另外,如果對(duì)全部數(shù)紀(jì)元素都賦初值,則定義數(shù)組時(shí)對(duì)第一維的長(zhǎng)度可以不指定,但第二錐的長(zhǎng)度不能省,所以選項(xiàng)B正確,而選項(xiàng)D是錯(cuò)誤的。26、以下程序的輸出結(jié)果是_______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7});Print("%d%d%d%d\n",a[0][3],a[l][2],a[2][1],a[3][0]);}A、650B、1470C、5430D、輸出值不定標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:對(duì)未給出初始值的整數(shù)數(shù)組元素,被默認(rèn)初始化為零。27、以下程序的輸出結(jié)果是_______。main(){charst[20]="hello\0\t\\";printf(%d%d\n",strlen(st),sizeof(st));}A、99B、520C、1320D、2020標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:C語言中字符串是以’\0’字符結(jié)束的,且strlen()函數(shù)計(jì)算的是’\0’字符前的所有字符的個(gè)數(shù)。本題中strlen(st)應(yīng)為5。數(shù)組定義以后系統(tǒng)就為其分配相應(yīng)大小的內(nèi)存空間,而不論其中有沒有內(nèi)容。sizeof()函數(shù)是計(jì)算變量或數(shù)組的所分配到的內(nèi)存空間的大小。所以本題的sizeof(st)為20。28、以下程序運(yùn)行后的輸出結(jié)果是_______。intd=1;fun(intp)printf(%d",d);returnd;}main(){inta=3;printf("%\n",fun(a+fun(d)));}A、699B、669C、61515D、6615標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:靜態(tài)局部變量在編譯時(shí)賦韌值,即只賦初值一次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用時(shí)不再重新賦韌值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,而對(duì)自動(dòng)變量賦初值,不是在編譯時(shí)進(jìn)行的,而在函數(shù)調(diào)用時(shí)進(jìn)行,每調(diào)用—次函數(shù)重新給一次初值,相當(dāng)于執(zhí)行一次賦值語句。本題在程序開頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時(shí),d初值為5,p由主函數(shù)傳遞過來的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時(shí)d=d+p=6+9=15,最后打印輸出d的值井返回主函數(shù)。29、以下程序輸出正確的是_______amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)mallox(100)amovep)p,a,3);printf("%d%d\n",p[2],p[5]);free(p)}A、56B、25C、34D、程序錯(cuò)誤標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題main函數(shù)中定義了指針p和二維數(shù)組a,通過函數(shù)amovep將數(shù)組的值存入指針p所指向的存儲(chǔ)單元中,a的各元素分別:a[0][0]=1,a[0][1]=3,a[0][1]=3,a[0][2]=5,a[1][2]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通過malloc()函數(shù)給指針分配內(nèi)存空間,free()函數(shù)用于釋放指針變量所用內(nèi)存空間。在主函數(shù)中通過amovep(p,a,3)調(diào)用函數(shù)amovep,使得實(shí)參p與形參P,實(shí)參數(shù)組a與形參中指向數(shù)組的指針變量共用同一存儲(chǔ)空間。最后輸出p[2],p[5]為56。30、以下程序的輸出結(jié)果是______。structHAR{intx,y;structHAR*p;}h[2]main(){h[0].x=1;h[0].y=2h[1].x=3;h[1].y=4h[0].p=&h[1];h[1].p=hprintf("%d%d\n",()h[0].p)->x,(h[1].p->y);}A、12B、23C、14D、32標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題中是一個(gè)含有兩個(gè)結(jié)點(diǎn)的循環(huán)鏈表。C語言中結(jié)構(gòu)體的定義為:struct結(jié)構(gòu)體類型名{成員項(xiàng)表;};31、以下程序的結(jié)果是______。inta,b;voidfun(){a=100;b=200;}main(){inta=5;b=7fun();printf("%d%d\n",a,b);}A、100200B、57C、200100D、75標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:全程變量是可以在子函數(shù)中對(duì)其值作改變,且它也可作為函數(shù)間的值傳遞。但當(dāng)函數(shù)或子函數(shù)中定義了與全程變量名稱相同的局部變量,則全程變量將被屏蔽。32、以下程序的輸出結(jié)果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3printf("%d%d\n",M(a+b,b+c,c+a));}A、19B、17C、15D、12標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:C語言的宏定義包括不帶參數(shù)的宏定義與帶參數(shù)的宏定義。本題為帶參數(shù)的宏定義,其形式為:#define宏名(形參表)字符串本題的M(a+b,b+c,c+a)被字符串a(chǎn)+b*b+c+c+a代替。33、若有以下說明和語句:structst{intn;char*ch;};structsta[3]{5,"abc",7,"def",9,"ghk"},*p=a則值為6的表達(dá)式是______。A、p++->nB、p->n++C、(*p).n++D、++p->n標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:根據(jù)結(jié)構(gòu)變量的存儲(chǔ)特點(diǎn),p+1意味著增加地址值為結(jié)構(gòu)體數(shù)組a的一個(gè)元素所占的字節(jié)數(shù),即p++使p由a[0]指向a[1]起始地址。本題++p->n得到p指向的結(jié)構(gòu)體變量中成員n的值使之加1。因?yàn)閜指向數(shù)組a起始地址,p->n的值為5,再執(zhí)行自加1運(yùn)行,結(jié)果為6。34、整型變量X和Y的值相等,且為非0值,則以下選項(xiàng)中結(jié)果為0的表達(dá)式是______。A、X||YB、X|YC、X&YD、xy標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:“||”為或運(yùn)算符,當(dāng)其左有表達(dá)式中只要一個(gè)為非零則整個(gè)表達(dá)式的值1。|是按位或,&是按位與,^是按位異或,這三位運(yùn)算符是按值的二進(jìn)制位來比較的。35、下面的程序執(zhí)行后,文件test.t中內(nèi)容是______。#include<stdio.h>voidfun(clar*fname,char*st){FILE*myf;inti;myf=fopen(fname,"w");for(i=0;i<stden(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fur("test.t","hello,";}A、hello,B、newworldhelloC、newworldD、hello,rld標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C語言中文件有文本文件與二進(jìn)制文件,對(duì)文件的使用前必須先打開,打開方式有只讀、寫入、讀寫等方式。四、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)36、在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。標(biāo)準(zhǔn)答案:中序知識(shí)點(diǎn)解析:在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時(shí),仍然先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點(diǎn)、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹:并且遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。后序遍歷指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點(diǎn),最后遍歷左子樹;并且遍歷左、右子樹時(shí),仍然光遍歷右子樹,然后訪問根結(jié)點(diǎn),最后遍歷左子樹。37、結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下、逐漸求精、【】和限制使用goto語句。標(biāo)準(zhǔn)答案:模塊化知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下、逐步求精、模塊化和限制使用goto語句。自頂向下程序設(shè)計(jì)時(shí),應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計(jì),逐步使問題具體化。逐步求精:對(duì)復(fù)雜問題,應(yīng)設(shè)計(jì)一些子目標(biāo)作過度,逐步細(xì)化。模塊化:一個(gè)復(fù)雜問題,肯定是由若干精簡(jiǎn)單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊。限制使用goto語句。38、軟件測(cè)試是保證軟件質(zhì)量的重要手段,而軟件測(cè)試的主要和重要的測(cè)試方法是通過測(cè)試數(shù)據(jù)和【】的設(shè)計(jì)來實(shí)現(xiàn)。標(biāo)準(zhǔn)答案:測(cè)試實(shí)例知識(shí)點(diǎn)解析:進(jìn)行軟件測(cè)試時(shí),應(yīng)精心設(shè)計(jì)測(cè)試實(shí)例和選擇測(cè)試數(shù)據(jù),以對(duì)系統(tǒng)進(jìn)行全面測(cè)試。39、數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式分別為【】模式、內(nèi)部級(jí)模式與外部級(jí)模式。標(biāo)準(zhǔn)答案:概念或概念級(jí)知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)在其內(nèi)部具有三級(jí)模式及二級(jí)映射,三級(jí)模式分別是概念級(jí)模式、內(nèi)部級(jí)模式和外部級(jí)模式。概念模式是數(shù)據(jù)庫(kù)系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶(應(yīng)用)公共數(shù)據(jù)視圖。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及hash等存取力式與存取路徑,內(nèi)模式的物理性主要體現(xiàn)在操作系統(tǒng)及文件級(jí)上,它還未深入到設(shè)備級(jí)上(如磁盤及磁盤操作)。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式,它由概念模式推導(dǎo)而出。40、數(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ī)文件;處理過程。五、填空題(本題共3題,每題1.0分,共3分。)41、下面程序的功能是:將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其他元素不變。#include<stdio.h>#include<string.h>main(){chara[]="clanguage",t;inti,j,k;k=strlen(a);for(i=0;i<=k-2;i+=2)for(j=i+2;j<=k;【】)if(【】){t=a[i];a[i]=a[j];a[j]=t;}puts(a);printf("\n");}標(biāo)準(zhǔn)答案:j=j+2或j+=2a[j]<a[i]或a[i]>a[j]知識(shí)點(diǎn)解析:暫無解析42、下列程序利用指針將2個(gè)數(shù)按從大到小的順序輸出。main(){inta,b,【】;printf("inputa,b:");scanf("%d%d",&a,&b);【】;p2=&b;if(a<b){p=p1;p1=p2;p2=p;}printf("a=%db=%d\n",a,b);printf("max=%dmin=%d\n",【】);標(biāo)準(zhǔn)答案:*p,*p1,*p2p1:&a*p1,*p2知識(shí)點(diǎn)解析:暫無解析43、下列程序能將字符串s1中的所有與字符串str1相同的子串替換成字符串sb2,并將替換后的新串存于字符數(shù)組s2中。#include<stdio.h>voidreplace(s1,s2,str1,str2)char*s1,*s2,*str1,*str2;{char*t0,*t1,*t2,*x,*y;x=s1;y=s2;while(【】){for(t0=s1,t1=str1;((*t1!=’\O’&&【】;t0++,t1++);if(*t1!=’\0’)*s2++=【】;else{for(t1=str2;*t1!=’\0’;)*s2++=【】;【】;}}*s2=’\0’;}main(){staticchars1[]="abcdefababcdabab.",s2125];replace(s1,s2,"abc","XYZ");printf("%s\n",s2);}標(biāo)準(zhǔn)答案:*s1!=’\0’或*s1*t0=*t1*s1++*t1++s1=t0或s1=s1+strlen(str1)知識(shí)點(diǎn)解析:暫無解析國(guó)家二級(jí)(C語言)筆試模擬試卷第3套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、算法的空間復(fù)雜度是指()。A、算法程序的長(zhǎng)度B、算法程序中的指令條數(shù)C、算法程序所占的存儲(chǔ)空間D、算法執(zhí)行過程中所需要的存儲(chǔ)空間標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一個(gè)算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需的存儲(chǔ)空間。一個(gè)算法所占用的存儲(chǔ)空間包括算法程序所占用的空間、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論