全國計算機等級考試二級C語言真題庫之選擇題(16)_第1頁
全國計算機等級考試二級C語言真題庫之選擇題(16)_第2頁
全國計算機等級考試二級C語言真題庫之選擇題(16)_第3頁
全國計算機等級考試二級C語言真題庫之選擇題(16)_第4頁
全國計算機等級考試二級C語言真題庫之選擇題(16)_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、全國計算機等級考試等級考試真題庫全國計算機等級考試等級考試真題庫之選擇題(16)1.下列敘述中正確的是A) 程序執(zhí)行的效率與數(shù)據的存儲結構密切相關B) 程序執(zhí)行的效率只取決于程序的控制結構C) 程序執(zhí)行的效率只取決于所處理的數(shù)據量D) 以上說法均錯誤 參考答案:A【解析】程序執(zhí)行的效率與數(shù)據的存儲結構、數(shù)據的邏輯結構、程序的控制結構、所處理的數(shù)據量等有關。2.下列與隊列結構有關聯(lián)的是A) 函數(shù)的遞歸調用B) 數(shù)組元素的引用C) 多重循環(huán)的執(zhí)行D) 先到先服務的作業(yè)調度 參考答案:D【解析】隊列的修改是依先進先出的原則進行的,D正確。3.A) DYBEAFCZXB) YDEBFZXCAC) AB

2、DYECFXZD) ABCDEFXYZ 參考答案:C【解析】前序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且,在遍歷左右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。前序遍歷描述為:若二叉樹為空,則執(zhí)行空操作。否則:訪問根結點;前序遍歷左子樹;前序遍歷右子樹,C正確。4.一個棧的初始狀態(tài)為空?,F(xiàn)將元素1,2,3,A,B,C依次入棧,然后再依次出棧,則元素出棧的順序是A) 1,2,3,A,B,CB) C,B,A,1,2,3C) C,B,A,3,2,1D) 1,2,3,C,B,A 參考答案:C【解析】棧的修改是按后進先出的原

3、則進行的,所以順序應與入棧順序相反,故選C。5.下面屬于白盒測試方法的是A) 等價類劃分法B) 邏輯覆蓋C) 邊界值分析法D) 錯誤推測法 參考答案:B【解析】白盒測試法主要有邏輯覆蓋、基本路徑測試等。邏輯覆蓋測試包括語句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判斷-條件覆蓋,選擇B。其余為黑盒測試法。6.下面對對象概念描述正確的是A) 對象間的通信靠消息傳遞B) 對象是名字和方法的封裝體C) 任何對象必須有繼承性D) 對象的多態(tài)性是指一個對象有多個操作 參考答案:A【解析】對象之間進行通信的構造叫做消息,A正確。多態(tài)性是指同一個操作可以是不同對象的行為,D錯誤。對象不一定必須有繼承性,C錯誤。封

4、裝性是指從外面看只能看到對象的外部特征,而不知道也無須知道數(shù)據的具體結構以及實現(xiàn)操作,B錯誤。7.軟件設計中模塊劃分應遵循的準則是A) 低內聚低耦合B) 高耦合高內聚C) 高內聚低耦合D) 以上說法均錯誤 參考答案:C【解析】根據軟件設計原理提出如下優(yōu)化準則: 劃分模塊時,盡量做到高內聚、低耦合,保持模塊相對獨立性,并以此原則優(yōu)化初始的軟件結構。 一個模塊的作用范圍應在其控制范圍之內,且判定所在的模塊應與受其影響的模塊在層次上盡量靠近。 軟件結構的深度、寬度、扇入、扇出應適當。 模塊的大小要適中。C正確。8.下面描述中不屬于數(shù)據庫系統(tǒng)特點的是A) 數(shù)據共享B) 數(shù)據完整性C) 數(shù)據冗余度高D)

