計算機等級二級C語言模擬試題1(二)

字號:

一、選擇題(1)~(10)每小題2分,(11)-(50)每小題1分,共60分)
     下列各題A)、B)、c)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分。
     (1)下面敘述正確的是________。
     A)算法的執(zhí)行效率與數(shù)據(jù)的存儲結構無關
     B)算法的空間復雜度是指算法程序中指令(或語句)的條數(shù)
     C)算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止
     D)算法的時間復雜度是指執(zhí)行算法程序所需要的時間
     答案:C
     評析:算法的設計可以避開具體的計算機程序設計語言,但算法的實現(xiàn)必須借助程序設計語言中提供的數(shù)據(jù)類型及其算法。數(shù)據(jù)結構和算法是計算機科學的兩個重要支柱。
     (2)以下數(shù)據(jù)結構屬于非線性數(shù)據(jù)結構的________。
     A)隊列  B)線性表  C)二叉樹  D)棧
     答案:C
     評析:線性表、棧和隊列等數(shù)據(jù)結構所表達和處理的數(shù)據(jù)以線性結構為組織形式。棧又稱后進先出表(Last In First Out);隊列又稱先進先出表(First:In First Out)。二叉樹的數(shù)據(jù)結構是樹型結構,結構中數(shù)據(jù)元素之間存在著一對多的關系,因此它是一種非線性數(shù)據(jù)結構。
     (3)在一棵二叉樹上第8層的結點數(shù)最多是________。
     A)8  B)16  C)128  D)256
     答案:C
     評析:根據(jù)二叉樹的性質:二叉樹第i(i≥1)層上至多有2i-1個結點。得到第8層的結點數(shù)最多是128。
     (4)下面描述中,不符合結構化程序設計風格的是________。
     A)使用順序、選擇和重復(循環(huán))三種基本控制結構表示程序的控制邏輯
     B)自頂向下
     C)注重提高程序的執(zhí)行效率
     D)限制使用goto語句
     答案:C
     評析:結構化程序設計方法的四條原則是:1.自項向下;2.逐步求精;3.模塊化;4.限制使用goto語句。
     (5)下面概念中,不屬于面向對象方法的是________。
     A)對象、消息  B)繼承、多態(tài)  c)類、封裝  D)過程調用
     答案:D
     評析:面向對象方法是一種運用對象、類、封裝、繼承、多態(tài)和消息等概念來構造、測試、重構軟件的方法。面向對象方法從對象出發(fā),發(fā)展出對象、類、消息、繼承等概念。
     (6)在結構化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是________。
     A)可行性分析 B)需求分析  c)詳細設計  D)程序編碼
     答案:B
     評析:軟件開發(fā)階段包括需求分析、總體設計、詳細設計、編碼和測試五個階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。
     (7)軟件生命周期中所花費用最多的階段是________。
     A)詳細設計  B)軟件編碼  c)軟件測試  D)軟件維護
     答案:D
     評析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護3個階段。本題中詳細設計、軟件編碼和軟件測試都屬于軟件開發(fā)階段;維護是軟件生命周期的最后一個階段。
     (8)數(shù)據(jù)庫系統(tǒng)的核心是________。
     A)數(shù)據(jù)模型  B)DBMS  C)軟件工具  D)數(shù)據(jù)庫
     答案:B
     評析:數(shù)據(jù)庫管理系統(tǒng)DBMS是數(shù)據(jù)庫系統(tǒng)的核心。DBMS是負責數(shù)據(jù)庫的建立、使用和維護的軟件。DBMS建立在 操作系統(tǒng) 之上,實施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應用程序的執(zhí)行,最終都必須通過DBMS。
     (9)下列敘述中正確的________。
     A)數(shù)據(jù)處理是將信息轉化為數(shù)據(jù)的過程
     B)數(shù)據(jù)庫設計是指設計數(shù)據(jù)庫管理系統(tǒng)
     c)如果一個關系中的屬性或屬性組并非該關系的關鍵字,但它是另一個關系的關鍵字,則稱其為本關系的外關鍵字
     D)關系中的每列稱為元組,一個元組就是一個字段
     答案:C
     評析:數(shù)據(jù)處理是指將數(shù)據(jù)轉換成信息的過程,故選項A敘述錯誤;設計數(shù)據(jù)庫的目的實質上是設計出滿足實際應用需求的實際關系模型;關系中的行稱為元組,對應存儲文件中的記錄,關系中的列稱為屬性,對應存儲文件中的字段,故D選項敘述錯誤。
     (10)下列模式中,________是用戶模式。
     A)內模式 B)外模式  C)概念模式  D)邏輯模式
     答案:B
     評析:數(shù)據(jù)庫管理系統(tǒng)的三級模式結構由外模式、模式和內模式組成。外模式,指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結構,是用戶看到的數(shù)據(jù)視圖。模式,是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結構和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。內模式是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內的存儲介質上的表示,即對數(shù)據(jù)的物理結構和存取方式的描述。
     (11)C語言規(guī)定,程序中各函數(shù)之間________。
     A)既允許直接遞歸調用也允許間接遞歸調用
     B)不允許直接遞歸調用也不允許間接遞歸調用
     C)允許直接遞歸調用不允許間接遞歸調用
     D)不允許直接遞歸調用允許間接遞歸調用
     答案:A
     評析:c語言規(guī)定,程序中各函數(shù)之間既允許直接遞歸調用也允許間接遞歸調用。
     (12)在使用程序流程圖來表示算法時,菱形用來表示________。
     A)輸入與輸出B)子程序  C)判斷分支  D)循環(huán)邊界
     答案:C
     評析:美國國家標準化協(xié)會ANSI規(guī)定了一些常用的流程圖符號,其中橢圓框表示起止框,方框表示處理框,菱形框表示判斷分支,箭頭表示流程線。
     (13)C語言中下列敘述正確的是________。
     A)不能使用do…while語句構成的循環(huán)
     B)do…while語句構成的循環(huán),必須用break語句才能退出
     C)do…while語句構成的循環(huán),當while語句中的表達式值為非零時結束循環(huán)
     D)do…while語句構成的循環(huán),當while語句中的表達式值為零時結束循環(huán)
     答案:D
     評析:選項A是錯誤的,c語言支持d0…while語句;選項B是錯誤的,do...while構成的循環(huán),當while語句中的表達式值為零時結束循環(huán),而不是非零;選項c也是錯誤的。
     (14)以下選項中屬于C語言的數(shù)據(jù)類型是________。
     A)復數(shù)型 B)邏輯型  C)雙精度型  D)集合型
     答案:C
     評析:c語言的數(shù)據(jù)類型分為基本類型、構造類型、指針類型、空類型四大類。其中,基本類型分為整型、字符型、實型三類。實型又稱浮點型,包括單精度型和雙精度型兩種類型。
     (15)在C語言中,不正確的int類型的常數(shù)是________。
     A)32768  B)0  C)037   D)0xAF
     答案:A
     評析:c語言中int類型的常數(shù)的范圍是:-32768~32767。c整常數(shù)可用三種形式表示:十進制整數(shù),八進制整數(shù),十六進制整數(shù)。選項A超出范圍,不正確。
     (16)以下程序輸出的結果是________。
     main()
     {
     int a=65535;
     printf("%d%u",a,a);
     }
     A)-1 -1  B)65535 65535   C)-1 65535  D)65535 -l
     答案:C
     評析:printf函數(shù)中不同類型的數(shù)據(jù)用不同的格式字符,其中%d是按整型數(shù)據(jù)的實際長度輸出十進制整數(shù)。變量a=65535以%d格式輸出時溢出輸出值為該數(shù)的補碼值,即.1;%u用來輸出unsigned型數(shù)據(jù),無符號整型變量的數(shù)值范圍為0~65535,所以變量a=65535以%u格式輸出的值為65535。
     (17)下列描述中不正確的是________。
     A)字符型數(shù)組中可以存放字符串
     B)可以對字符型數(shù)組進行整體輸入、輸出
     c)可以對整型數(shù)組進行整體輸入、輸出
     D)不能在賦值語句中通過賦值運算符"="對字符型數(shù)組進行整體賦值
     答案:C
     評析:c語言規(guī)定只能逐個引用數(shù)組元素而不能一次引用整個數(shù)組。字符數(shù)組的輸入、輸出可以將整個字符串一次輸入或輸出。所以,選項c的說法是不正確的。
     (18)以下程序的輸出結果是________。
     main()
     { int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
     for(I=0;i<4;i+=2)printf("%d",p[I]);
     }
     A)5 2  B)5 l  C)5 3  D)9 7
     答案:C
     評析:題中*p=&x[1][1];是指將數(shù)組x的數(shù)組元素x[1][1]的地址賦值給指針變量p,使p指向x[11[1]這個數(shù)組元素,那么p[0]即為指針變量p當前所指向的數(shù)組元素x[1][1]的值。
     (19)下列可用于C語言標識符的一組是________。
     A)voidWORDdefine  B)a 6$sysFor
     C)2a sizeof abc   D)Int define sizeof
     答案:D
     評析:c語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。注意,大寫字母和小寫字母被認為是兩個不同的字符。C語言中的關鍵字不能用作標識符。
     (20)以下程序的運行結果是__________。
     #include "stdio.H"
     main()
     {
     int a[]={1,2,3,4,5,6,7,8,9,10,1 1,12};
     int*p=a+5,*q=NULL;
     *q=*(p十5);
     printf("%d ?。、n",'p,*q);
     }
     A)運行后報錯     B)6 6
     C)6 12       D)5 5
     答案:A
     評析:題目中沒有給q分配存儲單元,只是簡單的給它賦了一個值,所以程序的運行結果是6 ll NULL pointer assignment,也就是運行后報錯。
     (21)以下說法中正確的是_________。
     A)C語言程序總是從第一個函數(shù)開始執(zhí)行
     B)在C語言程序中,要調用函數(shù)必須在main()函數(shù)中定義
     c)c語言程序總是從main()函數(shù)開始執(zhí)行
     D)c語言程序中的main()函數(shù)必須放在程序的開始部分
     答案:C
     評析:c語言的程序是由主函數(shù)main()開始運行,由主函數(shù)來調用其他函數(shù),函數(shù)必須是并列的,定義后使用,不能在一個函數(shù)中定義其他函數(shù),main()函數(shù)不一定要放在程序的開始部分,故選c。
     (22)有如下程序
     float fun(int x,int y){return(x+y);}
     main()
     {
     int a=2,b=5,c=8;
     printf("%3.0f\n",fun((int)fun(a+c,b),(a-c)));
     }
     程序運行后的輸出結果為__________。
     A)編譯出錯     B)9    C)21   D)9.0
     答案:B
     評析:本題中先執(zhí)行(int)fun(a+c,b)函數(shù)的調用,值為整型數(shù)值15;然后再執(zhí)行fun(15,(a-e))函數(shù)調用,值為單精度實型數(shù)值9.000000。輸出為%3.0f,即有效數(shù)長度為3,沒有小數(shù)位數(shù),所以最后結果為9。
     (23)能正確表示a和b同時為正或同時為負的邏輯表達式是_________。
     A)(a>=‖b>=0)&&(a=0&&b>=O)&&(a<0&&b     C)(a+b>0)&&(a+b<=0)       D)a*b>0
     答案:D
     評析:選項A中,表達式表示的是a,b為異號;選項B中,表達式表示的是0,因為沒有滿足條件的值;選項c中,表達式表示的是0,因為沒有滿足條件的值;選項D表示的是a和b為同號。
     (24)若己定義:int a[9],*p=a;并在以后的語句中未改變p的值,不能表示a[l]地址的
     表達式是__________。
     A)p+l  B)a+l  C)a++  D)++p
     答案:C
     評析:數(shù)組名是指針常量,是個固定的指針,不能對數(shù)組名賦予一個新的地址值,也不能使這個指針常量"移動",指向數(shù)組的其它元素。
     (25)以下程序的輸出結果是__________。
     main()
     {  int a==-1,b=1,k;
     if((++a<0)&&!(b--<=0))
     printf("%d?。\n",a,b);
     else
     printf("%d %d\n",b,a);
     }
     A)-1 l  B)0 l
     C)1 0   D)0 0
     答案:C
     評析:邏輯運算符的優(yōu)先次序如下:!(非)→&&(與)→‖(或),但本題需特別、注意的是短路的概念。