國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷28(共270題)_第1頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷28(共270題)_第2頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷28(共270題)_第3頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷28(共270題)_第4頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷28(共270題)_第5頁(yè)
已閱讀5頁(yè),還剩72頁(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ī)試(選擇題)模擬試卷28(共9套)(共270題)國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、某二叉樹(shù)有5個(gè)度為2的結(jié)點(diǎn),則該二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)是A、10B、8C、6D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)二叉樹(shù)的性質(zhì),在任意二叉樹(shù)中,度為0的結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)。2、下列關(guān)于棧的敘述正確的是()。A、棧是非線性結(jié)構(gòu)B、棧是一種樹(shù)狀結(jié)構(gòu)C、棧具有“先進(jìn)先出”的特征D、棧具有“后進(jìn)先出”的特征標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是限定在一端進(jìn)行插入和刪除的線性表。允許進(jìn)行插入和刪除元素的一端稱為棧頂,另一端稱為棧底。棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。3、某棵樹(shù)中共有25個(gè)結(jié)點(diǎn),且只有度為3的結(jié)點(diǎn)和葉子結(jié)點(diǎn),其中葉子結(jié)點(diǎn)有7個(gè),則該樹(shù)中度為3的結(jié)點(diǎn)數(shù)為()。A、6B、7C、8D、不存存這樣的樹(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)題意,樹(shù)中只有度為3的結(jié)點(diǎn)和葉子結(jié)點(diǎn)(7個(gè)),則度為3的結(jié)點(diǎn)有25-7=18個(gè);又根據(jù)樹(shù)中的結(jié)點(diǎn)數(shù):樹(shù)中所有結(jié)點(diǎn)的度之和+1,設(shè)度為3的結(jié)點(diǎn)數(shù)為n,則3n+1=25,得n=8。兩種方式得到的度為3的結(jié)點(diǎn)數(shù)不同,故不存在這樣的樹(shù)。4、下列敘述中正確的是()。A、非完全二叉樹(shù)可以采用順序存儲(chǔ)結(jié)構(gòu)B、有兩個(gè)指針域的鏈表就是二叉鏈表C、有的二叉樹(shù)也能用順序存儲(chǔ)結(jié)構(gòu)表示D、順序存儲(chǔ)結(jié)構(gòu)一定是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在計(jì)算機(jī)中,二叉樹(shù)為非線性結(jié)構(gòu),通常采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),但對(duì)于滿二叉樹(shù)和完全二叉樹(shù)來(lái)說(shuō),可以按層進(jìn)行順序存儲(chǔ)。因此A項(xiàng)錯(cuò)誤,C項(xiàng)正確。雖然滿二叉樹(shù)和完全二叉樹(shù)可以采用順序存儲(chǔ)結(jié)構(gòu),但仍是一種非線性結(jié)構(gòu),因此D項(xiàng)錯(cuò)誤。雙向鏈表也有兩個(gè)指針域,因此B項(xiàng)錯(cuò)誤。5、下列敘述中正確的是A、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)B、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)空間都是連續(xù)的C、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間可以是連續(xù)的,也可以是不連續(xù)的D、以上都不正確標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表的存儲(chǔ)分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。在順序存儲(chǔ)中,所有元素所占的存儲(chǔ)空間是連續(xù)的。而在鏈?zhǔn)酱鎯?chǔ)的方式中,將存儲(chǔ)空間的每一個(gè)存儲(chǔ)結(jié)點(diǎn)分為兩部分,一部分用于存儲(chǔ)數(shù)據(jù)元素的值,稱為數(shù)據(jù)域;另一部分用于存儲(chǔ)下一個(gè)元素的存儲(chǔ)序號(hào),稱為指針域。所以線性表的鏈?zhǔn)酱鎯?chǔ)方式比順序存儲(chǔ)方式的存儲(chǔ)空間要大一些。6、一棵二叉樹(shù)共有25個(gè)結(jié)點(diǎn),其中5個(gè)是葉子結(jié)點(diǎn),則度為1的結(jié)點(diǎn)數(shù)為A、16B、10C、6D、4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:根據(jù)二叉樹(shù)的性質(zhì),在任意二叉樹(shù)中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè),故此度為1的結(jié)點(diǎn)個(gè)數(shù)=總結(jié)點(diǎn)數(shù).葉子節(jié)點(diǎn)數(shù).度為2的節(jié)點(diǎn)數(shù)=25—5-4=16。7、在數(shù)據(jù)庫(kù)管理技術(shù)發(fā)展的三個(gè)階段中,沒(méi)有專門(mén)的軟件對(duì)數(shù)據(jù)進(jìn)行管理的是()。A、文件系統(tǒng)階段B、人工管理階段C、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)階段D、人工管理階段和文件系統(tǒng)階段標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理技術(shù)的三個(gè)階段是人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。人工管理階段沒(méi)有專門(mén)的軟件對(duì)數(shù)據(jù)進(jìn)行管理。8、若定義:intarray[9],*p=array;并在以后的語(yǔ)句中未改變p的值,不能表示array[1]地址的是()。A、p+1B、array++C、array+1D、++p標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題選項(xiàng)C)中array++是先取array的值,后自增,所以是錯(cuò)誤的。9、數(shù)據(jù)字典(DD)所定義的對(duì)象都包含于A、數(shù)據(jù)流圖(DFD圖)B、程序流程圖C、軟件結(jié)構(gòu)圖D、方框圖標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)字典是指對(duì)數(shù)據(jù)的數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、處理邏輯、外部實(shí)體等進(jìn)行定義和描述,其目的是對(duì)數(shù)據(jù)流程圖中的各個(gè)元素做出詳細(xì)的說(shuō)明。10、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是A、編譯程序B、操作系統(tǒng)C、教務(wù)管理系統(tǒng)D、匯編程序標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:編譯程序和匯編程序?qū)儆谥诬浖僮飨到y(tǒng)屬于系統(tǒng)軟件,而教務(wù)管理系統(tǒng)屬于應(yīng)用軟件。11、某二叉樹(shù)中度為2的結(jié)點(diǎn)有10個(gè),則該二叉樹(shù)中有()個(gè)葉子結(jié)點(diǎn)。A、9B、10C、11D、12標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)二叉樹(shù)的性質(zhì)3:對(duì)任何一棵二叉樹(shù),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。12、若i、j已定義成int型,則以下程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i一)for(j=0;j<4;j++){...}A、20B、24C、25D、30標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查的是嵌套for循環(huán)執(zhí)行次數(shù)。對(duì)于外層i的循環(huán)中任何一個(gè)i,內(nèi)層j的循環(huán)中的j都要從0變化到3,j=4時(shí)退出循環(huán);然后外層i循環(huán)的i減少1,內(nèi)層循環(huán)的j仍要從0變化到3,i=4時(shí)退出循環(huán)……直到外層i循環(huán)的i變?yōu)?,退出i循環(huán)。所以執(zhí)行多重循環(huán)時(shí),對(duì)外層循環(huán)變量的每一個(gè)值,內(nèi)層循環(huán)的循環(huán)變量都要從初始值變化到終值。對(duì)外層循環(huán)的每一次循環(huán),內(nèi)層循環(huán)要執(zhí)行完整的循環(huán)語(yǔ)句。外層for語(yǔ)句執(zhí)行6次,內(nèi)層for語(yǔ)句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。13、有以下程序段inta,b,C;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);程序的輸出結(jié)果是A、a=10b=50c=30B、a=10b=30c=10C、a=10b=50c=10D、a=50b=30c=50標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題的程序段首先定義三個(gè)整型變量a,b,c,并且其初始值分別等于10,50,30,然后判斷a>b是甭成立,如果條件成立,則把b的值賦給a,把c的值賦給b。由a和b的初始值可知,此條件表達(dá)式不成立,所以a和b的值保持不變。再執(zhí)行下一條語(yǔ)句,把a(bǔ)的值賦給c,所以c的當(dāng)前值等于10,最后由輸出語(yǔ)句輸出變量a,b,c的當(dāng)前值,分別為10,50,10。14、若有以下程序#includemain(){inta=1,b=2,c=3,d=4;if((a=2)||(b=1))c=2;if((c==3)&&(d=一1))a=5;printf("%d,%d,%d,%d\n",a,b,c,d);)則程序的輸出結(jié)果是A、2,1,2,一IB、2,2,2,4C、5,1,2,-1D、1,2,3,4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:代碼中有兩條并列的if語(yǔ)句,第一條if語(yǔ)句執(zhí)行,(a=2)‖(b=1)值為1,由于邏輯或表達(dá)式,根據(jù)其短路運(yùn)算規(guī)則,a=2,b=2,即b值不變執(zhí)行if分支c=2。并列的if語(yǔ)句中表達(dá)式(c==3)&&(d=-1)為邏輯與表達(dá)式,c==3不成立,不考慮d=-1表達(dá)式,d為5.邏輯表達(dá)式值為0,不執(zhí)行相應(yīng)if分支。15、以下敘述中錯(cuò)誤的是A、C程序經(jīng)過(guò)編譯、連接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件B、用C語(yǔ)言編寫(xiě)的程序稱為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中C、C語(yǔ)言中的每條可執(zhí)行語(yǔ)句和非執(zhí)行語(yǔ)句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令D、C語(yǔ)言源程序經(jīng)編譯后生成后綴為.obi的目標(biāo)程序標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言中的非執(zhí)行語(yǔ)句例如宏定義命令,在預(yù)編譯之后替換到代碼中,該命令本身也就不存在了,不會(huì)轉(zhuǎn)換成二進(jìn)制的機(jī)器指令。由高級(jí)語(yǔ)言編寫(xiě)的程序稱為“源程序”,把由二進(jìn)制代碼表示的程序稱為“目標(biāo)程序”。C語(yǔ)言編寫(xiě)的源程序就是一ASCII的形式存放在文本文件中的。C源程序經(jīng)過(guò)C編譯程序編譯之后生成一個(gè)后綴為.obj的二進(jìn)制文件(稱為目標(biāo)文件),然后由稱為“連接程序”(Link)的軟件,把此.obj文件與C語(yǔ)言提供的各種庫(kù)函數(shù)連接起來(lái)生成一個(gè)后綴為.EXE的可執(zhí)行文件。16、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是A、自然連接B、并C、交D、差標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由關(guān)系T中的數(shù)據(jù)可以看出,其數(shù)據(jù)由屬于關(guān)系R但是不屬于關(guān)系S的數(shù)據(jù)組成。所以關(guān)系T是由關(guān)系R和S通過(guò)差運(yùn)算得到的。17、公司中有多個(gè)部門(mén)和多名職員,每個(gè)職員只能屬于一個(gè)部門(mén),一個(gè)部門(mén)可有多名職員。則實(shí)體部門(mén)和職員間的聯(lián)系是()。A、1:m聯(lián)系B、m:n聯(lián)系C、1:1聯(lián)系D、m:1聯(lián)系標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:部門(mén)到職員是一對(duì)多的,職員到部門(mén)是多對(duì)一的,因此,實(shí)體部門(mén)和職員間的聯(lián)系是1:m聯(lián)系。18、下列定義數(shù)組的語(yǔ)句中錯(cuò)誤的是()。A、intnum[][3]={{1,2},3,4,5,6};B、intnum[2][4]={{1,2},{3,4},{5,6}};C、intnum[]={1,2,3,4,5,6};D、intnum[][4]={1,2,3,4,5,6};標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:B選項(xiàng)中定義的數(shù)組為2行4列,而賦值時(shí)賦成了3行,所以出錯(cuò)。19、設(shè)有定義:charp[]={’1’,’2’,’3’},*q=p;,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。A、sizeof(p)B、sizeof(char)C、sizeof(*q)D、sizeof(p[0])標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:根據(jù)題目中的定義可知道sizeof(p),計(jì)算的是數(shù)組p中所有元素所占用的字節(jié)數(shù),而不是char型數(shù)據(jù)所占的字節(jié)數(shù)。20、若有函數(shù)首部intfun(doublex[10],int,*n),則下列針對(duì)此函數(shù)的函數(shù)聲明語(yǔ)句中正確的是()。A、intfun(double,int);B、intfun(double*,int*);C、intfun(double*x,intn);D、intfun(doublex,int*n);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)聲明的一般形式為:類型說(shuō)明符被調(diào)函數(shù)名(類型形參,類型形參……);或?yàn)轭愋驼f(shuō)明符被調(diào)函數(shù)名(類型,類型……)。由于函數(shù)首部為intfun(doublex[10j,int*n),因此B選項(xiàng)正確。21、有以下程序#include<stdio.h>doublef(doublex);main(){doublea:0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf(’’%5.of\n’’,a);}doublef(doublex){returnx*x+1;}程序運(yùn)行后的輸出結(jié)果是A、401B、500C、503D、1404標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于函數(shù)f的作用是對(duì)形參x求平方再加1,所以在主函數(shù)中,循環(huán)第一次執(zhí)行后變量a的值等于1,第二次執(zhí)行后,變量a的值等于102,第三次執(zhí)行后,變量a的值等于503。22、以下選項(xiàng)中正確的定義語(yǔ)句是A、doublea=b=7;B、doublea;b;C、double,a,b;D、doublea=7,b=7;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C語(yǔ)言中,可以用一條語(yǔ)句同時(shí)定義幾個(gè)同類型的變量,變量之間用逗號(hào)隔開(kāi)。23、下列關(guān)于宏的敘述中正確的是()。A、宏替換沒(méi)有數(shù)據(jù)類型限制B、宏定義必須位于源程序中所有語(yǔ)句之前C、宏名必須用大寫(xiě)字母表示D、宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:宏定義寫(xiě)在函數(shù)的花括號(hào)外邊,作用域?yàn)槠浜蟮某绦?,通常在文件的最開(kāi)頭,所以B選項(xiàng)中“宏定義必須位于源程序中所有語(yǔ)句之前”是錯(cuò)誤的。宏名一般用大寫(xiě),但不是必須用大寫(xiě),所以C選項(xiàng)錯(cuò)誤。宏展開(kāi)不占運(yùn)行時(shí)間,只占編譯時(shí)間,函數(shù)調(diào)用占運(yùn)行時(shí)間(分配內(nèi)存、保留現(xiàn)場(chǎng)、值傳遞、返回值),所以D選項(xiàng)錯(cuò)誤。24、DOS文件系統(tǒng)的組織結(jié)構(gòu)屬于A、星形結(jié)構(gòu)B、網(wǎng)星結(jié)構(gòu)C、環(huán)形結(jié)構(gòu)D、樹(shù)形結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:DOS中目錄結(jié)構(gòu)是層次的,由根目錄到子目錄形成一個(gè)樹(shù)型結(jié)構(gòu)。25、若有定義語(yǔ)句:intx=12,y=8,z;在其后執(zhí)行語(yǔ)句z=0.9+x/y;則z的值為A、1.9B、1C、2D、2.4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由于x,y,z都是整型數(shù)據(jù),所以x除以y的值為整型數(shù)值1.1和0.9相加得到1.9,再轉(zhuǎn)換為整型數(shù)1賦給整型變量z。26、以下選項(xiàng)中非法的C語(yǔ)言字符常量是()。A、’\128’B、’\127’C、’\x01’D、’\x08’標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:以反斜杠開(kāi)始的為轉(zhuǎn)義字符,C語(yǔ)言中可以用1~3位八進(jìn)制數(shù)代表一個(gè)轉(zhuǎn)義字符(形式為?\ddd?),或者由1~2位十六進(jìn)制數(shù)代表一個(gè)字符(形式為?\xhh?),八進(jìn)制數(shù)中不能出現(xiàn)數(shù)字8,所以答案選A。27、以下函數(shù)的功能是()。voidfun(char*a,char*b){while((*b=*a)!=’\0’){a++;b++;}}A、使指針a指向b所指字符串B、檢查a和b所指字符串中是否有’0\’C、將a所指字符串賦給b所指空間D、將a所指字符串和b所指字符串進(jìn)行比較標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:題目中在while語(yǔ)句的條件中是把字符*a的值賦給字符*b,然后再判斷字符*b的值是否等于字符串的結(jié)束字符(’\0’),當(dāng)不等于結(jié)束字符(’\0’)時(shí),把字符指針變量a,b分別加1,指向它們的下一個(gè)字符,直到字符串a(chǎn)的結(jié)束。這樣程序執(zhí)行的結(jié)果就是把字符串a(chǎn)賦給了b所指的存儲(chǔ)空間,選項(xiàng)C正確。28、以下敘述中正確的是A、整型常量和實(shí)型常量都是數(shù)值型常量B、常量的類型不能從字面形式上區(qū)分,需要根據(jù)類型名來(lái)決定C、預(yù)定義的標(biāo)識(shí)符是C語(yǔ)言關(guān)鍵字的一種,不能另作它用D、只能在函數(shù)體內(nèi)定義變量,其他地方不允許定義變量標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:整型常量和實(shí)型常量都是數(shù)值型常量,選項(xiàng)A正確:常量的類型可以從字面上區(qū)分,比如整型常量不能有小數(shù)點(diǎn),組成字符為0~9等,選項(xiàng)B錯(cuò)誤;預(yù)定義標(biāo)識(shí)符,即預(yù)先定義并具有特定含義的標(biāo)識(shí)符,可以另作他用,不過(guò)更改了原有的含義,選項(xiàng)C錯(cuò)誤;變量可以定義在程序中任何的地方,屬于不同的變量,選項(xiàng)D錯(cuò)誤。29、設(shè)有定義:doublea,b,c;若要求通過(guò)輸入分別給a、b、c輸入1、2、3,輸入形式如下(注:此處□代表一個(gè)空格)□□1.0□□2.0□□3.0則能進(jìn)行正確輸入的語(yǔ)句是A、scanf("%1f%1f%1f’,a,b,c);B、scanf("%f%f%f’,&a,&b,&c);C、scanf("%1f%1f%1f’,&a,&b,&c);D、scanf("%5.11f%5.11f%5.1f",&a,&b,&c);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:輸入格式scanf(格式控制,輸入項(xiàng)1,輸入項(xiàng)2,…),其中在scanf。函數(shù)的格式字符前可以加入一個(gè)正整數(shù)指定輸入數(shù)據(jù)所占的寬度,但不可以用實(shí)數(shù)指定小數(shù)位的寬度。輸入double型數(shù)據(jù),格式控制必須用%1f。(或%1e)。否則。數(shù)據(jù)不能正確輸入。由于輸入是一個(gè)字符流,scanf函數(shù)從這個(gè)字符流中按照格式控制指定的格式解析出相應(yīng)數(shù)據(jù),送到指定地址的變量中。30、以下敘述中正確的是A、由&&構(gòu)成的邏輯表達(dá)式與由‖構(gòu)成的邏輯表達(dá)式都有“短路”現(xiàn)象B、C語(yǔ)言的關(guān)系表達(dá)式:0<xC、邏輯“非”(即運(yùn)算符!)的運(yùn)算級(jí)別是最低的D、邏輯“或”(即運(yùn)算符‖)的運(yùn)算級(jí)別比算術(shù)運(yùn)算要高標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:邏輯表達(dá)式的運(yùn)算比較復(fù)雜,有短路現(xiàn)象,也就是首先計(jì)算“邏輯與”或者“邏輯或”運(yùn)算的第一個(gè)運(yùn)算量的值,根據(jù)表達(dá)式的值決定是否進(jìn)行第二個(gè)量的值的計(jì)算?!斑壿嬇c”和“邏輯或”運(yùn)算低于關(guān)系運(yùn)算和算術(shù)運(yùn)算。但是“邏輯非”運(yùn)算卻高于算術(shù)運(yùn)算。31、有以下程序main(){inta=2,c=5;printf("a=%%d,b=%%d\n",a,c);}程序的輸出結(jié)果是A、a=%2,b=%5B、a=%d,b=%dC、a=2,b=5D、a=%%d,b=%%d標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:輸出“%”,可以在格式控制中用“%%”表示,將輸出一個(gè)“%”,而沒(méi)有%表示格式符的開(kāi)始,%%d不能表示格式符,因此僅輸出:a=%d,b=%d。32、若i和k都是int類型變量,有以下for語(yǔ)句for(i=0,k=-1;k=1;k++)printf("*****\n");下面關(guān)于語(yǔ)句執(zhí)行情況的敘述中正確的是A、循環(huán)體執(zhí)行兩次B、循環(huán)體執(zhí)行一次C、循環(huán)體一次也不能執(zhí)行D、構(gòu)成無(wú)限循環(huán)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查for循環(huán)。本題的for循環(huán)初始條件為i=0,k=-1;循環(huán)結(jié)束條件為k=1永遠(yuǎn)為真(k不為0),因此循環(huán)不能結(jié)束。33、有下列程序:main(){inta[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;for(i=0;i<4;i++)for(j=0;j<3;j++)for(k=j(luò)+1;k<4;k++)if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/for(i=0;i<4;i++)printf("%d,",a[i][i]);}程序運(yùn)行后的輸出結(jié)果是A、8,7,3,1,B、1,6,5,7,C、4,7,5,2,D、1,6,2,1,標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:最外層的for語(yǔ)句的自變量i是列下標(biāo),而內(nèi)部的兩個(gè)for語(yǔ)句的自變量j和k是行下標(biāo)。所以由程序段可知,這是利用三重循環(huán)對(duì)二維數(shù)組a[4][4]、的元素按列從小到大進(jìn)行排序,所以最后排完序的結(jié)果為a[4][4]={{1,4,2,1),{3,6,3,2},{4,7,5,5),{8,8,6,7}},最后一個(gè)for語(yǔ)句的功能是輸出數(shù)組a[4][4]主對(duì)角線上的元素,因而輸出為1,6,5,7。34、有以下程序#includemain(){intsum,pad,pAd;sum=pad=5;pAd=++sum,pAd++,++pad;printf("%d\n",pad);}程序的輸出結(jié)果是A、5B、6C、7D、8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言區(qū)分大小寫(xiě),pad與pAd是兩個(gè)不同的變量,首先將5賦值給兩個(gè)變量,由于賦值運(yùn)算符的優(yōu)先級(jí)高于逗號(hào)運(yùn)算符,所以計(jì)算pAd=++sum,此時(shí)pAd為6,sum也為6,然后計(jì)算pAd++,pAd的值變?yōu)?,++pad,pad的值變?yōu)?,所以選擇B。35、有以下程序段structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項(xiàng)中表達(dá)式的值為11的是A、pt->xB、*pt->yC、++pt->xD、(pt++)->x標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由題目的已知條件可知,pt指向結(jié)構(gòu)體數(shù)組c[2]的第一元素c[0],所以pt->x=10,執(zhí)行自加運(yùn)算后為11。36、有以下程序:#include#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){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、-3,-1,1,3,B、-12,-3,0,0,C、0,1,2,3,D、-3,-3,-3,-3,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題中由fun函數(shù)可知,b[0]=a[0][0]-a[0][3]=1-4=-3,b[1]=a[1][1]-[1][2]=6-7=-1,b[2]=a[2][2]-[2][1]=11-10=1,b[3]=a[3][3]-[3][1]=16-13=3。所以主函數(shù)中打印y數(shù)組元素的值為A)選項(xiàng)。37、若有以下程序#includemain(){inta=1,b=2,c=3,d=4,r=0;if(a!=1);elser=1;if(b==2)r+=2;else;if(c!=3)r+=3;else;if(d==4)r+=4;printf("%d\n",r);}則程序的輸出結(jié)果是A、10B、7C、6D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:else總是和與之最近的上面的if配對(duì),執(zhí)行第一個(gè)if,判斷條件不成立,執(zhí)行elser=1;語(yǔ)句。再執(zhí)行第二個(gè)if語(yǔ)句中的判斷條件,成立,左移執(zhí)行r+=2,r的值為3,再執(zhí)行第三個(gè)if的判斷條件,不成立執(zhí)行第7行else后面的空語(yǔ)句";"。再執(zhí)行第四個(gè)if的判斷條件d==4成立,執(zhí)行r+=4,r的值為7。然后打印輸出。38、有以下程序#include#includevoidfun(int*p1,int*p2,int*s){s=(int*)calloc(1,sizeof(int));*s=*p1+*p2;free(s);}main(){inta[2]={1,2},b[2]={40,50},*q=a;fun(a,b,q);printf("%d\n",*q);}程序運(yùn)行后的輸出結(jié)果是A、42B、41C、1D、0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查把數(shù)組名作為函數(shù)參數(shù),執(zhí)行fun函數(shù)后,s的值并沒(méi)有發(fā)生變化,仍然是指向a,所以輸出結(jié)果為1,選項(xiàng)C正確。39、軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是()。A、低內(nèi)聚低耦合B、高內(nèi)聚低耦合C、低內(nèi)聚高耦合D、高內(nèi)聚高耦合標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是高內(nèi)聚低偶合、模塊大小規(guī)模適當(dāng)、模塊的依賴關(guān)系適當(dāng)?shù)?。模塊的劃分應(yīng)遵循一定的要求,以保證模塊劃分合理,并進(jìn)一步保證以此為依據(jù)開(kāi)發(fā)出的軟件系統(tǒng)可靠性強(qiáng),易于理解和維護(hù)。模塊之間的耦合應(yīng)盡可能的低,模塊的內(nèi)聚度應(yīng)盡可能的高。40、有以下程序:#includeintf(intx,inty){return((y-x)*x);}main(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);}程序運(yùn)行后的輸出結(jié)果是()。A、7B、10C、8D、9標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:調(diào)用f(a,b)函數(shù)返回3,調(diào)用f(a,c)函數(shù)返回6,所以外層調(diào)用f(f(a,b),f(a,c));即調(diào)用f(3,6)函數(shù)返回9。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、關(guān)于地址和指針,以下說(shuō)法中正確的是()。A、通過(guò)強(qiáng)制類型轉(zhuǎn)換可以將一種類型的指針變量賦值給另一種類型的指針變量B、可以取一個(gè)常數(shù)的地址賦值給同類型的指針變量C、可以取一個(gè)表達(dá)式的地址賦值給同類型的指針變量D、可以取一個(gè)指針變量的地址賦值給基類型相同的指針變量標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查對(duì)指針變量賦值的理解。2、以下敘述中正確的是A、在賦值表達(dá)式中,賦值號(hào)的右邊可以是變量,也可以是任意表達(dá)式B、a是實(shí)型變量,a=10在C語(yǔ)言中是允許的,因此可以說(shuō):實(shí)型變量中可以存放整型數(shù)C、若有inta=4,b=9;執(zhí)行了a=b后,a的值已由原值改變?yōu)閎的值,b的值變?yōu)?D、若有inta=4,b=9;執(zhí)行了a-b;b=a;之后,a的值為9,b的值為4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B中a=10,在賦值時(shí)會(huì)把10自動(dòng)轉(zhuǎn)換為double類型然后賦值,實(shí)型變量中不可能存放整型。而選項(xiàng)C中執(zhí)行a=b后,b的值不變還是9,選項(xiàng)D中執(zhí)行“a=b;b=a;”后,a的值為9,b的值也為9。3、以下不合法的數(shù)值常量是()。A、8.0E0.5B、1e1C、011D、Oxabcd標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:A選項(xiàng)中E后面的指數(shù)必須為整型數(shù)據(jù),所以錯(cuò)誤。C選項(xiàng)中011表示的是八進(jìn)制常量,0xabcd表示的是十六進(jìn)制常量。4、有如下嵌套的if語(yǔ)句if(a<b)if(a<c)k=a;elsek=c;elseif(b<c)k=b;elsek=c;以下選項(xiàng)中與上述if語(yǔ)句等價(jià)的語(yǔ)句是A、k=(a<b)?((bc)?b:c);B、k=(a<c)?b:c;C、k=(a<c)?a:c;D、k=(a<b)?((a<c)?a:c):((b<c)?b:c);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:嵌套的ifelse語(yǔ)句的禽義是,在變最a的值小于變量b的值,同時(shí),變量a的值小于變量c的值時(shí),把變量a的值賦給變量k。在變量a的值小于變量b的值,同時(shí),變量a的值大于等于變量c的值時(shí),把變量c的值賦給變量k。在變量a的值大于等于變量b的值,同時(shí),變量b的值小于變量c的值時(shí),把變量b的值賦給變量k。在變量a的值人于等于變量b的值,同時(shí),變量b的值大于等于變量c的值時(shí),把變量c的值賦給變量k。5、軟件生命周期可分為定義階段、開(kāi)發(fā)階段和維護(hù)階段,下面屬于開(kāi)發(fā)階段任務(wù)的是A、軟件運(yùn)行B、可行性研究C、軟件開(kāi)發(fā)計(jì)劃D、軟件集成測(cè)試標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:開(kāi)發(fā)階段由三個(gè)階段組成:設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試??尚行匝芯亢蛙浖_(kāi)發(fā)計(jì)劃屬于定義階段;軟件運(yùn)行屬于維護(hù)階段。6、若有以下程序:#includevoidfun(inta[],intn){inti,j,t;for(i=1;ia[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intc[10]={10,9,8,7,6,5,4,3,2,1},i;fun(e,10);for(i=0;i<10;i++)prinff(“%d,”,c[i]);printf(“\n”);}則程序的輸出結(jié)果是()。A、1,10,3,8,5,6,7,4,9,2,B、10,9,8,7,6,5,4,3,2,1,C、2,9,4,7,6,5,8,3,10,1,D、10,1,8,3,6,5,4,7,2,9,標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:該題首先對(duì)一維數(shù)組進(jìn)行初始化,c[0]到c[9]依次賦值為10到1。fun(c,10);語(yǔ)句調(diào)用fun函數(shù),fun函數(shù)的功能是將一維數(shù)組偶數(shù)位元素的數(shù)值由小到大排序,最后將排好序的新的一維數(shù)組進(jìn)行輸出。故D選項(xiàng)正確。7、有以下程序#includemain(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<=i.j++)t+=b[i][b[i][i];printf("%d\n",t);}程序運(yùn)行后的輸出結(jié)果是A、3B、1C、9D、4標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:這道題主要考查的是二維數(shù)組的有關(guān)知識(shí)。在兩層for.循環(huán)語(yǔ)句中,每次執(zhí)行變量t的累加時(shí),二維數(shù)組元素b的第二下標(biāo)的值與第一下標(biāo)相同的值,所以程序執(zhí)行的過(guò)程為t=1+b[1]f11+b[2][2]=1+1+2=4。8、有以下程序#include<stdio.h>main(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3),c[5]:{O},i;for(i=0;i<12;i++)c[s[i]]++;for(i=1;i<5;i++)printf(’’%d’’,c[i]);printf(’’\n’’);}A、4332B、2344C、1234D、1123標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查for語(yǔ)句的循環(huán)控制,首先定義了兩個(gè)數(shù)組并賦予了初始值,第一個(gè)for循環(huán)語(yǔ)句循環(huán)12次遍歷s數(shù)組的各個(gè)元素,將sn中的原素值作為c[]數(shù)組中的下標(biāo),使相應(yīng)的值自加。例如當(dāng)i=0,c[s[0]]++為c[1]++,其值變?yōu)?,當(dāng)執(zhí)行i=11,2,11后,c[1]、c[2]、c[3]、c[4]分別為4、3、3、2,故選項(xiàng)A為正確的運(yùn)行結(jié)果。9、設(shè)有定義語(yǔ)句:char*aa[2]={"abcd","ABCD"};則以下敘述正確的是A、aa數(shù)組的兩個(gè)元素只能存放含有4個(gè)字符的一維數(shù)組的首地址B、aa數(shù)組的值分別是字符串"abcd"和"ABCD"C、aa是指針變量,它指向含有兩個(gè)元素的字符型數(shù)組D、aa[0]存放了字符串"abcd"的首地址標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:題目中char*aa[2],定義了指針數(shù)組aa。有兩個(gè)元素,aa[0]存放"abcd"地址,而aa[1]存放”ABCD”地址。10、在C語(yǔ)言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是A、extern和registerB、auto和staticC、static和registerD、auto和register標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C語(yǔ)言中,動(dòng)態(tài)變量(auto)存儲(chǔ)在內(nèi)存中的動(dòng)態(tài)存儲(chǔ)區(qū),在程序運(yùn)行中,只有當(dāng)調(diào)用變量所在的函數(shù)時(shí),系統(tǒng)才臨時(shí)給變量分配內(nèi)存單元:全局變量(extem)一經(jīng)定義,系統(tǒng)為其分配固定的內(nèi)存單元;靜態(tài)變量(static),編譯系統(tǒng)為其分配固定的存儲(chǔ)空間:寄存器變量(register)不保存在內(nèi)存上,而是直接存儲(chǔ)在CPU的寄存器中。11、若有定義inta:floatb:doublec;程序運(yùn)行時(shí)輸入:345能把值3輸入給變量a、4輸入給變量b、5輸入給變量C的語(yǔ)句是A、scanf("%d%1f%1f",&a,&b,&c);B、scanf("%d%f%1f",&a,&b,&c);C、scanf("%d%f%1=",&a,&b,&c);D、scanf("%1f%1f%1f",&a,&b,&c);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:scanf函數(shù)進(jìn)行輸入的時(shí)候,默認(rèn)的輸入間隔為空格、跳格和回車,變量a、b和c均為數(shù)值型數(shù)據(jù),輸入時(shí)間隔為空格,因此scanf函數(shù)的第一個(gè)表示格式的參數(shù)之間不用加入分隔符,而要輸入double型數(shù)據(jù),格式控制必須用%1f(或%1e)。否則,數(shù)據(jù)不能正確輸入。12、以下選項(xiàng)中非法的字符常量是A、’\019’B、’\65’C、’\xff’D、’\101’標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查字符型常量。選項(xiàng)A)錯(cuò)誤,使用了轉(zhuǎn)義字符“\”,019以0開(kāi)始表示8進(jìn)制,8進(jìn)制數(shù)字的范圍是0-7,沒(méi)有9;選項(xiàng)B)、C)和D)正確。13、C語(yǔ)言程序中,運(yùn)算對(duì)象必須是整型數(shù)的運(yùn)算符是A、/B、%C、&&D、*標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:%要求參與運(yùn)算的運(yùn)算量為整型,其他三個(gè)運(yùn)算符對(duì)于參與運(yùn)算的運(yùn)算量沒(méi)有直接要求。14、以下敘述中正確的是A、函數(shù)的類型不能是指針類型B、函數(shù)的形參類型不能是指針類型C、基類型不同的指針變量可以相互混用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類型數(shù)據(jù)在內(nèi)存中占8個(gè)字節(jié),因此移動(dòng)一次移動(dòng)8個(gè)字節(jié)。其他三個(gè)都不正確。15、有以下程序#includemain(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)果是()。A、852B、963C、741D、875421標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:該程序的運(yùn)行過(guò)程是y從9開(kāi)始自減,每次判定y是否能被3整除,若是,則輸出--y后的值,能被3整除的y值分別為9、6、3,所以答案選A。16、以下選項(xiàng)中,沒(méi)有編譯錯(cuò)誤的是()。A、charstr3[]={’d’,’e’,’b’,’u’,’g’,’\0’};B、charstr1[5]="pass",str2[6];str2=str1;C、charname[10];name="china";D、charstr4[];str4="helloworld";標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:字符數(shù)組為指針常量,不能進(jìn)行賦值性操作,選項(xiàng)B)、C)、D)錯(cuò)誤;選項(xiàng)A)賦值正確,答案選A)。17、以下選項(xiàng)中不屬于C語(yǔ)言標(biāo)識(shí)符的是A、常量B、用戶標(biāo)識(shí)符C、關(guān)鍵字D、預(yù)定義標(biāo)識(shí)符標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:常量是指在程序運(yùn)行過(guò)程中其值不能被改變的量,如5、1.0、字符’a’等。C語(yǔ)言的標(biāo)識(shí)符分為3類:關(guān)鍵字、預(yù)定義標(biāo)識(shí)符和用戶標(biāo)識(shí)符?常量不屬于標(biāo)識(shí)符,所以選擇A。18、以下敘述中正確的是A、指針變量只能通過(guò)求地址運(yùn)算符(&)來(lái)獲得地址值B、語(yǔ)句p=NULL;與p=\0;是等價(jià)的語(yǔ)句C、int*p1;int*p2;int*p3;都是合法的定義指針變量的語(yǔ)句D、語(yǔ)句p=NULL;執(zhí)行后,指針P指向地址為0的存儲(chǔ)單元標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:指針變量定義形式為:類型*指針變量名;其中*號(hào)的個(gè)數(shù)決定了幾級(jí)指針,指針變量賦地址值的方式有3種方式:①通過(guò)求地址運(yùn)算符(&)獲得地址值;②通過(guò)指針變量獲得地址值;③通過(guò)標(biāo)準(zhǔn)函數(shù)獲得地址值。另外NULL是在stdio.h頭文件中定義的預(yù)定義符。NULL的代碼值為0。可以給指針變量賦NULL值。例如p=NULL;賦值語(yǔ)句,稱p為空指針。這條語(yǔ)句等價(jià)于p=’\0’;或p=0;這時(shí),指針p并不是指向地址為0的存儲(chǔ)單元,而是具有一個(gè)確定的值——“空”。19、以下敘述中正確的是A、函數(shù)調(diào)用時(shí),不必區(qū)分函數(shù)名稱的大小寫(xiě)B(tài)、調(diào)用函數(shù)時(shí),函數(shù)名必須與被調(diào)用的函數(shù)名完全一致C、函數(shù)名允許用數(shù)字開(kāi)頭D、在函數(shù)體中只能出現(xiàn)一次return語(yǔ)句標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在標(biāo)準(zhǔn)C中,函數(shù)的定義形式為:函數(shù)返回值的類型名函數(shù)名(類型名形式參數(shù)1,類型名形式參數(shù)2,…){說(shuō)明部分語(yǔ)句部分}需要說(shuō)明的是函數(shù)名和形式參數(shù)都是由用戶命名的標(biāo)識(shí)符,在同一程序中,函數(shù)名必須惟一,形式參數(shù)名只要在同一函數(shù)中惟一即可,與其他函數(shù)中的變量可以同名。return語(yǔ)句的作用是返回函數(shù)的值,在函數(shù)中可以出現(xiàn)多個(gè)或者沒(méi)有。20、以下程序調(diào)用fun函數(shù)求數(shù)組中最大值所在元素的下標(biāo)。#includevoidfun(int*s,intn,int*k){inti;for(i=0,*k=i;is[*k])__________;}main(){inta[5]={1,6,2,8,0},k;fun(a,5,&k);printf("%d%d\n",k,a[k]);}在橫線處應(yīng)填入的內(nèi)容是()。A、*k=iB、k=iC、*k=i-sD、k=i-s標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:該代碼段的邏輯是循環(huán)判定s中的值,如果大于s[*k]則用*k記錄當(dāng)前的元素下標(biāo),記錄當(dāng)前下標(biāo)的語(yǔ)句應(yīng)為"*k=i",表示把i的值賦給了k指向的變量的值,答案選A。21、有以下程序段TypedefstructNODE{inthum;structNODE*next;}OLD;以下敘述中正確的是A、以上的說(shuō)明形式非法B、NODE是一個(gè)結(jié)構(gòu)體類型C、OLD是一個(gè)結(jié)構(gòu)型類型D、OLD是一個(gè)結(jié)構(gòu)變量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體和typedf類型定義。本題的聲明代碼相當(dāng)于兩部分,首先定義structNODE,然后是一typedef定義OLD類型,因此OLD是結(jié)構(gòu)體類型。選項(xiàng)C正確,其他選項(xiàng)錯(cuò)誤。22、若有以下程序typedefstructstu{charname[10],gender;intscore;}STU;voidf(STUa,STUb){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.name,b.gender,b.score);}則程序的輸出結(jié)果是A、Zhao,m,290,Zhao,m,290B、Zhao,m,290,Qian,f,350C、Qian,f,350,Qian,f,350D、Zhao,m,290,Zhao,f,350標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)f(STUa,STUb)的主要功能是為把結(jié)構(gòu)體變量a的值存放到b中,然后輸出b中各個(gè)成員的值。主函數(shù)中調(diào)用函數(shù)f(a,b),輸出賦值以后b的數(shù)據(jù),實(shí)際為a{"Zhao",’m’,290}的數(shù)據(jù),函數(shù)調(diào)用結(jié)束,形參a和b撤銷,流程到主函數(shù)輸出b{"Qian",’f’,350}的數(shù)據(jù)。23、設(shè)有定義:struct{charmark[12];intnum1;doublenum2;}t1,t2;若變量均已正確賦初值,則以下語(yǔ)句中錯(cuò)誤的是()。A、t2.mark=t1.mark;B、t2.num1=t1.num1;C、t1=t2;D、t2.num2=t1.num2;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:同類型的結(jié)構(gòu)體之間可以直接賦值,數(shù)組卻不可以,答案選A。24、以下敘述中正確的是A、轉(zhuǎn)義字符要用雙引號(hào)括起來(lái),以便與普通的字符常量區(qū)分開(kāi)B、字符常量在內(nèi)存中占2個(gè)字節(jié)C、字符常量需要用單引號(hào)括起來(lái)D、字符常量是不能進(jìn)行關(guān)系運(yùn)算的標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:B選項(xiàng)中,字符常量在內(nèi)存中占1個(gè)字節(jié);A選項(xiàng)中,轉(zhuǎn)義字符是以反斜線"\"開(kāi)頭,后跟一個(gè)或幾個(gè)字符;D選項(xiàng)中,字符常量可以進(jìn)行關(guān)系運(yùn)算,不能參與數(shù)值運(yùn)算。因此C選項(xiàng)正確。25、下列定義數(shù)組的語(yǔ)句中錯(cuò)誤的是()。A、intx[2][3]={1,2,3,4,5,6};B、intx[][3]={0};C、intx[][3]={{1,2,3},{4,5,6}};D、intx[2][3]={{1,2},{3,4},{5,6}};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:D選項(xiàng)中x[2][3]定義的是一個(gè)2行3列的二維數(shù)組,而在給數(shù)組元素賦值時(shí)卻賦成了3行,所以錯(cuò)誤。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、在軟件開(kāi)發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A、數(shù)據(jù)字典B、詳細(xì)設(shè)計(jì)說(shuō)明書(shū)C、數(shù)據(jù)流圖說(shuō)明書(shū)D、軟件需求規(guī)格說(shuō)明書(shū)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析的最終結(jié)果是生成軟件需求規(guī)格說(shuō)明書(shū),可以為用戶、分析人員和設(shè)計(jì)人員之間的交流提供方便。2、以下敘述正確的是A、C語(yǔ)言程序是由過(guò)程和函數(shù)組成的B、C語(yǔ)言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))C、C語(yǔ)言函數(shù)不可以單獨(dú)編譯D、C語(yǔ)言中除了main函數(shù),其他函數(shù)不可作為單獨(dú)文件形式存在標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語(yǔ)言中,允許函數(shù)的嵌套調(diào)用,即遞歸調(diào)用。在C語(yǔ)言中不存在過(guò)程的概念,在C語(yǔ)言中函數(shù)允許單獨(dú)編譯,可以作為單獨(dú)的文件形式存在。3、下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是A、循環(huán)隊(duì)列B、棧C、隊(duì)列D、二叉樹(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧按照“先進(jìn)后出”(FILO)或“后進(jìn)先出”(LIFO)組織數(shù)據(jù);隊(duì)列是“先進(jìn)先出”(FIFO)或“后進(jìn)后出”(LILO)的線性表。4、下列屬于白盒測(cè)試方法的是()。A、等價(jià)類劃分法B、邏輯覆蓋C、邊界值分析法D、錯(cuò)誤推測(cè)法標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:白盒測(cè)試法主要有邏輯覆蓋、基本路徑測(cè)試等。邏輯覆蓋測(cè)試包括語(yǔ)句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判斷一條件覆蓋,選擇B選項(xiàng)。其余為黑盒測(cè)試法。5、設(shè)棧的順序存儲(chǔ)空間為S(0:49),棧底指針bottom=49,棧頂指針top=30(指向棧頂元素)。則棧中的元素個(gè)數(shù)為A、30B、29C、20D、19標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在操作系統(tǒng)中,棧是向下生長(zhǎng)的,如下圖如示:所以當(dāng)棧底指針bottom=49,棧頂指針top=30時(shí),棧中的元素個(gè)數(shù)為:棧底-棧頂+1=49-30+1=20。因此選項(xiàng)C正確。6、結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括A、多元性B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為:自頂向下,逐步求精,模塊化和限制使用GOTO語(yǔ)句,其中不包括多態(tài)性。7、有以下程序:#include<stdio.h>main(){charx=2,y=2,z;z=(y<<1)&(x>>1);printf(″%d\n″,z);}程序的輸出結(jié)果是()。A、1B、0C、4D、8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查位運(yùn)算<<和&。y<<1為4,x>>1為1,二者與運(yùn)算后為0,故B選項(xiàng)正確8、若有定義語(yǔ)句:intx=12,y=8,z;,在其后執(zhí)行語(yǔ)句z=0.9+x/y;,則z的值為()。A、1B、1.9C、2D、2.4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:先計(jì)算x/y,結(jié)果為1,然后計(jì)算0.9+1,結(jié)果為1.9,但由于變量z為整型,取值1,所以z的值為1。9、以下選項(xiàng)中與iffa:1)a=b;elsea++;語(yǔ)句功能不同的switch語(yǔ)句是A、switch(a=1){case0:a=b;break;case1:a++;}B、switch(a){case1:a=b;break;default:a++;}C、switch(a){default:a++;break;case1:a=b;}D、switch(a=1){case1:a=b;break;case0:a++;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:ifelse語(yǔ)句的含義是,如果變量a的值等于1,則把變量b的值賦給變量a,否則,變量a的值加l。在本題的4個(gè)選項(xiàng)中,與其含義不同的是選項(xiàng)A),表示如果變量a的值等于1,則把變量a的值加1,否則,把變量b的值賦給變量a。10、有以下程序:#include#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;iA、1,0,7,0,B、1,2,3,4,C、1,4,5,9,D、3,4,8,10,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:該程序首先在定義變量時(shí),對(duì)二維數(shù)組x[][N]進(jìn)行賦值操作;調(diào)用函數(shù)fun,函數(shù)fun的功能是將二維數(shù)組中的a[0][0]、a[1][1]、a[2][2]和a[3][3]賦值給一維數(shù)組,最后將一維數(shù)組1,0,7,0,輸出。11、在E—R圖中,用來(lái)表示實(shí)體聯(lián)系的圖形是A、橢圓形B、矩形C、菱形D、三角形標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:構(gòu)成E-R圖的基本要素是實(shí)體型、屬性和聯(lián)系,其表示方法為:實(shí)體型(Entity)—用矩形表示;屬性(Attribute)—用橢圓形表示,聯(lián)系(Relationship)—用菱形表示,菱形框內(nèi)寫(xiě)明聯(lián)系名。12、有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為A、笛卡爾積B、交C、并D、自然連接標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在實(shí)際應(yīng)用中,最常用的連接是一個(gè)叫自然連接的特例。它滿足下面的條件:兩關(guān)系間有公共域;通過(guò)公共域的相等值進(jìn)行連接。通過(guò)觀察三個(gè)關(guān)系R,S,T的結(jié)果可知關(guān)系T是由關(guān)系R和S進(jìn)行自然連接得到的。13、有以下程序#includemain(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3),c[5]={0),i;f.0r(i=0;i<12;i++)c[s[i]]++;for(i=1;i<5;i++)printf("%d",c[i]);printf("\n");}A、4332B、2344C、1234D、1123標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查for語(yǔ)句的循環(huán)控制,首先定義了兩個(gè)數(shù)組并賦予了初始值,第一個(gè)for循環(huán)語(yǔ)句循環(huán)12次遍歷s數(shù)組的各個(gè)元素,將s[]中的原素值作為c[]數(shù)組中的下標(biāo),使相應(yīng)的值自加。例如當(dāng)i=0,c[s[0]]++為c[1]++,其值變?yōu)?,當(dāng)執(zhí)行i=1,2,…!1后,c[1]、c[2]、c[3]、c[4]分別為4、3、3、2,故選項(xiàng)A為正確的運(yùn)行結(jié)果。14、有以下程序#includemain(){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、02356B、0235C、235D、2356標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:k的值為5,逐個(gè)對(duì)case語(yǔ)句進(jìn)行匹配,均不匹配,執(zhí)行default下的語(yǔ)句n=0;k--;在執(zhí)行case2:后面的空語(yǔ)句,與case4:后面的n+=2;k--;執(zhí)行break語(yǔ)句跳出switch判斷,打印n的值,即2?經(jīng)過(guò)第一次循環(huán)后,k的值為3,然后進(jìn)行k>0&&n<5條件判斷為真,第二次執(zhí)行循環(huán)體,執(zhí)行case3:后面的n+=1;k--;再執(zhí)行break語(yǔ)句跳出循環(huán),此時(shí)打印n的值3,此時(shí)k的值為2?第三次執(zhí)行循環(huán)體k的值為2,滿足條件,執(zhí)行case2:case4:后面的語(yǔ)句n+=2,k--,跳出循環(huán)體?打印n的值5?此時(shí)n不小于5了條件k>0&&n<5不成立了,所以結(jié)束循環(huán)?整個(gè)程序的打印結(jié)果為235。15、若要定義一個(gè)具有5個(gè)元素的整型數(shù)組,以下錯(cuò)誤的定義語(yǔ)句是()。A、inta[5]={1};B、intb[]={1,2,3,4,5};C、intC[2+3]D、inti=5,d[i]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查一維數(shù)組的定義,C語(yǔ)言中一維數(shù)組的長(zhǎng)度表達(dá)式必須是常量;選項(xiàng)A正確:選項(xiàng)B初始化了5個(gè)元素,因此數(shù)組長(zhǎng)度為5;選項(xiàng)C常量表達(dá)式2+3的值為5,正確;選項(xiàng)D數(shù)組長(zhǎng)度不是常量表達(dá)式,錯(cuò)誤。16、以下選項(xiàng)中不能作為C語(yǔ)言合法常量的是A、cd’B、0.1e+6C、"ia"D、"\011"標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:常量指的是在程序的運(yùn)行過(guò)程中,其值不能被改變的量。在C語(yǔ)言中,包括整型常量、實(shí)型常量、字符常量和字符串常量等類型。選項(xiàng)B)0.1e+6是用指數(shù)形式表示的實(shí)型常量。在C語(yǔ)言中,用以“e”或“E”后一個(gè)整數(shù)來(lái)表示以10為底的冪數(shù),以用這種形式表示實(shí)型常量時(shí)要注意C語(yǔ)言的語(yǔ)法規(guī)定,字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù),并且在字母e或E的前后以及數(shù)字之間不得插入空格。選項(xiàng)C)中用雙引號(hào)括起來(lái)表示的字符串“\a”。選項(xiàng)D)中’\011’表示用單引號(hào)括起來(lái)的轉(zhuǎn)義字符八制進(jìn)數(shù)011。選項(xiàng)A)表示的字符常量是非法的,在用單引號(hào)表示的字符常量中,只能包含一個(gè)字符,而選項(xiàng)A)中包含兩個(gè)字符。17、以下程序的輸出結(jié)果是()。voidfun(intx,inty,int*c,int*d){*c=x+y;*d=x一y;}main(){inta=4,b=3,c=0,d=0;fun(a,b,&c,&d);printf(’’%d%d\n’’,c,d);}A、00B、34C、71D、43標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:題目中函數(shù)fun有四個(gè)形參,功能是利用參數(shù)的地址傳遞來(lái)計(jì)算前兩個(gè)參數(shù)的和與差。主函數(shù)中調(diào)用fun函數(shù)c計(jì)算4+3,d計(jì)算4—3值為1,選項(xiàng)C正確。18、有以下程序段inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case1:case3:printf("%d\n",n);break;case2:case4:printf("%d\n",n);continue;case0:exit(0);}printf("%d\n",n);}A、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作B、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作C、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行D、for循環(huán)語(yǔ)句固定執(zhí)行8次標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:rand()函數(shù)功能為產(chǎn)生一個(gè)隨機(jī)數(shù),rand()%5,則產(chǎn)生0~4之間的任意隨機(jī)數(shù),當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí),執(zhí)行case0:exit(0)這條語(yǔ)句,結(jié)束程序的運(yùn)行。19、有以下程序段inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);程序的輸出結(jié)果是A、a=10b=50c=30B、a=10b=30c=10C、a=10b=50c=10D、a=50b=30c=50標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題的程序段首先定義三個(gè)整型變量a,b,c,并且其初始值分別等于10,50,30,然后判斷a>b是否成立,如果條件成立,則把b的值賦給a,把c的值賦給b。由a和b的初始值可知,此條件表達(dá)式不成立,所以a和b的值保持不變。再執(zhí)行下一條語(yǔ)句,把a(bǔ)的值賦給c,所以c的當(dāng)前值等于10,最后由輸出語(yǔ)句輸出變量a,b,c的當(dāng)前值,分別為10,50,10。20、在一個(gè)C源程序中所定義的全局變量,其作用域?yàn)锳、所在文件的全部范圍B、所在程序的全部范圍C、所在函數(shù)的全部范圍D、由具體定義位置和extern說(shuō)明來(lái)決定范圍標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查C語(yǔ)言的作用域規(guī)則。在C語(yǔ)言中,全局變量的有效范圍從定義變量的位置開(kāi)始到本源文件結(jié)束。如果需要在其他源文件中使用該全局變量,則可以在其他源文件中使用extern關(guān)鍵寧來(lái)聲明該全局變量,這樣該全局變量的作用域就被擴(kuò)展到以extern聲明了該全局變量的位置開(kāi)始到此源文件結(jié)束。21、有以下程序#includestructtt{intx;structtt*y;)*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf("%d,",p->x);p=p->y;)}程序的運(yùn)行結(jié)果是A、20,15,B、30,17C、15,30,D、20,30,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序定義了結(jié)構(gòu)體類型tt,其成員包括一個(gè)整型數(shù)據(jù)x和指向其自身結(jié)構(gòu)的指針變量y。程序在定義結(jié)構(gòu)體數(shù)組a的同時(shí)對(duì)其進(jìn)行了初始化。其元素a[0]的成員y被賦值為元素a[1]的地址,a[1].y被賦值為a[2]的地址,a[2].y被賦予a[3]的地址,a[3].y被賦予a[0]的地址。這就形成了一個(gè)單向的循環(huán)鏈表,每個(gè)元素的指針成員都指向下一個(gè)元素的地址。在主函數(shù)中,通過(guò)一個(gè)for循環(huán)語(yǔ)句,輸出該鏈表前2個(gè)節(jié)點(diǎn)數(shù)值成員的值,即a[0].x和a[1].x。22、有以下程序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é)束。23、下面結(jié)構(gòu)體的定義語(yǔ)句中,錯(cuò)誤的是A、structord{intx;inty;intz;};structorda;B、structord{intx;inty;intz;}structorda;C、structord{intx;inty;intz;}a;D、struct{intx;inty;intz;)a;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在選項(xiàng)B)中,由于在定義完結(jié)構(gòu)體后缺少分號(hào)“;”,所以這是一條不完整的語(yǔ)句,因而是錯(cuò)誤的。24、有以下程序,程序運(yùn)行后的輸出結(jié)果是voidfun(int*p1,int*p2,int*s){s=(int*)malloc(sizeof(int));*s=*p1+*(p2++);}main(){inta[2]={1,2),b[2]={10,20},*s=a;fun(a,b,s);printf("%d\n",*s);}A、10B、11C、2D、1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:主函數(shù)中定義指針s指向數(shù)組a,調(diào)用fun函數(shù),首先是實(shí)參傳給形參,因此p1指向a,p2指向b,s指向a,即*s的值為1。流程到調(diào)用函數(shù)fun執(zhí)行,首先更改s的指向?yàn)樾路挚臻g的首地址,表達(dá)式*s=*p1+*(p2++),取p1指向數(shù)據(jù)位1,加上p2指向數(shù)據(jù)10,p2后移,存放到s指向的空間中11.流程結(jié)束,形參s和p1,p2撤銷,存入s指向空間的數(shù)據(jù)丟失,主函數(shù)輸出s指向數(shù)據(jù)仍然是1。25、有以下程序#includemain(){FILE*fp;intk,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是A、12B、14C、1234D、123456標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:fprintf()函數(shù)向文件輸出,將輸出的內(nèi)容輸出到硬盤(pán)上的文件或是相當(dāng)于文件的設(shè)備上執(zhí)行兩次fprintf后文件中有123456,所以D選項(xiàng)正確。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是()。A、可封裝B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語(yǔ)句,所以選擇A。2、有兩個(gè)關(guān)系R和T如下:則由關(guān)系R得到關(guān)系T的操作是()。A、投影B、交C、選擇D、并標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:從表圖中可以看出,關(guān)系T是從關(guān)系R中選取一部分字段(A和C)及其值構(gòu)成新的關(guān)系,是一種縱向操作產(chǎn)生新列,屬于投影,正確選項(xiàng)為A。3、有以下程序:#include<stdio.h>main(){printf(″%d\n”,NULL);}程序運(yùn)行后的輸出結(jié)果是()。A、1B、變量無(wú)定義,輸出不確定C、—1D、0標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:NULL為一個(gè)符號(hào)常量,對(duì)應(yīng)的ASCⅡ碼值為0,答案選D。4、有以下程序:#include<stdio.h>#definef(x)x*x*xmain(){inta=3,s,t;s=f(a+1);t=f((a+1));printf(″%d,%d\n″,s,t);}程序運(yùn)行后的輸出結(jié)果是()。A、10,64B、10,10C、64,10D、64,64標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中帶參數(shù)的宏可以理解為用參數(shù)直接替代定義式中的變量,而不經(jīng)過(guò)任何修改。所以s=f(a+1)=a+1*a+1*a+1,t=f((a+1))=(a+1)*(a+1)*(a+1),所以有無(wú)括號(hào)的運(yùn)算結(jié)果是不同的。5、有以下程序:#include<stdio.h>intf(intx,inty){return((y—x)*x);}voidmain(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(″%d\n″,d);}程序運(yùn)行后的輸出結(jié)果是()。A、9B、10C、8D、7標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查函數(shù)的返回值。d=f(f(a,b),f(a,c))=f((b—a)*a,(c—a)*a)=f(3,6)=(6—3)*3=9,所以答案選A。6、以下敘述中正確的是()。A、如果p是指針變量,則&p是不合法的表達(dá)式B、如果p是指針變量,則*p表示變量p的地址值C、在對(duì)指針進(jìn)行加、減算術(shù)運(yùn)算時(shí),數(shù)字1表示1個(gè)存儲(chǔ)單元的長(zhǎng)度D、如果p是指針變量,則*p+1和*(p+1)的效果是一樣的標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:考查指針的用法。指針進(jìn)行算術(shù)運(yùn)算的時(shí)候,數(shù)字“1”不再代表十進(jìn)制整數(shù)“1”,而是指一個(gè)存儲(chǔ)單元長(zhǎng)度,選項(xiàng)C正確。指針變量存儲(chǔ)的是其指向的變量的地址,其本身的地址仍用取地址運(yùn)算符“&”求得,*p表示的是p指向的變量的值,選項(xiàng)A、B錯(cuò)。*p+1表示的是指針p指向的變量值+1,而*(p+1)則是取得了下一個(gè)變量的值,兩者不同,選項(xiàng)D錯(cuò)。答案選C。7、有以下程序:#include<stdio.h>voidmain(){unsignedchara=8,c;c=a>>3:printf(″%d\n″,c);}程序運(yùn)行后的輸出結(jié)果是()。A.32B.16C.1D.0A、32B、16C、1D、0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符常量與其ASCⅡ碼值一一對(duì)應(yīng),在計(jì)算的時(shí)候,可以使用該字符的ASCⅡ碼參與運(yùn)算,輸出時(shí)會(huì)根據(jù)格式控制符輸出對(duì)應(yīng)的字符或者ASCⅡ碼。右移運(yùn)算符“>>”的運(yùn)算規(guī)則是把左邊運(yùn)算數(shù)的各二進(jìn)制位全部右移n位,n取決于“>>”右邊的數(shù)值。字符a的ASCⅡ碼值為8,對(duì)應(yīng)二進(jìn)制為1000,所以a>>3=1,輸出的字符c的ASCⅡ碼值為1,答案選C。8、下列各項(xiàng)中,對(duì)對(duì)象概念描述正確的是()。A、對(duì)象間的通信靠消息傳遞B、對(duì)象是名字和方法的封裝體C、任何對(duì)象必須有繼承性D、對(duì)象的多態(tài)性是指一個(gè)對(duì)象有多個(gè)操作標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象之間進(jìn)行通信的構(gòu)造叫作消息,選項(xiàng)A正確、封裝性是指從外面看只能看到對(duì)象的外部特征,而不知道也無(wú)須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作,選項(xiàng)B錯(cuò)誤。對(duì)象不一定必須有繼承性,選項(xiàng)C錯(cuò)誤,多態(tài)性是指同一個(gè)操作可以是不同對(duì)象的行為,選項(xiàng)D錯(cuò)誤。9、以下函數(shù)的功能是計(jì)算a的n次方并作為函數(shù)值返回:doublefun(doublea,intn){inti;doubles=1.0;for(i=1;i<=n;i++)S=_______;returns:}為實(shí)現(xiàn)上述功能,函數(shù)中下畫(huà)線處應(yīng)填入的是()。A、s*iB、s*aC、s+i*iD、s+a*a標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:s為a的(i—1)次方的結(jié)果,所以令s=s*a即可得到a的i次方。10、有以下程序:#include<stdio.h>intfun(intn){if(n)returnfun(n—1)+n;elsereturn0;}main(){printf(″%d\n″,fun(3));}程序的運(yùn)行結(jié)果是()。A、4B、5C、6D、7標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:fun函數(shù)是一個(gè)遞歸函數(shù),n=3,返回f(3—1)+3=f(2)+3=f(1)+2+3=f(0)+1+2+3=0+6=6。11、有以下程序:#include<stdio.h>main(){charch=′Z′;ch=(ch—′A′+1)%26+′A′;putchar(ch);printf(″\n″);}程序的運(yùn)行結(jié)果是()。A、ZB、YC、BD、A標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:z的ASCⅡ碼是90,A的ASCⅡ碼是65,所以ch=(ch—′A′+1)%26+′A′=26%26+65=65,65對(duì)應(yīng)的字符即A。12、有以下程序:#include<stdio.h>#defineN4voidfun(inta[],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][N—1—i];}main(){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、1,2,3,4,B、3,6,9,12,C、4,7,10,13,D、1,5,9,13,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:調(diào)用fun函數(shù),y[i]=x[i][N—1—i],N=4,x是4行4列的二維數(shù)組。i=0時(shí),y[0]=x[0][4—1]=x[0][3]=4;j=1時(shí),y[1]=x[1][4—1—1]=x[1][2]=7;i=2時(shí),y[2]=x[2][4—1—2]=x[2][1]=10;i=3時(shí),y[3]=x[3][0]=13。13、若有定義:inta=1,b=2,c=3;,則執(zhí)行表達(dá)式(a=b+c)||(++b)后,a,b,c的值依次為()。A、1,2,3B、5,3,2C、5,2,3D、5,3,3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:||表示或運(yùn)算,當(dāng)?shù)谝粋€(gè)表達(dá)式為真時(shí),第二個(gè)表達(dá)式就不會(huì)被執(zhí)行。根據(jù)優(yōu)先級(jí)規(guī)則,兩邊都是括號(hào),所以先計(jì)算(a=b+c),將b+c的值賦值給a,則a=5,而右邊的括號(hào)不會(huì)被執(zhí)行,所以b=2,c=3。14、算法的空間復(fù)雜度是指()。A、算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間B、算法所處理的數(shù)據(jù)量C、算法程序中的語(yǔ)句或指令條數(shù)D、算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指算法在執(zhí)行過(guò)程中所需要的內(nèi)存空間,因此本題答案為A。15、數(shù)據(jù)庫(kù)管理系統(tǒng)是()。A、操作系統(tǒng)的一部分B、在操作系統(tǒng)支持下的系統(tǒng)軟件C、一種編譯系統(tǒng)D、一種操作系統(tǒng)標(biāo)準(zhǔn)答案:B知識(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ù)等,是一種在操作系統(tǒng)支持下的系統(tǒng)軟件,因此本題答案為B。16、若有C語(yǔ)言表達(dá)式2+3*4+7/3,則以下選項(xiàng)中敘述正確的執(zhí)行順序是()。A、先執(zhí)行3*4得12,再執(zhí)行2+12得14,再執(zhí)行7/3得2,最后執(zhí)行14+2得16B、先執(zhí)行3*4得12,再執(zhí)行7/3得2.5,最后執(zhí)行2+12+2.5得16.5C、先執(zhí)行7/3得2,再執(zhí)行3*4得12,再執(zhí)行12+2得14,最后執(zhí)行2+14得16D、先執(zhí)行2+3得5,再執(zhí)行5*4得20,再執(zhí)行20+7得27,最后執(zhí)行27/3得9標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言表達(dá)式的執(zhí)行順序是從左向右,當(dāng)遇到優(yōu)先級(jí)高的表達(dá)式組分時(shí),先執(zhí)行優(yōu)先級(jí)高的表達(dá)式,故選項(xiàng)A正確。17、有以下程序:#include<stdio.h>main(){charx=2,y=2,z;z=(y<<1)&(x>>1);printf(″%d\n″,z);}程序的輸出結(jié)果是()。A、1B、0C、4D、8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查位運(yùn)算<<和&。y<<1為4,x>>1為1,二者與運(yùn)算后為0,故B選項(xiàng)正確18、有以下程序:#include<stdio.h>#include<string.h>main()}chara[]=″1234″,*b=″ABC″;printf(″%d%d%d%d\n″,strlen(a),sizeof(a),strlen(b),sizeof(b));}程序運(yùn)行后的輸出結(jié)果是()。A、4534B、4321C、4533D、4513標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)于字符數(shù)組a,含有4個(gè)元素,所以strlen為4,而sizeof包括最后隱藏的\0,故sizeof有5個(gè)。對(duì)于字符串b,strlen為3,關(guān)鍵是sizeof,這里的sizeof不再是指數(shù)組的長(zhǎng)度,因?yàn)閎是一個(gè)地址值,整型數(shù)據(jù),所以占用了4個(gè)字節(jié)。19、若有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,d=4,r=0;if(a!=1);elser=1;if(b==2)r+=2;if(C!=3);r+=3;if(d==4)r+=4;printf(″%d\n″,r);則程序的輸出結(jié)果是()。A、3B、7C、6D、10標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:第一個(gè)if語(yǔ)句a!=1條件為假,所以執(zhí)行else后的語(yǔ)句r=1。第二個(gè)if語(yǔ)句b==2條件成立,執(zhí)行r+=2,r的值變?yōu)?,第三個(gè)if語(yǔ)句c!=3條件為假,所以不做任何操作。執(zhí)行下面的r+=3操作,r的值變?yōu)?。判斷第四個(gè)if條件,d==4條件成立,執(zhí)行r+=4操作,結(jié)果為10。故D選項(xiàng)正確。20、設(shè)有定義:intx[2][3];則以下關(guān)于二維數(shù)組x的敘述中錯(cuò)誤的是()。A、元素x[0]可看作由3個(gè)整型元素組成的一維數(shù)組B、數(shù)組x可以看作由x[0]和x[1]兩個(gè)元素組成的一維數(shù)組C、可以用x[0]=0;的形式為數(shù)組所有元素賦初值0D、x[0]和x[1]是數(shù)組名,分別代表一個(gè)地址常量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:x[0]可看作由3個(gè)整型元素組成的一維數(shù)組,不可以用語(yǔ)句x[0]=0;為數(shù)組所有元素賦初值0。故C選項(xiàng)正確。21、下列敘述中錯(cuò)誤的是()。A、系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計(jì)B、軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過(guò)程C、數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫(kù)設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一D、PAD圖是軟件詳細(xì)設(shè)計(jì)的表示工具標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:詳細(xì)設(shè)計(jì)的任務(wù)是為軟件結(jié)構(gòu)圖而非總體結(jié)構(gòu)圖中的每一個(gè)模塊確定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu)、用某種選定

溫馨提示

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