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

下載本文檔

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

文檔簡介

國家二級C語言機(jī)試(選擇題)模擬試卷39(共9套)(共240題)國家二級C語言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、計(jì)算機(jī)能直接執(zhí)行的程序是A、目標(biāo)程序B、可執(zhí)行程序C、匯編程序D、源程序標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:把由高級語言編寫的程序稱為“源程序”,由二進(jìn)制代碼表示的程序稱為“目標(biāo)程序”(后綴名為.obj),由匯編語言編寫的程序稱為“匯編程序”。為了把源程序轉(zhuǎn)換成機(jī)器能接受的目標(biāo)程序,軟件工作者編制了一系列軟件,通過這些軟件可以把用戶按規(guī)定語法寫出的語句一一翻譯成二進(jìn)制的機(jī)器指令。這種具有翻譯功能的軟件稱為“編譯程序”,每種高級語言都有與它對應(yīng)的編譯程序。C源程序經(jīng)過C編譯程序編譯之后生成一個后綴為.obj的二制進(jìn)文件(稱為目標(biāo)文件),這個目標(biāo)程序要和C語言的庫函數(shù)相鏈接生成一個后綴為.exe的文件,這個文件可以在操作系統(tǒng)中直接執(zhí)行,稱為可執(zhí)行程序。2、下列敘述中正確的是()。A、一個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大B、一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小C、一個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小D、算法的時間復(fù)雜度與空間復(fù)雜度沒有直接關(guān)系標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:算法的復(fù)雜度主要包括時間復(fù)雜度和空間復(fù)雜度。算法的時間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,算法的工作量用算法所執(zhí)行的基本運(yùn)算次數(shù)來度量,而算法所執(zhí)行的基本運(yùn)算次數(shù)是問題規(guī)模的函數(shù),即算法的工作量=f(n),其中n是問題的規(guī)模;算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。一個算法所占用的存儲空間包括算法程序所占用的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行過程中所需要的額外空間。根據(jù)各自的定義可知。算法的時間復(fù)雜度與空間復(fù)雜度并不相關(guān)。3、下列各組的排序方法中,最壞情況下比較次數(shù)相同的是A、冒泡排序與快速排序B、簡單插入排序與希爾排序C、堆排序與希爾排序D、快速排序與希爾排序標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:最壞情況下冒泡排序需要比較n(n-1)/2次,即序列逆序的情況。簡單插入排序,無論是否最壞情況,都需要n(n-1)/2次。直接插入排序,最壞情況需要比較次n(n-1)/2次。堆排序,無論是否最壞都要比較O(nlog2n)次。快速排序,最壞情況退化為冒泡排序,需要比較n(n-1)/2次。在最壞情況下,希爾排序所需要的比較次數(shù)為O(n1.5)。4、下列敘述中正確的是A、棧是一種先進(jìn)先出的線性表B、隊(duì)列是一種后進(jìn)先出的線性表C、棧與隊(duì)列都是非線性結(jié)構(gòu)D、棧與隊(duì)列都是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:棧是先進(jìn)后出,隊(duì)列是先進(jìn)先出。棧和隊(duì)列都是一種線性表,屬于線性結(jié)構(gòu)。5、對長度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為A、9B、10C、45D、90標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:線性表的長度為n,最壞情況下冒泡排序需要比較的次數(shù)為n(n-1)/2。6、在數(shù)據(jù)庫管理技術(shù)的發(fā)展中,數(shù)據(jù)獨(dú)立性最高的是()。A、人工管理B、文件系統(tǒng)C、數(shù)據(jù)庫系統(tǒng)D、數(shù)據(jù)模型標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在人工管理階段,數(shù)據(jù)無法共享,冗余度大,不獨(dú)立,完全依賴程序;在文件系統(tǒng)階段,數(shù)據(jù)共享性差;在數(shù)據(jù)庫系統(tǒng)階段,共享性好,獨(dú)立性高。7、下列敘述中正確的是()。A、循環(huán)隊(duì)列屬于隊(duì)列的鏈?zhǔn)酱鎯Y(jié)構(gòu)B、雙向鏈表是二叉樹的鏈?zhǔn)酱鎯Y(jié)構(gòu)C、非線性結(jié)構(gòu)只能采用鏈?zhǔn)酱鎯Y(jié)構(gòu)D、有的非線性結(jié)構(gòu)也可以采用順序存儲結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:循環(huán)隊(duì)列屬于隊(duì)列的順序存儲結(jié)構(gòu),選項(xiàng)A)錯誤;二叉樹的存儲結(jié)構(gòu)為二叉鏈表,選項(xiàng)B)錯誤;非線性結(jié)構(gòu)也可以采用順序存儲結(jié)構(gòu),因此選項(xiàng)C)錯誤,選項(xiàng)D)正確,答案為D)。8、以下不合法的字符常量是A、’\"B、’\\’C、’\018’D、’Lxcc’標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在C語言中,一個字符常量代表ASCII字符集中的一個字符,在程序中用單引號把一個字符括起來用為字符常量。轉(zhuǎn)義字符常量也是必須括在一對單引號內(nèi),以一個反斜線開頭后跟一個特定的字符,用來代表某一個特定的ASCII字符。在選項(xiàng)C中,’\018’是用八進(jìn)制數(shù)來代表,一個字符常量,所以其中的數(shù)字只能小于8,并不包括8。9、若有說明intx,y=2,*p=&x;,則能完成x=y賦值功能的語句是()。A、x=*p;B、x=&y;C、x=**p;D、*p=*&y;標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:由于*p與x等價,*&y與y等價,選項(xiàng)A)表示的是x=x;選項(xiàng)B)、C)將地址賦給整型常量是錯誤的;只有選項(xiàng)D)可以實(shí)現(xiàn)賦值。10、以下敘述中正確的是A、對于邏輯表達(dá)式:a++&&b++,設(shè)a的值為0,則求解表達(dá)式的值后,b的值會發(fā)生改變B、對于邏輯表達(dá)式:a++‖b++,設(shè)a的值為1,則求解表達(dá)式的值后,b的值會發(fā)生改變C、關(guān)系運(yùn)算符的結(jié)果有三利1:0,1,-1D、else不是一條獨(dú)立的語句,它只是if語句的一部分標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:else不能單獨(dú)使用,和if匹配使用,要注意邏輯與運(yùn)算和邏輯或運(yùn)算出現(xiàn)的短路現(xiàn)象,關(guān)系運(yùn)算結(jié)果僅有0和1。11、下面程序運(yùn)行后的輸出結(jié)果是()。#include<stdio.h>main(){inta[5]={1,0,4,2,0},b[5]={1,2,3,4,5},i,s=0;for(i=0;i<5;i++)s=s+b[a[i]];printf(’’%d\n’’,s);}A、12B、15C、11D、8標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:這道題目是計(jì)算一維數(shù)組b中某些元素的和。這些元素的下標(biāo)值是一維數(shù)組a中元素值。s=0+b[1]+b[0]+b[4]+b[2]+b[0]=2+1+5+3+1=12。12、以下敘述中正確的是()。A、char,c1,c2,*c3,c4[40];是合法的變量定義語句B、數(shù)組下標(biāo)的下限由數(shù)組中第一個非零元素的位置決定C、數(shù)組下標(biāo)的下限由數(shù)組中第一個被賦值元素的位置決定D、數(shù)組下標(biāo)的下限是1標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:A選項(xiàng)正確,charc1,c2,*c3,c4[40]表示定義了兩個字符變量c1、c2,一個字符指針c3,一個字符數(shù)組c4。數(shù)組的下限永遠(yuǎn)為0,選項(xiàng)B、C、D錯,答案選A。13、有以下程序#includemain(){intx=l,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是A、a=1,b=1B、a=1,b=0C、a=2,b=1D、a=2,b=2標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查的是用switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu),首先進(jìn)入第一個switch(x)判斷,進(jìn)入case1中進(jìn)行嵌套判斷,如果switch(y)也成立,a自加1,遇到break,退出嵌套,接著執(zhí)行case2,a自加為2,b自加為1,遇到break,結(jié)束循環(huán),此時a=2,b=1。14、關(guān)于“while(條件表達(dá)式)循環(huán)體”,以下敘述正確的是A、循環(huán)體的執(zhí)行次數(shù)總是比條件表達(dá)式的執(zhí)行次數(shù)多一次B、條件表達(dá)式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)一樣C、條件表達(dá)式的執(zhí)行次數(shù)總是比循環(huán)體的執(zhí)行次數(shù)多一次D、條件表達(dá)式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)無關(guān)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:while語句中表達(dá)式是循環(huán)條件,語句為循環(huán)體。while語句中當(dāng)表達(dá)式計(jì)算的值為真(非0)時,執(zhí)行循環(huán)體語句。因此條件表達(dá)式執(zhí)行的次數(shù)總是比循環(huán)體多一次。15、下列敘述中正確的是A、在switch語句中必須使用defaultB、break語句必須與switch語句中的case配對使用C、在switch語句中,不一定使用break語句D、break語句只能用于switch語句標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:break為C語言關(guān)鍵字,又稱間斷語句。break語句的功能是跳出正在執(zhí)行的條件語句或循環(huán)語句。它可以出現(xiàn)在switch語句中,也可以出現(xiàn)在循環(huán)語句中。default是關(guān)鍵字,起標(biāo)號的作用,代表所有case標(biāo)號之外的那些標(biāo)號。default標(biāo)號可以出現(xiàn)在語句體中任何標(biāo)號位置上。在switch語句體中也可以沒有default標(biāo)號。16、在黑盒測試方法中,設(shè)計(jì)測試用例的根據(jù)是A、數(shù)據(jù)結(jié)構(gòu)B、程序調(diào)用規(guī)則C、模塊間的邏輯關(guān)系D、軟件要完成的功能標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對軟件界面和軟件功能進(jìn)行測試。17、若函數(shù)調(diào)用時的實(shí)參為變量,下列關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是()。A、函數(shù)的形參和實(shí)參分別占用不同的存儲單元B、形參只是形式上的存在,不占用具體存儲單元C、同名的實(shí)參和形參占同一存儲單元D、函數(shù)的實(shí)參和其對應(yīng)的形參共占同一存儲單元標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題重點(diǎn)考查的是函數(shù)的形參和實(shí)參。在定義函數(shù)時,函數(shù)名后面括弧中的變量名稱為“形式參數(shù)”(簡稱形參),在主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面括弧中的參數(shù)(可以是一個表達(dá)式)稱為“實(shí)際參數(shù)”(簡稱實(shí)參)。C語言規(guī)定,實(shí)參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元,因此A選項(xiàng)正確。18、以下不能輸出字符A的語句是(注:字符A的ASCII碼值為65,字符a的ASCII碼值為97)A、printf("%c\n",’a’-32);B、printf("%d\n",’A’);C、printf("%c\n",65);D、printf("%c\n",’B’-1);標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:在選項(xiàng)B)的輸出函數(shù)中,大寫字符’A’以整型數(shù)據(jù)的形式輸出。19、下列敘述中正確的是A、數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余B、經(jīng)規(guī)范化后的數(shù)據(jù)庫系統(tǒng)避免了一切冗余C、數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)D、數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)據(jù)庫主要特點(diǎn):實(shí)現(xiàn)數(shù)據(jù)共享、減少數(shù)據(jù)的冗余度、數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)實(shí)現(xiàn)集中控制、數(shù)據(jù)一致性和可維護(hù)性,以確保數(shù)據(jù)的安全性和可靠性和故障恢復(fù)。所謂數(shù)據(jù)一致性,就是當(dāng)多個用戶試圖同時訪問一個數(shù)據(jù)庫,它們的事務(wù)同時使用相同的數(shù)據(jù)時,可能會發(fā)生以下四種情況:丟失更新、未確定的相關(guān)性、不一致的分析和幻想讀。20、可在C程序中用作用戶標(biāo)識符的一組標(biāo)識符是A、and_2007B、Datey-m-dC、HiDr.TomD、caseBig1標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查用戶標(biāo)識符,C語言中,用戶標(biāo)識符只能由字母、下劃線和數(shù)組組成,且必須以字母或者下劃線開始。選項(xiàng)A)正確;選項(xiàng)B)中使用了字符“-”;選項(xiàng)C)使用了字符“.”;選項(xiàng)D)中的case是C語言關(guān)鍵字,不能作為用戶標(biāo)識符。21、以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時,值為0的表達(dá)式是A、x/2B、x%2!=0C、x%2==0D、x%2==1標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:由于x為大于1的奇數(shù),因此x%2取余的值為1,和0不相等。22、若有定義語句:intyear=2009,*p=&year;以下不能使變量year中的值增至2010的語句是A、(*p)++;B、*p++;C、++(*p);D、*p+=1;標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:由于自加運(yùn)算符++的運(yùn)算級別高于間接運(yùn)算*的運(yùn)算級別,所以B選項(xiàng)的表達(dá)式*p++不能使變量year中的值增至2010。因此B選項(xiàng)正確。23、下面選項(xiàng)中的程序段,沒有編譯錯誤的是A、char*sp,s[10];sp="Hello";B、char*sp,s[10];s="Hello";C、charstr1[10]="computer",str2[10];str2=str1;D、charmark[];mark="PROGRAM";標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查字符數(shù)組的初始化以及指向字符串的指針,B選項(xiàng)不能直接將字符串賦值給數(shù)組名,C選項(xiàng)不能將兩個字符數(shù)組直接互相賦值,D選項(xiàng)中不能這樣定義charmark[],必須指定長度或者直接初始化。24、以下敘述中錯誤的是A、gets函數(shù)用于從終端讀入字符串B、getchar函數(shù)用于從磁盤文件讀入字符C、fputs函數(shù)用于把字符串輸出到文件D、fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題考查的是輸入輸出函數(shù)的使用,gets和getchar函數(shù)用于從標(biāo)準(zhǔn)輸入設(shè)備終端讀入字符串和字符,并非從磁盤文件讀入,fputs用于把字符串輸出到文件,fwrite用于以二進(jìn)制形式輸出數(shù)據(jù)到文件。25、以下語句中存在語法錯誤的是()。A、charss[6][20];ss[1]="right?";B、charss()[20]={"right?"};C、char*ss[6];ss[1]="right?";D、char*ss()={"right?"};標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)組定義后,不可以對數(shù)組整體賦值,s是二維數(shù)組,因ss[1]是一維字符數(shù)組,即字符串,字符串賦值可以使用strcpy(ss[1],"right");這樣的形式,而選項(xiàng)A中對二維數(shù)組中的第"1"維(相當(dāng)于一個一維數(shù)組)賦值,是不可以的。選項(xiàng)B和D是定義時對數(shù)組初始化,這是可以的。選項(xiàng)C中,將字符串在內(nèi)存中的首地址賦給指針數(shù)組的一個元素,這是可以的。國家二級C語言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是()。A、在棧中,棧頂指針的動態(tài)變化決定棧中元素的個數(shù)B、在循環(huán)隊(duì)列中,隊(duì)尾指針的動態(tài)變化決定隊(duì)列的長度C、在循環(huán)鏈表中,頭指針和鏈尾指針的動態(tài)變化決定鏈表的長度D、在線性鏈表中,頭指針和鏈尾指針的動態(tài)變化決定鏈表的長度標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在棧中,通常用指針top來指示棧頂?shù)奈恢?,用指針bottom指向棧底。棧頂指針top動態(tài)反應(yīng)了棧中元素的變化情況。在循環(huán)隊(duì)列中,隊(duì)頭指針和隊(duì)尾指針的動態(tài)變化決定隊(duì)列的長度。鏈?zhǔn)酱鎯Y(jié)構(gòu)中,各數(shù)據(jù)結(jié)點(diǎn)的存儲序號是不連續(xù)的,并且各結(jié)點(diǎn)在存儲空間中的位置關(guān)系與邏輯關(guān)系也不一致,故頭指針和尾指針或棧頂指針無法決定鏈表長度。2、以下敘述中正確的是A、可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行B、C語言程序?qū)脑闯绦蛑械谝粋€函數(shù)開始執(zhí)行C、main的各種大小寫拼寫形式都可以作為主函數(shù)名,如:MAIN,Main等D、C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:C語言規(guī)定必須以main作為主函數(shù)名。程序中的main()是主函數(shù)的起始行,也是C程序執(zhí)行的起始行。每一個可執(zhí)行的C程序都必須有一個且只能有一個主函數(shù)。一個C程序中可以包含任意多個不同的函數(shù),但只能有一個主函數(shù)。程序要從main()函數(shù)開始執(zhí)行,最后在main()函數(shù)中結(jié)束。3、在長度為n的有序線性表中進(jìn)行二分查找,最壞情況下需要比較的次數(shù)是A、O(n)B、O(n2)C、0(log2n)D、O(nlog2n)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:對于長度為n的有序線性表,在最壞情況下,二分法查找只需比較log2n次,而順序查找需要比較n次。4、對長度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為()。A、9B、10C、45D、90標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要比較的次數(shù)為n(n一1)/2。5、已知下面的程序段,正確的判斷是()。#defineM2#defineN(m)((M+1)*m)……x=3*(M+N(5));A、程序錯誤,不允許嵌套定義B、x=51C、x=25D、程序錯誤,宏定義不允許有參數(shù)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:C語言中的宏定義允許嵌套定義,也允許帶變量。在對源程序編譯時,先有一個預(yù)處理過程,其中一個任務(wù)就是替換宏定義。預(yù)處理程序掃描源程序若干遍,能夠識別出嵌套的宏定義和帶參數(shù)的宏定義。將參數(shù)代入整理得x=51。6、若有定義:intx[10],*pt=x;,則對x數(shù)組元素的正確引用是()。A、pt+3B、&x[10]C、*(pt+10)D、*(x+3)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:沒有A選項(xiàng)的引用形式。*與&放在一起作用抵消,所以B選項(xiàng)錯誤。最大只能引用到x[9],而*(pt+i)表示引用指針pt所指元素后的第i個元素,所以C選項(xiàng)錯誤,最大只能為*(pt+9)。D選項(xiàng)正確。7、設(shè)intk=0:以下選項(xiàng)的四個表達(dá)式中與其他三個表達(dá)式的值不相同的是()。A、k++B、k+1C、++kD、k+=1標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:選項(xiàng)B、C、D都是對k的值加1,選項(xiàng)A的語句k++表示先利用k的值進(jìn)行運(yùn)算,然后k值才加1。8、有以下程序#includemain(){inta=7;while(a-);printf(’’%dkn’’,a);}程序運(yùn)行后的輸出結(jié)果是A、0B、1C、.1D、7標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在while語句中,先判斷while后面的表達(dá)式是否為0,如果為0,則退出循環(huán),否則執(zhí)行循環(huán)體。在本題中,當(dāng)變量a的值經(jīng)過幾次循環(huán)后,其值等于0時,退出while循環(huán)語句,變量a再執(zhí)行自減運(yùn)算,所以其值等于-1。9、有下列程序:#include<stdio.h>yoidfun(int*a.intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i’j;for(i=0;i<n-1;j++)for(j=i+1j<nj++)if(a[i]<a[j]){t=a[i];a[i]=a[jl;a[j]=t;}}main(){intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)pfintf(’’%d,’’,c[i]);printf(’’\n’’);}程序的運(yùn)行結(jié)果是A、1,2,3,4,9,8,7,6,5,0,B、0,9,8,7,6,5,1,2,3,4,C、0,9,8,7,6,5,4,3,2,1,D、1,2,3,4,5,6,7,8,9,0標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:fun()函數(shù)的功能是對數(shù)組a[]的元素從大到小進(jìn)行排序。所以存主函數(shù)執(zhí)行fun(c+4,6)語句時,將從數(shù)組c的第5個元素開始的后6個元素進(jìn)行從大到小排序。排序之后,數(shù)組c的內(nèi)容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。10、在一個C源程序文件中所定義的全局變量,其作用域?yàn)锳、由具體定義位置和extern說明來決定范圍B、所在程序的全部范圍C、所在函數(shù)的全部范圍D、所在文件的全部范圍標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開始,到整個源文件結(jié)束止。在同一編譯單位內(nèi)用extern說明符擴(kuò)展全局變量的作用域(當(dāng)全局變量定義在后,引用它的函數(shù)在前時,應(yīng)該在引用它的函數(shù)中用extern對此全局變量進(jìn)行說明,以便通知編譯程序:該變量是一個己在外部定義了的全局變量,已經(jīng)分配了存儲單元,不需要再為它分配存儲單元。這時全局變量的作用域從extern說明處起,延伸到該函數(shù)末尾)。當(dāng)一個程序由多個編譯單位構(gòu)成,并且在每個文件中均需要引用同一個全局變量,這時只在其中一個文件中定義所有的全局變量,而在其他用到這些全局變量的文件中用extem對這些變量進(jìn)行說明。11、有如下程序#include#includemain(){printf("%d\n",strlen("0\n011\1"));}程序運(yùn)行后的輸出結(jié)果是()。A、6B、8C、9D、4標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:字符串"0\n011\1"中共有兩個轉(zhuǎn)義字符,分別是?\n?、?\1?,各代表一個字符,strlen()計(jì)算的是字符串的實(shí)際長度(不包含結(jié)束標(biāo)識符),所以輸出結(jié)果為6,答案選A。12、已知字符’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知識點(diǎn)解析:在C語言中,字符常量在內(nèi)存中占一個字節(jié),存放的是字符的ASCII碼值。所有的字符常量都作為整型量來處理。在本題中輸出語句用整型格式輸出字符時,輸出的是其ASCII碼值。因?yàn)樽址疉’和’D’的ASCII碼倩分別為65和68,所以c2-2=68-2=66。13、變量a=01011101,變量b=11110000,若要求將a的高4位取反,低4位不變,所要執(zhí)行的運(yùn)算是()。A、a∧bB、a&bC、a<<2D、a|4標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:題目要求將a的高4位取反,低4位不變,即操作完成之后a的值應(yīng)為10101101。選項(xiàng)A使用異或運(yùn)行,相同為0,相異為1,計(jì)算結(jié)果為10101101;選項(xiàng)D使用位或運(yùn)算,計(jì)算結(jié)果為11111101;選項(xiàng)B使用位與運(yùn)算,計(jì)算結(jié)果為01010000;選項(xiàng)C是把a(bǔ)左移4位,計(jì)算結(jié)果為11010000。14、有以下程序,程序的輸出結(jié)果是main(){charc1=’A’,c2=’Y’;printf("%d,%dha",c1,c2);}A、輸出格式不合法,輸出出錯信息B、65,90C、65,89D、A,Y標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:C語言允許對整型變量賦以字符值,也允許對字符變量賦以整型值。在輸出時,允許把字符變量按整型量輸出,也允許把整型量按字符量輸出。15、以下敘述中正確的是A、結(jié)構(gòu)體類型中的成分只能是C語言中預(yù)先定義的基本數(shù)據(jù)類型B、在定義結(jié)構(gòu)體類型時,編譯程序就為它分配了內(nèi)存空間C、結(jié)構(gòu)體類型中各個成分的類型必須是一致的D、一個結(jié)構(gòu)體類型可以由多個稱為成員(或域)的成分組成標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:結(jié)構(gòu)體類型,它是由若干“成員”組成,每一個成員可以是一個基本數(shù)據(jù)類型或者是一個構(gòu)造類型。在說明和使用之前必須先定義它,也就是構(gòu)造它。定義一個結(jié)構(gòu)的一般形式為:struet結(jié)構(gòu)名{成員列表};成員列表由若干個成員組成,對每個成員也必須作類型說明,其形式為:類型說明符成員名:可以說明類型不同的各個成員。16、有以下程序fun(intx,intY){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n",k);}執(zhí)行后的輸出結(jié)果是A、5,5B、5,11C、11,11D、11,5標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第1次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第1次函數(shù)調(diào)用結(jié)束時,它們的值不釋放保持不變,所以第2次調(diào)用時,局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=na+1”時,i的值為9,因此最終m的值為11。17、下面結(jié)構(gòu)體的定義語句中,錯誤的是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知識點(diǎn)解析:在選項(xiàng)B中,由于在定義完結(jié)構(gòu)體后缺少分號“;”,所以這是一條不完整的語句,因而是錯誤的。18、若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A、getc()B、gets()C、getchar()D、scanf()標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:scanf()語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf()函數(shù)不能輸入空格;getchar()函數(shù)用于輸入字符,其調(diào)用形式為:ch=getchar(),getchar()函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的一個字符賦給變量ch。在輸入時,空格、回車符都將用于字符讀入,而且只有在用戶敲入Enter鍵時,讀入才開始執(zhí)行。gets()函數(shù)的調(diào)用形式為:gets(stradr),其中str_adr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。gets()函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。getc()函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個字符,并把它作為函數(shù)值返回。19、有以下程序:#includevoidfun(char*c){while(*c){if(*c>=’a’&&*c<=’z’)*c=*c一(’a’-’A’);C++;}}voidmain(){chars[81];gets(s);fun(s);puts(s);}當(dāng)執(zhí)行程序時從鍵盤上輸入HelloBeijing<回車>,則程序的輸出結(jié)果是A、HELLOBEIJINGB、HelloBeijingC、helloBeijingD、hELLOBeijing標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:子函數(shù)fun的功能是把小寫字母轉(zhuǎn)換成大寫字母,所以程序的輸出結(jié)果為選項(xiàng)A一20、有以下程序#include<stdio.h>intf(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、10B、8C、9D、7標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查函數(shù)的嵌套調(diào)用。首先計(jì)算f(a,b)與f(a,c),f(a,b)=(b-a)*a=3,f(a,c)=(c-a)*a=6,然后計(jì)算f(3,6)=(6-3)*3=9。21、若有以下程序#includeint*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知識點(diǎn)解析:函數(shù)f為返回值為指針的函數(shù),主要功能是返回s和t指向空間值大的數(shù)據(jù)的地址,同時如何s指向空間數(shù)據(jù)大于t指向空間的數(shù)據(jù),那么交換。主函數(shù)p和q指向i和j,值為3和5.i的值人于i的值,因此調(diào)用函數(shù)f以后,返回j的地址,r指向j,同時i和.j的值交換,i=5,j=3,p和q的指向不變,p指向i,q指向j。22、設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為A、’\0’B、0C、NULLD、非0值標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:ANSIC提供的feof函數(shù)的功能是判斷fp所指的文件的位置是否已達(dá)到文件尾,如果達(dá)到文件尾,則feof函數(shù)的值為1,否則為0,表示文件尚未結(jié)束。23、下列關(guān)于C語言文件的敘述中正確的是A、文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件B、文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件C、文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件D、文件由字符序列組成,其類型只能是文本文件標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在C語言中,對輸入、輸出的數(shù)據(jù)都按“數(shù)據(jù)流”的形式進(jìn)行處理。數(shù)據(jù)可以按文本形式或二進(jìn)制形式存放在介質(zhì)上,因此文件可以按數(shù)據(jù)的仔放形式分為文本文件和二進(jìn)制文件。24、有以下程序#includestructlink{intdata;structlink*next;};main(){structlink*h,a,b;h=&a;a.data=10;a.next=&b;b.data=20;┋}程序運(yùn)行時不能輸出10,20的語句是()。A、printf("%d,%d\n",h->data,a.next.data);B、printf("%d,%d\n",a.data,(*a.next).data);C、printf("%d,%d\n",h->data,(*a.next).data);D、printf("%d,%d\n",a.data,a.next->data);標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:語句"h=&a;"將指針h指向了鏈表結(jié)點(diǎn)a的地址,所以h->data與(*h).data、a.data等價為10,語句"a.next=&b;"將結(jié)點(diǎn)b連接到了結(jié)點(diǎn)a的后面,a.next->data與b.data等價為20,選項(xiàng)A)中引用語句不正確,應(yīng)該為a.next->data,所以答案選A)。25、若fp已定義為指向某文件的指針,且沒有讀到該文件的末尾,則C語言函數(shù)feof(fp)的函數(shù)返回值是A、EOFB、非0C、-1D、0標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查文件的定位,feof函數(shù)的用法是從輸入流讀取數(shù)據(jù),如果到達(dá)文件末尾(遇文件結(jié)束符),eof函數(shù)值為非零值,否則為0,所以選項(xiàng)D正確。國家二級C語言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列關(guān)于線性鏈表的敘述中,正確的是()。A、各數(shù)據(jù)節(jié)點(diǎn)的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致B、各數(shù)據(jù)節(jié)點(diǎn)的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)C、進(jìn)行插入與刪除時,不需要移動表中的元素D、以上都不正確標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)稱為線性鏈表。在鏈?zhǔn)酱鎯Y(jié)構(gòu)中,存儲數(shù)據(jù)結(jié)構(gòu)的存儲空間可以不連續(xù),各數(shù)據(jù)節(jié)點(diǎn)的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。2、在一個容量為15的循環(huán)隊(duì)列中,若頭指針front=6,尾指針rear=9,則循環(huán)隊(duì)列中的元素個數(shù)為A、2B、3C、4D、5標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:循環(huán)隊(duì)列中,rear表示尾指針,front表示頭指針,當(dāng)有元素入隊(duì)時,rear=rear+1,而元素出隊(duì)的時候,front=front+1,當(dāng)rear值大于front值時,隊(duì)列中的元素個數(shù)為rear-front,當(dāng)rear的值小于front時,列隊(duì)中的元素個數(shù)為rear—front+m(m表示隊(duì)列的容量)。3、有以下程序:#includemain(){charx=2,y=2,z;z=(Y<<1)&(x>>1);prinff(“%d\n”,z);}程序的輸出結(jié)果是()。A、1B、0C、4D、8標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題考查位運(yùn)算<<和&。y<<1為4,x>>1為1,二者與運(yùn)算后為0,故B選項(xiàng)正確。4、定義學(xué)生、教師和課程的關(guān)系模式S(S#,Sn,Sd,Dc,Sa)(其屬性分別為學(xué)號、姓名、所在系、所在系的系主任、年齡);C(C#,Cn,P#)(其屬性分別為課程號、課程名、先修課);SC(S#,C#,G)(其屬性分別為學(xué)號、課程號和成績),則該關(guān)系為()。A、第一范式B、第二范式C、第三范式D、BCNF范式標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題中關(guān)系S中的“學(xué)號”列可決定“所在系”列,“所在系”列又可決定“所在系的系主任”,存在傳遞函數(shù)依賴,不滿足第三范式。5、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是A、軟件集成測試計(jì)劃B、軟件詳細(xì)設(shè)計(jì)說明書C、用戶手冊D、軟件需求規(guī)格說明書標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:在軟件開發(fā)過程中,需求分析階段產(chǎn)生的主要文檔是軟件需求規(guī)格說明書。6、若有定義語句:intx=10;,則表達(dá)式x-=x+x的值為()。A、0B、-20C、-10D、10標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:算術(shù)運(yùn)算符+的優(yōu)先級高于-=,且-=的結(jié)合方向?yàn)樽杂蚁蜃?,所以表達(dá)式x-=x+x可以表示成x=x-(x+x)=10-(10+10)=-10,選擇C選項(xiàng)。7、下列條件語句中,輸出結(jié)果與其他語句不同的是A、if(a==0)printf("%d\n",x);elseprintf("%d\n",y);B、if(a==0)printf("%d\n",y);elseprintf("%d\n",x);C、if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);D、if(a)printf("%d\n",x);elseprintf("%d\n",y);標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:選項(xiàng)B、C、D這三條語句都是在變量不等于0的情況下,輸出x;等于0的情況下輸出y,而選項(xiàng)A則正好相反。8、在一棵二叉樹上,第5層的結(jié)點(diǎn)數(shù)最多是()。A、8B、9C、15D、16標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:根據(jù)二叉樹的性質(zhì):二叉樹第i(i≥1)層上至多有2i-1個結(jié)點(diǎn)。得到第5層的結(jié)點(diǎn)數(shù)最多是16個。9、下列敘述中錯誤的是()。A、用戶定義的函數(shù)中可以沒有return語句B、用戶定義的函數(shù)中可以有多個return語句,以便可以調(diào)用一次返回多個函數(shù)值C、用戶定義的函數(shù)中若沒有return語句,則應(yīng)當(dāng)定義函數(shù)為void類型D、函數(shù)的return語句中可以沒有表達(dá)式標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題重點(diǎn)考查函數(shù)返回值的相關(guān)知識。函數(shù)的值只能通過return語句返回主調(diào)函數(shù),在函數(shù)中允許有多個return語句,但每次調(diào)用只能有一個return語句被執(zhí)行,因此只能返回一個函數(shù)值。不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說明符為void。因此選擇B選項(xiàng)。10、有以下程序#includemain(){inta=3;a+=a-=a*a;printf("%d\n",a);}程序的輸出結(jié)果是()。A、-12B、9C、3D、0標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:表達(dá)式"(a+=a-=a*a)",先計(jì)算表達(dá)式"a-=a*a",即"a=a-a*a",結(jié)果為"a=-6"然后計(jì)算"a+=a"即"a=a+a",得a=-12,所以輸出結(jié)果為A)。11、程序中對fun函數(shù)有如下說明void‰();此說明的含義是A、fun函數(shù)無返回值B、fun函數(shù)的返回值可以是任意的數(shù)據(jù)類型C、fun函數(shù)的返回值是無值型的指針類型D、指針fun指向一個函數(shù),該函數(shù)無返同值標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題主要考察函數(shù)的聲明,voidfun()表示fun函數(shù)沒有輸入?yún)?shù),函數(shù)返回void表示函數(shù)無返回值。12、以下函數(shù)按每行8個輸出數(shù)組中的數(shù)據(jù):voidfun(int*w,intn){inti;for(i=0;iA、if(i%8==0)printf("\n");B、if(i/8==0)continue;C、if(i/8==0)pfintf("\n");D、if(i%8==0)continue;標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查判斷語句與循環(huán)語句。欲使每行輸出8個數(shù)據(jù),則必然使用取余運(yùn)算,當(dāng)i%8=0時先輸出一個換行符再輸出字符。選項(xiàng)D)中,continue語句的作用是停止執(zhí)行本次循環(huán)位于continue后面的語句,而進(jìn)入下一次循環(huán)。13、以下敘述中正確的是A、字符常量在內(nèi)存中占2個字節(jié)B、轉(zhuǎn)義字符要用雙引號括起來,以便與普通的字符常量區(qū)分開C、字符常量需要用單引號括起來D、字符常量是不能進(jìn)行關(guān)系運(yùn)算的標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在程序中用單引號把一個字符括起來作為字符常量。轉(zhuǎn)義字符又稱反斜線字符,這些字符常量總是以一個反斜線開頭后跟一個特定的字符,用來代表某一個特定的ASCII字符,這些字符常量也必須括在一對單引號內(nèi),和整型常量一樣,字符常量也可以進(jìn)行關(guān)系運(yùn)算的。14、設(shè)有宏定義:#defineIsDIV(k,n)((k%n==1)?1:0)且變量m已正確定義并賦值,則宏調(diào)用:IsDIV(m,5)&&IsDIV(m,7)為真時所要表達(dá)的是A、判斷m是否能被5和7整除B、判斷m被5或者7整除是否余1C、判斷m被5和7整除是否都余1D、判斷m是否能被5或者7整除標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查宏定義和三目運(yùn)算符。三目運(yùn)算符的格式為:test?語句1:語句2其中,test可以是任何Boolean表達(dá)式。語句1,當(dāng)test是true時執(zhí)行該語句,可以是復(fù)合語句;語句2,當(dāng)test是false時執(zhí)行該語句,可以是復(fù)合語句。isDIV(k,n)要表達(dá)的是當(dāng)k除n的余數(shù)是1時表達(dá)式的值為1,否則為0,所以題中要表達(dá)的是m被5和7整除是否都余1。15、學(xué)校的每個社團(tuán)都有一名團(tuán)長,且一個同學(xué)可同時擔(dān)任多個社團(tuán)的團(tuán)長,則實(shí)體團(tuán)長和實(shí)體社團(tuán)間的聯(lián)系是A、一對多B、多對多C、多對一D、一對一標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:一對多關(guān)系是關(guān)系數(shù)據(jù)庫中兩個表之間的一種關(guān)系,該關(guān)系中第一個表中的單個行可以與第二個表中的一個或多個行相關(guān),但第二個表中的一個行只可以與第一個表中的一個行相關(guān)。本題中,一個團(tuán)長可以對應(yīng)多個社團(tuán),一個社團(tuán)只有一個團(tuán)長,因此是一對多關(guān)系。16、有以下程序#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)果是A、963B、852C、741D、875421標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:y的值的初值為9,所以在for循環(huán)中,當(dāng)y的值為9、6或3時,if語句的條件成立,執(zhí)行輸出句,輸出表達(dá)式--y的值。因?yàn)樽詼p符號在y的前面,所以首先y的自減1,然后再輸出y的值,故輸出結(jié)果為852。17、若有以下程序#includemain(){inta=0,b=0,c=0c=(a+=++b,b+=4);printf("%d,%d,%d\n",a,b,c);}則程序的輸出結(jié)果是A、1,5,1B、1,5,5C、-1,4,4D、-1,4,-1標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:逗號運(yùn)算符的結(jié)合性從左到右,因此逗號表達(dá)式將從左到右進(jìn)行計(jì)算,且逗號運(yùn)算符的優(yōu)先級最低?先計(jì)算a+=++b,結(jié)果a為1,b為1,然后計(jì)算b+=4,b的值為5,逗號表達(dá)式的值為其中最后一個表達(dá)式的值,所以將5賦給變量c,即a為1,b為5,c為5,所以選擇B。18、設(shè)已有定義:floatx:則以下對指針變量P進(jìn)行定義且賦初值的語句中正確的是A、int*p=(float)x;B、float*p=&x;C、floatp=&x;D、float*p=1024;標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:定義指針變量的一般形式為:類型名*指針變量名1,*指針變量名2,……;。對一個指針變量賦值要通過求地址運(yùn)算符(&)獲得變量的地址值,然后把此地址值賦給指針變量。因而在選項(xiàng)A的表達(dá)式中,賦值號的左邊表示定義了指針變量p,而右邊表示求變量x的地址值。19、有以下程序structS{inta;intb;);main(){structSa,*p=&a;a.a(chǎn)=99;pfintf("%d\n",_________);)程序要求輸出結(jié)構(gòu)體中成員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知識點(diǎn)解析:如果p指向結(jié)構(gòu)體,那么下面三種形式都可以訪問結(jié)構(gòu)體的成員:結(jié)構(gòu)體變量.成員名、(*p).成員名、p->成員名。20、以下敘述中正確的是A、結(jié)構(gòu)體類型中的各個成分均不能是數(shù)組或指針B、結(jié)構(gòu)體類型的變量,不能在聲明結(jié)構(gòu)體類型組成時一起定義C、使用typedef定義新類型名后,新類型名與原類型名實(shí)際上是等價的D、元素為結(jié)構(gòu)體類型的數(shù)組,只能在聲明過結(jié)構(gòu)體類型之后,單獨(dú)進(jìn)行定義標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:C語言允許用tyoedef說明一種新類型名,typedef語句的作用僅僅是用“標(biāo)識符”來代表已存在的“類型名”,并未產(chǎn)生新的數(shù)據(jù)類型,原有類型名依然有效。結(jié)構(gòu)體變量定義有下面三種形式;(1)先定義結(jié)構(gòu),再說明結(jié)構(gòu)變量。(2)在定義結(jié)構(gòu)類型的同時說明結(jié)構(gòu)變量。(3)直接說明結(jié)構(gòu)變量。21、若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A、getc()B、gets()C、getchar()D、scanf()標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:scanf()語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf()函數(shù)不能輸入空格;getchar()函數(shù)用于輸入字符,其調(diào)用形式為:ch=getchar(),getchar()函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的一個字符賦給變量ch。在輸入時,空格、回車符都將用于字符讀入,而且只有在用戶敲入Enter鍵時,讀入才開始執(zhí)行。gets()函數(shù)的調(diào)用形式為:gets(str_adr),其中str_adr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。gets()函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。getc()函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個字符,并把它作為函數(shù)值返回。22、以下敘述中錯誤的是()。A、可以通過typedef增加新的類型B、可以用typedef將已存在的類型用一個新的名字來代表C、用typedef定義新的類型名后,原有類型名仍有效D、用typedef可以為各種類型起別名,但不能為變量起別名標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:typedef為類型定義符,使用的一般形式為"typedef原類型名新類型名;",它用于給已知類型取別名,作用僅僅是用"新類型名"代替"原類型名",并沒有產(chǎn)生新的數(shù)據(jù)類型,答案選A。23、以下敘述中錯誤的是A、C程序必須由一個或一個以上的函數(shù)組成B、函數(shù)調(diào)用可以作為一個獨(dú)立的語句存在C、若函數(shù)有返回值,必須通過return語句返回D、函數(shù)形參的值也可以傳回給對應(yīng)的實(shí)參標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:形參是函數(shù)定義時由用戶定義的形式上的變量,實(shí)參是函數(shù)調(diào)用時,主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。在C語言中,實(shí)參向形參傳送數(shù)據(jù)的方式是"值傳遞"。因此D選項(xiàng)正確。24、有下列程序#include<stdio.b>main(){intx=3,y=5,z1,z2;z1=y^x^y;z2=x^y^x;printf("%d,%d\n",z1,z2);}程序執(zhí)行后的輸出結(jié)果是()。A、7,7B、5,3C、8,8D、3,5標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:“^”異或運(yùn)算,其功能是參與運(yùn)算的兩個數(shù),按位異或,如果兩個相應(yīng)位相同,結(jié)果為0,否則為1;異或運(yùn)算滿足如下規(guī)則:1:滿足交換律;2:一個數(shù)與0異或的結(jié)果仍是原數(shù);3:一個數(shù)與1異或的結(jié)果是原數(shù)按位取反;所以題意中,y^x^y等價于y^y^x,等價于0^x,等價于x,即z1=x;x^y^x等價于x^x^y,等價于0^y,等價于y,即z2=y;輸出結(jié)果為:3,5;本題答案為D。25、下列語句組中正確的是()。A、char*s;s="Olympic";B、chars[7];s="Olympic";C、char*s;s={“Olympic"};D、chars[7];s={"Olympic"};標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:字符型指針變量可以用A選項(xiàng)的賦值方法:char*s;s="Olympic"。C選項(xiàng)的寫法:char*s,s={"Olympic"};是錯誤的。字符數(shù)組可以在定義的時候初始化:chars[]={’Olympic”};或者chars[]="Olympic",但是不可以在定義字符數(shù)組后對數(shù)組名賦值(數(shù)組名是常量,代表數(shù)組首地址),所以B選項(xiàng)和D選項(xiàng)都是錯誤的。對于本例,B、D選項(xiàng)中字符數(shù)組s的大小至少為8,才能存放下字符串(字符串的末尾都有結(jié)束標(biāo)志’\0’),同時此時s為字符數(shù)組的地址,是常量,不能為其賦值。國家二級C語言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、設(shè)循環(huán)隊(duì)列的存儲空間為Q(1:m),初始狀態(tài)為空?,F(xiàn)經(jīng)過一系列正常的人隊(duì)與退隊(duì)操作后,front=m,rear=m-1,此后從該循環(huán)隊(duì)列中刪除一個元素,則隊(duì)列中的元素個數(shù)為()。A、m-1B、m-2C、0D、1標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:在循環(huán)隊(duì)列中,如果rear-front>0,則隊(duì)列中的元素個數(shù)為rear-front個;如果rear-front<0,則隊(duì)列中的元素個數(shù)為rear-front+m。該題中m-1<m,即rear-front<0,則該循環(huán)隊(duì)列中的元素個數(shù)為(m-1)-m+m-1。此后從該循環(huán)隊(duì)列中刪除一個元素,則隊(duì)列中的元素個數(shù)為m-1-1=m-2。2、以下敘述正確的是A、C語言程序是由過程和函數(shù)組成的B、C語言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))C、C語言函數(shù)不可以單獨(dú)編譯D、C語言中除了main函數(shù),其他函數(shù)不可作為單獨(dú)文件形式存在標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:在C語言中,允許函數(shù)的嵌套調(diào)用,即遞歸調(diào)用。在C語言中不存在過程的概念,在C語言中函數(shù)允許單獨(dú)編譯,可以作為單獨(dú)的文件形式存在。3、下列關(guān)于棧的敘述中,正確的是A、棧底元素一定足最后入棧的元素B、棧頂元素一定是最先入棧的元素C、棧操作遵循先進(jìn)后出的原則D、以上三種說法都不對標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:棧是限定只能在表的一端進(jìn)行插入和刪除操作的線性表,必須按“后進(jìn)先出”的規(guī)則操作元素。4、以下選項(xiàng)中,合法的一組C語言數(shù)值常量是A、12.0Xa234.5e0B、028.5e-3-0xfC、.1774e1.50abcD、0x8A10.0003.e5標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:八進(jìn)制數(shù)其開頭必須是數(shù)字“0”,其數(shù)字包括0~7,而在選項(xiàng)B中,028是錯誤的。浮點(diǎn)數(shù)據(jù)的指數(shù)形式表示常量中,C語言規(guī)定字母e或E之前必須要有數(shù)字,且e或E之后的指數(shù)必須為整數(shù),而選項(xiàng)C中4e1.5是錯誤的。在選項(xiàng)D中,整型數(shù)據(jù)10,000的表示形式是錯誤的。5、表達(dá)式3.6-5/2+1.2+5%2的值是()。A、4.3B、4.8C、3.3D、3.8標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:計(jì)算5/2,結(jié)果取整數(shù)值2。計(jì)算3.6-2,結(jié)果與高精度數(shù)據(jù)保持一致,即為1.6。計(jì)算1.6+1.2,結(jié)果為2.8。計(jì)算5%2,結(jié)果為1。計(jì)算2.8+1結(jié)果為3.8。所以選擇D選項(xiàng)。6、一個教師講授多門課程,一門課程由多個教師講授。則實(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知識點(diǎn)解析:一個教師可講授多門課程,一門課程可由多個教師講授,則實(shí)體教師和課程的聯(lián)系是多對多的聯(lián)系。7、下面敘述中錯誤的是A、軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤B、對被調(diào)試的程序進(jìn)行“錯誤定位”是程序調(diào)試的必要步驟C、程序調(diào)試通常也稱為DebugD、軟件測試應(yīng)嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。軟件測試要嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性。程序調(diào)試通常也稱Debug,對被調(diào)試的程序進(jìn)行“錯誤”定位是程序調(diào)試的必要步驟。8、以下程序段中,與語句k=a>b?(b>c?1:0):0;功能相同的是()。A、if((a>b)||(b>c))k=1;elsek=0;B、if((a>b)&&(b>c))k=1;elsek-0;C、if(a<=b)k=0;elseif(b<=c)k=1;D、if(a>b)k=1;elseif(b>c)k=1;elsek=0;標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:條件表達(dá)式的含義是,如果表達(dá)式1成立,結(jié)果為表達(dá)式2的值,如果不成立,則為表達(dá)式3的值。所以題干中k的值這樣取值:如果a>b且b>c,k值結(jié)果為1,如果a>b且b<c,則值為0。如果a<b,k值為0,也就是只要a>b與b>c中只要有一個條件不成立,k的值就為0,所以選擇B選項(xiàng)。9、設(shè)有如下關(guān)系表。則下列操作中正確的是A、T=R∩SB、T=R∪SC、T=R×SD、T=R/S標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:關(guān)系代數(shù)的并運(yùn)算是指:設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S的并是由屬于R或?qū)儆赟的元組組成的集合,記為R∪S。形式定義為:R∪S≡{t|t∈R∧t∈S},式中t是元組變量。本題中關(guān)系T是由屬于關(guān)系R的或者屬于關(guān)系S的元組組成,所以T是R∪S的結(jié)果。10、若有以下程序main()finta=6,b=0,c=0;for(;a;){b+=a;a-=++c;}printf("%d,%d,%d\n",a,b,c);}則程序的輸出結(jié)果是A、1,14,3B、0,18,3C、0,14,3D、0,14,6標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:循環(huán)體執(zhí)行三次,a初值6,第一次執(zhí)行循環(huán)體,b=6,a=5。繼續(xù)執(zhí)行循環(huán)體,b=11,a=3,第三次執(zhí)行循環(huán)體,b=14,a=0,循環(huán)退出。11、假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的節(jié)點(diǎn)。則下列選項(xiàng)中可將q所指節(jié)點(diǎn)從鏈表中刪除并釋放該節(jié)點(diǎn)的語句組是()。A、p->next=q->next;free(q);B、p=q->next;free(q);C、p=q;free(q);D、(*p).next=(*q).next;free(p);標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查刪除鏈表中的節(jié)點(diǎn)操作。其方法是將要刪除節(jié)點(diǎn)的上個節(jié)點(diǎn)的下個節(jié)點(diǎn)指向要刪除節(jié)點(diǎn)的下個節(jié)點(diǎn),然后釋放該要刪除的節(jié)點(diǎn),所以選項(xiàng)A正確。12、有以下程序#include#defineN2#defineMN+1#defineNUN(M+1)*M/2main(){printf("%d\n",NUN);}程序運(yùn)行后的輸出結(jié)果是A、4B、8C、9D、6標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:宏展開以后NUM為(2+1+1)*2+1/2,計(jì)算以后值為8。注意在進(jìn)行宏展開的時候.千萬不要試圖計(jì)算,展開以后再進(jìn)行計(jì)算。13、設(shè)有以下函數(shù):voidfun(intn,char*s){……}則下面對函數(shù)指針的定義和賦值均正確的是A、void*pf();pf=fun;B、void(*pf)(int,char*);pf=fun;C、void*pf0;*pf=fun;D、void(*pt)(int,char);pf=&fun;標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:函數(shù)指針的定義形式是:數(shù)據(jù)類型標(biāo)識符(*指針變量名)();void(*pf)()定義了一個沒有返回值的函數(shù)指針pf,在給函數(shù)指針變量賦值時,只需給出函數(shù)名而不必給出參數(shù)。所以給pf給賦值時,把函數(shù)名fun賦給pf即可。14、設(shè)有關(guān)系表學(xué)生S(學(xué)號,姓名,性別,年齡,身份證號),每個學(xué)生學(xué)號唯一。除屬性學(xué)號外,也可以作為鍵的是A、姓名B、身份證號C、姓名,性別,年齡D、學(xué)號,姓名標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:候選鍵是是二維表中能唯一標(biāo)識元組的最小屬性集。一個二維表有多個候選碼,則選定其中一個作為主鍵供用戶使用,學(xué)生學(xué)號與身份證號均是唯一的,都可以作為主鍵,B選項(xiàng)正確。15、若有定義語句:doublea,*p=&a;以下敘述中錯誤的是A、定義語句中的*號是一個說明符B、定義語句中的P只能存放double類型變量的地址C、定義語句中*p=&a把變量a的地址作為初值賦給指針變量PD、定義語句中的,*號是一個間址運(yùn)算符標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:在指針定義語句doublea,*p=&a中,指針變量p前面的*號,只是一個說明符,說明變量p是指針類型的變量。16、有以下程序main(){inta=1,b=2,c=3,x;x=(a^b)&c;printf("%d\n",x);}程序的運(yùn)行結(jié)果是A、1B、2C、3D、0標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:1、2、3的二進(jìn)制形式分別為00000001、00000010、00000011。首先計(jì)算1與2的或運(yùn)算,即1^2=(00000001)^(00000010)=00000011,再將其與3進(jìn)行“與”運(yùn)算,結(jié)果為(00000011)&(00000011)=00000011,即十進(jìn)制數(shù)3。17、以下選項(xiàng)中敘述錯誤的是A、在C程序的同一函數(shù)中,各復(fù)合語句內(nèi)可以定義變量,其作用域僅限本復(fù)合語句內(nèi)B、C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù),賦一次初值C、C程序函數(shù)中定義的自動變量,系統(tǒng)不自動賦確定的初值D、C程序函數(shù)的形參不可以說明為static型變量標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:在函數(shù)定義的靜態(tài)變量,只需要賦值1次,即可保存初始值,不需要每次調(diào)用時都賦初始值。18、有以下程序#includemain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是A、a=1,b=1B、a=1,b=0C、a=2,b=1D、a=2,b=2標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查的是用switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu),首先進(jìn)入第一個switch(x)判斷,進(jìn)入case1中進(jìn)行嵌套判斷,如果switch(y)也成立,a自加1,遇到break,退出嵌套,接著執(zhí)行case2,a自加為2,b自加為1,遇到break,結(jié)束循環(huán),此時a=2,b=1。19、有以下程序#include#includevoidfun(chars[][10],intn){chart;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(s[i][0]>s[j][0]){t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;}}main(){charss[5][10]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運(yùn)行結(jié)果是A、aaaacc,xyB、bcc,aabccC、xy,aaaaccD、aabcc,bcc標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:函數(shù)fun(chars[][10],intn)通過兩重for循環(huán)語句,比較二維字符數(shù)組s[][10]的每個字符串的首字符大小,如果前一個字符串首字符大于后一個字符串的首字符,則交換這兩個字符串的首字符。在主函數(shù)中,語句fun(ss,5)的作用是對二維字符數(shù)組ss[5][10]的5個字符串的首字符進(jìn)行從小到大的排序,不影響各個字符串另外的字符。所以排序結(jié)束后,5個字符串的第一個字符依次變?yōu)閍、a、b、b和x;最后輸出第1個和第4個字符串。20、有以下程序#include<stdio.h>voidmain(){chars[]={"012xy"};inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’a&&s[i]<=’z’)n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是A、0B、3C、5D、2標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:這段程序的功能求出字符串s中字符在小寫字符a到z之間字符的個數(shù)。在程序中字符串s的值為“012xy”,所以在字符串s中符合要求的字符的個數(shù)等于2。21、有以下程序#include<stdio.h>#include<string.h>voidfun(char*w,intm){chars,*p1,*p2;p1=w;p2=w+m-1;while(p1<p2){s=*p1;*p1=*p2;*p2=s;p1++;p2--;}}main(){chara[]="123456";fun(a,strlen(a));puts(a);}A、116611B、161616C、654321D、123456標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:函數(shù)fun的功能是將字符串w中的元素從大到小進(jìn)行排列,所以在主函數(shù)中調(diào)用函數(shù)fun后,字符串a(chǎn)的元素從大到小進(jìn)行了排列。22、有以下程序main(){inta=1,b=2,c=3,x;x=(a^b)&c;printf("%d\n",x);}程序的運(yùn)行結(jié)果是A、1B、2C、3D、0標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:1、2、3的二進(jìn)制形式分別為00000001、00000010、00000011。首先計(jì)算1與2的或運(yùn)算,即1^2=(00000001)^(00000010)=00000011,再將其與3進(jìn)行“與”運(yùn)算,結(jié)果為(00000011)&(00000011)=00000011,即十進(jìn)制數(shù)3。23、以下選項(xiàng)中不合法的標(biāo)識符是()。A、&aB、FORC、printD、00標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:C語言中標(biāo)識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。另外,關(guān)鍵字不能作為標(biāo)識符。因?yàn)镃語言中區(qū)分大小寫,所以B)選項(xiàng)中的"FOR"可以作為標(biāo)識符來用。A)選項(xiàng)中含有非法字符&,所以選擇A)。24、以下選項(xiàng)中不能用作C程序合法常量的是()。A、123B、‘\123’C、1,234D、"\x7D"標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:C選項(xiàng)中不能含有逗號,所以“1,234”不能用作C程序的合法常量。B選項(xiàng)表示的是八進(jìn)制的常量,D選項(xiàng)表示的是十六進(jìn)制的常量。25、以下選項(xiàng)中是非轉(zhuǎn)義字符的是()。A、’\d’B、’\t’C、’\b’D、’\r’標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:C語言中,轉(zhuǎn)義字符又稱反斜線字符,這些字符常量總是以一個反斜線開頭后跟一個特定的字符,題意中,’\t’表示橫向跳若干格,’\b’表示退格符,’\r’表示回車符,選項(xiàng)B、C、D正確,選項(xiàng)A錯誤。故本題答案為A選項(xiàng)。國家二級C語言機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共25題,每題1.0分,共25分。)1、若執(zhí)行下述程序時,若從鍵盤輸入6和8,結(jié)果為()。main(){inta,b,s;scanf(’’%d%d’’,&a,&b);S=a:if(s=b)s*=s:printf(’’%d’’,s);}A、36B、64C、48D、以上都不對標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:首先通過scanf函數(shù)把從鍵盤讀入的數(shù)據(jù)賦給變量a和b,if語句判斷如果a和b不等,執(zhí)行s=s*s=64。2、關(guān)系模型中的關(guān)系模式至少應(yīng)是()。A、1NFB、2NFC、3NFD、BCNF標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:關(guān)系數(shù)據(jù)庫中的關(guān)系是要滿足一定要求的,滿足不同程度要求的為不同的范式。滿足最低要求的叫第一范式,簡稱1NF。在滿足第一范式的基礎(chǔ)上,進(jìn)一步滿足更多要求規(guī)范則是第二范式。然后在滿足第二范式的基礎(chǔ)上,還可以再滿足第三范式,以此類推。對于關(guān)系模式,若其中的每個屬性都已不能再分為簡單項(xiàng),則它屬于第一范式。若某個關(guān)系R為第一范式,并且R中每一個非主屬性完全依賴于R的某個候選鍵,則稱其為第二范式。第二范式消除了非主屬性對主鍵的部分依賴。如果關(guān)系R是第二范式,并且每個非主屬性都不傳遞依賴于R的候選鍵,則稱R為第三范式。(傳遞依賴:在關(guān)系模式中,如果Y→X,X→A,且X不決定Y和A不屬于X,那么Y→A是傳遞依賴。)比第三范式更高級的BCF’范式,它要求所有屬性都不傳遞依賴于關(guān)系的任何候選鍵。3、若有“doublea;”,則正確的輸入語句是()。A、scanf("%lf",a);B、scanf("%f",&a);C、scanf("%lf",&a)D、scanf("%le",a);標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:scanf函數(shù)的調(diào)用形式是:scanf(“格式字符串”,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。a是double型數(shù)據(jù),格式字符串可以用“%lf”,“%f”是浮點(diǎn)型。題中定義變量a為雙精度型變量,雙精度變量的格式符為“%1f”;變量的地址用取地址符“&”加變量名表示,變量a的地址為“&a”。4、設(shè)二叉樹的前序序列與中序序列均為ABCDEFGH,則該二叉樹的后序序列為A、HGFEDCBAB、ABCDEFGHC、ABCDHGFED、DCBAHGFE標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:前序遍歷(DLR)是二叉樹遍歷的一種,也叫做先根遍歷、先序遍歷、前序周游,可記做根左右;中序遍歷(LDR)是二叉樹遍歷的一種,也叫做中根遍歷、中序周游,可記做左根右;后序遍歷(LRD)是二叉樹遍歷的一種,也叫做后根遍歷、后序周游,可記做左右根。根據(jù)題中前序和中序序列均為ABCDEFGH,可畫出二叉樹,該二叉樹是一個子結(jié)點(diǎn)全部在右側(cè)二叉樹,然后根據(jù)后序遍歷方法,可得出后序遍歷為HGFEDCBA。5、以下敘述中正確的是A、對于“for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體”首先要計(jì)算表達(dá)式2的值,以便決定是否開始循環(huán)B、對于“for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體”,只在個別情況下才能轉(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知識點(diǎn)解析:while和do…while語句和for語句很容易進(jìn)行相互轉(zhuǎn)換。對于for循環(huán)的執(zhí)行過程如下:①計(jì)算表達(dá)式1。②計(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)。6、計(jì)算機(jī)能直接執(zhí)行的程序是A、目標(biāo)程序B、可執(zhí)行程序C、匯編程序D、源程序標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:把由高級語言編寫的程序稱為“源程序”,由二進(jìn)制代碼表示的程序稱為“目標(biāo)程序”(后綴名為.obj),由匯編語言編寫的程序稱為“匯編程序”。為了把源程序轉(zhuǎn)換成機(jī)器能接受的目標(biāo)程序,軟件工作者編制了一系列軟件,通過這些軟件可以把用戶按規(guī)定語法寫出的語句一一翻譯成二進(jìn)制的機(jī)器指令。這種具有翻譯功能的軟件稱為“編譯程序”,每種高級語言都有與它對應(yīng)的編譯程序。C源程序經(jīng)過C編譯程序編譯之后生成一個后綴為.obj的二制進(jìn)文件(稱為目標(biāo)文件),這個目標(biāo)程序要和C語言的庫函數(shù)相鏈接生成一個后綴為.exe的文件,這個文件可以在操作系統(tǒng)中直接執(zhí)行,稱為可執(zhí)行程序。7、關(guān)于“while(條件表達(dá)式)循環(huán)體”,以下敘述正確的是()。A、條件表達(dá)式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)無關(guān)B、條件表達(dá)式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)一樣C、條件表達(dá)式的執(zhí)行次數(shù)總是比循環(huán)體的執(zhí)行次數(shù)多一次D、循環(huán)體的執(zhí)行次數(shù)總是比條件表達(dá)式的執(zhí)行次數(shù)多一次標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:while語句中表達(dá)式是循環(huán)條件,語句為循環(huán)體。while語句執(zhí)行時,先計(jì)算表達(dá)式,當(dāng)表達(dá)式計(jì)算的值為真(非0)時,執(zhí)行循環(huán)體語句,若表達(dá)式為假則不執(zhí)行循環(huán)體。因此條件表達(dá)式執(zhí)行的次數(shù)總是比循環(huán)體多一次。8、下列語句組中正確的是()。A、char*s;s={"BOOK!"};B、char*s;s="BOOK!";C、char*s[10];s="BOOK!";D、chars[];s="BOOK!";標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:A選項(xiàng)去掉大括號就正確了;C選項(xiàng)和D選項(xiàng)應(yīng)在定義時賦初值。B選項(xiàng)正確。9、在一個C源程序中所定義的全局變量,其作用域?yàn)锳、所在文件的全部范圍B、所在程序的全部范圍C、所在函數(shù)的全部范圍D、由具體定義位置和extern說明來決定范圍標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查C語言的作用域規(guī)則。在C語言中,全局變量的有效范圍從定義變量的位置開始到本源文件結(jié)束。如果需要在其他源文件中使用該全局變量,則可以在其他源文件中使用extem關(guān)鍵字來聲明該全局變量,這樣該全局變量的作用域就被擴(kuò)展到以extern聲明了該全局變量的位置開始到此源文件結(jié)束。10、設(shè)有定義:inta=1,b=2,c=3;以下語句中執(zhí)行效果與其它三個不同的是A、if(a>b)c=a;a=b;b=c;B、if(a>b){c=a,a=b,b=c;)C、iffa>b)c=a,a=b,b=c;D、if(a>b){c=a;a=b;b=c;)標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在C語言中,用分號表示一條語句的結(jié)束,用{}把幾條語句放在一塊表示一個語句塊,其整體表示一個功能。因而在題目給出的四個選項(xiàng)中,選項(xiàng)B)、C)、D)表示的功能相同,而選項(xiàng)A)表示的是一條if語句,兩條賦值語句。11、C語言中的標(biāo)識符分為關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符,以下敘述正確的是A、關(guān)鍵字可用作用戶標(biāo)識符,但失去原有含義B、在標(biāo)識符中大寫字母和小寫字母被認(rèn)為是相同的字符C、用戶標(biāo)識符可以由字母和數(shù)字任意順序組成D、預(yù)定義標(biāo)識符可用作用戶標(biāo)識符,但失去原有含義標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:預(yù)定義標(biāo)識符是C語言中的標(biāo)識符,在C語言中也有特定的含義,如函數(shù)printf、sca

溫馨提示

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

最新文檔

評論

0/150

提交評論