5、 數(shù)據獨立性高 參考答案:C【解析】數(shù)據庫系統(tǒng)的特點為高共享、低冗余、獨立性高、具有完整性等,C錯誤。9.數(shù)據庫設計過程不包括A) 概念設計B) 邏輯設計C) 物理設計D) 算法設計 參考答案:D【解析】數(shù)據庫設計過程主要包括需求分析、概念結構設計、邏輯結構分析、數(shù)據庫物理設計、數(shù)據庫實施、數(shù)據庫運行和維護階段。答案為D選項。10.A) 自然連接B) 交C) 投影D) 并 參考答案:A【解析】關系R和關系S有公共域,關系T是通過公共域的等值進行連接的結果,符合自然連接,選A。11.以下敘述中正確的是A) 程序必須包含所有三種基本結構才能成為一種算法B) 我們所寫的每條C語句,經過編譯最終都將轉

6、換成二進制的機器指令C) 如果算法非常復雜,則需要使用三種基本結構之外的語句結構,才能準確表達D) 只有簡單算法才能在有限的操作步驟之后結束 參考答案:B【解析】C語言程序可以不包含三種基本結構,也可以包含其中的一種或多種,所以A錯誤三種基本結構可以表示任何復雜的算法,所以C錯誤正確的算法,不管是簡單算法還是復雜算法都可以在有限的操作步驟之后結束,這是算法的有窮性,所以D錯誤12.以下敘述中正確的是A) 在算法設計時,可以把復雜任務分解成一些簡單的子任務B) 在C語言程序設計中,所有函數(shù)必須保存在一個源文件中C) 只要包含了三種基本結構的算法就是結構化程序D) 結構化程序必須包含所有的三種基本

7、結構,缺一不可 參考答案:A【解析】C語言的程序中,函數(shù)不一定都放在同一個源文件中,可以分別放在不同源文件中,通過#include命令來引用,所以B錯誤結構化程序可以包含三種基本結構中的一種或幾種,所以C,D錯誤13.以下敘述中正確的是A) 只能在函數(shù)體內定義變量,其他地方不允許定義變量B) 常量的類型不能從字面形式上區(qū)分,需要根據類型名來決定C) 預定義的標識符是C語言關鍵字的一種,不能另作它用D) 整型常量和實型常量都是數(shù)值型常量 參考答案:D【解析】變量可以定義在函數(shù)體外也可以定義在函數(shù)體內,所以A錯誤常量的類型可以從字面形式上區(qū)分,比如1為整型常量,1.0為實型常量,a為字符型常量,所

8、以B錯誤預定義的標識符不是C語言的關鍵字,所以C錯誤14.以下敘述中正確的是A) 在C程序中的八進制和十六進制,可以是浮點數(shù)B) 整型變量可以分為int型、short型、long型和unsigned型四種C) 八進制數(shù)的開頭要使用英文字母o,否則不能與十進制區(qū)分開D) 英文大寫字母X和英文小寫字母x都可以作為二進制數(shù)字的開頭字符 參考答案:B【解析】C程序中的實型常量只有十進制一種數(shù)制,所以A錯誤八進制數(shù)以0打頭,所以C錯誤C語言中整數(shù)只有十進制八進制十六進制三種沒有二進制數(shù)制,所以D錯誤15.以下敘述中正確的是A) 在scanf函數(shù)中的格式控制字符串是為了輸入數(shù)據用的,不會輸出到屏幕上B)

9、在使用scanf函數(shù)輸入整數(shù)或實數(shù)時,輸入數(shù)據之間只能用空格來分隔C) 在printf函數(shù)中,各個輸出項只能是變量D) 使用printf函數(shù)無法輸出百分號% 參考答案:A【解析】scanf函數(shù)中的格式控制字符串是為了輸入數(shù)據用的,無論其中有什么字符,也不會輸出到屏幕上,所以A正確scanf()的格式控制串可以使用其他非空白字符,如逗號,但在輸入時必須輸入這些字符,以保證匹配就可以,所以B錯誤Printf函數(shù)可以輸出常量也可以輸出變量,所以C錯誤Prinf函數(shù)可以用"%"來輸出百分號%,所以D錯誤16.以下敘述中正確的是A) 在scanf函數(shù)的格式串中,必須有與輸入項一一對應

