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

下載本文檔

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

文檔簡(jiǎn)介

國家二級(jí)C語言機(jī)試(選擇題)模擬試卷7(共9套)(共285題)國家二級(jí)C語言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是()。A、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大B、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小C、一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小D、算法的時(shí)間復(fù)雜度與空間復(fù)雜度沒有直接關(guān)系標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和空間復(fù)雜度。算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,算法的工作量用算法所執(zhí)行的基本運(yùn)算次數(shù)來度量,而算法所執(zhí)行的基本運(yùn)算次數(shù)是問題規(guī)模的函數(shù),即算法的工作量=f(n),其中n是問題的規(guī)模;算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。一個(gè)算法所占用的存儲(chǔ)空間包括算法程序所占用的空間、輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行過程中所需要的額外空間。根據(jù)各自的定義可知。算法的時(shí)間復(fù)雜度與空間復(fù)雜度并不相關(guān)。2、以下敘述正確的是()。A、當(dāng)輸入數(shù)據(jù)時(shí),必須指明變量的地址,例如,scanf("%f",&a);B、只有格式控制,沒有輸入項(xiàng),也能正確輸入數(shù)據(jù)到內(nèi)存。例如,scanf("m=%d,n=%d");C、當(dāng)輸入一個(gè)實(shí)型數(shù)據(jù)時(shí),格式控制部分可以規(guī)定小數(shù)點(diǎn)后的位數(shù),例如,scanf("%5.1f",&a);D、輸入項(xiàng)可以是一個(gè)實(shí)型常量,例如,scanf("%f",7.5);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查對(duì)scanf函數(shù)的理解。選項(xiàng)B)中沒有給出輸入項(xiàng);選項(xiàng)C)中的格式字符指定了小數(shù)位數(shù);選項(xiàng)D)中的輸入項(xiàng)為一個(gè)常量;以上均是錯(cuò)誤的。3、軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段,下面屬于定義階段任務(wù)的是()。A、軟件設(shè)計(jì)B、軟件測(cè)試C、可行性研究D、數(shù)據(jù)庫設(shè)計(jì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段。軟件定義階段的任務(wù)是:確定軟件開發(fā)工作必須完成的目標(biāo);確定工程的可行性。軟件開發(fā)階段的任務(wù)是:具體完成設(shè)計(jì)和實(shí)現(xiàn)定義階段所定義的軟件,通常包括總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試。其中總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)又稱為系統(tǒng)設(shè)計(jì),編碼和測(cè)試又稱為系統(tǒng)實(shí)現(xiàn)。軟件維護(hù)階段的任務(wù)是:使軟件在運(yùn)行中持久地滿足用戶的需要。4、下列敘述中正確的是()。A、鏈表結(jié)點(diǎn)中具有兩個(gè)指針域的數(shù)據(jù)結(jié)構(gòu)可以是線性結(jié)構(gòu),也可以是非線性結(jié)構(gòu)B、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,每個(gè)結(jié)點(diǎn)必須有指向前件和指向后件的兩個(gè)指針C、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,每個(gè)結(jié)點(diǎn)只能有一個(gè)指向后件的指針D、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,葉子結(jié)點(diǎn)的指針只能是空標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在鏈?zhǔn)酱鎯?chǔ)方式中,每個(gè)結(jié)點(diǎn)由兩部分組成:數(shù)據(jù)域和指針域,指針域用于指向該節(jié)點(diǎn)的前一個(gè)或后一個(gè)結(jié)點(diǎn),所以選項(xiàng)B)、C)、D)說法錯(cuò)誤。選項(xiàng)A)中,例如雙向鏈表就具有兩個(gè)指針,也屬于線性結(jié)構(gòu),所以答案選A)。5、將數(shù)據(jù)庫的結(jié)構(gòu)劃分成多個(gè)層次,是為了提高數(shù)據(jù)庫的()。A、管理規(guī)范性B、數(shù)據(jù)處理并發(fā)性C、邏輯獨(dú)立性和物理獨(dú)立性D、數(shù)據(jù)共享標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)通常采用三級(jí)模式結(jié)構(gòu)并且提供兩級(jí)映射功能,其中的外模式/模式映射保證了數(shù)據(jù)庫系統(tǒng)具有較高的邏輯獨(dú)立性,而模式/內(nèi)模式映射保證了數(shù)據(jù)庫系統(tǒng)具有較高的物理獨(dú)立性。6、E-R圖中用來表示實(shí)體的圖形是()。A、菱形B、三角形C、矩形D、橢圓形標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在E-R圖中實(shí)體集用矩形表示,矩形框內(nèi)寫實(shí)體名;屬性用橢圓表示,并用無向邊將其與相應(yīng)的“實(shí)體”或“聯(lián)系”連接起來;聯(lián)系用菱形表示,在菱形框內(nèi)寫聯(lián)系名,并用無向邊將其與有關(guān)實(shí)體連接起來,在無向邊旁標(biāo)上聯(lián)系的類型(1:1、1:n或n:n)。7、計(jì)算機(jī)能直接執(zhí)行的程序是()。A、源程序B、目標(biāo)程序C、匯編程序D、可執(zhí)行程序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:計(jì)算機(jī)能直接執(zhí)行的程序是二進(jìn)制的可執(zhí)行程序,擴(kuò)展名為.exe,所以選擇D選項(xiàng)。8、從工程管理角度看,軟件設(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)答案:A知識(shí)點(diǎn)解析:軟件設(shè)計(jì)是開發(fā)階段最重要的步驟。從工程管理的角度來看可分為兩步:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)是將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu),確定系統(tǒng)級(jí)接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式;詳細(xì)設(shè)計(jì)是指確立每個(gè)模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用適應(yīng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。從技術(shù)觀點(diǎn)來看,軟件設(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)之間以及軟件與人之間如何通信)、過程設(shè)計(jì)(把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程)四個(gè)步驟。9、以下敘述中錯(cuò)誤的是()。A、算法正確的程序可以有零個(gè)輸出B、算法正確的程序最終一定會(huì)結(jié)束C、算法正確的程序可以有零個(gè)輸入D、算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的基本特性,正確的算法需要具有有窮性、確定性、可行性、有零個(gè)或多個(gè)輸入、至少有一個(gè)輸出,由此答案選A。10、下面屬于黑盒測(cè)試方法的是A、語句覆蓋B、邏輯覆蓋C、邊界值分析D、路徑覆蓋標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:采用黑盒技術(shù)設(shè)計(jì)測(cè)試用例的方法有:等價(jià)類劃分、邊界值分析、錯(cuò)誤推測(cè)、因果圖和綜合策略。11、下列敘述中錯(cuò)誤的是()。A、可以用typedef將已存在的類型用一個(gè)新的名字來代表B、可以通過typedef增加新的類型C、用typedef定義新的類型名后,原有類型名仍有效D、用typedef可以為各種類型起別名,但不能為變量起別名標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查typedef的用法。typedef并不是增加一種新的類型,而是對(duì)已存在的類型用一個(gè)新的名字來代表,所以B選項(xiàng)錯(cuò)誤。12、有以下程序#inclUde#defineN3voidfun(inta[][N],intb[]){inti,j;for(i=0;iA、1,3,5,B、2,4,8,C、3,5,7D、3,6,9,標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)fun()的作用是求出二維數(shù)組a[][N]中每一行中的最大元素,所以在main()函數(shù)中執(zhí)行完fun(x,y)后,數(shù)組y中的元素為二維數(shù)組x[N][N]每一行的最大元素。13、以下選項(xiàng)中表示一個(gè)合法的常量是(說明:符號(hào)□表示空格)A、123E0.2B、2.7e□C、0999□D、0Xab標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查C語言中的常量。選項(xiàng)A字母E后面必須是整型數(shù),浮點(diǎn)數(shù)錯(cuò)誤:選項(xiàng)B字母e后面沒有整型數(shù):選項(xiàng)C以0開始表示8進(jìn)制數(shù),8進(jìn)制數(shù)沒有9;選項(xiàng)D是一個(gè)正確的16進(jìn)制常數(shù)。14、設(shè)有定義:intx=0,*p;緊接著的賦值語句正確的是A、*p=NULL;B、p=NULL;C、p=x;D、木p=x;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:定義指針變量時(shí),必須將指針變量初始化為NULL(為空),否則,如果不賦給它地址,系統(tǒng)會(huì)隨機(jī)給它分配一個(gè)地址。15、以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是A、x/2B、x%2==0C、x%2!=0D、x%2==1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A選項(xiàng)的值為不定值,但絕對(duì)不是0,算術(shù)運(yùn)算符的優(yōu)先級(jí)高于關(guān)系運(yùn)算符的優(yōu)先級(jí),所以當(dāng)x為大于1的奇數(shù)時(shí),B選項(xiàng)的值為假,即0?C選項(xiàng)的值為真,即1,D選項(xiàng)的值為真,即1,選項(xiàng)B正確。16、當(dāng)變量c的值不為2、4、6時(shí),值也為“真”的表達(dá)式是A、(c==2)‖(c==4)‖(c==6)B、(c>=2&&c<=6)&&!(c%2)C、(c>=2&&c<=6)&&(c%2!=1)D、(c>=2&&c<=6)‖(c!=3)‖(c!=5)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:邏輯或運(yùn)算中,只要有一項(xiàng)為真,表達(dá)式的值就為真,故選項(xiàng)D中c的值不為2、4、6時(shí),那么表達(dá)式(c>=2&&c<=6)以及(c!=3)、(c!=5)必有一個(gè)成立,表達(dá)式的值也為真。17、有以下程序#includemain(){inta=5,b=1,t;t=(a<<2)|b;printf("%d\n",t);}A、11B、6C、21D、1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查位操作運(yùn)算符?!?lt;<’是左移運(yùn)算符,左移一位相當(dāng)于乘2,‘|’是按位或運(yùn)算符。5左移兩位相當(dāng)于乘4,得到20,20的二進(jìn)制數(shù)是00010100,和00000001進(jìn)行按位或操作得到00010101,即十進(jìn)制的21。18、有以下程序#include<stdio.h>voidmain(){ints;scanf("%d",&s);while(s>0){switch(s){case1:printf("%d",s+5);case2:printf("%d",s+4;break;case3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}運(yùn)行時(shí),若輸入123450,則輸出結(jié)果是A、66656B、6566456C、66666D、6666656標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:這道試題主要考查了switch和break語句,當(dāng)變量s的值為1時(shí),執(zhí)行case1、case2兩條語句,輸出65;當(dāng)變量s的值為2時(shí),執(zhí)行case2語句,輸出6;變量s的值為3時(shí),執(zhí)行case3、default兩條語句,輸出64;變量s的值為4時(shí),執(zhí)行default語句,輸入5;變量s的值為5時(shí),執(zhí)行default語句,輸出6;變量s的值為0時(shí),程序運(yùn)行結(jié)束。19、以下敘述中正確的是A、對(duì)于“for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體”首先要計(jì)算表達(dá)式2的值,以便決定是否開始循環(huán)B、對(duì)于“for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體”,只在個(gè)別情況下才能轉(zhuǎn)換成while語句C、只要適當(dāng)?shù)匦薷拇a,就可以將do-while與while相互轉(zhuǎn)換D、如果根據(jù)算法需要使用無限循環(huán)(即通常所稱的“死循環(huán)”),則只能使用while語句標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:while和do…while語句和for語句很容易進(jìn)行相互轉(zhuǎn)換。對(duì)于for循環(huán)的執(zhí)行過程如下:①計(jì)算表達(dá)式l。②計(jì)算表達(dá)式2。若其值為非0,轉(zhuǎn)步驟③;若其值為0,轉(zhuǎn)步驟⑤。③執(zhí)行一次for循環(huán)體。④計(jì)算表達(dá)式3,轉(zhuǎn)向步驟②。⑤結(jié)束循環(huán)。任何循環(huán)都有可能成為死循環(huán)。20、有以下程序#includevoidmain(){inta[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;case1:a[i]--;}break;’case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、2050B、3344C、3040D、0304標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)的for循環(huán)語句中,當(dāng)循環(huán)變量i的值等于0,2時(shí),執(zhí)行switch中的case0語句,分別對(duì)數(shù)組元素a[0]和a[2]加1和減1,所以a[0]的值等于3,a[2]等于4。當(dāng)循環(huán)變量i的值等于1,3時(shí),執(zhí)行switch中的case1語句,把數(shù)組元素a[1]和a[3]的值賦為0。所以輸出數(shù)組a的元素,其結(jié)果為3040。21、若有定義語句:char*s1="OK",*s2="ok";以下選項(xiàng)中,能夠輸出"OK"的語句是A、if(strcmp(s1,s2)!=0)puts(s1);B、if(strcmp(s1,s2)!=0)puts(s2);C、if(strcmp(s1,s2)==1)puts(s1);D、if(strcmp(s1,s2)==0)puts(s1);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:字符串比較函數(shù)strcmp的功能是對(duì)s1和s2所指字符串進(jìn)行比較。如果s1<s2,返吲負(fù)數(shù),如果s1==s2,返回0,如果s1>s2,返回正數(shù),所以對(duì)于本題來說,能夠輸出“OK”的語句是選項(xiàng)A)所指的語句。22、以下語句中存在語法錯(cuò)誤的是A、charss[][20]={"right?"};B、char*ss[6];ss[1]="right?";C、char*ss[]={"right?");D、charss[6][20];ss[1]="right?";標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A)中定義了二維數(shù)組ss,可以用于存儲(chǔ)字符串,但是字符串的存儲(chǔ)不能通過賦值,僅可以初始化或者輸入得到,而選項(xiàng)C)和A)不同,選項(xiàng)C)為指針數(shù)組,對(duì)于指針變量可以保存常量字符串的地址。23、以下敘述中正確的是()。A、設(shè)有指針變量為double*p,則p+1將指針p移動(dòng)8個(gè)字節(jié)B、函數(shù)的類型不能是指針類型C、函數(shù)的形參類型不能是指針類型D、基類型不同的指針變量可以相互混用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查指針與函數(shù)。指針進(jìn)行算術(shù)運(yùn)算的時(shí)候,數(shù)字"1"不再代表十進(jìn)制整數(shù)"1",而是指一個(gè)存儲(chǔ)單元長(zhǎng)度,具體占用的空間依據(jù)指針變量的基本類型而定,double類型的變量占用8個(gè)字節(jié),所以p+1將p移動(dòng)了8個(gè)字節(jié),A)正確。指針可以作為函數(shù)的參數(shù)參與數(shù)據(jù)傳遞過程,也可以作為函數(shù)的返回值被返回,故選項(xiàng)B)、C)錯(cuò)。指針變量的賦值運(yùn)算只能在同一數(shù)據(jù)類型之間進(jìn)行,選項(xiàng)D)錯(cuò),答案選A)。24、有以下程序#include<stdio-h>voidfun(char*a,char*b){while(*a=’*’)a++;while(*b=*a){b++;a++;}}main(){char*s="****a*b****",t[80];fun(s,t);puts(t);}程序的運(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語句判斷*a中的值為“*”時(shí)繼續(xù)掃描,當(dāng)遇到不是“*”時(shí)結(jié)束,接著第二個(gè)while循環(huán)語句,將*a中從“a”開始的后續(xù)所有字符都賦予*b,也就是t[80]中的內(nèi)容為“a*b****”。25、有以下程序#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的值并沒有發(fā)生變化,仍然是指向a,所以輸出結(jié)果為1,選項(xiàng)C正確。國家二級(jí)C語言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列關(guān)于棧的敘述中,正確的是A、棧底元素一定是最后入棧的元素B、棧頂元素一定是最先入棧的元素C、棧操作遵循先進(jìn)后出的原則D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧是限定只能在表的一端進(jìn)行插入和刪除操作的線性表,必須按“后進(jìn)先出”的規(guī)則操作元素。2、下列敘述中正確的是A、順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的B、順序存儲(chǔ)結(jié)構(gòu)只針對(duì)線性結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只針對(duì)非線性結(jié)構(gòu)C、順序存儲(chǔ)結(jié)構(gòu)能存儲(chǔ)有序表,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不能存儲(chǔ)有序表D、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比順序存儲(chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:順序存儲(chǔ)方式主要用于線性的數(shù)據(jù)結(jié)構(gòu),它把邏輯上相鄰的數(shù)據(jù)元素存儲(chǔ)在物理上相鄰的存儲(chǔ)單元里,結(jié)點(diǎn)之間的關(guān)系由存儲(chǔ)單元的鄰接關(guān)系來體現(xiàn)。而鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的。3、下列結(jié)構(gòu)中屬于非線性結(jié)構(gòu)的是A、二叉鏈表B、二維數(shù)組C、循環(huán)隊(duì)列D、雙向鏈表標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:線性結(jié)構(gòu)是一個(gè)有序數(shù)據(jù)元素的集合。常用的線性結(jié)構(gòu)有:線性表,棧,隊(duì)列,雙隊(duì)列,數(shù)組,串:常見的非線性結(jié)構(gòu)有:二維數(shù)組,多維數(shù)組,廣義表,樹(二叉樹一等),圖。循環(huán)隊(duì)列、雙向鏈表和二叉鏈表都是線性結(jié)構(gòu),而二維數(shù)組是非線性結(jié)構(gòu)。4、結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括()。A、效率第一B、自頂向下C、限制使用GOTO語句D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為:自頂向下,逐步求精,模塊化和限制使用GOTO語句。5、合法的C語言數(shù)值常量是()。A、21.0Xa334.5e0B、018.5e-3-0xfC、.1344el.50abcD、0x8A10,0003.e5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語言常量數(shù)制中的八進(jìn)制數(shù)其開頭必須是數(shù)字“0”,其數(shù)字包括0~7,而在選項(xiàng)B中,018是錯(cuò)誤的。浮點(diǎn)數(shù)據(jù)的指數(shù)形式表示常量中,C語言規(guī)定字母e或E之前必須要有數(shù)字,且e或E之后的指數(shù)必須為整,而選項(xiàng)C中4e1.5是錯(cuò)誤的。在選項(xiàng)D中,整型數(shù)據(jù)10,000的表示形式是錯(cuò)誤的。6、結(jié)果為“假”的表達(dá)式是()。A、(3<4)==1B、(3+3)>5C、(3!=4)>2D、3<=4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:關(guān)系表達(dá)式和邏輯表達(dá)式的結(jié)果為非零或者0,其中0表示假,而非零表示真,3!=4的結(jié)果為真,即1,1>2的結(jié)果為假。7、若有定義:floatx=1.5;inta=1,b=3,c=2;,則正確的switch語句是()。A、switch(a+b){case1:printf(’’*\n’’);case2+1:printf(’’**\n’’);}B、switch((int)x);{case1:printf(’’*\n’’);case2:printf(’’**\n’’);}C、switch(x)D)switch(a+b){case1.0:printf(’’*\n’’);case2.0:printf(’’**’’\n”);}D、switch(a+b){case1:printf(’’*\n’’);casec:printf(’’**\n’’);}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:B選項(xiàng)中switch((int)x);語句中不應(yīng)該有最后的分號(hào)。switch(expr1)中的expr1不能用浮點(diǎn)類型或long類型,也不能為一個(gè)字符串,所以C選項(xiàng)錯(cuò)誤。case后面必須為常量表達(dá)式,所以D選項(xiàng)錯(cuò)誤。8、某系統(tǒng)結(jié)構(gòu)圖如下圖所示,則該系統(tǒng)結(jié)構(gòu)圖的寬度是A、2B、3C、4D、n標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:寬度是指最大模塊數(shù)的層的控制跨度。題目中系統(tǒng)第一層只有1個(gè)模塊,第二層有n(n>3)個(gè)模塊,第三層有4個(gè)模塊,控制跨度為n,D選項(xiàng)正確。9、有以下程序:#include<stdio.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));pfinff("%d\n",m);}intf(intx){returnx*2;}程序的運(yùn)行結(jié)果是()。A、8B、2C、4D、1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:第一次調(diào)用m=f(f(f(1))),第二次為m=f(f(2)),第三次為m=f(4),即返回值為8。10、有如下程序#includemain(){if(’\0’==0)putchar(’X’);if(’0’==0)putchar(’Y’);if(’a’>’b’)putchar(’Z’);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、XB、XYZC、YZD、Y標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:字符常量與其ASCII碼值一一對(duì)應(yīng),比較和計(jì)算時(shí)使用字符數(shù)據(jù)對(duì)應(yīng)的ASCII碼進(jìn)行運(yùn)算。?\0?的ASCII碼為0,?0?的ASCII碼為48,?a?的ASCII碼為97,?b?的ASCII碼為98,所以只有第一條if語句的判定條件為真,所以答案選A。11、有三個(gè)關(guān)系R,S和T如下圖所示:則由關(guān)系R和S得到關(guān)系T的操作是A、選擇B、差C、交D、并標(biāo)準(zhǔn)答案:B知識(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通過差運(yùn)算得到的。12、“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系一般是A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:實(shí)體集間的聯(lián)系的個(gè)數(shù)可以是單個(gè)也可以是多個(gè)。兩個(gè)實(shí)體集之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種關(guān)系有三種:一對(duì)一的聯(lián)系,簡(jiǎn)記為1:1;一對(duì)多或多對(duì)一聯(lián)系,簡(jiǎn)記為1:m或m:1;多對(duì)多聯(lián)系,簡(jiǎn)記為m:n。本題中“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系是多對(duì)多聯(lián)系。因?yàn)橐环N“商品”可以被多個(gè)“顧客”購買,而一個(gè)“顧客”也可以購買多個(gè)“商品”。13、若有定義:doublea=22;inti=0,k=18;則不符合C語言規(guī)定的賦值語句是A、i=(a+k)<=(i+k);B、a=a++,i++;C、i=a%11;D、i=!a;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語言中,求余運(yùn)算符的運(yùn)算對(duì)象只能是整型,在題目中,變量a是一個(gè)雙精型實(shí)型變量。14、在以下給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是A、(E>0||E<0)B、(!E==0)C、(E!=0)D、(E==0)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在while(E)中,表達(dá)式E可以是C語言中任意合法的條件表達(dá)式,但不能為空,由它來控制循環(huán)體是否執(zhí)行。在選項(xiàng)A)中表達(dá)式E>0||E<0是一個(gè)邏輯表達(dá)式。15、若有定義語句:char*s1="OK",*s2"=ok";以下選項(xiàng)中,能夠輸出"OK"的語句是A、if(strcmp(s1,s2)!=0)puts(s1);B、if(strcmp(s1,s2)!=0)puts(s2);C、if(strcmp(s1,s2)==1)puts(s1);D、if(strcmp(s1,s2)==0)puts(s1);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:字符串比較函數(shù)strcmp的功能是對(duì)s1和s2所指字符串進(jìn)行比較。如果s1<s2,返回負(fù)數(shù),如果s1==s2,返回0,如果s1>s2,返回正數(shù),所以對(duì)于本題來說,能夠輸出“OK”的語句是選項(xiàng)A所指的語句。16、假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的節(jié)點(diǎn):則以下選項(xiàng)中可將q所指節(jié)點(diǎn)從鏈表中刪除并釋放該節(jié)點(diǎn)的語句組是A、p=q->next;free(q);B、p=:q;free(q);C、(*p).next=(*q).next;free(p);D、p->next=q->next;free(q);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查了在線性鏈表刪除一個(gè)節(jié)點(diǎn)的方法,要?jiǎng)h除q所指向的節(jié)點(diǎn),只需要把q所指向的節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)中的后繼指針指向q所指向的節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)即可,即p->next=q->next=再釋放q所指向的節(jié)點(diǎn),即free(q)。17、設(shè)有以下語句typedefstructTT{charc;inta[4];}CIN;則下面敘述中正確的是A、TT是struct類型的變量B、可以用TT定義結(jié)構(gòu)體變量C、CIN是structTT類型的變量D、可以用CIN定義結(jié)構(gòu)體變量標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語言允許用typedef說明一種新的類型名,說明新類型名的語句為一般形式為:typedef類型名標(biāo)識(shí)符在此,“類型名”必須是此語句之前已有定義的類型標(biāo)識(shí)符。“標(biāo)識(shí)符”是一個(gè)用戶定義標(biāo)識(shí)符,用作新的類型名。typedef語句的作用僅僅是用“標(biāo)識(shí)符”來代表已存在的“類型名”,并未產(chǎn)生新的數(shù)據(jù)類型,原有類型名依然有效。在本題中用typedef定義CIN為TT的一種新的類型名,因而可以用它定義一個(gè)結(jié)構(gòu)體變量。18、以下選項(xiàng)中合法的常量是A、2.7eB、999C、123E0.2D、0Xab標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:0xab是十六進(jìn)制表示的常量。19、若各選項(xiàng)中所用變量己正確定義,函數(shù)fun中通過return語句返回一個(gè)函數(shù)值,以下選項(xiàng)中錯(cuò)誤的程序是A、main(){……x=fun(2,10);……)floatfun(inta,intb){……}B、floatfun(inta,intb){……}main(){……x=fun(i,j);……}C、floatfun(int,int);main(){……x=fun(2,10);……}floatfun(inta,intb){……}D、main(){floatfun(inti,intj);……x=fun(i,j);……}floatfun(inta,intb){……}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語言規(guī)定,函數(shù)必須先定義,后調(diào)用(函數(shù)的返回值類型為int或chaz。時(shí)除外)。在選項(xiàng)A)中,調(diào)用的子函數(shù)在調(diào)用后面定義,所以不正確。在選項(xiàng)B)、C)中,被調(diào)用函數(shù)在主函數(shù)之前定義,再在主函數(shù)中調(diào)用,所以是正確的;在選項(xiàng)D)中,在主函數(shù)中先對(duì)子函數(shù)floatfun(inti,inti)進(jìn)行了聲明,然后進(jìn)行調(diào)用。20、有下列程序:main(){inta[4][4]={{1,4,3,2),{8,6,5,7),{3,7,2,5),{4,8,6,1)},i,k,t;for(i=0;i<3;i++)for(k=i+1;k<4;k++)if(a[i][i]<a[k][k]){t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;}for(i=0;i<4;i++)printf("%d,",a[0][i]);}程序運(yùn)行后的輸出結(jié)果是A、6,2,1,1,B、1,1,2,6,C、2,3,4,6,D、6,4,3,2,標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:利用二重for循環(huán)對(duì)二維數(shù)組af4][4]的主對(duì)角線上的元素{1,6,2,1}實(shí)現(xiàn)按列從大到小排序,所以數(shù)組a[4][4]的值變?yōu)閧{6,4,3,2,},{8,2,5,7},{3,7,1,5},{4,8,6,1}},最后輸出數(shù)組a[4][4]第一行上的元素,所以輸出結(jié)果為6,4,3,2。21、若要定義一個(gè)具有5個(gè)元素的整型數(shù)組,以下錯(cuò)誤的定義語句是A、inta[5]={0};B、intb[]={0,0,0,0,0};C、intc[2+3]D、inti=5,d[i];標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查一維數(shù)組的定義,C語言中一維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達(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ò)誤。22、以下敘述中正確的是A、在C程序中的八進(jìn)制和十六進(jìn)制,可以是浮點(diǎn)數(shù)B、整型變量可以分為int型、short型、long型和unsigned型四種C、八進(jìn)制數(shù)的開頭要使用英文字母o,否則不能與十進(jìn)制區(qū)分開D、英文大寫字母X和英文小寫字母x都可以作為二進(jìn)制數(shù)字的開頭字符標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C程序中的實(shí)型常量只有十進(jìn)制一種數(shù)制,所以A錯(cuò)誤,八進(jìn)制數(shù)以0打頭,所以C錯(cuò)誤,C語言中整數(shù)只有十進(jìn)制,八進(jìn)制,十六進(jìn)制三種沒有二進(jìn)制數(shù)制,所以D錯(cuò)誤。23、以下敘述中正確的是A、字符變量在定義時(shí)不能賦初值B、字符常量可以參與任何整數(shù)運(yùn)算C、同一英文字母的大寫和小寫形式代表的是同一個(gè)字符常量D、轉(zhuǎn)義字符用"\"符號(hào)開頭標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A選項(xiàng)中,字符變量在定義時(shí)可以賦初值;C選項(xiàng)中,同一英文字母的大寫和小寫形式代表的是不同的字符常量;D選項(xiàng)中,轉(zhuǎn)義字符以反斜線"\"開頭的。因此B選項(xiàng)正確。24、.設(shè)有如下的說明和定義struct{inta;char*s;}x,*p=&x;x.a=4;x.s="hello";則以下敘述中正確的是A、(p++)->a與p++->a都是合語法的表達(dá)式,但二者不等價(jià)B、語句++p->a;的效果是使p增1C、語句++p->a;的效果是使成員a增1D、語句*p->s++;等價(jià)于(*p)->s++;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體變量的引用,++p->a的效果是使成員a增1,p++->a不合法,*p->s++為字符e,與(*p)->s++不等價(jià)。25、有以下程序段charc1,c2;for(c1=’0’,c2=’9’;c1<c2;c1++,c2--)printf("%c%c",c1,c2);程序段的執(zhí)行結(jié)果是()。A、0123456789B、0918273645C、0123498765D、9876543210標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序定義兩個(gè)字符變量c1和c2。for循環(huán)中,首先為c1賦值“0”,為c2賦值“9”,接著判斷c1和c2的大小。由于字符變量可以作為整型數(shù)處理,數(shù)字字符的ASCII值按字面數(shù)值的大小順序連續(xù)遞增,因此c1小于c2成立,執(zhí)行循環(huán)體輸出“09”,再將c1自增1、c2自減1后,執(zhí)行下一輪循環(huán),直到c1=’5’,c2=’4’時(shí),c1<c2不成立,循環(huán)終止。最終程序段輸出:0918273645。故本題答案為B選項(xiàng)。國家二級(jí)C語言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是A、棧B、樹C、隊(duì)列D、二叉樹標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:棧是一種限定在一端進(jìn)行插入與刪除的線性表。在主函數(shù)調(diào)用子函數(shù)時(shí),要首先保存主函數(shù)當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子函數(shù),把子函數(shù)的運(yùn)行結(jié)果返回到主函數(shù)調(diào)用子函數(shù)時(shí)的位置,主函數(shù)再接著往下執(zhí)行,這種過程符合棧的特點(diǎn)。所以一般采用棧式存儲(chǔ)方式。2、設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:35),初始狀態(tài)為front=rear=35?,F(xiàn)經(jīng)過一系列入隊(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。3、某二叉樹共有12個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè)。則該二叉樹的深度為(根結(jié)點(diǎn)在第1層)A、3B、6C、8D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。題目中的二叉樹的葉子結(jié)點(diǎn)為1,因此度為2的結(jié)點(diǎn)的數(shù)目為0,故該二叉樹為12層,每層只有一個(gè)結(jié)點(diǎn)。4、以下選項(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語言中的變量名、函數(shù)名、數(shù)組名、文件名、類型名等。其中標(biāo)識(shí)符構(gòu)成:①標(biāo)識(shí)符由字母、數(shù)字和下劃線組成;②第一個(gè)字符必須為字母或下劃線:因此選項(xiàng)A中數(shù)字開頭,選項(xiàng)B出現(xiàn)了非法字符%,而選項(xiàng)D中sizeof為關(guān)鍵字,不能為變量命名。5、一間宿舍可住多個(gè)學(xué)生,則實(shí)體宿舍和學(xué)生之間的聯(lián)系是()。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)橐婚g宿舍可以住多個(gè)學(xué)生,即多個(gè)學(xué)生住在一間宿舍中,但一個(gè)學(xué)生只能住一間宿舍,所以實(shí)體宿舍和學(xué)生之間是一對(duì)多的關(guān)系。6、對(duì)長(zhǎng)度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為A、9B、10C、45D、90標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表的長(zhǎng)度為n,最壞情況下冒泡排序需要比較的次數(shù)為n(n-1)/2。7、在E—R圖中,用來表示實(shí)體聯(lián)系的圖形是()。A、橢圓形B、矩形C、菱形D、三角形標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在E—R圖中,實(shí)體集用矩形,屬性用橢圓,聯(lián)系用菱形。8、下列選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)特征的是A、繼承性B、多態(tài)性C、類比性D、封裝性標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:面向?qū)ο蟪绦蛟O(shè)計(jì)的三個(gè)主要特征是:封裝性、繼承性和多態(tài)性。封裝性即只需知道數(shù)據(jù)的取值范圍和可以對(duì)該數(shù)據(jù)施加的操作,而無需知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法。繼承性是指使用已有的類定義作為基礎(chǔ)建立新類的定義技術(shù)。對(duì)象根據(jù)所接受的消息而做出動(dòng)作,同樣的消息被不同的對(duì)象接受時(shí)可導(dǎo)致完全不同的行動(dòng),該現(xiàn)象稱為多態(tài)性。9、下面不屬于軟件設(shè)計(jì)原則的是A、抽象B、模塊化C、自底向上D、信息隱藏標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件設(shè)計(jì)的基本原則包括抽象、信息隱藏、模塊化、局部化、確定性、一致性、完備性和可驗(yàn)證性。10、在源程序的開始處加上#include進(jìn)行文件引用的原因,以下敘述正確的是()。A、stdio.h文件中包含標(biāo)準(zhǔn)輸入/輸出函數(shù)的函數(shù)說明,通過引用此文件以便能正確使用printf、scanf等函數(shù)B、將stdio.h中標(biāo)準(zhǔn)輸入/輸出函數(shù)鏈接到編譯生成的可執(zhí)行文件中,以便能正確運(yùn)行C、將stdio.h中標(biāo)準(zhǔn)輸入/輸出函數(shù)的源程序插入到引用處,以便進(jìn)行編譯鏈接D、將stdio.h中標(biāo)準(zhǔn)輸入/輸出函數(shù)的二進(jìn)制代碼插入到引用處,以便進(jìn)行編譯鏈接標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:stdio.h包含標(biāo)準(zhǔn)庫函數(shù)頭文件,很多庫函數(shù)的聲明都在stdio.h這個(gè)文件中,包含之后就可以用其中的庫函數(shù),例如printf函數(shù),scanf函數(shù)等。11、下列描述中正確的是A、軟件交付使用后還需要再進(jìn)行維護(hù)B、軟件工具交付使用就不需要再進(jìn)行維護(hù)C、軟件交付使用后其生命周期就結(jié)束D、軟件維護(hù)是指修復(fù)程序中被破壞的指令標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:通常將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段。已交付的軟件投入運(yùn)行后,應(yīng)在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需要進(jìn)行必要而且可能的擴(kuò)充和刪改。12、以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是A、x/2B、x%21=0C、x%2=0D、x%2=1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于x為大于1的奇數(shù),因此x%2取余的值為1,和0不相等。13、下列描述中正確的是A、軟件測(cè)試的主要目的是發(fā)現(xiàn)程序中的錯(cuò)誤B、軟件測(cè)試的主要目的是確定程序中錯(cuò)誤的位置C、為了提高軟件測(cè)試的效率,最好由程序編制者自己來完成軟件測(cè)試的工作D、軟件測(cè)試是證明軟件沒有錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。一個(gè)好的測(cè)試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的用例;一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。為了達(dá)到好的測(cè)試效果,應(yīng)該由獨(dú)立的第三方來構(gòu)造測(cè)試,程序員應(yīng)盡量避免檢查自己的程序。14、以下敘述中正確的是()。A、char,c1,c2,*c3,c4[40];是合法的變量定義語句B、數(shù)組下標(biāo)的下限由數(shù)組中第一個(gè)非零元素的位置決定C、數(shù)組下標(biāo)的下限由數(shù)組中第一個(gè)被賦值元素的位置決定D、數(shù)組下標(biāo)的下限是1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:A選項(xiàng)正確,charc1,c2,*c3,c4[40]表示定義了兩個(gè)字符變量c1、c2,一個(gè)字符指針c3,一個(gè)字符數(shù)組c4。數(shù)組的下限永遠(yuǎn)為0,選項(xiàng)B、C、D錯(cuò),答案選A。15、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是A、軟件集成測(cè)試計(jì)劃B、軟件詳細(xì)設(shè)計(jì)說明書C、用戶手冊(cè)D、軟件需求規(guī)格說明書標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在軟件開發(fā)過程中,需求分析階段產(chǎn)生的主要文檔是軟件需求規(guī)格說明書。16、一間宿舍可住多個(gè)學(xué)生,則實(shí)體宿舍和學(xué)生之間的聯(lián)系是A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:兩個(gè)實(shí)體集間的聯(lián)系可以有下面幾種:一對(duì)一的聯(lián)系、一對(duì)多或多對(duì)一的聯(lián)系和多對(duì)多的聯(lián)系。由于一個(gè)宿舍可以住多個(gè)學(xué)生,所以它們的聯(lián)系是一對(duì)多聯(lián)系。17、一個(gè)教師講授多門課程,一門課程由多個(gè)教師講授。則實(shí)體教師和課程間的聯(lián)系是A、1:1聯(lián)系B、1:m聯(lián)系C、m:1聯(lián)系D、m:n聯(lián)系標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一個(gè)教師可講授多門課程,一門課程可由多個(gè)教師講授,則實(shí)體教師和課程的聯(lián)系是多對(duì)多的聯(lián)系。18、關(guān)于C語言程序的敘述中正確的是()。A、當(dāng)用scanf從鍵盤輸入數(shù)據(jù)時(shí),每行數(shù)據(jù)在未按下回車鍵(Enter鍵)前,可以任意修改B、復(fù)合語句存語法上包含多條語句,其中不能定義局部變量C、空語句就是指程序中的空行D、花括號(hào)對(duì){}只能用來表示函數(shù)的開頭和結(jié)尾,不能用于其他目的標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:當(dāng)使用scanf函數(shù)從鍵盤輸入數(shù)據(jù)時(shí),可以輸入間隔符,但輸入回車后scanf函數(shù)即接收了這一行數(shù)據(jù),不能再修改,選項(xiàng)A正確;在復(fù)合語句中可以定義變量為局部變量,選項(xiàng)B錯(cuò)誤;而空語句為“;”,不是空行,選項(xiàng)C錯(cuò)誤;對(duì)于選項(xiàng)D,{}還可以表明復(fù)合語句的開頭結(jié)尾,或者循環(huán)體的開頭結(jié)尾等,選項(xiàng)D錯(cuò)誤。19、有以下程序#includevoidmain(){ints;scanf("%d",&s);while(s>0){switch(s){case1:printf("%d",s+5);case2:printf(“%d”,s+4);break;case3:printf(“%d”,s+3);default:printf(“%d”,s+1);break;}scanf(“%d”,&s);}}運(yùn)行時(shí),若輸入123450,則輸出結(jié)果是A、66656B、6566456C、66666D、6666656標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:這道試題主要考查了switch和break語句,當(dāng)變量s的值為1時(shí),執(zhí)行case1、case2兩條語句,輸出65;當(dāng)變量s的值為2時(shí),執(zhí)行case2語句,輸出6;變量s的值為3時(shí),執(zhí)行case3、default兩條語句,輸出64;變量s的值為4時(shí),執(zhí)行default語句,輸入5;變量s的值為5時(shí),執(zhí)行default語句,輸出6:變量s的值為0時(shí),程序運(yùn)行結(jié)束。20、以下選項(xiàng)中不屬于C語言程序運(yùn)算符的是A、sizeofB、()C、<>D、&&標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:sizeof為測(cè)試內(nèi)存的運(yùn)算符,()為算術(shù)運(yùn)算符,&&為邏輯運(yùn)算符。而<>不是C語言的運(yùn)算符,C語言中!=表示不等于。21、以下敘述中正確的是A、C語言程序總是從最前面的函數(shù)開始執(zhí)行B、C語言程序總是從main函數(shù)開始執(zhí)行C、C語言程序中main函數(shù)必須放在程序的開始位置D、C語言程序所調(diào)用的函數(shù)必須放在main函數(shù)的前面標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語言中一個(gè)源程序都有一個(gè)且只能有一個(gè)main函數(shù),即主函數(shù);C語言規(guī)定必須用main作為主函數(shù)名。其后的一對(duì)圓括號(hào)中可以是空的,但不能省略。程序中的main()是主函數(shù)的起始行,也是C程序執(zhí)行的起始行。每一個(gè)程序都必須有一個(gè)且只能有一個(gè)主函數(shù)。一個(gè)C程序總是從主函數(shù)開始執(zhí)行,到main函數(shù)體執(zhí)行完后結(jié)束,而不論main函數(shù)在整個(gè)程序中的位置如何。而調(diào)用函數(shù)的定義位置和調(diào)用沒有直接關(guān)系。22、下列定義變量的語句中錯(cuò)誤的是A、floatUS$;B、doubleint_;C、charFor;D、im_int;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語言規(guī)定,變量的標(biāo)識(shí)符只能由字母、數(shù)字或下劃線3種字符組成,且首字符必須為字母或下劃線。在C語言中大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符。選項(xiàng)B)定義的變量標(biāo)識(shí)符int和選項(xiàng)D)定義的變量標(biāo)識(shí)符int與C語言的關(guān)鍵字int是不同的,是正確的變量標(biāo)識(shí)。選項(xiàng)C)定義的變量標(biāo)識(shí)符For與C語言中的關(guān)鍵字for是兩個(gè)不同的標(biāo)識(shí)符,而在選項(xiàng)A)包含有特殊字符$,因而其不符合C語言的變量命名規(guī)定。23、用樹形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型是A、關(guān)系模型B、網(wǎng)狀模型C、層次模型D、以上三個(gè)都是標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),這種結(jié)構(gòu)方式在現(xiàn)實(shí)世界中很普遍,它們自頂向下、層次分明。24、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是A、自然連接B、差C、交D、并標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由三個(gè)關(guān)系R、S和T的結(jié)構(gòu)可以知道,關(guān)系T是由關(guān)系R、S經(jīng)過差運(yùn)算得到的。25、以下選項(xiàng)中合法的常量是A、2.7eB、999C、123E0.2D、0Xab標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:0xab是十六進(jìn)制表示的常量。26、有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20]={’’One*World’’,’’One*Dream!’’},*p=str[1];printf(’’%d,’’,strlen(p));printf(’’%s\n’’,p);}程序的運(yùn)行結(jié)果是()。A、10,One*Dream!B、9,One*Dream!C、9,One*W0rldD、10,One*World標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:p是指向二維字符數(shù)組第二行One*Dream!的數(shù)組指針,所以長(zhǎng)度是10,打印輸出的也是該字符串。27、以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是A、x/2B、x%2==0C、x%2!=0D、x%2==1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1。所以選項(xiàng)B)等于關(guān)系表達(dá)式的結(jié)果為假,即等于0。28、有以下程序:#include<stdio.h>main(){FILE*pf;char*s1="China",*s2="Beijing";pf=fopen.("abc.dat","wb+");fwrite(s2,7,1,pf);rewind(pf);/*文件位置指針回到文件開頭*/fwrite(s1,5,1,pf);fclose(pf);}程序執(zhí)行后,abc.dat文件的內(nèi)容是()。A、ChinaB、ChinangC、ChinaBeijingD、BeijingChina標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查文件操作函數(shù):fwrite和rewind函數(shù)。題目中先是將s2字符串寫入adc.dat中,然后將寫指針回到文件開頭,然后寫入s1字符串,那么s1字符串就將前5個(gè)字符覆蓋,所以最終結(jié)果為Chinang,B選項(xiàng)正確。29、有以下程序#include#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,10B、10,64C、64,10D、64,64標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:根據(jù)題目中宏f(x)的定義,f(a+1)=a+1*a+1*a+1=a+a+a+1=10,而f((a+1))=(a+1)*(a+1)*(a+1)=4*4*4=64。30、有以下程序#includevoidfun(char**p){++p;printf("%s\n”,"p);}main(){char*a[]=("Morning","Afternoon","Evening","Night");fun(a);}程序的運(yùn)行結(jié)果是A、fternoonB、MorningC、orningD、Afternoon標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在程序中,指針的指針變量a和p都是指向字符串的指針。執(zhí)行fun(a)語句時(shí),p指向的是7符串?dāng)?shù)組a的第一個(gè)字符串“Moming”,p自加1之后,*p指向了字符串?dāng)?shù)組a的第2個(gè)字符串“Aftermoon”。31、設(shè)有定義:inta=1,b=2,c=3;以下語句中執(zhí)行效果與其它三個(gè)不同的是A、if(a>b)c=a;a=b;b=c;B、if(a>b){c=a,a=b,b=c;}C、if(a>b)c=a,a=b,b=c;D、if(a>b){c=a;a=b;b=c;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語言中,用分號(hào)表示一條語句的結(jié)束,用{}把幾條語句放在一塊表示一個(gè)語句塊,其整體表示一個(gè)功能。因而在題目給出的四個(gè)選項(xiàng)中,選項(xiàng)B、C、D表示的功能相同,而選項(xiàng)A表示的是一條if語句,兩條賦值語句。32、有以下程序,程序運(yùn)行后的輸出結(jié)果是main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}A、12353514B、12353513C、12343514D、12343513標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查自加運(yùn)算符,自加運(yùn)算符++在變量前表示先增加然后再使用,++在變量后表示先使用然再增加。本題中,第一個(gè)prinff語句m++表示先輸出m的值,然后m增加1,因此首先輸出的是12,然后m的值變成13,++n表示n首先增加1變成35然后輸出,因此輸出的是35;在第二個(gè)printf語句中,n++是先輸出n的值然后增加,即輸出35,n的值變?yōu)?6,++m表示先增加m的值再輸出,m的值由13變成14,故最后輸出的是14。33、有以下程序#includemain(){inti,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序的運(yùn)行結(jié)果是()。A、453423B、432543C、233445D、233423標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查循環(huán)嵌套。內(nèi)層循環(huán)是外層循環(huán)的一部分,外層循環(huán)每循環(huán)一次,內(nèi)層循環(huán)要一直循環(huán)到結(jié)束。該程序的執(zhí)行流程就是,外層循環(huán)i從3到1,內(nèi)層循環(huán)j從1到2,每次內(nèi)層循環(huán)輸出i+j的值。內(nèi)層循環(huán)結(jié)束后輸出回車。由此,易得出第一行的輸出結(jié)果為:3+13+2<回車>即45<回車>,以此類推,答案選A。34、有以下程序structS{inta;intb;};main(){structSa,*p=&a;a.a(chǎn)=99;printf("%d\n",___________);}程序要求輸出結(jié)構(gòu)體rfl成員a的數(shù)據(jù),以下不能填入橫線處的內(nèi)容是A、a.a(chǎn)B、*p.a(chǎn)C、p->aD、(*p).a(chǎn)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:如果p指向結(jié)構(gòu)體,那么下面三種形式都可以訪問結(jié)構(gòu)體的成員:結(jié)構(gòu)體變量.成員名、(*p).成員名、p->成員名。35、在一個(gè)C源程序文件中所定義的全局變量,其作用域?yàn)锳、由具體定義位置和extern說明來決定范圍B、所在程序的全部范圍C、所在函數(shù)的全部范圍D、所在文件的全部范圍標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開始,到整個(gè)源文件結(jié)束止。在同一編譯單位內(nèi)用extern說明符擴(kuò)展全局變量的作用域(當(dāng)全局變量定義在后,引用它的函數(shù)在前時(shí),應(yīng)該在引用它的函數(shù)中用extern對(duì)此全局變量進(jìn)行說明,以便通知編譯程序:該變量是一個(gè)已在外部定義了的全局變量,已經(jīng)分配了存儲(chǔ)單元,不需要再為它分配存儲(chǔ)單元。這時(shí)全局變量的作用域從extern說明處起,延伸到該函數(shù)末尾)。當(dāng)一個(gè)程序由多個(gè)編譯單位構(gòu)成,并且在每個(gè)文件中均需要引用同一個(gè)全局變量,這時(shí)只在其中一個(gè)文件中定義所有的全局變量,而在其他用到這些全局變量的文件中用extern對(duì)這些變量進(jìn)行說明。36、以下敘述中正確的是A、不能用字符串常量對(duì)字符數(shù)組名進(jìn)行整體賦值操作B、字符串常量“Hello”會(huì)被隱含處理成一個(gè)無名字符型數(shù)組,它有5個(gè)元素C、“charstr[7]="string!";”在語法上是合法的,運(yùn)行也是安全的D、“char*str;str="Hello";”與“charstr[];str="Hello";”效果是一樣的標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:字符數(shù)組僅僅可以采用定義時(shí)初始化以及輸入得到數(shù)據(jù),在程序其他部分不允許對(duì)其進(jìn)行賦值,字符串常量中除了實(shí)際字符之外還有結(jié)束標(biāo)志,選項(xiàng)B)錯(cuò)誤,而選項(xiàng)C)中,沒有空間存放字符串結(jié)束標(biāo)志,因此運(yùn)行是不安全的。選項(xiàng)D)中第一個(gè)str為指針,可以賦值,而后面的為數(shù)組,在程序中賦值出錯(cuò)。37、有以下程序,程序運(yùn)行后的輸出結(jié)果是#include<stdio.h>#definefix)x*x*xmain(){inta=3,s,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",s,t);}A、10,10B、10,64C、64,10D、64,64標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:根據(jù)題目中宏f(x)的定義,運(yùn)算過程應(yīng)為:s=f(a+1)=a+1*a+1*a+1=a+a+a+1=10,因此最后s的結(jié)果為10,而t=f((a+1))=(a+1)*(a+1)*(a+1)=4*4*4=64的結(jié)果為64。38、若要定義一個(gè)具有5個(gè)元素的整型數(shù)組,以下錯(cuò)誤的定義語句是A、inta[5]={0};B、intb[]={0,0,0,0,0};C、intc[2+3]D、inti=5,d[i];標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查一維數(shù)組的定義,C語言中一維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達(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ò)誤。39、若有以下程序#include<stdio.h>int*f(int*s,int*t){intk;if(*s<*t){k=*s;*s=*t;*t=k;}returns;}main(){inti=3,j=5,*p=&i,*q=&j,*r;r=f(p,q);printf("%d,%d,%d,%d,%d\n",i,j,*p,*q,*r);}則程序的輸出結(jié)果是A、3,5,5,3,5B、3,5,3,5,5C、5,3,5,3,5D、5,3,3,5,5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)f為返回值為指針的函數(shù),主要功能是返回s和t指向空間值大的數(shù)據(jù)的地址,同時(shí)如何s指向空間數(shù)據(jù)大于t指向空間的數(shù)據(jù),那么交換。主函數(shù)p和q指向i和j,值為3和5,j的值大于i的值,因此調(diào)用函數(shù)f以后,返回i的地址,r指向j,同時(shí)i和j的值交換,i=5,j=3,p和q的指向不變,p指向i,q指向j。40、有以下程序:#includevoidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是()。A、321,cbaB、abc,123C、123,abcD、1bc,a23標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:字符串是一個(gè)特殊的數(shù)組,所以按照數(shù)組的規(guī)則,s1應(yīng)該指向的是數(shù)組的首地址,即"abc"的第一個(gè)字符的地址。s2指向的是"123"的第一個(gè)字符的地址。調(diào)用swap函數(shù)之后交換的是兩個(gè)字符串的第一個(gè)字符’a’和’1’的內(nèi)容,所以打印輸出為D。國家二級(jí)C語言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共40題,每題1.0分,共40分。)1、深度為7的二叉樹共有127個(gè)結(jié)點(diǎn),則下列說法中錯(cuò)誤的是()。A、該二叉樹是滿二叉樹B、該二叉樹有一個(gè)度為1的結(jié)點(diǎn)C、該二叉樹是完全二叉樹D、該二叉樹有64個(gè)葉子結(jié)點(diǎn)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:滿二叉樹滿足深度為m的二叉樹最多有2m-1個(gè)結(jié)點(diǎn),本題中二叉樹深度為7且有127個(gè)結(jié)點(diǎn),滿足27-1=127,達(dá)到最大值,故此二叉樹為滿二叉樹,也是完全二叉樹。滿二叉樹第k層上有2k-1結(jié)點(diǎn),則該二叉樹的葉子結(jié)點(diǎn)數(shù)為27-1=64個(gè)。滿二叉樹不存在度為1的結(jié)點(diǎn)。2、某二叉樹有5個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)是A、10B、8C、6D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。3、有以下程序#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語句時(shí),由于表達(dá)式k的值大于0為真,所以不再需要判斷“n++”是否為真,“(k>0∥n++)”表達(dá)式的值為真。“!(k>0∥n++)”表達(dá)式的值為假,所以while語句中的條件不滿足,循環(huán)語句不會(huì)執(zhí)行,變量n的值也不會(huì)加1,所在輸出變量k和n的值是1和2。4、下面不屬于需求分析階段任務(wù)的是A、確定軟件系統(tǒng)的功能需求B、確定軟件系統(tǒng)的性能需求C、需求規(guī)格說明書評(píng)審D、制定軟件集成測(cè)試計(jì)劃標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析階段的工作可分為4個(gè)階段:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評(píng)審。5、if語句的基本形式是:if(表達(dá)式)語句,以下關(guān)于“表達(dá)式”值的敘述中正確的是A、必須是整數(shù)值B、必須是正數(shù)C、可以是任意合法的數(shù)值D、必須是邏輯值標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在if語句中,表達(dá)式可以是任意合法的數(shù)值。當(dāng)其值為非零時(shí),執(zhí)行if語句,為0時(shí)執(zhí)行else語句。6、在帶鏈隊(duì)列中,經(jīng)過一系列正常的操作后,如果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。7、以下敘述中正確的是A、if語句只能嵌套一層B、不能在else子句中再嵌套if語句C、if子句和else子句中可以是任意的合法的C語句D、改變if-else語句的縮進(jìn)格式,會(huì)改變程序的執(zhí)行流程標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:含else子句的if語句的格武為if(表達(dá)式)語句1else語句2其中if和else是C語言的關(guān)鍵字?!罢Z句1”稱為if子句,“語句2”稱為else子句,這些子句只允許為一條語句,若需要多條語句時(shí),則應(yīng)該使用復(fù)合語句,對(duì)于if和else語句的嵌會(huì)原則是比較自由的。8、對(duì)于現(xiàn)實(shí)世界中事物的特征,在實(shí)體一聯(lián)系模型中使用()。A、屬性描述B、關(guān)鍵字描述C、二維表格描述D、實(shí)體描述標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在實(shí)體-聯(lián)系模型中,用屬性來描述現(xiàn)實(shí)世界中對(duì)象的屬性所表示的對(duì)象的性質(zhì)、特征和行為。9、設(shè)有定義:intk=0;,以下選項(xiàng)的4個(gè)表達(dá)式中與其他3個(gè)表達(dá)式的值不相同的是()。A、++kB、k+=1C、k++D、k+1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:++k,先使得k的值自增1后再使用,k++是先取得k的值再將k的值自增1,所以C選項(xiàng)中表達(dá)式的值為0,而其他3個(gè)表達(dá)式的值均為1,所以選擇C選項(xiàng)。10、有以下程序:#includemain(){inti,array[6]={1,5,0,4};for(i=0;i<5;i++)printf(“%d”,array[i]);printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。A、04040B、15040C、15540D、12120標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查一維數(shù)組的輸出。由于數(shù)組中有6個(gè)元素,但初始化數(shù)組的時(shí)候只給出4個(gè)元素,所以array[5]=0,array[6]=0,前面幾位元素依次輸出,不夠位數(shù)補(bǔ)0,所以選項(xiàng)B正確。11、有以下程序main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;}pr2ntf("%d,%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是A、8,11B、10,14C、7,11D、9,18標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在這段程序中變量a的初值等于1,變量b的初值等于2。第1次執(zhí)行for循環(huán)語句后,變量a的值等于3,變量b的值等于3。第2次執(zhí)行for循環(huán)后,變量a等于6,變量b的值等于7。第3次執(zhí)行for循環(huán)后,變量a等于9,變量b的值等于14。第4次執(zhí)行for循環(huán)后,變量a等于10,這時(shí)退出for循環(huán),此時(shí)變量b的值等于14。因而程序輸出變量a,b的值分別為10,14。12、設(shè)有如下程序:#includechars[20]=“Beijing”,*P;P=s:則執(zhí)行P=s;語句后,以下敘述正確的是()。A、s和P都是指針變量B、s數(shù)組中元素的個(gè)數(shù)和P所指字符串長(zhǎng)度相等C、可以用*P表示s[0]D、數(shù)組s中的內(nèi)容和指針變量P中的內(nèi)容相同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序定義了字符數(shù)組s和字符型指針變量p,并且使得p指向數(shù)組,執(zhí)行p=s;語句后,*p即表示s[0];s數(shù)組中元素的個(gè)數(shù)和p所指字符串長(zhǎng)度不相等,因?yàn)閟數(shù)組中元素的個(gè)數(shù)包括字符串結(jié)束標(biāo)志“\0”,而p所指字符串長(zhǎng)度不包括“\0”;s是字符型數(shù)組,p是指針變量,數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容不相同,數(shù)組中存放的是字符串,而指針變量p存放的是數(shù)組的首地址,因此C選項(xiàng)正確。13、若intx=12;doubley=3.141593;則printf(’’%d%8.6f’’,x,y);的輸出結(jié)果是()。A、123.141593B、123.1415930C、12,3.141593D、123.1415930標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查格式化輸出函數(shù)printf,在printf函數(shù)調(diào)用里面首先輸入整型變量x的值12.然后按照’’%8.6f’’格式輸出double類型變量y的值,’’%8.6f’’表示輸出8位,小數(shù)點(diǎn)后輸出6位,這里的8位是指輸出的總長(zhǎng)度。14、以下關(guān)于C語言的敘述中正確的是()。A、預(yù)處理命令通常位于函數(shù)體外面,但也可以位于函數(shù)體中間B、C語言中的變量定義須在其他語句之前C、在C語言程序的書寫中,一個(gè)語句必須單占一行D、一個(gè)C語言源程序可以由一個(gè)或多個(gè)源文件組成,每個(gè)源文件可由自己的main函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:源程序中可以有預(yù)處理命令(include命令僅為其中的一種)。C語言中的變量可以在使用之前的任何位置進(jìn)行定義。C語言程序的書寫中,多個(gè)語句可以位于一行,但為了增強(qiáng)可讀性,一般每行只有一條語句。一個(gè)C語言源程序可以由一個(gè)或多個(gè)源文件組成,但僅可以有一個(gè)main函數(shù)。15、有以下程序#includeintfun(inta,intb){if(b==0)returna;elsereturn(fun(--a,--b));}main(){Printf("%d\n",fun(4,2));}程序的運(yùn)行結(jié)果是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由程序可知函數(shù)fun(inta,intb)是一個(gè)遞歸函數(shù)。所以當(dāng)t函數(shù)中調(diào)用fun(4,2)時(shí),其執(zhí)行過程如下:fun(4,2)->fun(3,1)->fun(2,0),其返回值為2。16、已定義以下函數(shù)intfun(int*P){return*P;}fun函數(shù)的返回值是()。A、一個(gè)整數(shù)B、不確定的值C、形參P中存放的值D、形參P的地址值標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:返回值為指針變量指向的數(shù)據(jù),該數(shù)據(jù)已被定義為整型,因此A選項(xiàng)正確。17、以下程序的輸出結(jié)果是()。#includemain(){inta=8,b=6,m=1;switch(a%4){case0:m++;break;case1:m++;switch(b%3){default:m++;case0:m++;break;}}printf("%d\n",m);}A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查switch語句。因?yàn)閍=8,a%4=0,所以執(zhí)行case0后面的語句,將m加1,遇到break語句跳出switch。18、以下關(guān)于retum語句的敘述中正確的是A、一個(gè)自定義函數(shù)中必須有一條return語句B、一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句C、定義成void類型的函數(shù)中可以有帶返回值的return語句D、沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:return語句主要用于返回函數(shù)的值。在一個(gè)自定義函數(shù)中,可以根據(jù)不同的情況設(shè)置多條return語句返回函數(shù)的值。19、以下選項(xiàng)中,不合法的C語言用戶標(biāo)識(shí)符是A、AaBcB、a-bC、a_bD、_1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語言中的用戶標(biāo)識(shí)符只能由字母,數(shù)字和下劃母組成,并且第一個(gè)字符必須是字母或下劃線,在選項(xiàng)A)中出現(xiàn)了非法的字符--。20、以下選項(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語言中的變量名、函數(shù)名、數(shù)組名、文件名、類型名等。其中標(biāo)識(shí)符構(gòu)成如下:①標(biāo)識(shí)符由字母、數(shù)字和下劃線組成;②第一個(gè)字符必須為字母或下劃線;因此選項(xiàng)A)中數(shù)字開頭,選項(xiàng)B)出現(xiàn)了非法字符%,而選項(xiàng)D)中sizeof為關(guān)鍵字,不能為變量命名。21、以下敘述中正確的是A、continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)B、break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)C、在循環(huán)體內(nèi)使用break語句和continue語句的作用相同D、break語句只能用于switch語句體中標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。continue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中continue語句后面的語句,立刻進(jìn)行下一次的循環(huán)條件判斷,可以理解為僅結(jié)束本次循環(huán)。而break語句可以使程序流程跳出switch語句體,也可用break語句在循環(huán)結(jié)構(gòu)中終止循環(huán)體。22、關(guān)于字符數(shù)組的定義中有語法錯(cuò)誤的是()。A、charstr[3][10];str[1]=’’guest’’;B、charstr[][10]={’’guest’’};C、char*str[3];str[1]=’’guest’’;D、char*str[]={’’guest’’};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查字符數(shù)組的定義和使用。選項(xiàng)A定義了一個(gè)二維字符數(shù)組,第二句是直接給字符數(shù)組賦值,錯(cuò)誤。C語言中不能直接給字符數(shù)組賦值;選項(xiàng),B、C和D都是正確的。23、以下選項(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ú)立模塊組裝成所要求的程序。24、有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen("myfile.dat","w");fputs("abc",fp);felose(fp);fp=fopen("myfile.dat","a+");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str);puts(str);felose(fp);}程序的運(yùn)行結(jié)果是()。A、abcB、28cC、ad9c28D、因類型不一致而出錯(cuò)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查文件操作函數(shù):fprintf()函數(shù)。fprintf()函數(shù)向文件輸出,將輸出的內(nèi)容輸出到硬盤上的文件,或是相當(dāng)于在文件的設(shè)備上執(zhí)行兩次fprintf后,文件中有abc28,所以C選項(xiàng)正確。25、設(shè)變量均已正確定義并賦值,以下與其他三組輸出結(jié)果不同的一組語句是A、x++;printf("%d\n",x);B、++x;printf("%d\n",x);C、n=x++:printf("%d\n",n);D、n=++x;printf("%d\n",n);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查自增運(yùn)算符。++在前表示先自增然后使用,++在后面表示先使用然后自增。選項(xiàng)A中首先執(zhí)行x++,執(zhí)行完后x自增1,然后printf輸出的是x自增后的值;選項(xiàng)B首先執(zhí)行++x,x的值增加1,接著輸出x的值:選項(xiàng)C中++在x的后面,因此n的值是x自增前的值,printf輸出的是x自增前的值;選項(xiàng)D中++在x的前面,因此x首先自增,然后再賦值給n,n的值是x自增后的值,輸出的也是x自增后的值。26、以下選項(xiàng)中正確的定義語句是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語言中,可以用一條語句同時(shí)定義幾個(gè)同類型的變量,變量之間用逗號(hào)隔開。27、已知字符’A’的ASCII代碼值是65,字符變量c1的值是’A’,c2的值是’D’。則執(zhí)行語句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語言中,字符常量

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論