版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
國家二級C語言機試(選擇題)模擬試卷5(共9套)(共356題)國家二級C語言機試(選擇題)模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列鏈表中,其邏輯結構屬于非線性結構的是A、二叉鏈表B、循環(huán)鏈表C、雙向鏈表D、帶鏈的棧標準答案:A知識點解析:在定義的鏈表中,若只含有一個指針域來存放下一個元素地址,稱這樣的鏈表為單鏈表或線性鏈表。帶鏈的棧可以用來收集計算機存儲空間中所有空閑的存儲結點,是線性表。在單鏈表中的結點中增加一個指針域指向它的直接前件,這樣的鏈表,就稱為雙向鏈表(一個結點中含有兩個指針),也是線性鏈表。循環(huán)鏈表具有單鏈表的特征,但又不需要增加額外的存貯空間,僅對表的鏈接方式稍做改變,使得對表的處理更加方便靈活,屬于線性鏈表。二叉鏈表是二叉樹的物理實現(xiàn),是一種存儲結構,不屬于線性結構。答案為A選項。2、設循環(huán)隊列的存儲空間為Q(1:35),初始狀態(tài)為front=rear=35?,F(xiàn)經過一系列入隊與退隊運算后,front=15,rear=15,則循環(huán)隊列中的元素個數(shù)為A、15B、16C、20D、0或35標準答案:D知識點解析:在循環(huán)隊列中,用隊尾指針rear指向隊列中的隊尾元素,用排頭指針front指向排頭元素的前一個位置。在循環(huán)隊列中進行出隊、入隊操作時,頭尾指針仍要加1,朝前移動。只不過當頭尾指針指向向量上界時,其加1操作的結果是指向向量的下界0。由于入隊時尾指針向前追趕頭指針,出隊時頭指針向前追趕尾指針,故隊空和隊滿時,頭尾指針均相等。答案為D選項。3、下列關于棧的敘述中,正確的是A、棧底元素一定是最后入棧的元素B、棧頂元素一定是最先入棧的元素C、棧操作遵循先進后出的原則D、以上說法均錯誤標準答案:C知識點解析:棧頂元素總是后被插入的元素,從而也是最先被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。棧的修改是按后進先出的原則進行的。因此,棧稱為先進后出表,或"后進先出"表,所以選擇C。4、在關系數(shù)據(jù)庫中,用來表示實體間聯(lián)系的是A、屬性B、二維表C、網(wǎng)狀結構D、樹狀結構標準答案:B知識點解析:關系模型實體間的聯(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)系標準答案:C知識點解析:兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關系,主要有一對一聯(lián)系(1:1)、一對多聯(lián)系(1:m)、多對一聯(lián)系(m:1)、多對多聯(lián)系(m:n)。對于每一個實體部門,都有多名職員,則其對應的聯(lián)系為一對多聯(lián)系(1:m),答案選C。6、有三個關系R、S和T如下:則由關系R和S得到關系T的操作是A、選擇B、投影C、自然連接D、并標準答案:A知識點解析:由關系R到關系S為一元運算,排除C和D。關系S是關系R的一部分,是通過選擇之后的結果,因此選A。7、數(shù)據(jù)字典(DD)所定義的對象都包含于A、數(shù)據(jù)流圖(DFD圖)B、程序流程圖C、軟件結構圖D、方框圖標準答案:A知識點解析:在數(shù)據(jù)流圖中,對所有元素都進行了命名,所有名字的定義集中起來就構成了數(shù)據(jù)字典。因此選A,而B,C,D都不符合。8、軟件需求規(guī)格說明書的作用不包括A、軟件驗收的依據(jù)B、用戶與開發(fā)人員對軟件要做什么的共同理解C、軟件設計的依據(jù)D、軟件可行性研究的依據(jù)標準答案:D知識點解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)的重要文檔之一。軟件需求規(guī)格說明書有以下幾個方面的作用。①便于用戶、開發(fā)人員進行理解和交流,B正確;②反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù),C正確;③作為確認測試和驗收的依據(jù),A正確。9、下面屬于黑盒測試方法的是A、語句覆蓋B、邏輯覆蓋C、邊界值分析D、路徑覆蓋標準答案:C知識點解析:黑盒測試不關心程序內部的邏輯,只是根據(jù)程序的功能說明來設計測試用例。在使用黑盒測試法時,手頭只需要有程序功能說明就可以了。黑盒測試法分等價類劃分法、邊界值分析法和錯誤推測法,答案為C。而A、B、D均為白盒測試方法。10、下面不屬于軟件設計階段任務的是A、軟件總體設計B、算法設計C、制定軟件確認測試計劃D、數(shù)據(jù)庫設計標準答案:C知識點解析:從技術觀點上看,軟件設計包括軟件結構設計、數(shù)據(jù)設計、接口設計、過程設計。所以A、B、D正確,C為軟件測試階段的任務。11、以下敘述中正確的是A、N-S流程圖只能描述簡單的順序結構的程序B、程序的算法只能使用流程圖來描述C、結構化程序的三種基本結構是循環(huán)結構、選擇結構、順序結構D、計算機可以直接處理C語言程序,不必進行任何轉換標準答案:C知識點解析:N-S流程圖是可以描述循環(huán)結構,選擇結構,順序結構等多種結構的程序,所以A選項錯誤?程序的算法可以用流程圖,偽代碼?N-S結構圖等方法表示,所以B選項錯誤,計算機只能處理二進制表示的目標程序,不能直接執(zhí)行由C語言編寫的源程序,所以D選項錯誤。12、以下敘述中正確的是A、書寫源程序時,必須注意縮進格式,否則程序會有編譯錯誤B、程序的主函數(shù)名除main外,也可以使用Main或_mainC、程序可以包含多個主函數(shù),但總是從第一個主函數(shù)處開始執(zhí)行D、在C程序中,模塊化主要是通過函數(shù)來實現(xià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標準答案:B知識點解析:double型數(shù)據(jù)在內存中占8個字節(jié),float型數(shù)據(jù)占4個字節(jié),int型數(shù)據(jù)占2個字節(jié),char型數(shù)據(jù)占1個字節(jié),所以選擇B。14、以下敘述中正確的是A、語言中的關鍵字不能作變量名,但可以作為函數(shù)名B、標識符的長度不能任意長,最多只能包含16個字符C、標識符總是由字母、數(shù)字和下劃線組成,且第一個字符不得為數(shù)字D、用戶自定義的標識符必須“見名知義”,如果隨意定義,則會出編譯錯誤標準答案:C知識點解析:C語言中的關鍵字即不能做變量名也不能做用戶函數(shù)名,所以A錯誤。標識符的命名規(guī)則,即由下劃線字母數(shù)字組成,且必須以下劃線和字母開始,也不能和關鍵字一致。不同C語言規(guī)定標識符的有效長度可能會不同,但沒有限制最大長度,所以B錯誤。用戶定義的標識符只要滿足標識符命名規(guī)則沒有特殊要求,不必一定“見名知義”,所以D錯誤。15、以下敘述中正確的是A、由printf輸出的數(shù)據(jù)都隱含左對齊B、scanf和printf是C語言提供的輸入和輸出語句C、賦值語句是一種執(zhí)行語句,必須放在函數(shù)的可執(zhí)行部分D、由printf輸出的數(shù)據(jù)的實際精度是由格式控制中的域寬和小數(shù)的域寬來完全決定的標準答案:C知識點解析:scanf和printf是C語言提供的輸入輸出函數(shù),所以B錯誤?由printf輸出的數(shù)據(jù)都隱含右對齊,所以A錯誤,Printf輸出數(shù)據(jù)所占的寬度由系統(tǒng)決定,所以D錯誤。16、以下敘述中正確的是A、復合語句在語法上包含多條語句,其中不能定義局部變量B、花括號對{}只能用來表示函數(shù)的開頭和結尾,不能用于其他目的C、空語句就是指程序中的空行D、當用scanf從鍵盤輸入數(shù)據(jù)時,每行數(shù)據(jù)在沒按下回車鍵(Enter鍵)前,可以任意修改標準答案:D知識點解析:復合語句可以包含多條語句,在其中可以定義局部變量,所以A錯誤,花括號對{}不僅用來表示函數(shù)的開頭和結尾,也可以用于表示復合語句,所以B錯誤,C語言中的語句必須以分號“;”結束,所以空語句表示為“;”,不是空行,所以C錯誤。17、以下敘述中正確的是A、在C語言中,邏輯真值和假值分別對應1和0B、關系運算符兩邊的運算對象可以是C語言中任意合法的表達式C、對于浮點變量x和y,表達式:x==y是非法的,會出編譯錯誤D、分支結構是根據(jù)算術表達式的結果來判斷流程走向的標準答案:B知識點解析:A選項中,在C語言中,邏輯真值對應非0;C選項中,表達式:x==y是合法的;D選項中,分支結構的流程走向是根據(jù)表達式的值,并不僅僅是算數(shù)表達式的值。因此B選項正確。18、以下敘述中正確的是A、對于邏輯表達式:a++||b++,設a的值為1,則求解表達式的值后,b的值會發(fā)生改變B、對于邏輯表達式:a++&&b++,設a的值為0,則求解表達式的值后,b的值會發(fā)生改變C、else不是一條獨立的語句,它只是if語句的一部分D、關系運算符的結果有三種:0,1,-1標準答案:C知識點解析:B選項和A選項中,對于邏輯表達式,其中b的值不會因為表達式的結果發(fā)生改變;D選項中,關系運算符的結果有“真”和“假”兩種。因此C選項正確。19、以下敘述中正確的是A、continue語句使得整個循環(huán)終止B、break語句不能用于提前結束for語句的本層循環(huán)C、使用break語句可以使流程跳出switch語句體D、在for語句中,continue與break的效果是一樣的,可以互換標準答案:C知識點解析:break語句通常用在循環(huán)語句和開關語句中。當break用于開關語句switch中時,可使程序跳出switch而執(zhí)行switch以后的語句;當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語句的圓括號中的表達式不能都省略掉標準答案:B知識點解析:A選項中,循環(huán)發(fā)生嵌套時,沒有規(guī)定層數(shù);C選項中,循環(huán)嵌套時,書寫代碼時沒有要求必須縮進;D選項中,for語句的圓括號中的表達式都可以省略掉。因此B選項正確。21、下面選項中合法的字符常量是A、XB、’X’C、’abc’D、’\’標準答案:B知識點解析:字符常量是用單引號括起來的一個字符。A選項中,使用雙引號,所以是錯誤的;C選項中,’abc’是字符串,字符常量只能是單個字符,不能是字符串;D選項中,以反斜線"\"開頭的是轉義字符。因此B選項正確。22、以下敘述中正確的是A、轉義字符要用雙引號括起來,以便與普通的字符常量區(qū)分開B、字符常量在內存中占2個字節(jié)C、字符常量需要用單引號括起來D、字符常量是不能進行關系運算的標準答案:C知識點解析:B選項中,字符常量在內存中占1個字節(jié);A選項中,轉義字符是以反斜線"\"開頭,后跟一個或幾個字符;D選項中,字符常量可以進行關系運算,不能參與數(shù)值運算。因此C選項正確。23、以下敘述中正確的是A、用戶自己定義的函數(shù)只能調用庫函數(shù)B、實用的C語言源程序總是由一個或多個函數(shù)組成C、不同函數(shù)的形式參數(shù)不能使用相同名稱的標識符D、在C語言的函數(shù)內部,可以定義局部嵌套函數(shù)標準答案:B知識點解析:A選項中,"用戶自己定義的函數(shù)只能調用庫函數(shù)"描述是不正確的,也可以調用自定義函數(shù);C選項中,對于不同函數(shù)的形式參數(shù)可以使用相同名稱的標識符;D選項中,關于函數(shù)的定義不可以嵌套,但函數(shù)的調用可以嵌套。因此B選項正確。24、以下敘述中正確的是A、int*p1;int**p2;int*p3;都是合法的定義指針變量的語句B、指針變量只能通過求地址運算符(&)來獲得地址值C、語句p=NULL;與p=\0;是等價的語句D、語句p=NULL;執(zhí)行后,指針p指向地址為0的存儲單元標準答案:A知識點解析:B選項描述不正確,指針變量可以通過求地址運算符(&)來獲得地址值,可以通過指針變量獲得地址值,還可以通過標準函數(shù)獲得地址值;C選項中,p=NULL;和p=0;或p=’\0’;等價;D選項中,語句p=NULL;執(zhí)行后,指針p并不是指向地址為0的存儲單元,而是具有一個確定的值-"空"。因此A選項正確。25、以下敘述中正確的是A、即使不進行強制類型轉換,在進行指針賦值運算時,指針變量的基類型也可以不同B、如果企圖通過一個空指針來訪問一個存儲單元,將會得到一個出錯信息C、設變量p是一個指針變量,則語句p=0;是非法的,應該使用p=NULL;D、指針變量之間不能用關系運算符進行比較標準答案:B知識點解析:A選項描述不正確,指針變量的賦值只能賦予地址,決不能賦予任何其它數(shù)據(jù),否則將引起錯誤;C選項中,p=NULL;和p=0;是等價的;D選項中,指向同一數(shù)組的兩指針變量進行關系運算可表示它們所值數(shù)組元素之間的關系。因此B選項正確。26、以下敘述中正確的是A、一條語句只能定義一個數(shù)組B、每個數(shù)組包含一組具有同一類型的變量,這些變量在內存中占有連續(xù)的存儲單元C、數(shù)組說明符的一對方括號中只能使用整型常量,而不能使用表達式D、在引用數(shù)組元素時,下標表達式可以使用浮點數(shù)標準答案:B知識點解析:A選項中,一條語句只能定義一個數(shù)組是不準確的,可以通過一條語句定義多個數(shù)組;C選項中,數(shù)組說明符的一對方括號中可以是整型常量,可以是整型常量表達式;D選項中,在引用數(shù)組元素時,下標表達式必須是整型的。因此B選項正確。27、以下敘述中正確的是A、數(shù)組下標的下限是1B、數(shù)組下標的下限由數(shù)組中第一個非零元素的位置決定C、數(shù)組下標的下限由數(shù)組中第一個被賦值元素的位置決定D、charc1,c2,*c3,c4[40];是合法的變量定義語句標準答案:D知識點解析:數(shù)組下標的下限是0。因此D選項正確。28、以下敘述中正確的是A、語句inta[8]={0};是合法的B、語句inta[]={0};是不合法的,遺漏了數(shù)組的大小C、語句chara[2]={"A","B"};是合法的,定義了一個包含兩個字符的數(shù)組D、語句chara[3];a="AB";是合法的,因為數(shù)組有三個字符空間的容量,可以保存兩個字符標準答案:A知識點解析:B選項中,如給全部元素賦值,則在數(shù)組說明中,可以不給出數(shù)組元素的個數(shù);C選項中,chara[2]={"A","B"};不合法,應為chara[2]={’A’,’B’};;D選項中,用字符串方式賦值比用字符逐個賦值要多占1個字節(jié),在該選項中應為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";標準答案:A知識點解析:本題考查字符數(shù)組的初始化以及指向字符串的指針,B選項不能直接將字符串賦值給數(shù)組名,C選項不能將兩個字符數(shù)組直接互相賦值,D選項中不能這樣定義charmark[],必須指定長度或者直接初始化。30、以下敘述中正確的是A、字符串常量"str1"的類型是:字符串數(shù)據(jù)類型B、有定義語句:charstr1[]="str1";,數(shù)組str1將包含4個元素C、下面的語句用賦初值方式來定義字符串,其中,’\0’是必須的charstr1[]={’s’,’t’,’r’,’1’,’\0’};D、字符數(shù)組的每個元素可存放一個字符,并且最后一個元素必須是’\0’字符標準答案:C知識點解析:本題考查字符數(shù)組的相關操作,B選項中數(shù)組str1包含了5個元素,其中有結尾符,A選項中str1的類型不是字符串類型,字符數(shù)組的最后一個元素可以不是’\0’字符。31、以下敘述中正確的是A、字符串數(shù)組,是指數(shù)組中的每個元素都是一個存放字符串的一維數(shù)組B、charca[3][5]={"A","BB","CCC"};是不合語法的C、charca[][5]={"A","BB","CCC"};是不合語法的D、char*ca[3]={"A","BB","CCC"};是不合語法的標準答案:A知識點解析:本題考查字符串數(shù)組的相關知識,選項B、C、D都是合語法的。32、以下敘述中正確的是A、兩個字符串可以用關系運算符進行大小比較B、函數(shù)調用strlen(s);會返回字符串s實際占用內存的大小(以字節(jié)為單位)C、C語言本身沒有提供對字符串進行整體操作的運算符D、當拼接兩個字符串時,結果字符串占用的內存空間是兩個原串占用空間的和標準答案:C知識點解析:本題考查字符串處理函數(shù)strlen、strcat、strcmp。B選項中strlen返回的是字符串s實際占用內存大小加上結尾符,A選項中不能用關系運算符進行大小比較,可以使用strcmp。D選項當使用連接函數(shù)strcat時,內存空間會減少一個字符位置。33、以下敘述中正確的是A、如果函數(shù)帶有參數(shù),就不能調用自己B、所有函數(shù)均不能接受函數(shù)名作為實參傳入C、函數(shù)體中的語句不能出現(xiàn)對自己的調用D、函數(shù)名代表該函數(shù)的入口地址標準答案:D知識點解析:本題考查函數(shù)調用相關知識,B選項中函數(shù)可以接受函數(shù)名作為實參傳入,引用函數(shù)名也是指針,C、A選項是錯誤的,因為遞歸函數(shù)就能調用自己。34、以下敘述中正確的是A、局部變量不能被說明為staticB、只有全局變量才有自己的作用域,函數(shù)中的局部變量沒有作用域C、只有在函數(shù)內部定義的變量才是局部變量D、只要是用戶定義的標識符,都有一個有效的作用域標準答案:D知識點解析:本題考查局部變量和全局變量作用域,B選項中局部變量也有作用域,C選項中,函數(shù)內部定義的也可能是全局變量,A選項錯誤,因為可以定義個靜態(tài)局部變量。35、下面選項中關于編譯預處理的敘述正確的是A、預處理命令行必須使用分號結尾B、凡是以#號開頭的行,都被稱為編譯預處理命令行C、預處理命令行不能出現(xiàn)在程序的最后一行D、預處理命令行的作用域是到最近的函數(shù)結束處標準答案:B知識點解析:本題考查預編譯的預編譯處理命令行,預處理命令行不能以分號結尾,所以A選項錯誤,預處理命令行可以出現(xiàn)在程序的最后一行,預處理命令行作用域是整個文件。36、以下敘述中正確的是A、使用typedef說明新類型名時,其格式是:typedef新類型名原類型名;B、在程序中,允許用typedef來說明一種新的類型名C、使用typedef說明新類型名時,后面不能加分號D、在使用typedef改變原類型的名稱后,只能使用新的類型名標準答案:B知識點解析:本題考查typedef的使用方法,typedef對已存在的類型使用一個新的名字,選項A總新類型名應該在原類型名之后,C選項中后面要加分號,D選項中可以使用原類型名。37、以下敘述中正確的是A、結構體類型中各個成分的類型必須是一致的B、結構體類型中的成分只能是C語言中預先定義的基本數(shù)據(jù)類型C、在定義結構體類型時,編譯程序就為它分配了內存空間D、一個結構體類型可以由多個稱為成員(或域)的成分組成標準答案:D知識點解析:本題考查結構體類型,結構體類型中的成分可以是結構體,所以B選項錯誤,定義結構體時編譯程序并不會給它分配內存空間,所以C選項錯誤,結構體中各個成分的類型可以是不一樣的,所以A選項錯誤。38、以下敘述中正確的是A、使用typedef定義新類型名后,新類型名與原類型名實際上是等價的B、結構體類型中的各個成分均不能是數(shù)組或指針C、結構體類型的變量,不能在聲明結構體類型組成時一起定義D、元素為結構體類型的數(shù)組,只能在聲明過結構體類型之后,單獨進行定義標準答案:A知識點解析:本題考查typedef的使用方法,typedef對已存在的類型使用一個新的名字,結構體類型中的成分可以是數(shù)組和指針,所以B選項錯誤,結構體類型的變量可以在聲明結構體的時候一起定義,C選項錯誤,D選項中可以一起定義。39、下面選項中關于位運算的敘述正確的是A、位運算的對象只能是整型或字符型數(shù)據(jù)B、位運算符都需要兩個操作數(shù)C、左移運算的結果總是原操作數(shù)據(jù)2倍D、右移運算時,高位總是補0標準答案:A知識點解析:本題考查位運算。按位取反只需要一個操作數(shù),所以B選項錯誤,左移一位是原操作數(shù)的2倍,其他情況不是,比如左移兩位就是原操作數(shù)的4倍,所以C選項錯誤,右移運算時,高位在某些情況下不是補0。40、下面選項中關于“文件指針”概念的敘述正確的是A、文件指針是程序中用FILE定義的指針變量B、文件指針就是文件位置指針,表示當前讀寫數(shù)據(jù)的位置C、文件指針指向文件在計算機中的存儲位置D、把文件指針傳給fscanf函數(shù),就可以向文本文件中寫入任意的字符標準答案:A知識點解析:在C語言中用一個指針變量指向一個文件,這個指針稱為文件指針。通過文件指針就可對它所指的文件進行各種操作。文件指針不是文件位置指針,所以BC選項錯誤,D選項中不可以寫入任意的字符。國家二級C語言機試(選擇題)模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列敘述中正確的是()。A、程序執(zhí)行的效率與數(shù)據(jù)的存儲結構密切相關B、程序執(zhí)行的效率只取決于程序的控制結構C、程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D、以上說法均錯誤標準答案:A知識點解析:程序執(zhí)行的效率與數(shù)據(jù)的存儲結構、數(shù)據(jù)的邏輯結構、程序的控制結構以及所處理的數(shù)據(jù)量等有關。2、軟件按功能可以分為應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下列各項中屬于應用軟件的是()。A、學生成績管理系統(tǒng)B、C語言編譯程序C、UNIX操作系統(tǒng)D、數(shù)據(jù)庫管理系統(tǒng)標準答案:A知識點解析:軟件按功能可以分為:應用軟件、系統(tǒng)軟件、支撐軟件。操作系統(tǒng)、編譯程序、匯編程序、網(wǎng)絡軟件、數(shù)據(jù)庫管理系統(tǒng)都屬于系統(tǒng)軟件。所以B、C、D選項都是系統(tǒng)軟件,只有A選項是應用軟件。3、通常軟件測試實施的步驟是()。A、集成測試、單元測試、確認測試B、單元測試、集成測試、確認測試C、確認測試、集成測試、單元測試D、單元測試、確認測試、集成測試標準答案:B知識點解析:軟件測試過程一般按4個步驟進行,即單元測試、集成測試、驗收測試(確認測試)和系統(tǒng)測試。故答案應該選B。4、下列敘述中錯誤的是()。A、系統(tǒng)總體結構圖支持軟件系統(tǒng)的詳細設計B、軟件設計是將軟件需求轉換為軟件表示的過程C、數(shù)據(jù)結構與數(shù)據(jù)庫設計是軟件設計的任務之一D、PAD圖是軟件詳細設計的表示工具標準答案:A知識點解析:詳細設計的任務是為軟件結構圖而非總體結構圖中的每一個模塊確定實現(xiàn)算法和局部數(shù)據(jù)結構、用某種選定的表達工具表示算法和數(shù)據(jù)結構的細節(jié),因此A選項描述錯誤。5、對長度為n的線性表作快速排序,在最壞情況下,比較次數(shù)為()。A、nB、n一1C、n(n—1)D、n(n一1)/2標準答案:D知識點解析:快速排序最壞情況就是每次選的基準數(shù)都和其他數(shù)做過比較,共需比較(n一1)+(n一2)+…+1=n(n一1)/2,故D選項正確。6、某二叉樹共有7個結點,其中葉子結點只有1個,則該二叉樹的深度為(假設根結點在第1層)()。A、3B、4C、6D、7標準答案:D知識點解析:根據(jù)二叉樹的基本性質:在任意一棵二叉樹中,度為0的葉子結點總比度為2的結點多一個,因此本題中度為2的結點為1—1=0個,據(jù)此可以知道本題中的二叉樹的每一個結點都有一個分支,所以共有7個結點、共7層,即深度為7,選擇D。7、下列關于棧的敘述中,正確的是()。A、棧頂元素最先能被刪除B、棧頂元素最后才能被刪除C、棧底元素永遠不能被刪除D、棧底元素最先能被刪除標準答案:A知識點解析:棧是“先進后出”的數(shù)據(jù)結構,因此棧頂元素最后入棧卻最先被刪除,棧底元素最先入棧卻最后被刪除,答案為A。8、在數(shù)據(jù)庫中,數(shù)據(jù)模型包括數(shù)據(jù)結構、數(shù)據(jù)操作和()。A、數(shù)據(jù)約束B、數(shù)據(jù)類型C、關系運算D、查詢標準答案:A知識點解析:數(shù)據(jù)模型是數(shù)據(jù)特征的抽象,從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束條件,為數(shù)據(jù)庫系統(tǒng)的信息表示和操作提供一個抽象的框架,即描述了數(shù)據(jù)結構、數(shù)據(jù)操作及數(shù)據(jù)約束。故正確答案為A。9、一名教師可講授多門課程,一門課程可由多名教師講授。則實體教師和課程間的聯(lián)系是()。A、1:1聯(lián)系B、1:m聯(lián)系C、m:1聯(lián)系D、m:n聯(lián)系標準答案:D知識點解析:因為一名教師可講授多門課程,而一門課程又能由多名教師講授,所以教師和課程之間是多對多的關系,可以表示為m:n,選擇D。10、支持子程序調用的數(shù)據(jù)結構是()。A、棧B、樹C、隊列D、二叉樹標準答案:A知識點解析:棧支持子程序調用。棧是一種只能在一端進行插入或刪除的線性表。在主程序調用子函數(shù)時要首先保存主程序當前的狀態(tài),然后轉去執(zhí)行子程序,最終把子程序的執(zhí)行結果返回到主程序中調用子程序的位置,繼續(xù)向下執(zhí)行,這種調用符合棧的特點,所以A選項正確。11、以下正確的說法是()。A、用戶若需要調用標準庫函數(shù),調用前必須重新定義B、用戶可以重新定義標準庫函數(shù),但若重新定義,該函數(shù)將失去原有意義C、用戶系統(tǒng)根本不允許用戶重新定義庫函數(shù)D、用戶若需要調用庫函數(shù),調用前不必使用預編譯命令將該函數(shù)所在文件包括到用戶源文件中,系統(tǒng)會自動尋找該文件標準答案:D知識點解析:無論是標準庫函數(shù),還是別的函數(shù),都屬于函數(shù)的范疇,都允許用戶重新定義和使用,使用的時候:include命令必須以“#”號開頭,文件名用一對雙引號或一對尖括號括起來,系統(tǒng)提供的頭文件是以.h作為文件后綴。12、下列敘述中錯誤的是()。A、C程序可以由一個或多個函數(shù)組成B、C程序可以由多個程序文件組成C、一個C語言程序只能實現(xiàn)一種算法D、一個C函數(shù)可以單獨作為一個C程序文件存在標準答案:C知識點解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函數(shù),所以一個C語言程序可以實現(xiàn)多種算法,答案選C。13、設有定義:inta;floatb;執(zhí)行scanf(”%2d%f.’,&a,&b);語句時,若從鍵盤輸入876543.0,則a和b的值分別是()。A、87和6.0B、876和543.0C、87和543.0D、76和543.0標準答案:A知識點解析:scanf()函數(shù)的一般形式為:scan(格式控制,地址表列)。其中,“格式控制”是用雙引號括起來的字符串,也稱為“轉換控制字符串”,它包括兩種信息:①格式說明,由“%”和格式字符組成;②普通字符,即需要原樣輸入的字符?!暗刂繁砹小笔切枰邮蛰斎霐?shù)據(jù)的一系列變量的地址。本題中的“格式控制”是“%2d%f”,“%2d”的意思是要輸入一個整數(shù),但該整數(shù)最寬只占2個字符,而“%2d”是要輸入一個浮點數(shù)。題目要求輸入的是876空格543.0,所以scanf()函數(shù)將87賦給a,將6賦給b。14、若變量均已正確定義并賦值,以下各項中屬于合法的C語言賦值語句是()。A、x=n%2.5:B、x=y==5;C、x+n=i:D、x=5=4+1:標準答案:B知識點解析:%取余操作數(shù)只能是整數(shù),x+n和數(shù)值5不能作為賦值的左值,所以A、C、D選項錯誤。15、以下各項中,屬于合法的轉義字符是()。A、’\x41’B、’\Ox41;C、’\X41;D、’\OX41’標準答案:A知識點解析:’\xhh’表示1到2位十六進制所代表的字符,故答案為A。16、有以下程序:#includemain(){inta=3:a+=a一=a*a:prinff(“%d\n”,a);}程序的輸出結果是()。A、0B、9C、3D、一12標準答案:D知識點解析:等號“=”運算符是從右到左,且與“+、一、*”運算符比,優(yōu)先級較低。首先計算a*a,結果為9,執(zhí)行a=a一9后a的值為一6,然后執(zhí)行a+=a,即a=a+a=一6+(一6),所以值為一12。17、設有定義:chars[81];inti=0;以下不能將一行(不超過80個字符)帶有空格的字符串正確讀入的語句或語句組是()。A、gets(s);B、while((s[i++]=getchar())!=’\n’);s[i]=’\0’;C、scanf(“%s”,s);D、do{scanf(“%c”,&s[i]);}while(s[i++]!=’\n’);s[i]=’\0’;標準答案:C知識點解析:函數(shù)scanf()輸入字符串時默認空格為間隔符,所以不能輸入空格,答案選C。18、有以下程序:#includemain(){charc1,c2,c3,c4,c5,c6;scanf(“%c%c%c%c”,&c1,&c2&c3,&c4);c5=getchar();c6=getchar();putchar(e1);putchar(c2);prinff(“%c%e\n”,c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始):123<回車>45678<回車>則輸出結果是()。A、1256B、1245C、1278D、1267標準答案:B知識點解析:對于字符型數(shù)據(jù)的輸入而言,從鍵盤上輸入的字符,不管是否可以輸出,都會被讀入字符型變量中。因此,c1=1,c2=2,c3=3,c4=<回車>,c5=4,c6=5,輸出c1,c2,c5,c6的結果為1245,答案選B。19、有以下程序:#includemain(){ima,b;for(a=0;a<3;a++){seanf(“%d”,&b);switch(b){default:prinff(“%d”,++b);case1.:prinff(“%d”,++b);case2(“%deasepnnu”,++b);}}}執(zhí)行時輸入:123<回車>,則輸出結果是()。A、233456B、234C、223444D、234344標準答案:A知識點解析:這是一個循環(huán)結構嵌套選擇結構,按照外層循環(huán),內層選擇一步一步處理即可。本題重點注意,switch語句中并沒有出現(xiàn)break語句,所以內層循環(huán)是不會跳出的。20、對于if(表達式)語句,以下敘述中正確的是()。A、“表達式”的值可以是任意合法的數(shù)值B、變量不能出現(xiàn)在“表達式”中C、常量不能出現(xiàn)在“表達式”中D、如果“表達式”的值不是邏輯值,程序會出編譯錯誤標準答案:A知識點解析:B、C、D選項描述比較片面。21、若有以下程序:#includemain(){intc;c=13115;printf(“%d\n”,c);}則程序的輸出結果是()。A、13B、15C、18D、5標準答案:B知識點解析:本題考查位運算中按位或運算符,或運算只要兩個比較的位中有一個為1,其結果是1,否則結果為0。13用二進制表示為00001101,15用二進制表示為00001111,或運算后結果為00001111,即15,故B選項正確。22、有以下程序:#includemain(){inta=1,b=0;if(一一a)b++;elseif(a==0)b+=2;elseb+=3;printf(“%d\n”,b);}程序運行后的輸出結果是()。A、0B、1C、2D、3標準答案:C知識點解析:“++”和“一一”運算,當以前綴形式出現(xiàn)時,則先進行加1或減1操作,再進行其他運算;當以后綴形式出現(xiàn)時,則先進行其他運算,再進行加1或減1操作。a初始定義為1,b為0,執(zhí)行一一a,a的值變?yōu)?,即if判斷為假,執(zhí)行b+=2,輸出b的值為2。23、有以下程序:#includemain(){inti,array[6]={1,5,0,4};for(i=0;i<5;i++)printf(“%d”,array[i]);printf(“\n”);}程序運行后的輸出結果是()。A、04040B、15040C、15540D、12120標準答案:B知識點解析:本題主要考查一維數(shù)組的輸出。由于數(shù)組中有6個元素,但初始化數(shù)組的時候只給出4個元素,所以array[5]=0,array[6]=0,前面幾位元素依次輸出,不夠位數(shù)補0,所以選項B正確。24、以下敘述中正確的是()。A、數(shù)組說明符的一對方括號中只能使用整型常量,而不能使用表達式B、一條語句只能定義一個數(shù)組C、每個數(shù)組包含一組具有同一類型的變量,這些變量在內存中占有連續(xù)的存儲單元D、在引用數(shù)組元素時,下標表達式可以使用浮點數(shù)標準答案:C知識點解析:同類元素的集合稱為數(shù)組,數(shù)組元素在內存中占據(jù)連續(xù)的存儲空間,C選項正確。方括號中可以為整型變量或者常量表達式,A選項錯誤。在使用逗號運算符的情況下,一條語句可以定義多個數(shù)組,B選項錯誤。數(shù)組元素在數(shù)組中的下標為整型常量或者變量構成的整型表達式,不能為浮點數(shù),D選項錯誤。答案選C。25、若有定義語句:intm[][3]={1,2,3,4,5,6,7};,則與該語句等價的是()。A、intm[][3]={{1,2,3},{4,5},{6,7}};B、intm[][3]={{1,2},{3,4},{5,6,7}};C、intm[][3]={{1,2,3},{4,5,6},{7}};D、intm[][3]={{1},{2,3,4},{5,6,7}};標準答案:C知識點解析:考查二維數(shù)組的初始化。初始化二維數(shù)組的時候,若給數(shù)組的全部元素均賦初值,此時第一維的元素個數(shù)可以不指定,部分賦值時,最后一行元素不寫完整,此時數(shù)組第一維元素個數(shù)仍然可以不指定。題中為按行給數(shù)組m賦值,最后一行只有部分賦初值,答案選C。26、以下敘述中正確的是()。A、char,c1,c2,*c3,c4[40];是合法的變量定義語句B、數(shù)組下標的下限由數(shù)組中第一個非零元素的位置決定C、數(shù)組下標的下限由數(shù)組中第一個被賦值元素的位置決定D、數(shù)組下標的下限是1標準答案:A知識點解析:A選項正確,charc1,c2,*c3,c4[40]表示定義了兩個字符變量c1、c2,一個字符指針c3,一個字符數(shù)組c4。數(shù)組的下限永遠為0,選項B、C、D錯,答案選A。27、有以下程序:#includemain(){inta=3:d0{printf(“%d,”,a一=2);}while(!(一一a));printf(“\n”);}程序運行后的輸出結果是()。A、1,一3,B、1,一2,C、3,0,D、1,0,標準答案:B知識點解析:本題重點考查do…while語句,該循環(huán)語句的特點是,先執(zhí)行循環(huán)中的語句,然后再判斷表達式是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)。因此,do…while循環(huán)至少要執(zhí)行一次循環(huán)語句。變量a賦初值為3,每循環(huán)一次需執(zhí)行語句a一=2一次,同時循環(huán)條件使變量a自減1,所以第一次循環(huán)后變量a變?yōu)?,第2次循環(huán)后變量a變?yōu)橐?。故B選項正確。28、若有定義:chars[30]={0};運行時輸入:Thisisastring.<回車>則以下不能正確讀入整個字符串Thisisastring.到字符數(shù)組s中的語句組是()。A、scanf(“%s”,s);B、gets(s);C、for(i=0;(c=getchar())!=’\n’;++)s[i]=c;D、i=0;while((C=getchar())!=’\n’)j[i++]=c;標準答案:A知識點解析:考查基本的字符串輸入控制語句。29、有以下程序:#includemain(){intX;for(X=3;X<6;x++)prinff((x%2)?(“*%d”):(“#%d”),x);prinff(“\n”);}程序的輸出結果是()。A、*3#*5B、#3*4#5C、*3*4#5D、*3#4#5標準答案:A知識點解析:條件運算符組成條件表達式的一般形式為:表達式1?表達式2:表達式3。其求值規(guī)則為:表達式1值為真,則以表達式2的值作為條件表達式的值,否則以表達式3的值作為整個條件表達式的值。本題中語句printf((x%2)?(“*%d’t):(“#%dI,x);含義為變量x對2求余,如果結果為真,則按照“*%d”出,否則按照“#%d”出。故A選項正確。30、有以下程序:#includevoidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;for(i=0;i<10;i+=2)fun(c[i],c[i+1]);for(i=0;i<10;i++)prinff(“%d”,c[i]);printf(“\n”);}程序的運行結果是()。A、1234567890B、2143658709C、0987654321D、0123456789標準答案:A知識點解析:函數(shù)fun()屬于值傳參,形參的變化不會影響實參,所以函數(shù)調用結束后,數(shù)組c沒有任何變化,輸出結果為選項A。31、有以下程序:#includeintfun(intn){inta;if(n==1)return1;a=n+fun(n一1);return(a);}main(){printf(“%d\n”,fun(5));}程序的輸出結果是()。A、10B、14C、15D、9標準答案:C知識點解析:考查遞歸函數(shù)。函數(shù)fun()的功能是計算1到n之間的數(shù)字之和,所以計算結果為15,答案選C。32、以下選項中,沒有編譯錯誤的是()。A、charstr3[]={’d’,’e’,’b’,’u’,’g’,’\0’};B、charstrl[5]=“pass”,str2[6];str2=strl:C、charname[10];name=“china”;D、charstr4[];str4=“helloworld”;標準答案:A知識點解析:B選項中,不能直接將字符數(shù)組名直接賦值給另一個字符數(shù)組名。C選項賦值錯誤,不能將一個字符串常量賦值給一個字符指針。D選項定義str4時需要定義其長度。故A選項正確。33、有以下程序:#includeintadd(inta,intb){return(a+b);}main(){intk,(*f)(),a=5,b=10;f=add;}則以下函數(shù)調用語句中錯誤的是()。A、k=*f(a,b);B、k=add(a,b);C、k=(*f)(a,b);D、k=f(a,b);標準答案:A知識點解析:int(*f)()為一個函數(shù)指針變量,返回值為整型,f為一個指針變量,指向一個已經定義的函數(shù),在調用該函數(shù)的時候需要把參數(shù)寫在相應的小括號內,即(*指針名)(參數(shù)或參數(shù)列表),所以選項A調用錯誤,答案選A。34、以下關于C語言函數(shù)參數(shù)傳遞方式的敘述中正確的是()。A、數(shù)據(jù)只能從實參單向傳遞給形參B、數(shù)據(jù)可以在實參和形參之間雙向傳遞C、數(shù)據(jù)只能從形參單向傳遞給實參D、C語言的函數(shù)參數(shù)既可以從實參單向傳遞給形參,也可以在實參和形參之間雙向傳遞,可視情況選擇使用標準答案:A知識點解析:數(shù)據(jù)只能由實參單向傳遞給形參稱為“值傳遞”,而不能由形參傳回來給實參,A選項正確;數(shù)組名、指針等作參數(shù),實參傳遞給形參地是地址值,這樣形參和實參就指向同一段內存單元,在函數(shù)體內對形參數(shù)據(jù)的改變也將影響到實參。實參和形參之間不可雙向傳遞,BD選項錯誤。數(shù)據(jù)不能從形參傳遞給實參,C選項錯誤。35、設已有定義:floatx;則以下對指針變量P進行定義且賦初值的語句中正確的是()。A、float*p=&;x;B、int*P=(float)x;C、floatp=&;x;D、float*P=1024:標準答案:A知識點解析:考查指針變量的初始化。只能把對應類型的變量的地址賦值給指針,選項B錯誤;定義指針時要加上“*”標明該變量為一個指針變量,選項C錯誤;不能把一個整數(shù)直接賦值給指針變量,選項D錯誤;所以答案選A。36、以下敘述中正確的是()。A、在C語言中,預處理命令行都以#開頭B、預處理命令行必須位于C源程序的起始位置C、#include必須放在C程序的開頭D、C語言的預處理不能實現(xiàn)宏定義和條件編譯的功能標準答案:A知識點解析:c語言中,凡是以“#”開頭的都被稱為編譯預處理行,選項A正確;預處理行可以放在C源程序的任何位置,習慣放在起始位置,選項B錯誤;語句“#include”必須放在使用文件stdio.h中相關方法的語句之前,但是不一定非要放在C程序開頭,選項C錯誤;預處理包括宏定義、文件包含和條件編譯等,選項D錯誤。答案選A。37、有以下程序:#includeintfunl(inta,intb){returna+b;}intflun2(inta,intb){retuma—b;}intfun(int(*t)(int,int),intx,inty){return((*t)(x,y));}main(){intx;x=fun(funl,9,3);x+=fun(fun2,8,3);printf(“%d\n”,x);}程序運行后的輸出結果是()。A、24B、23C、17D、22標準答案:C知識點解析:本題主要考查函數(shù)作為形參時的使用,由x=fun(funl,9,3);可得到x=9+3=12,而后直接傳入函數(shù)flin2,x=x+8—3=12+5=17。故C選項正確。38、有以下程序:#includevoidsp(int*a){intb=2;a=&b:*a=*a*2:prinff(“%d,”,*a);}main(){intk=3,*p=&k;sp(p);pfinff(“%d,%d\n”,k,*p);}則程序的輸出結果是()。A、4,3,3B、4,3,4C、6,3,6D、6,6,6標準答案:A知識點解析:首先在主函數(shù)中給整型變量k賦值為3,將變量k的地址賦給指針變量p,調用sp函數(shù),將實參p的值傳給形參a,在sp函數(shù)中,指針變量a又獲得變量b的地址,通過運算后,輸出a的值為4,返回主函數(shù),輸出k的值和p的值為3和3。故A選項正確。39、有以下程序:#includevoidmy(){charch:ch=getchar();if(ch!=’c’)my();putchaur(ch);}main(){my();}執(zhí)行時,輸入abc<回車>,則輸出結果是()。A、abcB、ababcC、bcaD、cba標準答案:D知識點解析:my()遞歸,直到輸入了c開始返回。遞歸使用的是棧的思想,因此最后輸入進去的最先返回并輸出。所以結果是cba。40、有以下程序:#includemmn(){unsignedchaura=8,c;c=a>>3:pnnff(“%d\n”,c);}程序運行后的輸出結果是()。A、32B、16C、1D、0標準答案:C知識點解析:字符常量與其ASCⅡ碼值一一對應,在計算的時候,可以使用該字符的ASCⅡ碼參與運算,輸出時會根據(jù)格式控制符輸出對應的字符或者ASCⅡ碼。右移運算符“>>”的運算規(guī)則是把左邊運算數(shù)的各二進制位全部右移n位,n取決于“>>”右邊的數(shù)值。字符a的ASCⅡ碼值為8,對應二進制為1000,所以a>>3=1,輸出的字符c的ASCⅡ碼值為1,答案選C。國家二級C語言機試(選擇題)模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列關于棧和隊列的描述中,正確的是()。A、棧是先進先出B、隊列是先進后出C、隊列允許在隊頭刪除元素D、棧在棧頂刪除元素標準答案:D知識點解析:棧實際也是線性表,只不過是一種特殊的線性表。棧是只能在表的一端進行插入和刪除運算的線性表,通常稱插入、刪除的這一端為棧頂,另一端為棧底。隊列是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊頭,允許插入的一端叫做隊尾。2、已知二叉樹后序遍歷序列是CDABE,中序遍歷序列是CADEB,它的前序遍歷序列是()。A、ABCDEB、ECABDC、EACDBD、CDEAB標準答案:C知識點解析:由于后序遍歷的最后一個元素為E,所以E為根結點,所以它的前序遍歷的首個元素為E,故排除A和D選項。由于中序遍歷中,元素B在元素根結點E的后面,所以B為二叉樹的右子樹,并且該二叉樹右子樹只有一個元素,所以前序遍歷的最后一個元素應為B,故選項C為正確選項,即該二叉樹的前序遍歷序列是EACDB。3、在數(shù)據(jù)流圖中,帶有箭頭的線段表示的是()。A、控制流B、數(shù)據(jù)流C、模塊調用D、事件驅動標準答案:B知識點解析:數(shù)據(jù)流圖中帶箭頭的線段表示數(shù)據(jù)流,沿箭頭方向傳遞數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名。4、結構化程序設計的3種結構是()。A、順序結構,分支結構,跳轉結構B、順序結構,選擇結構,循環(huán)結構C、分支結構,選擇結構,循環(huán)結構D、分支結構,跳轉結構,循環(huán)結構標準答案:B知識點解析:程序設計語言僅僅使用順序、選擇和重復(循環(huán))三種基本控制結構就足以表達出各種其他形式結構的程序設計方法。遵循程序結構化的設計原則,按結構化程序設計方法設計出的程序易于理解、使用和維護;可以提高編程工作的效率,降低軟件的開發(fā)成本。5、下列方法中,不屬于軟件調試方法的是()。A、回溯法B、強行排錯法C、集成測試法D、原因排除法標準答案:C知識點解析:軟件調試主要采用以下三種方法:強行排錯法:作為傳統(tǒng)的調試方法,其過程可概括為設置斷點、程序暫停、觀察程序狀態(tài)、繼續(xù)運行程序?;厮莘ǎ涸摲椒ㄟm合于小規(guī)模程序的排錯、即一旦發(fā)現(xiàn)了錯誤,先分析錯誤征兆,確定最先發(fā)現(xiàn)“癥狀”的位置。原因排除法:原因排除法是通過演繹和歸納,以及二分法來實現(xiàn)。6、下列選項中,不屬于模塊間耦合的是()。A、內容耦合B、異構耦合C、控制耦合D、數(shù)據(jù)耦合標準答案:B知識點解析:耦合可以分為下列幾種,它們之間的耦合度由高到低排列:內容耦合一一若一個模塊直接訪問另一模塊的內容,則這兩個模塊稱為內容耦合。公共耦合一一若一組模塊都訪問同一全局數(shù)據(jù)結構,則稱為公共耦合。外部耦合一一若一組模塊都訪問同一全局數(shù)據(jù)項,則稱為外部耦合??刂岂詈稀粢荒K明顯地把開關量、名字等信息送入另一模塊,控制另一模塊的功能,則稱為控制耦合。標記耦合一一若兩個以上的模塊都需要其余某一數(shù)據(jù)結構的子結構時,不使用其余全局變量的方式而全使用記錄傳遞的方式,這樣的耦合稱為標記耦合。數(shù)據(jù)耦合——若一個模塊訪問另一個模塊,被訪問模塊的輸入和輸出都是數(shù)據(jù)項參數(shù),則這兩個模塊為數(shù)據(jù)耦合。非直接耦合——若兩個模塊沒有直接關系,它們之間的聯(lián)系完全是通過程序的控制和調用來實現(xiàn)的,則稱這兩個模塊為非直接耦合,這樣的耦合獨立性最強。7、下列特征中不是面向對象方法的主要特征的是()。A、多態(tài)性B、標識惟一性C、封裝性D、耦合性標準答案:D知識點解析:面向對象設計方法與面向過程設計方法有本質的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:標識惟一性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性好。8、在數(shù)據(jù)庫設計中,將E-R圖轉換成關系數(shù)據(jù)模型的過程屬于()。A、需求分析階段B、概念設計階段C、邏輯設計階段D、物理設計階段標準答案:C知識點解析:邏輯結構設計的任務:概念結構是各種數(shù)據(jù)模型的共同基礎,為了能夠用某一DBMS實現(xiàn)用戶需求,還必須將概念結構進一步轉化為相應的數(shù)據(jù)模型,這正是數(shù)據(jù)庫邏輯結構設計所要完成的任務。它包括從E-R圖向關系模式轉換和邏輯模式規(guī)范化及調整、實現(xiàn)。9、在一棵二叉樹上,第5層的結點數(shù)最多是()。A、8B、9C、15D、16標準答案:D知識點解析:根據(jù)二叉樹的性質:二叉樹第i(i≥1)層上至多有2i-1個結點。得到第5層的結點數(shù)最多是16個。10、下列有關數(shù)據(jù)庫的描述,正確的是()。A、數(shù)據(jù)庫設計是指設計數(shù)據(jù)庫管理系統(tǒng)B、數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)共享的問題C、數(shù)據(jù)庫是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持D、數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結構必須與邏輯結構一致標準答案:B知識點解析:數(shù)據(jù)庫設計的目的實質上是設計出滿足實際應用需求的實際關系模型。數(shù)據(jù)庫技術的主要目的是有效地管理和存取大量的數(shù)據(jù)資源,包括:提高數(shù)據(jù)的共享性,使多個用戶能夠同時訪問數(shù)據(jù)庫中的數(shù)據(jù);減小數(shù)據(jù)的冗余,以提高數(shù)據(jù)的一致性和完整性;提供數(shù)據(jù)與應用程序的獨立性,從而減少應用程序的開發(fā)和維護代價。11、以下關于C語言的敘述中正確的是()。A、預處理命令通常位于函數(shù)體外面,但也可以位于函數(shù)體中間B、C語言中的變量定義須在其他語句之前C、在C語言程序的書寫中,一個語句必須單占一行D、一個C語言源程序可以由一個或多個源文件組成,每個源文件可由自己的main函數(shù)標準答案:A知識點解析:源程序中可以有預處理命令(include命令僅為其中的一種)。C語言中的變量可以在使用之前的任何位置進行定義。C語言程序的書寫中,多個語句可以位于一行,但為了增強可讀性,一般每行只有一條語句。一個C語言源程序可以由一個或多個源文件組成,但僅可以有一個main函數(shù)。12、下列敘述中錯誤的是()。A、用戶所定義的標識符允許使用關鍵字B、用戶所定義的標識符應盡量做到“見名知意”C、用戶所定義的標識符必須以字母或下劃線開頭D、用戶定義的標識符中,大、小寫字母代表不同標識標準答案:A知識點解析:在C語言中,合法標識符的命名規(guī)則是:標識符可以由字母、數(shù)字和下劃線組成,并且第一個字符必須為字母或下劃線,凡是要求標識符的地方都必須按此規(guī)則命名。在C語言的標識符中,大寫字母和小寫字母被認為是兩個不同的字符。在選擇標識符時,應注意做到“見名知義”,即選擇具有一定含義的英文單詞或漢語拼音作為標識符,以增加程序的可讀性。13、下列選項中可作為C語言合法常量的是()。A、-80B、-080C、-8e1.0D、-80.0e標準答案:A知識點解析:所謂常量是指在程序運行的過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。選項B中是以0開頭,表示一個八進制數(shù),而八進制數(shù)的取值范圍是0~7,所以“-080”錯誤;在C語言中e后面的指數(shù)必須是整數(shù),因此選項C和D也不正確。14、下列定義變量的語句中錯誤的是()。A、int_int;B、doubleint_;C、charFor;D、floatUS$;標準答案:D知識點解析:C語言規(guī)定,變量的標識符只能由字母、數(shù)字和下劃線3種字符組成,且首字符必須為字母或下劃線。在C語言中大寫字母和小寫字母被認為是兩個不同的字符。選項A定義的變量標識符_int和選項B定義的變量標識符_int與C語言的關鍵字int是不同的,是正確的變量標識。選項C定義的變量標識符For與C語言中的關鍵字for是兩個不同的標識符,所以選項C是正確的,而選項D包含有特殊字符$,因而其不符合C語言的變量命名規(guī)定。15、下列關于函數(shù)的敘述中正確的是()。A、每個函數(shù)都可以被其他函數(shù)調用(包括main函數(shù))B、每個函數(shù)都可以被單獨編譯C、每個函數(shù)都可以單獨運行D、在一個函數(shù)內部可以定義另一個函數(shù)標準答案:B知識點解析:在C語言中,函數(shù)定義是平行的,函數(shù)不能嵌套定義,即函數(shù)之間沒有從屬關系。雖然函數(shù)之間可以相互調用,但main()函數(shù)不能被調用,選項A錯誤;C程序從main()函數(shù)開始執(zhí)行,當main()函數(shù)執(zhí)行完畢時,整個程序就結束了。C程序的執(zhí)行必須從main()函數(shù)開始,選項C選項錯誤;函數(shù)不能嵌套定義,選項D錯誤。16、當a=1、b=2、c=3、d=4時,執(zhí)行下面程序段后,x的值是()。if(a<b)if(c<d)x=1;elseif(a<c)if(b<d))x=2;elsex=3;elsex=6;elsex=7;A、1B、6C、3D、2標準答案:A知識點解析:本題考查的是if-else語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下面的語句。第二個if語句,先判斷條件,發(fā)現(xiàn)c<d條件成立,執(zhí)行下面的語句x=1。17、以下程序的輸出結果是()。#include<stdio.h>main(){inta=4,b=3,c=2,d=1;printf(’’%d’’,a<b?a:d<c?d:b);}A、1B、3C、2D、4標準答案:A知識點解析:條件表達式的格式為:’’a?b:c’’,它的功能是:當a為真時,表達式的值等于b的值;當a為假時,表達式的值等于c的值。因為條件運算符的結合方向為“自右向左”。因此,當表達式中嵌套使用條件表達式時,應先計算右邊的條件表達式,再計算左邊的條件表達式。題中應先計算“d18、有以下程序#include<stdio.h>main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=0;for(i=0;i<3;i++)for(j=2;j>=i;j--)t+=b[i][j];printf(’’%d\n’’,t);}程序運行后的輸出結果是()。A、4B、3C、8D、9標準答案:C知識點解析:這道題主要考查的是二維數(shù)組的有關知識。在兩層for循環(huán)語句中,累加上三角元素,所以程序執(zhí)行的過程為“t=b[0][0]+b[0][1]+b[0][2]+b[1][1]+b[1][2]+b[2][2]=8”。19、以下程序:#include<stdio.h>main(){charstr[10];scanf(’’%s’’,&str);printf(’’%s\n’’,str);}運行上面的程序,輸入字符串“howareyou”,則程序的執(zhí)行結果是()。A、howB、howareyouC、hD、howareyou標準答案:A知識點解析:當從鍵盤輸入“howareyou”時,由于scanf輸入函數(shù)的特點是遇到空格時結束讀入字符,因此,該程序只將how這3個字符送到了字符數(shù)組str中,并在其后自動加上結束符“\0”。20、設變量x和變量y都是int類型,且x=l,y=2,則printf(’’%d%d’’,x,y,(x,y))的輸出結果是()。A、12B、122C、1,2D、輸出值不確定標準答案:A知識點解析:本題考查printf函數(shù)的格式和逗號表達式。printf函數(shù)在輸出時,是根據(jù)格式說明符的個數(shù)輸出的,如果函數(shù)中有多余的項將不予輸出;如果有輸出項少于格式說明符,則出錯,不能輸出正確的結果。本題中逗號表達式(x,y)只返回y的值。此時格式說明的個數(shù)是2,而輸出項的個數(shù)是3,因此printf函數(shù)只輸出前兩項。21、以下程序的輸出結果是()。#include<stdio.h>main(){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標準答案:B知識點解析:本題考查switch語句。因為a=8,a%4=0,所以執(zhí)行case0后面的語句,將m加1,遇到break語句跳出switch。22、定義如下變量和數(shù)組:inti,x[3][3]={1,2,3,4,5,6,7,8,9};則下面語句的輸出結果是()。for(i=0;i<3;i++)printf(’’%d’’,x[i][2-i]);A、159B、147C、357D、369標準答案:C知識點解析:本題主要考查二維數(shù)組的使用。題中利用for循環(huán)來輸出x數(shù)組中的指定元素:①當i=0時,輸出x[0][2]=3;②當i=1時,輸出x[1][1]=5;③當i=2時,輸出x[2][0]=7。23、有下列程序段:typedefstructNODE{intnum;structNODE*next;}OLD;下列敘述中正確的是()。A、以上的說明形式非法B、NODE是一個結構體類型C、OLD是一個結構體類型D、OLD是一個結構體變量標準答案:C知識點解析:C語言允許用typedef說明一種新類型名,其一般形式為:typedef類型名標識符。typedef語句的作用僅僅是使“標識符”來代表已存在的“類型名”,并未產生新的數(shù)據(jù)類型。原有類型名依然有效。此題中,用typedef定義了新的類型OLD結構,所以OLD為結構體類型。24、下列數(shù)組定義中錯誤的是()。A、intX[][3]={0};B、intx[2][3]={{1,2},{3,4},{5,6}};C、intx[][3]={{1,2,3},{4,5,6}};D、intx[2][3]={1,2,3,4,5,6};標準答案:B知識點解析:二維數(shù)組的初始化有以下幾種形式:①分行進行初始化;②不分行的初始化;⑧部分數(shù)組元素初始化;④省略第一維的定義,不省略第二維的定義。在選項B中賦值號左邊定義了一個2行3列的二維數(shù)組,而右邊用3行2列的數(shù)字進行賦初值。所以出現(xiàn)了邊界的越界溢出錯誤。25、以下敘述錯誤的是()。A、變量的作用域取決于變量定義語句的位置B、全局變量可以在函數(shù)以外的任何部位進行定義C、局部變量的作用域可用于其他函數(shù)的調用D、一個變量說明為static存儲類型是為了限制其他編譯單元的引用標準答案:D知識點解析:本題考查函數(shù)調用的變量作用域。全局變量不在任何函數(shù)體內定義,作用域為整個文件;局部變量在函數(shù)體內定義,作用域僅為本次函數(shù);static類型是靜態(tài)變量,為了方便其他編譯單元的引用,不能隨意改變。一個函數(shù)包含兩部分:函數(shù)首和函數(shù)體,函數(shù)體包括花括號內的所有語句。26、若定義函數(shù)“int*func()”,則函數(shù)func的返回值為()。A、一個實數(shù)B、一個指向整型變量的指針C、一個指向整型函數(shù)的指針D、一個整型函數(shù)的入口地址標準答案:B知識點解析:本題考查函數(shù)返回值。fun函數(shù)的返回值類型為int*類型,即函數(shù)返回一個指向整型變量的指針。27、若有定義“inta[5],*p=a;”則正確引用數(shù)組元素的是()。A、*&a[5]B、*a+2C、*(p+5)D、*(a+2)標準答案:D知識點解析:本題考查通過指針引用數(shù)組元素。用指針引用數(shù)組有以下3種形式:①“(p+n)與(a+n)”表示數(shù)組元素a[n]的地址;②“*(p+n)與*(a+n)"表示數(shù)組元素a[n];③“p[n]=*(p+n)”,都表示數(shù)組元素a[n]。選項A、B沒有這種引用形式;選項C,“*(p+5)”是引用數(shù)組的第6個元素,而數(shù)組一共有5個元素,出現(xiàn)越界;選項D,“*(a+2)”引用數(shù)組的第3個元素。28、以下對C語言中聯(lián)合類型數(shù)據(jù)的正確敘述是()。A、定義了聯(lián)合變量后,即可引用該變量或該變量中的任意成員B、一個聯(lián)合變量中可以同時存放其所有成員C、聯(lián)合中的各個成員使用共同的存儲區(qū)域D、在向聯(lián)合中的一個成員進行賦值時,聯(lián)合中其他成員的值不會改變標準答案:C知識點解析:聯(lián)合體的幾個特點:①聯(lián)合體所占用的內存空間為最長的成員所占用的空間;②各個成員分量全部是從低地址方向開始使用內存單元;③聯(lián)合體中的空間在某一時刻只能保存某一個成員的數(shù)據(jù);④聯(lián)合體和結構體可以任意嵌套。29、有以下函數(shù)定義:intfun(doublea,doubleb){returna*b;}若以下選項中所用變量都已正確定義并賦值,錯誤的函數(shù)調用是()。A、if(fun(x,y)){……}B、z=fun(fun(x,y),fun(x,y));C、z=fun(fun(x,y)x,y);D、fun(x,y);標準答案:C知識點解析:本題考查函數(shù)調用時的參數(shù)傳遞。選項C中第一個參數(shù)的表達式不正確,因此不能得到正確的結果。30、執(zhí)行以下語句段后,xy的值是()。int*pt,xy;xy=200;pt=&xy;xy=*pt+30;A、200B、170C、260D、230標準答案:D知識點解析:本題考查指針的運用。通過pt=&xy,將pt指向xy所占的內存地址,而*pt是指針pt所指向內存單元中的內容,即200,所以最后xy的值為230。31、下述程序的輸出結果是()。#include<stdio.h>voidmain(){inta[20],*p[4];inti,k=0;for(i=0;i<20;i++)a[i]=i;for(i=0;i<4;i++)p[i]=&a[i*i+1];for(j=0;i<4;i++){k=k+*p[i];}printf(’’%d’’,k);}A、10B、18C、6D、數(shù)組元素引用不合法,輸出結果不定標準答案:B知識點解析:第一個for循環(huán),給數(shù)組a的20個元素分別賦值0~19;第二個for循環(huán),給數(shù)組p賦值,p[0]=a[1]=1,p[1]=a[2]=2,p[2]=a[5]=5,p[3]=a[10]=10;第三個for循環(huán),將數(shù)組p中元素的值進行累加,k=1+2+5+10=18。32、有以下程序:#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i)+1;}main(){inta[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=0;i<N/2;i++){printf(’’%d’’,a[i]);}printf(’’\n’’);}程序運行后的輸出結果是()。A、1313B、3234C、4234D、1234標準答案:C知識點解析:函數(shù)“fun(int*x,inti)”的功能是把數(shù)組元素x[i]的值加1賦給x[0]。所以在主函數(shù)中執(zhí)行fun(a,2)后,數(shù)組元數(shù)a[0]的值等于4。然后在for循環(huán)語句中,輸出數(shù)組a中的前4個元素的值,分別是4、2、3、4。33、下面程序的輸出結果是()。#include<stdio.h>main(){chara[]={’a’,’b’,’c’,’d’,’f’,’g’},*p;p=a;printf(’’%c\n’’,*p+4);}A、aB、bC、eD、f標準答案:C知識點解析:“*”號的優(yōu)先級比“+”的優(yōu)先級高,所以先執(zhí)行“*p”;指針p指向的是數(shù)組的首地址,因此“*p=a”,再加4得‘e’。34、下面函數(shù)的功能是()。sss(s,t)char*s,*t;{while(*s);while(*t)*(s++)=*(t++);returns;}A、將字符串s復制到字符串t中B、比較兩個字符串的大小C、求字符串的長度D、將字符串t續(xù)接到字符串s中標準答案:D知識點解析:本題考查指針變量的運用。本題中的函數(shù)實質上是將字符串t續(xù)接到字符串s中。35、下列程序的運行結果是()。#include<stdio.h>voidsub(int*s,int*y){staticintm=4;*y=s[m];m--;}voidmain(){inta[]={1,2,3,4,5},k,x;printf(’’\n’’);for(k=0;k<=4;k++){sub(a,&x);printf(’’%d,’’,x);}}A、5,4,3,2,1,B、1,2,3,4,5,C、0,0,0,0,0,D、4,4,4,4,4,標準答案:A知識點解析:本題考查的是靜態(tài)變量以及函數(shù)的實參與形參之間的地址值傳遞。sub()函數(shù)中定義的變量m是一個靜態(tài)變量,系統(tǒng)可為其分配固定的存儲空間,重復使用時,變量的值保留:所以當main()函數(shù)中的for循環(huán)中語句“sub(a,&x)”;執(zhí)行時,sub函數(shù)中m的值依次是4、3、2、1、0;因為變量x進行的是地址值傳遞,所以最后依次輸出的是數(shù)組a的元素a[4]、a[3]、a[2]、a[1]、a[0]。36、設q1和q2是指向一個int型一維數(shù)組的指針變量,k為float型變量,下列不能正確執(zhí)行的語句是()。A、k=*q1*(*q2);B、q1=k;C、q1=q2;D、k=*q1+*q2;標準答案:B知識點解析:本題考查指針變量的賦值操作。選項A是將指針q1和q2所指向的變量值相乘,然后賦給k;選項B中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進行賦值運算;選項C中,是兩個指針變量之間的賦值;選項D中,是兩個指針型變量所指向的兩個int型數(shù)據(jù)相加。37、下列程序的輸出結果為()。main(){unionun{char*name;intage;intpay;}s;s.name=’’zhaoming’’;s.age=32;s.pay=3000;printf(’’%d\n’’,s.age);}A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026浙江臺州浙江大學科技園發(fā)展有限公司招聘2人備考題庫及答案詳解(易錯題)
- 2026浙江溫州市洞頭捷鹿船務有限公司招聘1人備考題庫(售票員)帶答案詳解
- 2026年谷歌Ads廣告投放策略課程
- 機械行業(yè)研究:看好燃氣輪機、人形機器人和核聚變
- DB37-T6011.6-2025小麥玉米周年產能提升實施規(guī)范第6部分:產量測定與種植效益評價
- 職業(yè)噪聲暴露與心電圖ST-T改變的關聯(lián)研究
- 藍帶促銷主管年終總結(3篇)
- 職業(yè)健康政策的實施路徑與政策建議
- 職業(yè)健康大數(shù)據(jù)挖掘算法優(yōu)化
- 職業(yè)健康體檢中塵肺病早期篩查策略優(yōu)化
- 2026海南安保控股有限責任公司招聘11人筆試模擬試題及答案解析
- 裝飾裝修工程施工組織設計方案(二)
- 2026上海碧海金沙投資發(fā)展有限公司社會招聘參考題庫必考題
- 保險業(yè)客戶服務手冊(標準版)
- 檢驗科內控制度
- DB44-T 2771-2025 全域土地綜合整治技術導則
- 淺談醫(yī)藥價格管理現(xiàn)狀透析
- 全屋定制合同協(xié)議模板2025年標準版
- 2025年數(shù)字人民幣應用基礎考試模擬試卷及答案
- 孕婦監(jiān)護和管理課件
- 2026年安全員之A證考試題庫500道(必刷)
評論
0/150
提交評論