10、的格式轉換說明符B) 只能在printf函數(shù)中指定輸入數(shù)據的寬度,而不能在scanf函數(shù)中指定輸入數(shù)據占的寬度C) scanf函數(shù)中的字符串,是提示程序員的,輸入數(shù)據時不必管它D) 復合語句也被稱為語句塊,它至少要包含兩條語句 參考答案:A【解析】在printf和scanf函數(shù)中都可以指定數(shù)據的寬度,所以B錯誤scanf()的格式控制串可以使用其他非空白字符,如逗號,但在輸入時必須輸入這些字符,以保證匹配,所以C錯誤復合語句可以由任意多條語句構成,可以使一條也可以沒有,所以D錯誤17.以下敘述中正確的是A) 邏輯"或"(即運算符|)的運算級別比算術運算要高B) C語言的關系

11、表達式:0<x<10完全等價于: (0<x) && (x<10)C) 邏輯"非"(即運算符!)的運算級別是最低的D) 由&&構成的邏輯表達式與由|構成的邏輯表達式都有"短路"現(xiàn)象 參考答案:D【解析】B選項中,(x>0)&&(x<10)的值是1或0,條件是x>0 并且x <10。但是 0<x<10這種寫法的結果任何時候都是1; C選項中,邏輯"非"(即運算符!)的運算級別是最高的;A選項中,算術運算符優(yōu)先級較高,關系和邏輯運算符

12、優(yōu)先級較低。因此D選項正確。18.以下敘述中正確的是A) if語句只能嵌套一層B) if子句和else子句中可以是任意的合法的C語句C) 不能在else子句中再嵌套if語句D) 改變if-else語句的縮進格式,會改變程序的執(zhí)行流程 參考答案:B【解析】A選項中,if語句的嵌套沒有規(guī)定層數(shù); C選項中,可以在else子句中再嵌套if語句;D選項中,改變if-else語句的縮進格式,不會改變程序的執(zhí)行流程,需要注意if和else的配對問題。因此B選項正確。19.以下敘述中正確的是A) 只要適當?shù)匦薷拇a,就可以將do-while與while相互轉換B) 對于"for(表達式1;表達式2

13、;表達式3) 循環(huán)體"首先要計算表達式2的值,以便決定是否開始循環(huán)C) 對于"for(表達式1;表達式2;表達式3) 循環(huán)體",只在個別情況下才能轉換成while語句D) 如果根據算法需要使用無限循環(huán)(即通常所稱的"死循環(huán)") ,則只能使用while語句 參考答案:A【解析】B選項中,for語句中需要先求解先求解表達式1; C選項中,for語句使用最為靈活,它完全可以取代 while 語句;D選項中,對于死循環(huán),也可以使用for語句。因此A選項正確。20.以下敘述中正確的是A) 只能在循環(huán)體內和switch語句體內使用break語句B) 當br

14、eak出現(xiàn)在循環(huán)體中的switch語句體內時,其作用是跳出該switch語句體,并中止循環(huán)體的執(zhí)行C) continue語句的作用是:在執(zhí)行完本次循環(huán)體中剩余語句后,中止循環(huán)D) 在while語句和do-while語句中無法使用continue語句 參考答案:A【解析】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í)

15、行下一次循環(huán)。B、C和D三個選項中均有錯誤。因此A選項正確。21.以下敘述中正確的是A) '0'表示字符0B) "a"表示一個字符常量C) 表達式:'a' > 'b'的結果是"假"D) '"'是非法的 參考答案:C【解析】A選項中,'0'表示結束;B選項中,字符常量是用單引號括起來的一個字符; D選項中,'"'是雙引號符。因此C選項正確。22.以下敘述中正確的是A) 字符變量在定義時不能賦初值B) 字符常量可以參與任何整數(shù)運算C) 同

16、一英文字母的大寫和小寫形式代表的是同一個字符常量D) 轉義字符用符號開頭 參考答案:B【解析】A選項中,字符變量在定義時可以賦初值; C選項中,同一英文字母的大寫和小寫形式代表的是不同的字符常量;D選項中,轉義字符以反斜線""開頭的。因此B選項正確。23.以下敘述中正確的是A) 函數(shù)名允許用數(shù)字開頭B) 函數(shù)調用時,不必區(qū)分函數(shù)名稱的大小寫C) 調用函數(shù)時,函數(shù)名必須與被調用的函數(shù)名完全一致D) 在函數(shù)體中只能出現(xiàn)一次return語句 參考答案:C【解析】B選項中,函數(shù)調用時,函數(shù)名稱是需要區(qū)分大小寫的;A選項中,函數(shù)名不允許以數(shù)字開頭;D選項中,在函數(shù)中允許有多個retu

