版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
國家二級C語言機試(選擇題)模擬試卷6(共9套)(共322題)國家二級C語言機試(選擇題)模擬試卷第1套一、選擇題(本題共15題,每題1.0分,共15分。)1、以下敘述中正確的是()。A、在C語言中,預(yù)處理命令行都以“#”開頭B、預(yù)處理命令行必須位于C源程序的起始位置C、#include必須放在C程序的開頭D、C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能標(biāo)準(zhǔn)答案:A知識點解析:預(yù)處理命令是以“#”號開頭的命令,它們不是C語言的可執(zhí)行命令,這些命令應(yīng)該在函數(shù)之外書寫。一般在源文件的最前面書寫,但不是必須在起始位置書寫,所以B、C錯誤。C語言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯等功能,所以D錯誤。2、以下關(guān)于宏的敘述中正確的是()。A、宏替換沒有數(shù)據(jù)類型限制B、宏定義必須位于源程序中所有語句之前C、宏名必須用大寫字母表示D、宏調(diào)用比函數(shù)調(diào)用耗費時間標(biāo)準(zhǔn)答案:A知識點解析:宏定義寫在函數(shù)的花括號外面,作用域為其后的程序,通常在文件的最開頭,所以B選項中的“宏定義必須位于源程序中所有語句之前”是錯誤的。宏名一般用大寫,但不是必須用大寫,所以C選項錯誤。宏展開不占運行時間,只占編譯時間,函數(shù)調(diào)用占運行時間(分配內(nèi)存、保留現(xiàn)場、值傳遞、返回值),所以D選項錯誤。3、有以下程序:#include#definePT3.5;#defineS(x)PT*x*x;main(){inta=1,b=2;printf("%4.1f\n",S(a+b));}程序運行后的輸出結(jié)果是()。A、7.5B、31.5C、程序有錯無輸出結(jié)果D、14.0標(biāo)準(zhǔn)答案:C知識點解析:宏定義不是c語句,末尾不需要分號。所以語句“printf("%4.1f、n",S(a+b));”展開后為“printf("%4.1f\n",3.5;*a+b*a+b;);”所以程序會出現(xiàn)語法錯誤。4、若程序中有宏定義行:#defineN100更哼以下敘述中正確的是()。A、宏定義行中定義了標(biāo)識符N的值為整數(shù)100B、在編譯程序?qū)源程序進行預(yù)處理時用100替換標(biāo)識符NC、上述宏定義行實現(xiàn)將100賦給標(biāo)識符ND、在運行時用100替換標(biāo)識符N標(biāo)準(zhǔn)答案:B知識點解析:本題考查預(yù)編譯相關(guān)知識。宏定義在編譯程序時做了一個簡單的替換,所以選項B正確。5、有以下程序:#include#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf("%d\n",S(k+j));}程序運行后的輸出結(jié)果是()。A、33B、197C、143D、28標(biāo)準(zhǔn)答案:C知識點解析:本題考查帶參數(shù)的宏定義。s為帶參數(shù)的宏定義,運行S(k+j)為4*(k+j)*k+j+1=143,故選項C正確。6、有以下程序:#include#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序運行后的輸出結(jié)果是()。A、0B、-12C、-20D、10標(biāo)準(zhǔn)答案:C知識點解析:本題考查宏定義。宏定義只是做簡單的替換,所以本題中執(zhí)行語句SUB(a+b)}c=(a+b-(a+b)*c=-20,故答案為C選項。7、有以下程序:#include#definef(x)x*x*xmain(){inta=3,s,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",s,t);}程序運行后的輸出結(jié)果是()。A、10,64B、10,10C、64,10D、64,64標(biāo)準(zhǔn)答案:A知識點解析:本題考查宏定義。宏定義只是做個簡單的替換,所以本題中執(zhí)行語句f(a+1)=a+l}a+1}a+l=3*a+1=10,f((a+1))=(a+1)*(a+1)*(a+1)=64,所以答案為A選項。8、有以下程序:#include#defineN5#deftne1N+l#definef(x)(x*M)main(){intil,i2;il=f(2);i2=f(1+1);printf("%d%d\n",i1,i2);}程序的運行結(jié)果是()。A、127B、1212C、1111D、1l7標(biāo)準(zhǔn)答案:D知識點解析:本題考查宏定義。宏定義只是做簡單的替換,所以本題中執(zhí)行語句f(2)=(2*N+1)=ll,執(zhí)行語句f(1+1)=(1+1*N+1)=7。因此選項D正確。9、若有以下程序:#include#defineS(x)x*x#defineT(x)S(x)*S(x)main(){intk=5,j=2;printf("%d,%d\n",S(k+j),T(k+j));}則程序的輸出結(jié)果是()。A、17,289B、49,2401C、17,37D、49,289標(biāo)準(zhǔn)答案:C知識點解析:本題考查宏定義。宏定義只是做簡單的替換,執(zhí)行語句S(k+j)=k+j*k+j=17,T(k+j)=S(k+j)*S(k+j)=k+j*k+j*k+j*k+j=37,因此選項C正確。10、若有以下程序:#include#defineS(x)(x)*(x)#defineT(x)S(x)/S(x)+1main(){intk=3j=2;printf("%d,%d\n",S(k+j),T(k+j));}則程序的輸出結(jié)果是()。A、11,2B、25,2C、11,12D、25,26標(biāo)準(zhǔn)答案:D知識點解析:本題考查宏定義。宏定義只是做簡單的替換,執(zhí)行語句s(k+j)=(k+j)*(k+j)=25,T(k+j)=S(k+j)/S(k+j)+1=(k+j)*(k+j)/(k+j)*(k+j)+1=26,因此選項D正確。11、有以下程序:#include#defineN2#defineMN+1#defineNUM(M4-1)*M/2main(){printf("%d\n",NUM);}程序運行后的輸出結(jié)果是()。A、4B、8C、9D、6標(biāo)準(zhǔn)答案:B知識點解析:本題考查宏定義。宏定義只是做簡單的替換,執(zhí)行語句NUM=(N+1+1)*N+1/2=8,故選項B正確。12、有以下程序:#include#defineSUB(X,Y)(X+1)*Ymain(){inta=3,b=4;printf("%d\n",SUB(a++,b++));}程序運行后的輸出結(jié)果是()。A、25B、20C、12D、16標(biāo)準(zhǔn)答案:D知識點解析:本題考查宏定義。宏定義只是做簡單的替換,++運算符是先使用后自增l,所以語句SUB(a++,b++)=(a+++1)*b++(a+++1)木b++=(3+1)*4=16,選項D正確。13、以下敘述中錯誤的是()。A、C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行過程中進行的B、預(yù)處理命令行的最后不能以分號表示結(jié)束C、#defineMAX是合法的宏定義命令行D、在程序中凡是以“#”開始的語句行都是預(yù)處理命令行標(biāo)準(zhǔn)答案:A知識點解析:本題考查預(yù)處理命令行。預(yù)處理是在程序編譯之前進行的,所以A選項錯誤。14、下面選項中關(guān)于編譯預(yù)處理的敘述正確的是()。A、預(yù)處理命令行必須使用分號結(jié)尾B、凡是以#號開頭的行,都被稱為編譯預(yù)處理命令行C、預(yù)處理命令行不能出現(xiàn)在程序的最后一行D、預(yù)處理命令行的作用域是到最近的函數(shù)結(jié)束處標(biāo)準(zhǔn)答案:B知識點解析:本題考查預(yù)處理命令行。預(yù)處理命令行不能以分號結(jié)尾,所以A選項錯誤。預(yù)處理命令行可以出現(xiàn)在程序的最后一行,預(yù)處理命令行作用域是整個文件,所以C、D選項錯誤。15、有以下程序段:int*p;p=_______malloc(sizeof(int));若要求使p指向一個int型的動態(tài)存儲單元,在橫線處應(yīng)填人的是()。A、(int*)B、intC、int*D、(*int)標(biāo)準(zhǔn)答案:A知識點解析:本題考查malloc函數(shù)的用法。題目中要求p指向一個int型的動態(tài)存儲單元,那么就應(yīng)該將分配的存儲單元轉(zhuǎn)化為int型,所以選項A正確。國家二級C語言機試(選擇題)模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是A、二叉鏈表B、循環(huán)鏈表C、雙向鏈表D、帶鏈的棧標(biāo)準(zhǔn)答案:A知識點解析:在定義的鏈表中,若只含有一個指針域來存放下一個元素地址,稱這樣的鏈表為單鏈表或線性鏈表。帶鏈的??梢杂脕硎占嬎銠C存儲空間中所有空閑的存儲結(jié)點,是線性表。在單鏈表中的結(jié)點中增加一個指針域指向它的直接前件,這樣的鏈表,就稱為雙向鏈表(一個結(jié)點中含有兩個指針),也是線性鏈表。循環(huán)鏈表具有單鏈表的特征,但又不需要增加額外的存貯空間,僅對表的鏈接方式稍做改變,使得對表的處理更加方便靈活,屬于線性鏈表。二叉鏈表是二叉樹的物理實現(xiàn),是一種存儲結(jié)構(gòu),不屬于線性結(jié)構(gòu)。答案為A選項。2、設(shè)循環(huán)隊列的存儲空間為Q(1:35),初始狀態(tài)為front=rear=35?,F(xiàn)經(jīng)過一系列入隊與退隊運算后,front=15,rear=15,則循環(huán)隊列中的元素個數(shù)為A、15B、16C、20D、0或35標(biāo)準(zhǔn)答案:D知識點解析:在循環(huán)隊列中,用隊尾指針rear指向隊列中的隊尾元素,用排頭指針front指向排頭元素的前一個位置。在循環(huán)隊列中進行出隊、入隊操作時,頭尾指針仍要加1,朝前移動。只不過當(dāng)頭尾指針指向向量上界時,其加1操作的結(jié)果是指向向量的下界0。由于入隊時尾指針向前追趕頭指針,出隊時頭指針向前追趕尾指針,故隊空和隊滿時,頭尾指針均相等。答案為D選項。3、下列關(guān)于棧的敘述中,正確的是A、棧底元素一定是最后入棧的元素B、棧頂元素一定是最先入棧的元素C、棧操作遵循先進后出的原則D、以上說法均錯誤標(biāo)準(zhǔn)答案:C知識點解析:棧頂元素總是后被插入的元素,從而也是最先被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。棧的修改是按后進先出的原則進行的。因此,棧稱為先進后出表,或“后進先出”表,所以選擇C。4、在關(guān)系數(shù)據(jù)庫中,用來表示實體間聯(lián)系的是A、屬性B、二維表C、網(wǎng)狀結(jié)構(gòu)D、樹狀結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識點解析:關(guān)系模型實體間的聯(lián)系采用二維表來表示,簡稱表。選項C為網(wǎng)狀模型實體間的聯(lián)系,選項D為層次模型實體間的聯(lián)系,選項A屬性刻畫了實體。5、公司中有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可以有多名職員。則實體部門和職員間的聯(lián)系是A、1:1聯(lián)系B、m:1聯(lián)系C、1:m聯(lián)系D、m:n聯(lián)系標(biāo)準(zhǔn)答案:C知識點解析:兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關(guān)系,主要有一對一聯(lián)系(1:1)、一對多聯(lián)系(1:m)、多對一聯(lián)系(m:1)、多對多聯(lián)系(m:n)。對于每一個實體部門,都有多名職員,則其對應(yīng)的聯(lián)系為一對多聯(lián)系(1:m),答案選C。6、有兩個關(guān)系R和S如下:則由關(guān)系R得到關(guān)系S的操作是()。A、選擇B、投影C、自然連接D、并標(biāo)準(zhǔn)答案:A知識點解析:由關(guān)系R到關(guān)系S為一元運算,排除C和D。關(guān)系S是關(guān)系R的一部分,是通過選擇之后的結(jié)果,因此選A。7、數(shù)據(jù)字典(DD)所定義的對象都包含于A、數(shù)據(jù)流圖(DFD圖)B、程序流程圖C、軟件結(jié)構(gòu)圖D、方框圖標(biāo)準(zhǔn)答案:A知識點解析:在數(shù)據(jù)流圖中,對所有元素都進行了命名,所有名字的定義集中起來就構(gòu)成了數(shù)據(jù)字典。因此選A,而B,C,D都不符合。8、軟件需求規(guī)格說明書的作用不包括A、軟件驗收的依據(jù)B、用戶與開發(fā)人員對軟件要做什么的共同理解C、軟件設(shè)計的依據(jù)D、軟件可行性研究的依據(jù)標(biāo)準(zhǔn)答案:D知識點解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)的重要文檔之一。軟件需求規(guī)格說明書有以下幾個方面的作用。①便于用戶、開發(fā)人員進行理解和交流,B正確;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù),C正確;③作為確認測試和驗收的依據(jù),A正確。9、下面屬于黑盒測試方法的是A、語句覆蓋B、邏輯覆蓋C、邊界值分析D、路徑覆蓋標(biāo)準(zhǔn)答案:C知識點解析:黑盒測試不關(guān)心程序內(nèi)部的邏輯,只是根據(jù)程序的功能說明來設(shè)計測試用例。在使用黑盒測試法時,手頭只需要有程序功能說明就可以了。黑盒測試法分等價類劃分法、邊界值分析法和錯誤推測法,答案為C。而A、B、D均為白盒測試方法。10、下面不屬于軟件設(shè)計階段任務(wù)的是A、軟件總體設(shè)計B、算法設(shè)計C、制定軟件確認測試計劃D、數(shù)據(jù)庫設(shè)計標(biāo)準(zhǔn)答案:C知識點解析:從技術(shù)觀點上看,軟件設(shè)計包括軟件結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計、接口設(shè)計、過程設(shè)計。所以A、B、D正確,C為軟件測試階段的任務(wù)。11、以下敘述中正確的是A、N-S流程圖只能描述簡單的順序結(jié)構(gòu)的程序B、程序的算法只能使用流程圖來描述C、結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)是循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)、順序結(jié)構(gòu)D、計算機可以直接處理C語言程序,不必進行任何轉(zhuǎn)換標(biāo)準(zhǔn)答案:C知識點解析:N-S流程圖是可以描述循環(huán)結(jié)構(gòu),選擇結(jié)構(gòu),順序結(jié)構(gòu)等多種結(jié)構(gòu)的程序,所以A選項錯誤,程序的算法可以用流程圖?偽代碼,N-S結(jié)構(gòu)圖等方法表示,所以B選項錯誤,計算機只能處理二進制表示的目標(biāo)程序,不能直接執(zhí)行由C語言編寫的源程序,所以D選項錯誤。12、以下敘述中正確的是A、書寫源程序時,必須注意縮進格式,否則程序會有編譯錯誤B、程序的主函數(shù)名除main外,也可以使用Main或_mainC、程序可以包含多個主函數(shù),但總是從第一個主函數(shù)處開始執(zhí)行D、在C程序中,模塊化主要是通過函數(shù)來實現(xiàn)的標(biāo)準(zhǔn)答案:D知識點解析:C語言的源程序中對縮進沒有要求,所以A選項錯誤?C語言中區(qū)分大小寫,main函數(shù)不能寫成Main或_main,所以B選項錯誤,一個C程序有且只有一個主函數(shù),所以C選項錯誤。13、C語言中double類型數(shù)據(jù)占字節(jié)數(shù)為A、4B、8C、12D、16標(biāo)準(zhǔn)答案:B知識點解析:double型數(shù)據(jù)在內(nèi)存中占8個字節(jié),float型數(shù)據(jù)占4個字節(jié),int型數(shù)據(jù)占2個字節(jié),char型數(shù)據(jù)占1個字節(jié),所以選擇B。14、以下敘述中正確的是A、語言中的關(guān)鍵字不能作變量名,但可以作為函數(shù)名B、標(biāo)識符的長度不能任意長,最多只能包含16個字符C、標(biāo)識符總是由字母、數(shù)字和下劃線組成,且第一個字符不得為數(shù)字D、用戶自定義的標(biāo)識符必須"見名知義",如果隨意定義,則會出編譯錯誤標(biāo)準(zhǔn)答案:C知識點解析:C語言中的關(guān)鍵字即不能做變量名也不能做用戶函數(shù)名,所以A錯誤,標(biāo)識符的命名規(guī)則,即由下劃線字母數(shù)字組成,且必須以下劃線和字母開始,也不能和關(guān)鍵字一致,不同C語言規(guī)定標(biāo)識符的有效長度可能會不同,但沒有限制最大長度,所以B錯誤,用戶定義的標(biāo)識符只要滿足標(biāo)識符命名規(guī)則沒有特殊要求,不必一定"見名知義",所以D錯誤。15、以下敘述中正確的是A、由printf輸出的數(shù)據(jù)都隱含左對齊B、scanf和printf是C語言提供的輸入和輸出語句C、賦值語句是一種執(zhí)行語句,必須放在函數(shù)的可執(zhí)行部分D、由printf輸出的數(shù)據(jù)的實際精度是由格式控制中的域?qū)捄托?shù)的域?qū)拋硗耆珱Q定的標(biāo)準(zhǔn)答案:C知識點解析:scanf和printf是C語言提供的輸入輸出函數(shù),所以B錯誤,由printf輸出的數(shù)據(jù)都隱含右對齊,所以A錯誤,Printf輸出數(shù)據(jù)所占的寬度由系統(tǒng)決定,所以D錯誤。16、以下敘述中正確的是A、復(fù)合語句在語法上包含多條語句,其中不能定義局部變量B、花括號對{}只能用來表示函數(shù)的開頭和結(jié)尾,不能用于其他目的C、空語句就是指程序中的空行D、當(dāng)用scanf從鍵盤輸入數(shù)據(jù)時,每行數(shù)據(jù)在沒按下回車鍵(Enter鍵)前,可以任意修改標(biāo)準(zhǔn)答案:D知識點解析:復(fù)合語句可以包含多條語句,在其中可以定義局部變量,所以A錯誤,花括號對{}不僅用來表示函數(shù)的開頭和結(jié)尾,也可以用于表示復(fù)合語句,所以B錯誤,C語言中的語句必須以分號";"結(jié)束,所以空語句表示為";",不是空行,所以C錯誤。17、以下敘述中正確的是A、在C語言中,邏輯真值和假值分別對應(yīng)1和0B、關(guān)系運算符兩邊的運算對象可以是C語言中任意合法的表達式C、對于浮點變量x和y,表達式:x==y是非法的,會出編譯錯誤D、分支結(jié)構(gòu)是根據(jù)算術(shù)表達式的結(jié)果來判斷流程走向的標(biāo)準(zhǔn)答案:B知識點解析:A選項中,在C語言中,邏輯真值對應(yīng)非0;C選項中,表達式:x==y是合法的;D選項中,分支結(jié)構(gòu)的流程走向是根據(jù)表達式的值,并不僅僅是算數(shù)表達式的值。因此B選項正確。18、以下敘述中正確的是A、對于邏輯表達式:a++||b++,設(shè)a的值為1,則求解表達式的值后,b的值會發(fā)生改變B、對于邏輯表達式:a++&&b++,設(shè)a的值為0,則求解表達式的值后,b的值會發(fā)生改變C、else不是一條獨立的語句,它只是if語句的一部分D、關(guān)系運算符的結(jié)果有三種:0,1,-1標(biāo)準(zhǔn)答案:C知識點解析:B選項和A選項中,對于邏輯表達式,其中b的值不會因為表達式的結(jié)果發(fā)生改變;D選項中,關(guān)系運算符的結(jié)果有"真"和"假"兩種。因此C選項正確。19、以下敘述中正確的是A、continue語句使得整個循環(huán)終止B、break語句不能用于提前結(jié)束for語句的本層循環(huán)C、使用break語句可以使流程跳出switch語句體D、在for語句中,continue與break的效果是一樣的,可以互換標(biāo)準(zhǔn)答案:C知識點解析:break語句通常用在循環(huán)語句和開關(guān)語句中。當(dāng)break用于開關(guān)語句switch中時,可使程序跳出switch而執(zhí)行switch以后的語句;當(dāng)break語句用于do-while、for、while循環(huán)語句中時,可使程序終止循環(huán)而執(zhí)行循環(huán)后面的語句,即滿足條件時便跳出循環(huán)。continue語句的作用是跳過循環(huán)體中剩余的語句而強行執(zhí)行下一次循環(huán)。A、B和D三個選項中均有錯誤。因此C選項正確。20、以下敘述中正確的是A、循環(huán)發(fā)生嵌套時,最多只能兩層B、三種循環(huán)for,while,do-while可以互相嵌套C、循環(huán)嵌套時,如果不進行縮進形式書寫代碼,則會有編譯錯誤D、for語句的圓括號中的表達式不能都省略掉標(biāo)準(zhǔn)答案:B知識點解析:A選項中,循環(huán)發(fā)生嵌套時,沒有規(guī)定層數(shù);C選項中,循環(huán)嵌套時,書寫代碼時沒有要求必須縮進;D選項中,for語句的圓括號中的表達式都可以省略掉。因此B選項正確。21、下面選項中合法的字符常量是A、XB、’X’C、’abc’D、’\’標(biāo)準(zhǔn)答案:B知識點解析:字符常量是用單引號括起來的一個字符。A選項中,使用雙引號,所以是錯誤的;C選項中,’abc’是字符串,字符常量只能是單個字符,不能是字符串;D選項中,以反斜線"\"開頭的是轉(zhuǎn)義字符。因此B選項正確。22、以下敘述中正確的是A、轉(zhuǎn)義字符要用雙引號括起來,以便與普通的字符常量區(qū)分開B、字符常量在內(nèi)存中占2個字節(jié)C、字符常量需要用單引號括起來D、字符常量是不能進行關(guān)系運算的標(biāo)準(zhǔn)答案:C知識點解析:B選項中,字符常量在內(nèi)存中占1個字節(jié);A選項中,轉(zhuǎn)義字符是以反斜線"\"開頭,后跟一個或幾個字符;D選項中,字符常量可以進行關(guān)系運算,不能參與數(shù)值運算。因此C選項正確。23、以下敘述中正確的是A、用戶自己定義的函數(shù)只能調(diào)用庫函數(shù)B、實用的C語言源程序總是由一個或多個函數(shù)組成C、不同函數(shù)的形式參數(shù)不能使用相同名稱的標(biāo)識符D、在C語言的函數(shù)內(nèi)部,可以定義局部嵌套函數(shù)標(biāo)準(zhǔn)答案:B知識點解析:A選項中,"用戶自己定義的函數(shù)只能調(diào)用庫函數(shù)"描述是不正確的,也可以調(diào)用自定義函數(shù);C選項中,對于不同函數(shù)的形式參數(shù)可以使用相同名稱的標(biāo)識符;D選項中,關(guān)于函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套。因此B選項正確。24、以下敘述中正確的是A、int*p1;int**p2;int*p3;都是合法的定義指針變量的語句B、指針變量只能通過求地址運算符(&)來獲得地址值C、語句p=NULL;與p=\0;是等價的語句D、語句p=NULL;執(zhí)行后,指針p指向地址為0的存儲單元標(biāo)準(zhǔn)答案:A知識點解析:B選項描述不正確,指針變量可以通過求地址運算符(&)來獲得地址值,可以通過指針變量獲得地址值,還可以通過標(biāo)準(zhǔn)函數(shù)獲得地址值;C選項中,p=NULL;和p=0;或p=’\0’;等價;D選項中,語句p=NULL;執(zhí)行后,指針p并不是指向地址為0的存儲單元,而是具有一個確定的值-"空"。因此A選項正確。25、以下敘述中正確的是A、即使不進行強制類型轉(zhuǎn)換,在進行指針賦值運算時,指針變量的基類型也可以不同B、如果企圖通過一個空指針來訪問一個存儲單元,將會得到一個出錯信息C、設(shè)變量p是一個指針變量,則語句p=0;是非法的,應(yīng)該使用p=NULL;D、指針變量之間不能用關(guān)系運算符進行比較標(biāo)準(zhǔn)答案:B知識點解析:A選項描述不正確,指針變量的賦值只能賦予地址,決不能賦予任何其它數(shù)據(jù),否則將引起錯誤;C選項中,p=NULL;和p=0;是等價的;D選項中,指向同一數(shù)組的兩指針變量進行關(guān)系運算可表示它們所值數(shù)組元素之間的關(guān)系。因此B選項正確。26、以下敘述中正確的是A、一條語句只能定義一個數(shù)組B、每個數(shù)組包含一組具有同一類型的變量,這些變量在內(nèi)存中占有連續(xù)的存儲單元C、數(shù)組說明符的一對方括號中只能使用整型常量,而不能使用表達式D、在引用數(shù)組元素時,下標(biāo)表達式可以使用浮點數(shù)標(biāo)準(zhǔn)答案:B知識點解析:A選項中,一條語句只能定義一個數(shù)組是不準(zhǔn)確的,可以通過一條語句定義多個數(shù)組;C選項中,數(shù)組說明符的一對方括號中可以是整型常量,可以是整型常量表達式;D選項中,在引用數(shù)組元素時,下標(biāo)表達式必須是整型的。因此B選項正確。27、以下敘述中正確的是A、數(shù)組下標(biāo)的下限是1B、數(shù)組下標(biāo)的下限由數(shù)組中第一個非零元素的位置決定C、數(shù)組下標(biāo)的下限由數(shù)組中第一個被賦值元素的位置決定D、charc1,c2,*c3,c4[40];是合法的變量定義語句標(biāo)準(zhǔn)答案:D知識點解析:數(shù)組下標(biāo)的下限是0。因此D選項正確。28、以下敘述中正確的是A、語句inta[8]={0};是合法的B、語句inta[]={0};是不合法的,遺漏了數(shù)組的大小C、語句chara[2]={"A","B"};是合法的,定義了一個包含兩個字符的數(shù)組D、語句chara[3];a="AB";是合法的,因為數(shù)組有三個字符空間的容量,可以保存兩個字符標(biāo)準(zhǔn)答案:A知識點解析:B選項中,如給全部元素賦值,則在數(shù)組說明中,可以不給出數(shù)組元素的個數(shù);C選項中,chara[2]={"A","B"};不合法,應(yīng)為chara[2]={’A’,’B’};;D選項中,用字符串方式賦值比用字符逐個賦值要多占1個字節(jié),在該選項中應(yīng)為3個字節(jié)。因此A選項正確。29、下面選項中的程序段,沒有編譯錯誤的是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知識點解析:本題考查字符數(shù)組的初始化以及指向字符串的指針,B選項不能直接將字符串賦值給數(shù)組名,C選項不能將兩個字符數(shù)組直接互相賦值,D選項中不能這樣定義charmark[],必須指定長度或者直接初始化。30、以下敘述中正確的是A、字符串常量"str1"的類型是:字符串?dāng)?shù)據(jù)類型B、有定義語句:charstr1[]="str1";,數(shù)組str1將包含4個元素C、下面的語句用賦初值方式來定義字符串,其中,’\0’是必須的charstr1[]={’s’,’t’,’r’,’1’,’\0’};D、字符數(shù)組的每個元素可存放一個字符,并且最后一個元素必須是’\0’字符標(biāo)準(zhǔn)答案:C知識點解析:本題考查字符數(shù)組的相關(guān)操作,B選項中數(shù)組str1包含了5個元素,其中有結(jié)尾符,A選項中str1的類型不是字符串類型,字符數(shù)組的最后一個元素可以不是’\0’字符。31、以下敘述中正確的是A、字符串?dāng)?shù)組,是指數(shù)組中的每個元素都是一個存放字符串的一維數(shù)組B、charca[3][5]={"A","BB","CCC"};是不合語法的C、charca[][5]={"A","BB","CCC"};是不合語法的D、char*ca[3]={"A","BB","CCC"};是不合語法的標(biāo)準(zhǔn)答案:A知識點解析:本題考查字符串?dāng)?shù)組的相關(guān)知識,選項B、C、D都是合語法的。32、以下敘述中正確的是A、兩個字符串可以用關(guān)系運算符進行大小比較B、函數(shù)調(diào)用strlen(s);會返回字符串s實際占用內(nèi)存的大?。ㄒ宰止?jié)為單位)C、C語言本身沒有提供對字符串進行整體操作的運算符D、當(dāng)拼接兩個字符串時,結(jié)果字符串占用的內(nèi)存空間是兩個原串占用空間的和標(biāo)準(zhǔn)答案:C知識點解析:本題考查字符串處理函數(shù)strlen、strcat、strcmp。B選項中strlen返回的是字符串s實際占用內(nèi)存大小加上結(jié)尾符,A選項中不能用關(guān)系運算符進行大小比較,可以使用strcmp。D選項當(dāng)使用連接函數(shù)strcat時,內(nèi)存空間會減少一個字符位置。33、以下敘述中正確的是A、如果函數(shù)帶有參數(shù),就不能調(diào)用自己B、所有函數(shù)均不能接受函數(shù)名作為實參傳入C、函數(shù)體中的語句不能出現(xiàn)對自己的調(diào)用D、函數(shù)名代表該函數(shù)的入口地址標(biāo)準(zhǔn)答案:D知識點解析:本題考查函數(shù)調(diào)用相關(guān)知識,B選項中函數(shù)可以接受函數(shù)名作為實參傳入,引用函數(shù)名也是指針,C、A選項是錯誤的,因為遞歸函數(shù)就能調(diào)用自己。34、以下敘述中正確的是A、局部變量不能被說明為staticB、只有全局變量才有自己的作用域,函數(shù)中的局部變量沒有作用域C、只有在函數(shù)內(nèi)部定義的變量才是局部變量D、只要是用戶定義的標(biāo)識符,都有一個有效的作用域標(biāo)準(zhǔn)答案:D知識點解析:本題考查局部變量和全局變量作用域,B選項中局部變量也有作用域,C選項中,函數(shù)內(nèi)部定義的也可能是全局變量,A選項錯誤,因為可以定義個靜態(tài)局部變量。35、下面選項中關(guān)于編譯預(yù)處理的敘述正確的是A、預(yù)處理命令行必須使用分號結(jié)尾B、凡是以#號開頭的行,都被稱為編譯預(yù)處理命令行C、預(yù)處理命令行不能出現(xiàn)在程序的最后一行D、預(yù)處理命令行的作用域是到最近的函數(shù)結(jié)束處標(biāo)準(zhǔn)答案:B知識點解析:本題考查預(yù)編譯的預(yù)編譯處理命令行,預(yù)處理命令行不能以分號結(jié)尾,所以A選項錯誤,預(yù)處理命令行可以出現(xiàn)在程序的最后一行,預(yù)處理命令行作用域是整個文件。36、以下敘述中正確的是A、使用typedef說明新類型名時,其格式是:typedef新類型名原類型名;B、在程序中,允許用typedef來說明一種新的類型名C、使用typedef說明新類型名時,后面不能加分號D、在使用typedef改變原類型的名稱后,只能使用新的類型名標(biāo)準(zhǔn)答案:B知識點解析:本題考查typedef的使用方法,typedef對已存在的類型使用一個新的名字,選項A總新類型名應(yīng)該在原類型名之后,C選項中后面要加分號,D選項中可以使用原類型名。37、以下敘述中正確的是A、結(jié)構(gòu)體類型中各個成分的類型必須是一致的B、結(jié)構(gòu)體類型中的成分只能是C語言中預(yù)先定義的基本數(shù)據(jù)類型C、在定義結(jié)構(gòu)體類型時,編譯程序就為它分配了內(nèi)存空間D、一個結(jié)構(gòu)體類型可以由多個稱為成員(或域)的成分組成標(biāo)準(zhǔn)答案:D知識點解析:本題考查結(jié)構(gòu)體類型,結(jié)構(gòu)體類型中的成分可以是結(jié)構(gòu)體,所以B選項錯誤,定義結(jié)構(gòu)體時編譯程序并不會給它分配內(nèi)存空間,所以C選項錯誤,結(jié)構(gòu)體中各個成分的類型可以是不一樣的,所以A選項錯誤。38、以下敘述中正確的是A、使用typedef定義新類型名后,新類型名與原類型名實際上是等價的B、結(jié)構(gòu)體類型中的各個成分均不能是數(shù)組或指針C、結(jié)構(gòu)體類型的變量,不能在聲明結(jié)構(gòu)體類型組成時一起定義D、元素為結(jié)構(gòu)體類型的數(shù)組,只能在聲明過結(jié)構(gòu)體類型之后,單獨進行定義標(biāo)準(zhǔn)答案:A知識點解析:本題考查typedef的使用方法,typedef對已存在的類型使用一個新的名字,結(jié)構(gòu)體類型中的成分可以是數(shù)組和指針,所以B選項錯誤,結(jié)構(gòu)體類型的變量可以在聲明結(jié)構(gòu)體的時候一起定義,C選項錯誤,D選項中可以一起定義。39、下面選項中關(guān)于位運算的敘述正確的是A、位運算的對象只能是整型或字符型數(shù)據(jù)B、位運算符都需要兩個操作數(shù)C、左移運算的結(jié)果總是原操作數(shù)據(jù)2倍D、右移運算時,高位總是補0標(biāo)準(zhǔn)答案:A知識點解析:本題考查位運算。按位取反只需要一個操作數(shù),所以B選項錯誤,左移一位是原操作數(shù)的2倍,其他情況不是,比如左移兩位就是原操作數(shù)的4倍,所以C選項錯誤,右移運算時,高位在某些情況下不是補0。40、下面選項中關(guān)于“文件指針”概念的敘述正確的是A、文件指針是程序中用FILE定義的指針變量B、文件指針就是文件位置指針,表示當(dāng)前讀寫數(shù)據(jù)的位置C、文件指針指向文件在計算機中的存儲位置D、把文件指針傳給fscanf函數(shù),就可以向文本文件中寫入任意的字符標(biāo)準(zhǔn)答案:A知識點解析:在C語言中用一個指針變量指向一個文件,這個指針稱為文件指針。通過文件指針就可對它所指的文件進行各種操作。文件指針不是文件位置指針,所以B、C選項錯誤,D選項中不可以寫入任意的字符。國家二級C語言機試(選擇題)模擬試卷第3套一、選擇題(本題共39題,每題1.0分,共39分。)1、下面關(guān)于算法的敘述中,正確的是()。A、算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)B、算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止C、算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)D、以上三種描述都正確標(biāo)準(zhǔn)答案:B知識點解析:算法在運行過程中需輔助存儲空間的大小稱為算法的空間復(fù)雜度。算法的有窮性是指一個算法必須在執(zhí)行有限的步驟后結(jié)束。2、下列二叉樹描述中,正確的是()。A、任何一棵二叉樹必須有一個度為2的結(jié)點B、二叉樹的度可以小于2C、非空二叉樹有0個或1個根結(jié)點D、至少有2個根結(jié)點標(biāo)準(zhǔn)答案:B知識點解析:二叉樹是由n≥0個結(jié)點的有限集合構(gòu)成,此集合或者為空集,或者由一個根結(jié)點及兩棵互不相交的左右子樹組成,并且左右子樹都是二叉樹。二叉樹可以是空集合,根可以有空的左子樹或空的右子樹。二叉樹不是樹的特殊情況,它們是兩個概念。二叉樹具有如下兩個特點:①非空二叉樹只有一個根結(jié)點;②每一個結(jié)點最多有兩棵子樹,且分別稱為該結(jié)點的左子樹與右子樹。3、如果進棧序列為A,B,C,D,則可能的出棧序列是()。A、C,A,D,BB、B,D,C,AC、C,D,A,BD、任意順序標(biāo)準(zhǔn)答案:B知識點解析:棧的操作原則為后進先出。選項B中出棧順序可按“A進,B進,B出,C進,D進,D出,C出,A出”實現(xiàn)。4、下列各選項中,不屬于序言性注釋的是()。A、程序標(biāo)題B、程序設(shè)計者C、主要算法D、數(shù)據(jù)狀態(tài)標(biāo)準(zhǔn)答案:D知識點解析:注釋一般為序言性注釋和功能性注釋。序言性注釋常位于程序開頭部分,它包括程序標(biāo)題、程序功能說明、主要算法、接口說明、程序位置、開發(fā)簡歷、程序設(shè)計者、復(fù)審者、復(fù)審日期及修改日期等。功能性注釋一般嵌在源程序體之中,用于描述其后的語句或程序的主要功能。5、下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是()。A、內(nèi)模式B、外模式C、概念模式D、邏輯模式標(biāo)準(zhǔn)答案:A知識點解析:數(shù)據(jù)庫管理系統(tǒng)的三級模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。外模式,或子模式,或用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,或邏輯模式,是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。外模式是模式的一部分。內(nèi)模式,或存儲模式,或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲介質(zhì)上的表示,即對數(shù)據(jù)的物理結(jié)構(gòu)和存取方式的描述。6、下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()。A、便于用戶,開發(fā)人員進行理解和交流B、反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)C、作為確認測試和驗收的依據(jù)D、便于開發(fā)人員進行需求分析標(biāo)準(zhǔn)答案:D知識點解析:軟件需求規(guī)格說明書有以下幾個方面的作用:①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認測試和驗收的依據(jù)。7、下列不屬于軟件工程3個要素的是()。A、工具B、過程C、方法D、環(huán)境標(biāo)準(zhǔn)答案:D知識點解析:軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。8、數(shù)據(jù)庫系統(tǒng)在其內(nèi)部具有3級模式,用來描述數(shù)據(jù)庫中全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特性的是()。A、外模式B、概念模式C、內(nèi)模式D、存儲模式標(biāo)準(zhǔn)答案:B知識點解析:概念模式,也稱邏輯模式,是對數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶應(yīng)用公共數(shù)據(jù)視圖。它不涉及具體的硬件環(huán)境與平臺,與具體的軟件環(huán)境也無關(guān)。9、將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體與聯(lián)系都可以表示成()。A、屬性B、關(guān)系C、記錄D、碼標(biāo)準(zhǔn)答案:B知識點解析:E-R圖由實體、實體的屬性和實體之間的聯(lián)系3個要素組成,關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合,將E-R圖轉(zhuǎn)換為關(guān)系模型:將實體、實體的屬性和實體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。如表4-1所示。10、某二叉樹中度為2的結(jié)點有10個,則該二叉樹中有()個葉子結(jié)點。A、9B、10C、11D、12標(biāo)準(zhǔn)答案:C知識點解析:根據(jù)二叉樹的性質(zhì)3:對任何一棵二叉樹,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。11、以下敘述中正確的是()。A、C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方B、C程序的書寫格式是固定的,每行只能寫一條語句C、構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名D、在對C語言程序進行編譯時,可以發(fā)現(xiàn)注釋行中的拼寫錯誤標(biāo)準(zhǔn)答案:A知識點解析:本題考查的是C語言程序設(shè)計的初步知識。選項A,程序中“/*……*/”表示注釋部分,注釋只是給人看的,對程序的編譯和運行不起作用,可以在程序中的任何位置;選項B,C語言的書寫格式自由,一行可以寫多條語句,一條語句也可以寫在不同行上;選項C,一個C程序中必須有且只能有一個由“main”命名的主函數(shù),其他函數(shù)由用戶自行命名;選項D,程序的注釋僅僅是提供閱讀之用,并不參與程序的編譯,所以編譯也就不會發(fā)現(xiàn)注釋行中的錯誤。12、下面的程序在編譯時產(chǎn)生錯誤,其出錯原因是()。#include<stdio.h>main(){int1_case;floatprintF;printf(’’請輸入2個數(shù):’’);scanf(’’%d%f’’,&1_case,&printF);printf(’’%dtha",1_case,printF);}A、定義語句出錯,1_case不能作為變量名B、定義語句出錯,printF不能用作用戶自定義標(biāo)識符C、定義語句無錯,scanf不能作為輸入函數(shù)使用D、定義語句無錯,printf不能輸出1_case的值標(biāo)準(zhǔn)答案:A知識點解析:C語言變量名可由數(shù)字,字母,下劃線構(gòu)成,但首字符不能為數(shù)字。13、以下不正確的轉(zhuǎn)義字符是()。A、’\\’B、’\d’C、’\s’D、’088’標(biāo)準(zhǔn)答案:D知識點解析:“\\”是反斜線符,“’\d’”是整型變量轉(zhuǎn)義字符,“’\s’”是字符串型轉(zhuǎn)義字符,C語言中沒有規(guī)定“’088’”為轉(zhuǎn)義字符。14、下面程序的運行結(jié)果是()。y=5;x=14;y=((x=3*y,x+6),x-1);printf(’’x=%d,y=%d’’,x,y);A、x=27,y=27B、x=12,y=13C、x=15,y=14D、x=y=27標(biāo)準(zhǔn)答案:C知識點解析:本題考查的是逗號表達式。逗號表達式的求解步驟是先求解表達式1,然后依次求解表達式2,直到表達式N的值。整個逗號表達式的值就是最后一個表達式N的值。表達式“(x=3*y,x+6)”中,“x=15”。表達式“y=x-1=14”。15、sizeof(char)是()。A、一種函數(shù)調(diào)用B、一個整型表達式C、一個字符型表達式D、一個不合法的表達式標(biāo)準(zhǔn)答案:B知識點解析:“sizeof(char)”是一個C語言的關(guān)鍵字,它不是函數(shù)調(diào)用?!皊izeof”的功能是計算出運算對象在計算機的內(nèi)存中所占用的字節(jié)數(shù)量,該表達式的返回值是一個整數(shù),而不是一個字符型表達式。16、下列4個程序中,完全正確的是()。A、#include<stdio.h>main();{/*programming*/printf(”programming!\n’’);}B、#include<stdio.h>main(){/*/programming/*/printf(’’programming!\h’’);}C、#include<stdio.h>main(){/*/programming*/*/printf(’’programming!\n’’);}D、include<stdio.h>main(){/*programming*/printf(’’programming!\n’’);}標(biāo)準(zhǔn)答案:B知識點解析:選項A中,main()函數(shù)后面的分號是錯誤的,C語言在函數(shù)名后面不能有分號;在C語言中注釋內(nèi)容必須放在“/*”和“*/”之間,“/#”和“*/”必須成對出現(xiàn),按語法規(guī)定在注釋之間不可再嵌套“/*”和“*/”,選項C的程序段中注釋語句之間有嵌套;C語言用#include命令行來實現(xiàn)文件包含的功能。#include命令行的形式為:#include“文件名”,選項D中的include前面少了一個#符號。17、設(shè)變量均已正確定義,若要通過scanf(’’%d%c%d%c’’,&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。下列所示的輸入形式中正確的是(注:口代表空格字符)()。A、10口X口20口Y<CR>B、10口X20口Y<CR>C、10口X<CR>20Y<CR>D、10X<CR>20口Y<CR>標(biāo)準(zhǔn)答案:A知識點解析:在使用scanf函數(shù)進行輸入數(shù)據(jù)時,輸入的數(shù)據(jù)之間必須用空格、回車符、制表符(Tab鍵)等間隔符隔開。18、兩次運行下面的程序,如果從鍵盤上分別輸入3和2,則輸出結(jié)果是()。#include<stdio.h>main(){intx;scanf(’’%d’’,&x);if(x++>2)printf(’’%d’’,x);elseprintf(’’%d\n’’,x--);}A、4和3B、4和2C、4和1D、3和2標(biāo)準(zhǔn)答案:A知識點解析:本題考查if…else語句。首先,scanf函數(shù)通過鍵盤讀入x的值。當(dāng)x=3時,第一個if語句先判斷條件,取x的值3和2比較,然后將x的值加1,if條件成立,執(zhí)行下面的printf語句,輸出x的值4。當(dāng)x=2時,第一個if語句先判斷條件,先取x的值2和2比較,然后將x的值加1(x的值變?yōu)?),if條件不成立,執(zhí)行下面的else語句,先輸出x的值3,再將x的值減1。19、以下敘述中不正確的是()。A、在不同的函數(shù)中可以使用相同的名字的變量B、函數(shù)中的形式參數(shù)是局部變量C、在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效D、在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效標(biāo)準(zhǔn)答案:D知識點解析:此題考查的是變量的作用范圍。選項D中,在一個函數(shù)的復(fù)合語句中定義的變量是局部變量,只在定義此變量的復(fù)合語句內(nèi)有效,并不是在整個函數(shù)體內(nèi)都有效。20、運行下面的程序,輸入字符串“MicrosoftVisualStudio”,則程序的執(zhí)行結(jié)果是()。#include<stdio.h>main(){charChr[20];scanf(’’%s’’,&Chr);printf(’’%s\n’’,car);}A、MicrosoftVisualStudioB、MC、MicrosoftD、MicrosoftVisualStudio標(biāo)準(zhǔn)答案:C知識點解析:當(dāng)從鍵盤輸入“MicrosoftVisualStudio”時,由于“scanf”輸入函數(shù)的特點是遇到空格時結(jié)束讀入字符,因此,該程序只將“Microsoft”這9個字符送到了字符數(shù)組str中,并在其后自動加上結(jié)束符“\0”。21、若有“doublea;”,則正確的輸入語句是()。A、scanf(’’%1f’’,a);B、scanf(’’%f’’,&a);C、scanf(’’%lf’’,&a);D、scanf(’’%le’’,a);標(biāo)準(zhǔn)答案:C知識點解析:scanf函數(shù)的調(diào)用形式是:scanf(“格式字符串”,輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地址。a是double型數(shù)據(jù),格式字符串可以用“%1f”,“%f”是浮點型。題中定義變量a為雙精度型變量,雙精度變量的格式符為“%1f”;變量的地址用取地址符“&”加變量名表示,變量a的地址為“&a”。22、if語句的基本形式為:if(表達式)語句,其中“表達式”()。A、可以是任意合法的表達式B、必須是邏輯表達式C、必須是邏輯表達式或關(guān)系表達式D、必須是關(guān)系表達式標(biāo)準(zhǔn)答案:A知識點解析:本題考查if表達式。if(表達式)中的表達式可以為任何合法的表達式,一般情況下為邏輯、條件表達式,需要注意的是,當(dāng)?shù)忍?==)誤寫為賦值號(=)時不會報錯的,但是其值恒為1。23、若i、j已定義成int型,則以下程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(i=0;j<4.j++){…}A、20B、24C、25D、30標(biāo)準(zhǔn)答案:B知識點解析:本題考查的是嵌套for循環(huán)執(zhí)行次數(shù)。對于外層i的循環(huán)中任何一個i,內(nèi)層j的循環(huán)中的j都要從0變化到3,j=4時退出循環(huán);然后外層i循環(huán)的i減少1,內(nèi)層循環(huán)的j仍要從0變化到3,j=4時退出循環(huán)……直到外層i循環(huán)的i變?yōu)?,退出i循環(huán)。所以執(zhí)行多重循環(huán)時,對外層循環(huán)變量的每一個值,內(nèi)層循環(huán)的循環(huán)變量都要從初始值變化到終值。對外層循環(huán)的每一次循環(huán),內(nèi)層循環(huán)要執(zhí)行完整的循環(huán)語句。外層for語句執(zhí)行6次,內(nèi)層for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。24、以下選項中非法的字符常量是()。A、’\\’B、’\0201’C、’\xAA’D、’0’標(biāo)準(zhǔn)答案:B知識點解析:選項A表示的是反斜杠字符;一般可以用1~3位八進制數(shù)表示的字符,而選項B中“’\0201’”有4位八進制數(shù),所以錯誤;選項C是用兩位十六進制數(shù)AA表示的ASCII碼字符;選項D表示的是字符0對應(yīng)ASCII碼值。25、以下程序的輸出結(jié)果是()。#include<stdio.h>intm=13;intfun(intx,inty){intm=2;return(x*y-m);}main(){inta=7,b=6;printf(’’%d’’,fun(a,b)/m);}A、1B、3C、7D、10標(biāo)準(zhǔn)答案:B知識點解析:本題考查的是函數(shù)調(diào)用時的參數(shù)的作用域。在函數(shù)調(diào)用時,當(dāng)全局變量和局部變量的名稱相同時,在局部變量的作用域內(nèi),局部變量起作用,因而在fun函數(shù)內(nèi)m的應(yīng)該等于2,main中的m為13,所以返回值為7×6-2=40,而fun(a,b)/m值為40/13=3。26、下面程序運行后的輸出結(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知識點解析:這道題目是計算一維數(shù)組b中某些元素的和。這些元素的下標(biāo)值是一維數(shù)組a中元素值。s=0+b[1]+b[0]+b[4]+b[2]+b[0]=2+l+5+3+1=12。27、已知下列函數(shù)定義:fun(int*b,intc,intn,intdata){intk;for(k=0;k<m*n;k++){*b=data;b++;}}則調(diào)用此函數(shù)的正確寫法是(假設(shè)變量a的說明為inta[50])()。A、fun(*a,4,5,1);B、fun(&a,4,5,1);C、fun((int*)a,4,5,1);D、fun(a,4,5,1);標(biāo)準(zhǔn)答案:D知識點解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。fun函數(shù)的調(diào)用形式為“fun(int*b,intm,intn,intdata)”,而調(diào)用數(shù)組時,用數(shù)組名表示一個指向數(shù)組第一個元素的指針,因此調(diào)用時的形式為:fun(a,4,5,1)。28、以下程序段的輸出結(jié)果是()。#include<stdio.h>main(){charp[][4]={’’ABC’’,’’DEF’’,’’GHI’’};inti;for(i=0;i<3;i++)puts(p[i]);}A、ABCB、ADGC、ABCDEFGHID、ABC標(biāo)準(zhǔn)答案:C知識點解析:本題首先定義了一個字符串?dāng)?shù)組p,通過for循環(huán)輸出p[0]、p[1]、p[2]的值。29、下面程序的運行結(jié)果是()。#include<stdio.h>#include<string.h>main(){char*s1=’’abDuj’’;char*s2=’’ABdUG’’;intt;t=strcmp(s1,s2);printf(’’%d’’,t);}A、正數(shù)B、負數(shù)C、零D、不確定的值標(biāo)準(zhǔn)答案:A知識點解析:本題考查字符串比較函數(shù)和字符串的比較原則的兩個知識點:①原則是依次比較兩個字符串同一位置的一對字符,若它們的ASCII碼值相同,則繼續(xù)比較下一對字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個字符串相等;若一個字符串全部i個字符與另一個字符串的前i個字符相同,則字符串較長的較大。②“strcmp(s1,s2)”的返回值,當(dāng)“str1<str2”時,返回值<0;當(dāng)“str1=str2”時,返回0;當(dāng)“str1>str2”,返回值>0。30、已知:intc[3][4];,則對數(shù)組元素引用正確的是()。A、c[1][4]B、c[1.5][0]C、c[1+0][0]D、以上表達都錯誤標(biāo)準(zhǔn)答案:C知識點解析:此題考查的是數(shù)組元素的引用。對于已定義的數(shù)組a[M][N],數(shù)組元素的正確引用必須滿足行下標(biāo)小于M,列下標(biāo)小于N,且為正整數(shù)。因此,選項A中列下標(biāo)溢出;選項B中行下標(biāo)出現(xiàn)小數(shù):選項C滿足要求。31、C語言中允許用外部說明來指定變量、函數(shù)和其他標(biāo)識符的特征,這里所說的外部指的是()。A、冠以關(guān)鍵字externB、位置在函數(shù)體外部C、作用范圍是全程的D、位置在函數(shù)的外部標(biāo)準(zhǔn)答案:D知識點解析:C語言中允許用位置在函數(shù)外部的說明來指定變量、函數(shù)和其他標(biāo)識符的特征。32、有以下程序:#include<stdio.h>intfun(intx,inty){if(x==y)return(x);elsereturn((x+y)/2);}main(){inta=1,b=2,c=3;printf(’’%d\n’’,fun(2*a,fun(b,c)));}程序運行后的輸出結(jié)果是()。A、2B、3C、4D、5標(biāo)準(zhǔn)答案:A知識點解析:fun(b,c)即fun(2,3),2!=3,所以返回(2+3)/2=2;fun(2*a,2)即fun(2,2),2==2,所以返回2。33、若有“chars[3][3]={’’AAA’’,’’BBB’’,’’CCC’’};”說明語句,則與它等價的語句是()。A、char**s={’’AAA’’,’’BBB’’,’’CCC’’};B、char*s[3]={’’AAA’’,’’BBB’’,’’CCC’’};C、chars[][5]={’’AAA’’,’’BBB’’,’’CCC’’};D、chars[][3]={’’AAA’’,’’BBB’’,’’CCC’’};標(biāo)準(zhǔn)答案:D知識點解析:二維字符數(shù)組在定義時可省略第一維的維數(shù),根據(jù)初始化有3個字符串,所以選項D中數(shù)組有3行,與已知說明語句等價。34、計算機高級語言程序的運行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的是()。A、C語言程序僅可以編譯執(zhí)行B、C語言程序僅可以解釋執(zhí)行C、C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D、以上說法都不對標(biāo)準(zhǔn)答案:A知識點解析:C語言作為計算機高級語言,用它編寫的程序必須經(jīng)過C語言的編譯器編譯后,轉(zhuǎn)換為二進制的機器碼來運行。35、若有如下說明,且int類型占兩個字節(jié),則正確的敘述為()。structst{inta;intb[2];}a;A、結(jié)構(gòu)體變量a與結(jié)構(gòu)體成員a同名,定義是合法的B、程序只在執(zhí)行到該結(jié)構(gòu)體時才為結(jié)構(gòu)體st分配存儲單元C、程序運行時為結(jié)構(gòu)體st分配8字節(jié)存儲單元D、類型名structst可以通過extern關(guān)鍵字提前引用標(biāo)準(zhǔn)答案:A知識點解析:本題主要考查結(jié)構(gòu)體的用法:①結(jié)構(gòu)體變量a與結(jié)構(gòu)體成員a同名,定義合法;②在程序編譯的時候結(jié)構(gòu)的定義并不會使系統(tǒng)為該結(jié)構(gòu)分配內(nèi)存空間,只有在說明結(jié)構(gòu)變量時才分配內(nèi)存空間;③inta占2個字節(jié),intb[2]占4個字節(jié),共6個;④類型名“structst”不可以通過extern關(guān)鍵字提前引用。36、有以下程序:#include<stdio.h>intfun(int*k){intb=0;b=*k+b;return(b);}main(){inta[10]={1,2,3,4,5,6,7,8},i;for(i=2;i<4;i++){printf(’’%d,fun(&a[i]));}printf(’’\n’’);}程序運行后的輸出結(jié)果是()。A、1012B、810C、34D、1028標(biāo)準(zhǔn)答案:C知識點解析:b是局部變量,因此當(dāng)i=2時,fun的返回值值為3,i=3時fun返回值為437、設(shè)有一聯(lián)合體變量定義如下:uniondata{longa;floatb;intc;chard;};uniondatax;執(zhí)行下列語句后,正確的聯(lián)合體變量x的值是()。x.a(chǎn)=111111;x.b=2222;x.c=2.1546;x.d=’R’;A、111111B、2222C、2.1546D、R標(biāo)準(zhǔn)答案:D知識點解析:本題主要考查的知識點是聯(lián)合體的內(nèi)存使用。聯(lián)合體與結(jié)構(gòu)體的定義相同,其本質(zhì)區(qū)別就在于內(nèi)存使用方式的不同。聯(lián)合體所占用的內(nèi)存空間為最長的成員所占用的空間,各個成員分量全部是從低地址方向開始使用內(nèi)存單元:聯(lián)合體中的空間在某一時刻只能保持某一個成員的數(shù)據(jù),所以本題執(zhí)行充一系列賦值后,只得到最后執(zhí)行的字符’R’。38、若x=2,y=3,則x&y的結(jié)果是()。A、0B、2C、3D、5標(biāo)準(zhǔn)答案:B知識點解析:本題主要考查按位與(&)運算的知識點?!?”是對兩個運算量相應(yīng)的位進行邏輯與,“&”的規(guī)則與邏輯與“&&”相同。x=2的二進制為00000010,y=3的二進制為00000011,x&y=00000010,轉(zhuǎn)化為十進制即為2。39、已知一個文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa{charnumber[100];intage;floatp[6];};定義一個數(shù)組:structanumber[10];假定文件已正確打開,不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。A、fread(b,sizeof(structa),10,fp);B、for(i=0;i<10;i++)fread(b[i],sizeof[structa),1,fp);C、for(i=0;i<10;i++)fread(b+i,sizeof(structa),1,fp);D、for(i=0;i<5;i+=2)fread(b+i,sezeof(structa),2,fp);標(biāo)準(zhǔn)答案:B知識點解析:數(shù)據(jù)塊輸入/出函數(shù)的調(diào)用形式為:fread(buffer,size,count,fp)。ffead函數(shù)參數(shù)說明:“buffer”是一個指針,對fread來說,它是讀入數(shù)據(jù)的存放地址。對fwrite來說,是要輸出數(shù)據(jù)的地址?!皊ize”是要讀寫的字節(jié)數(shù);“count”是要進行讀寫多少個size字節(jié)的數(shù)據(jù)項;“fp”是指文件型指針。選項B中b[i]是一個數(shù)組,不是指針,需改為&b[i]。注意:完成一次讀操作(fread())后,如果沒有關(guān)閉流(fclose()),則指針(FILE*fp)自動向后移動前一次讀寫的長度,不關(guān)閉流則繼續(xù)下一次讀操作,接著上次的輸出繼續(xù)輸出。國家二級C語言機試(選擇題)模擬試卷第4套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是A、二叉鏈表B、循環(huán)鏈表C、雙向鏈表D、帶鏈的棧標(biāo)準(zhǔn)答案:A知識點解析:在定義的鏈表中,若只含有一個指針域來存放下一個元素地址,稱這樣的鏈表為單鏈表或線性鏈表。帶鏈的??梢杂脕硎占嬎銠C存儲空間中所有空閑的存儲結(jié)點,是線性表。在單鏈表中的結(jié)點中增加一個指針域指向它的直接前件,這樣的鏈表,就稱為雙向鏈表(一個結(jié)點中含有兩個指針),也是線性鏈表。循環(huán)鏈表具有單鏈表的特征,但又不需要增加額外的存貯空間,僅對表的鏈接方式稍做改變,使得對表的處理更加方便靈活,屬于線性鏈表。二叉鏈表是二叉樹的物理實現(xiàn),是一種存儲結(jié)構(gòu),不屬于線性結(jié)構(gòu)。答案為A選項。2、設(shè)循環(huán)隊列的存儲空間為Q(1:35),初始狀態(tài)為front=rear=35?,F(xiàn)經(jīng)過一系列入隊與退隊運算后,front=15,rear=15,則循環(huán)隊列中的元素個數(shù)為A、15B、16C、20D、0或35標(biāo)準(zhǔn)答案:D知識點解析:在循環(huán)隊列中,用隊尾指針rear指向隊列中的隊尾元素,用排頭指針front指向排頭元素的前一個位置。在循環(huán)隊列中進行出隊、入隊操作時,頭尾指針仍要加1,朝前移動。只不過當(dāng)頭尾指針指向向量上界時,其加1操作的結(jié)果是指向向量的下界0。由于入隊時尾指針向前追趕頭指針,出隊時頭指針向前追趕尾指針,故隊空和隊滿時,頭尾指針均相等。答案為D選項。3、下列關(guān)于棧的敘述中,正確的是A、棧底元素一定是最后入棧的元素B、棧頂元素一定是最先入棧的元素C、棧操作遵循先進后出的原則D、以上說法均錯誤標(biāo)準(zhǔn)答案:C知識點解析:棧頂元素總是后被插入的元素,從而也是最先被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。棧的修改是按后進先出的原則進行的。因此,棧稱為先進后出表,或“后進先出”表,所以選擇C。4、在關(guān)系數(shù)據(jù)庫中,用來表示實體間聯(lián)系的是A、屬性B、二維表C、網(wǎng)狀結(jié)構(gòu)D、樹狀結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識點解析:關(guān)系模型實體間的聯(lián)系采用二維表來表示,簡稱表。選項C為網(wǎng)狀模型實體間的聯(lián)系,選項D為層次模型實體間的聯(lián)系,選項A屬性刻畫了實體。5、公司中有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可以有多名職員。則實體部門和職員間的聯(lián)系是A、1:1聯(lián)系B、m:1聯(lián)系C、1:m聯(lián)系D、m:n聯(lián)系標(biāo)準(zhǔn)答案:C知識點解析:兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關(guān)系,主要有一對一聯(lián)系(1:1)、一對多聯(lián)系(1:m)、多對一聯(lián)系(m:1)、多對多聯(lián)系(m:n)。對于每一個實體部門,都有多名職員,則其對應(yīng)的聯(lián)系為一對多聯(lián)系(1:m),答案選C。6、有兩個關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是A、選擇B、投影C、自然連接D、并標(biāo)準(zhǔn)答案:A知識點解析:由關(guān)系R到關(guān)系S為一元運算,排除C和D。關(guān)系S是關(guān)系R的一部分,是通過選擇之后的結(jié)果,因此選A。7、數(shù)據(jù)字典(DD)所定義的對象都包含于A、數(shù)據(jù)流圖(DFD圖)B、程序流程圖C、軟件結(jié)構(gòu)圖D、方框圖標(biāo)準(zhǔn)答案:A知識點解析:在數(shù)據(jù)流圖中,對所有元素都進行了命名,所有名字的定義集中起來就構(gòu)成了數(shù)據(jù)字典。因此選A,而B,C,D都不符合。8、軟件需求規(guī)格說明書的作用不包括A、軟件驗收的依據(jù)B、用戶與開發(fā)人員對軟件要做什么的共同理解C、軟件設(shè)計的依據(jù)D、軟件可行性研究的依據(jù)標(biāo)準(zhǔn)答案:D知識點解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)的重要文檔之一。軟件需求規(guī)格說明書有以下幾個方面的作用。①便于用戶、開發(fā)人員進行理解和交流,B正確;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù),C正確;③作為確認測試和驗收的依據(jù),A正確。9、下面屬于黑盒測試方法的是A、語句覆蓋B、邏輯覆蓋C、邊界值分析D、路徑覆蓋標(biāo)準(zhǔn)答案:C知識點解析:黑盒測試不關(guān)心程序內(nèi)部的邏輯,只是根據(jù)程序的功能說明來設(shè)計測試用例。在使用黑盒測試法時,手頭只需要有程序功能說明就可以了。黑盒測試法分等價類劃分法、邊界值分析法和錯誤推測法,答案為C。而A、B、D均為白盒測試方法。10、下面不屬于軟件設(shè)計階段任務(wù)的是A、軟件總體設(shè)計B、算法設(shè)計C、制定軟件確認測試計劃D、數(shù)據(jù)庫設(shè)計標(biāo)準(zhǔn)答案:C知識點解析:從技術(shù)觀點上看,軟件設(shè)計包括軟件結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計、接口設(shè)計、過程設(shè)計。所以A、B、D正確,C為軟件測試階段的任務(wù)。11、下列敘述中錯誤的是A、C程序可以由多個程序文件組成B、一個C語言程序只能實現(xiàn)一種算法C、C程序可以由一個或多個函數(shù)組成D、一個C函數(shù)可以單獨作為一個C程序文件存在標(biāo)準(zhǔn)答案:B知識點解析:一個C語言程序可以實現(xiàn)多種算法,可以由多個程序文件共同構(gòu)成。一個C語言程序可以由一個或多個函數(shù)組成,一個C函數(shù)可以單獨作為一個C程序文件存在,被包含到其他程序中?所以選擇B選項。12、C語言源程序名的后綴是A、.CB、.exeC、.objD、.cp標(biāo)準(zhǔn)答案:A知識點解析:C語言源程序名的后綴是.C,目標(biāo)文件的擴展文件是.obj,可執(zhí)行文件的擴展名是.exe。13、以下選項中不能用作C程序合法常量的是A、123B、’\123’C、1,234D、\x7D標(biāo)準(zhǔn)答案:C知識點解析:C選項中不能含有逗號,所以"1,234"不能用作C程序的合法常量?B選項中表示的是八進制的常量,D選項中表示的是十六進制的常量。14、表達式a+=a-=a=9的值是A、18B、-9C、0D、9標(biāo)準(zhǔn)答案:C知識點解析:首先計算a=9,然后計算a-=9,即a=a-9,結(jié)果為0,然后計算a+=0,即a=a+0,所以最終結(jié)果為0。15、若有定義語句:intx=12,y=8,z;在其后執(zhí)行語句z=0.9+x/y;則z的值為A、1B、1.9C、2D、2.4標(biāo)準(zhǔn)答案:A知識點解析:先計算x/y,結(jié)果為1,然后計算0.9+1,結(jié)果為1.9,但由于變量z為整型,所以取值1,所以z的值為1。16、閱讀以下程序#includemain(){intcase;floatprintF;printf("請輸入2個數(shù):");scanf("%d%f",&case,&printF);printf("%d%f\n",case,printF);}該程序在編譯時產(chǎn)生錯誤,其出錯原因是A、定義語句出錯,case是關(guān)鍵字,不能用作用戶自定義標(biāo)識符B、定義語句出錯,printF不能用作用戶自定義標(biāo)識符C、定義語句無錯,scanf不能作為輸入函數(shù)使用D、定義語句無錯,printf不能輸出case的值標(biāo)準(zhǔn)答案:A知識點解析:C語言中標(biāo)識符的定義中區(qū)分大小寫,所以printF與printf不一樣,可以作為標(biāo)識符。而case是C語言中的關(guān)鍵字,不能作為變量名,scanf是標(biāo)準(zhǔn)的輸入函數(shù),printf是標(biāo)準(zhǔn)的輸出函數(shù),所以選擇A選項。17、有以下程序#includemain(){charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始)123<回車>45678<回車>則輸出結(jié)果是A、1245B、1256C、1278D、1267標(biāo)準(zhǔn)答案:A知識點解析:Scanf按照格式字符進行輸入,所以123與回車的值分別送入了c1.c2.c3.c4變量的存儲空間,getchar()函數(shù)的功能是從鍵盤輸入的字符串中讀入一個字符,所以4送入了變量c5的存儲空間,5送入了變量c6的存儲空間,所以打印時結(jié)果為1245。18、以下選項中,當(dāng)x為大于1的奇數(shù)時,值為0的表達式是A、x/2B、x%2==0C、x%2!=0D、x%2==1標(biāo)準(zhǔn)答案:B知識點解析:A選項的值為不定值,但絕對不是0,算術(shù)運算符的優(yōu)先級高于關(guān)系運算符的優(yōu)先級,所以當(dāng)x為大于1的奇數(shù)時,B選項的值為假,即0?C選項的值為真,即1,D選項的值為真,即1,選項B正確。19、以下選項中與if(a==1)a=b;elsea++;語句功能不同的switch語句是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知識點解析:if語句的含義是如果a的值為1,將b的值賦給a,否則將a的值自增1?Swich(a==1)中表達式a==1的結(jié)果如果為真即為1,則從case1開始執(zhí)行,直到遇到break語句跳出switch語句,如果a==1的結(jié)果如果為假即0,則從case0開始執(zhí)行,所以與題干含義執(zhí)行操作相反的是選項A中的語句。20、若變量已正確定義,有以下程序段i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其輸出結(jié)果是A、0,1B、0,0C、1,1D、程序進入無限循環(huán)標(biāo)準(zhǔn)答案:A知識點解析:第一次首先先執(zhí)行循環(huán)體打印i的值0,然后判斷while的條件i++,先用后自增,所以判斷時條件為假,跳出循環(huán),但是仍執(zhí)行了i的自增操作,i的值為1,在接下來的打印語句中進行打印。21、有以下程序#includemain(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c--!=3)printf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);}程序運行后的輸出結(jié)果是A、1,3,2B、1,3,3C、1,2,3D、3,2,1標(biāo)準(zhǔn)答案:B知識點解析:else總是和最近的if配對,所以進入第一個if語句中條件判斷時,因為是邏輯與操作需要兩邊運算對象的值均為非零值,才為真,所以需要逐個執(zhí)行判斷的結(jié)果為1,不再執(zhí)行第二個case語句中的操作,而是進入第二個if語句條件判斷,因為b!=2條件成立所以整個條件表達式的值為真,所以不再執(zhí)行邏輯或的第二個運算對象(c--!=3)c的值不變,也不再執(zhí)行第一個else語句?打印a的值1,b的值3,c的值3。22、有以下程序段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);}以下關(guān)于程序段執(zhí)行情況的敘述,正確的是A、for循環(huán)語句固定執(zhí)行8B、當(dāng)產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作C、當(dāng)產(chǎn)生的隨機數(shù)n為1和2時不做任何操作D、當(dāng)產(chǎn)生的隨機數(shù)n為0時結(jié)束程序運行標(biāo)準(zhǔn)答案:D知識點解析:當(dāng)產(chǎn)生的隨機數(shù)為4時,對5取余結(jié)果為4,執(zhí)行case4后面語句,見到continue結(jié)束本次循環(huán),而非結(jié)束程序運行,所以B選項錯誤,當(dāng)產(chǎn)生的隨機數(shù)為1時,執(zhí)行case1后面的所有語句,直到遇到break語句跳出switch結(jié)構(gòu);當(dāng)隨機數(shù)為2時,執(zhí)行case2后面的所有語句,直到遇到continue語句跳出本次循環(huán),所以C選項錯誤,由于循環(huán)體中含有exit(0)語句,該語句的功能是終止程序的執(zhí)行,所以不是固定執(zhí)行8次,A選項錯誤。23、有以下程序#includeintfun1(doublea){return(int)(a*=a);}intfun2(doublex,doubley){doublea=0,b=0;
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度民航機場消毒防疫與旅客安全合同3篇
- 進度計劃編制課程設(shè)計
- 三月三活動方案例文(3篇)
- 線下商務(wù)談判課程設(shè)計
- 人事行政專員工作職責(zé)模版(2篇)
- 水泥筒倉及風(fēng)送設(shè)備安全操作規(guī)程(4篇)
- 二零二五年度國際貿(mào)易代理供應(yīng)鏈管理合同3篇
- 2025年度安全生產(chǎn)的工作總結(jié)例文(3篇)
- 2025年蘇科版九年級物理上冊階段測試試卷
- 2025年滬教版高一物理下冊階段測試試卷
- 化學(xué)-安徽省淮北市和淮南市2025屆高三第一質(zhì)量檢測(淮北淮南一模)試題和答案
- 2025內(nèi)蒙古電力(集團)限責(zé)任公司供電單位邊遠地區(qū)崗位招聘713高頻重點提升(共500題)附帶答案詳解
- 2020-2021學(xué)年【江西省撫州市】八年級(上)期末生物試卷
- 2025年山西文旅集團招聘筆試參考題庫含答案解析
- 2023學(xué)年杭州市十四中高二數(shù)學(xué)(上)期末考試卷附答案解析
- GB/T 8607-2024專用小麥粉
- 新增值稅法學(xué)習(xí)課件
- 如何反饋與指導(dǎo)-培訓(xùn)課件
- 江蘇省高中名校2025屆高三下學(xué)期一模考試數(shù)學(xué)試題含解析
- 2024年上海市16區(qū)高考英語一模試卷聽力部分匯編(附14區(qū)聽力音頻)含答案與文本
- 江蘇省南通市2023-2024學(xué)年高二上學(xué)期期末考試物理試題(含答案)
評論
0/150
提交評論