17、rn語句,但每次調用只能有一個return 語句被執(zhí)行。因此C選項正確。24.以下敘述中正確的是A) 如果p是指針變量,則&p是不合法的表達式B) 如果p是指針變量,則*p表示變量p的地址值C) 在對指針進行加、減算術運算時,數(shù)字1表示1個存儲單元的長度D) 如果p是指針變量,則*p+1和*(p+1)的效果是一樣的 參考答案:C【解析】B選項中,如果p是指針變量,則*p表示變量p所指向的地址的值;A選項中,如果p是指針變量,則&p表示變量p的地址;D選項中,如果p是指針變量,*p+1表示將p所指的值加上1,而*(p+1)表示的是先將指針右移一位再取所指向變量的值。因此C選項正確

18、。25.以下敘述中正確的是A) 基類型不同的指針變量可以相互混用B) 函數(shù)的類型不能是指針類型C) 函數(shù)的形參類型不能是指針類型D) 設有指針變量為 double *p,則 p+1 將指針p移動8個字節(jié) 參考答案:D【解析】B選項中,所謂函數(shù)類型是指函數(shù)返回值的類型。在語言中允許一個函數(shù)的返回值是一個指針(即地址),這種返回指針值的函數(shù)稱為指針型函數(shù);C選項中,函數(shù)的參數(shù)不僅可以是整型、實型、字符型等數(shù)據,還可以是指針類型;A選項中,雖然不同基類型的指針變量占用字節(jié)數(shù)是相同的,但是不能混用。因此D選項正確。26.如果定義 float a10, x;則以下敘述中正確的是A) 語句 a = &am

19、p;x; 是非法的B) 表達式 a+1 是非法的C) 三個表達式 a1、*(a+1)、*&a1表示的意思完全不同D) 表達式*&a1是非法的,應該寫成 *(&(a1) 參考答案:A【解析】B選項中,表達式a+1不是非法的;C選項中, *(a+1)即指a1;D選項中,*&a1不是非法的。因此A選項正確。27.有以下程序 #include <stdio.h> main() int a = 2,4,6,8 , *p=a, i; for( i=0; i<4; i+ ) ai=*p+; printf( "%dn" ,a2 ); 程序的

20、輸出結果是A) 2B) 8C) 4D) 6 參考答案:D【解析】本題通過語句"*p=a"將一維數(shù)組a 的首地址的值賦值給變量p,即p的值為2。執(zhí)行for循環(huán),ai=*p+,指將p的值賦給ai后,再進行+操作,因此4次循環(huán)后a2的值為6。因此D選項正確。28.以下敘述中正確的是A) 語句 int a43 = 1,2, 4,5; 是錯誤的初始化形式B) 語句 int a43 = 1,2,4,5; 是錯誤的初始化形式C) 語句 int a3 = 1,2,4,5; 是錯誤的初始化形式D) 在邏輯上,可以把二維數(shù)組看成是一個具有行和列的表格或矩陣 參考答案:D【解析】二維數(shù)組在初始化

21、時,可以省略第1維,但是不可以省略第2維??梢詾椴糠謹?shù)組元素初始化。B選項、C選項和A選項內的初始化都沒有錯誤。因此D選項正確。29.以下敘述中正確的是A) 字符串常量"Hello"會被隱含處理成一個無名字符型數(shù)組,它有5個元素B) 不能用字符串常量對字符數(shù)組名進行整體賦值操作C) char str7 = "string!" 在語法上是合法的,運行也是安全的D) char *str; str = "Hello"與char str; str = "Hello"效果是一樣的 參考答案:B【解析】字符串中的字符依次存儲在

22、內存中一塊連續(xù)的區(qū)域內,并且把空字符' 0'自動附加到字符串的尾部作為字符串的結束標志。故字符個數(shù)為n的字符串在內存中應占(n+1)個字節(jié)。選項A中有6個元素,其中包含結尾字符,C選項中字符串常量包含8個字符,所以不能賦值在str7中,D選項后者賦值錯誤。30.以下敘述中正確的是A) 在語句char str = "string!"中,數(shù)組str的大小等于字符串的長度B) 語句 char str10 = "string!" 和 char str10 = "string!" 并不等價C) 對于一維字符數(shù)組,不能使用字符串常

23、量來賦初值D) 對于字符串常量 "string!",系統(tǒng)已自動在最后加入了'0'字符,表示串結尾 參考答案:D【解析】字符串中的字符依次存儲在內存中一塊連續(xù)的區(qū)域內,并且把空字符' 0'自動附加到字符串的尾部作為字符串的結束標志。故字符個數(shù)為n的字符串在內存中應占(n+1)個字節(jié)。B選項中兩者等價,C選項中可以使用字符串常量來給一維字符數(shù)組賦值,就像B選項中一樣,A選項中數(shù)組長度比字符串長度小一個字節(jié),字符串中包含隱含的結尾符。31.設有定義 char str = "Hello"則語句 printf("%d %d

24、", sizeof(str), strlen(str);的輸出結果是A) 5 5B) 6 6C) 6 5D) 5 6 參考答案:C【解析】本題考查sizeof和strlen對字符串的處理不同之處,sizeof求出字符串的字符個數(shù),包括結尾符。Strlen求出字符串的實際字符,不包括結尾符。所以答案為6,5,C選項正確。32.在32位編譯器上,設有定義 char *str1 = "Hello", str2 = "Hello" ,則以下語句 printf("%d %d", sizeof(str1), sizeof(str2);

25、的輸出結果是A) 5 6B) 5 5C) 6 6D) 4 6 參考答案:D【解析】本題主要考查了指向字符串的指針和字符數(shù)組,str1為一個字符指針,所以sizeof為4,str2為字符數(shù)組,其中包含6個字符,所以答案為4 633.以下敘述中正確的是A) 任何情況下都不能用函數(shù)名作為實參B) 函數(shù)既可以直接調用自己,也可以間接調用自己C) 函數(shù)的遞歸調用不需要額外開銷,所以效率很高D) 簡單遞歸不需要明確的結束遞歸的條件 參考答案:B【解析】在某些情況下,函數(shù)名可以作為實參傳遞,所以A選項錯誤。函數(shù)遞歸調用使用棧區(qū)來遞歸,需要額外開銷,并且效率不高,C選項錯誤。遞歸調用需要明確指出遞歸結束條件,

26、否則就陷入死循環(huán)了。34.以下敘述中正確的是A) 函數(shù)的形式參數(shù)不屬于局部變量B) 對于變量而言,"定義"和"說明"這兩個詞實際上是同一個意思C) 在復合語句中不能定義變量D) 全局變量的存儲類別可以是靜態(tài)類 參考答案:D【解析】聲明變量不分配空間,定義變量要分配空間,所以B選項錯誤。符合語句中可以定義變量,所以C選項錯誤。函數(shù)的形參屬于局部變量,所以A選項錯誤、35.以下敘述中正確的是A) 在一個程序中,允許使用任意數(shù)量的#include命令行B) 在包含文件中,不得再包含其他文件C) #include命令行不能出現(xiàn)在程序文件的中間D) 雖然包含文件被

27、修改了,包含該文件的源程序也可以不重新進行編譯和連接 參考答案:A【解析】本題考查預處理中文件包含的概念,包含文件中可以包含其他文件,B選項錯誤,#include可以出現(xiàn)在程序文件的中間,C選項錯誤,包含文件被修改了,包含該文件的源程序必須重新進行編譯和連接。36.以下敘述中正確的是A) 函數(shù)的返回值不能是結構體類型B) 在調用函數(shù)時,可以將結構體變量作為實參傳給函數(shù)C) 函數(shù)的返回值不能是結構體指針類型D) 結構體數(shù)組不能作為參數(shù)傳給函數(shù) 參考答案:B【解析】本題考查結構體變量作為函數(shù)參數(shù),函數(shù)返回可以是結構體類型,也可以是結構體類型的指針,結構體數(shù)組可以作為參數(shù)傳給函數(shù)。37.以下敘述中正確的是A) 結構體數(shù)組名不能作為實參傳給函數(shù)B) 結構體變量的地址不能作為實參傳給

溫馨提示

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

評論

0/150

提交評論