二級C語言筆試-477_第1頁
二級C語言筆試-477_第2頁
二級C語言筆試-477_第3頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、級 C 語言筆試 -477( 總分: 98.00 ,做題時間: 90 分鐘 ) 一、選擇題 (總題數: 40,分數: 66.00)1. 按照“先進后出原那么組織數據的數據結構是 ( ) 。A) 隊列 B) 棧C) 雙向鏈表 D) 二叉樹( 分數: 1.00 )A.B. VC.D.解析: 解析 棧是一種特殊的線性表,其插入和刪除運算都只在線性表的一端進行,而另端是 封閉的。 進行插入、 刪除的端稱為棧頂, 封閉的一端稱為棧底。 棧頂元素是最后被插入的元素, 也是最后被刪除 的,是按先進后出的原那么組織數據的。2. 在深度為 5 的滿二叉樹中,葉子結點的個數為 ( ) 。A) 32 B) 31 C

2、) 16 D) 15( 分數: 1.00 )A.B.C. VD.解析: 解析 所謂滿二叉樹是指這樣的一種二叉樹: 除最后一層外, 每一層上的所有結點都有 兩個子結點。 這就是說, 在滿二叉樹中, 每層上的結點數都到達最大值,即在滿二叉樹的第 k 層上有2k-1個結點,且深度 為m的滿二叉樹有2m-1個結點。由此可知,此題中葉子結點的個數為25-1 =16 。3. 以下表達中正確的選項是 ( ) 。A) 線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的B) 線性表的鏈式存儲結構所需要的存儲空間一般要多于順序存儲結構C) 線性表的鏈式存儲結構所需要的存儲空唰一般要少于順序存儲結構D) 上

3、述三種說法都不對( 分數: 2.00 )A.B. VC.D.解析: 解析 線性表的存儲分為順序存儲和鏈式存儲。在順序存儲中, 所有元素所占的存儲空間是連續的, 各數據元素在存儲空間中是按邏輯順序依次存放的。所以每個元素只存儲其值就可 以了,而在鏈式存儲的 方式中,將存儲空間的每一個存儲結點分為兩局部,一局部用于存儲數據 元素的值,稱為數據域;另一部 分用于存儲下一個元素的存儲序號,稱為指針域。所以線性表的要大一些。鏈式存儲方式比順序存儲方式的存儲空間4. 以下數據結構中,屬于非線性的是 ( ) A) 線性表 B) 隊列 C) 樹 D) 棧 分數: 2.00 A.B.c. VD.解析: 解析 線

4、性結構,是指數據元素只有一個直接前件元素和直接后件元素。線性表是線性 結構。棧和 隊列是指對插入和刪除操作有特殊要求的線性表,樹是非線性結構。5. 以下工具中為需求分析常用工具的是 ( ) 。A) PAD B) PFD C) N-S D) DFD( 分數: 1.00 )A.B.C.D. V解析:解析需求分析常用的工具有數據流圖(DFD)、數據字典(DD)、判定樹和判定表。PAD(問題分析 圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細設計的常用工具,不是需求分析的工具。6. 結構化程序設計主要強調的是 ( ) 。A) 程序的規模 B) 程序的效率C) 程序設計語言的先進性 D) 程序的易

5、讀性( 分數: 1.00 )A.B.C.D. V解析: 解析 程序不光是編寫完就結束了,為了測試和維護程序,往往還有其他人閱讀和跟蹤 程序,因此 程序設計的風格應該強調簡單和清晰,即程序的易讀性,“清晰第一,效率第二。7. 以下關于線性鏈表的描述中正確的選項是 ( ) 。A) 存儲空間不一定連續,且各元素的存儲順序是任意的B) 存儲空間不一定連續,且前件元素一定存儲在后件元素的前面C) 存儲空間必須連續,且各前件元素一定存儲在后件元素的前面D) 存儲空間必須連續,且各元素的存儲順序是任意的 ( 分數: 2.00 )A. VB.C.D.解析: 解析 線性表的鏈式存儲結構中的結點空間是動態生成的,

6、它們在內存中的地址可能是 連續的,也 可能是不連續的。8. 關于結構化程序設計原那么和方法的描述錯誤的選項是()。A)選用的結構只準許有一個入口和一個出口B) 復雜結構應該用嵌套的根本控制結構進行組合嵌套來實現C) 不允許使用 GOTO 語句D) 語言中所沒有的控制結構,應該采用前后一致的方法來模擬( 分數: 2.00 )A.B.c. VD.解析: 解析 限制使用 GOTO 語句是結構化程序設計的原那么和方法之一, 但不是絕對不允許使 用 GOTO 語句 其他三項為結構化程序設計的原那么。9. 某二叉樹中有 n 個度為 2 的結點,那么該二叉樹中的葉子結點數為A) n+1 B) n-1C) 2

7、n D) n/2( 分數: 2.00 )A. VB.C.D.解析:解析對于任何一棵二叉樹T,如果其終端結點(葉子結點)數為n1,度為2的結點數為n2,貝U n 1= n2+1所以該二叉樹的葉子結點數等于n+1。10. 軟件開發的結構化生命周期方法將軟件生命周期劃分成( ) 。A) 定義、開發、運行維護 B) 設計階段、編程階段、測試階段C) 總體設計、詳細設計、編程調試 D) 需求分析、功能定義、系統設計 ( 分數: 1.00 )A. VB.C.D.解析: 解析 通常,將軟件產品從提出、實現、使用維護到停止使用退役的過程稱為軟件生命 周期,它可 以分為軟件定義、軟件開發及軟件運行維護三個階段。

8、11. 數據庫設計中反映用戶對數據要求的模式是 ( ) 。A) 內模式 B) 概念模式C) 外模式 D) 設計模式 ( 分數: 2.00 )A.B.C. VD.解析: 解析 概念模式,是由數據庫設計者綜合所有用戶的數據,按照統一的觀點構造的全 局邏輯結構, 是對數據庫中全部數據的邏輯結構和特征的總體描述,是所有用戶的公共數據視圖 (全局視圖 ) 。它是由數 據庫管理系統提供的數據模式描述語言 (Data Description Language , DDL) 來描述、定義的,表達、反映 了數據庫系統的整體觀。外模式對應于用戶級,它是某個或某幾個用戶所看到的數據庫的數據視圖,是與某一應用有關的

9、數據的邏 輯表示。外模式是從模式導出的一個子集,也稱為子模式或用戶模式,它是用戶的數據 視圖,也就是用戶 所見到的數據模式,它反映了用戶對數據的要求。包含模式中允許特定用戶使 用的那局部數據,用戶可以 通過外模式描述語言來描述、定義對應于用戶的數據記錄(外模式 ) ,也可以利用數據操縱語言 (DataManipulation Language , DML) 對這些數據記錄進行描述。 內模式,對應于物理級,它是數據庫中全體數據的內部表示或底層描述,是數據庫最低一級的邏 輯描述, 它描述了數據在存儲介質上的存儲方式和物理結構,對應著實際存儲在外存儲介質上的 數據庫。內模式由 內模式描述語言來描述、

10、定義,它是數據庫的存儲觀。12. 以下選項中正確的語句組是 ( ) 。A) char s8; s="Beijing" B) char *s; s="Beijing"C) char s8; s="Beijing" D) char *s; s="Beijing"( 分數: 1.00 )A.B.C.D. V解析:解析此題考查字符串的定義和賦初值。選項A)、C)錯誤,字符數組的賦值可以逐char個字符賦給數 組中各元素, 也可以定義字符數組時整個字符串賦初值。 選項 B)、 D) 是給字符指 針賦值, 正確的格式是 *s;

11、s="Beijing" ;選項 B) 不對。13. 以下不能定義為用戶標識符是 。(A) Main(B) _0(C) _int(D) sizeof( 分數: 1.00 )A.B.C.D. V 解析:14. 以下程序的輸出結果是 ( ) #include < stdio.h > main() int a=4 ; printf("%d/n",(a+=a-=a*a)A) -8 B) 14 C) 0 D) -24( 分數: 2.00 )A.B.C.D. V解析:解析表達式a+=a-=a*a看起來復雜,其實將它分成兩個表達式來計算就簡單了:第一個表達式

12、(a-=a*a)=(a=a-a*a=-12):第二個表達式(a+=a-=a*a)=(a=a+a=-24)。15. 以下程序的輸出結果是 ( ) 。main int x=8,y=8;printf("%d%d/n",x-,-y);A) 8 8 B) 7 7 C) 7 8 D) 8 7( 分數: 2.00 )A.B.C.D. V解析:解析此題考查自減 運算符的使用。“ x - 是先引用x的值然后將x的值減1,所 以輸出的x值為8;“ - y是先將y的值減1然后再引用y的值,所以輸出的 y值為7。16. 以下不是合法的 C 語言語句是 ( ) 。A) a = 5 B) int i;

13、i+; C); D);( 分數: 1.00 )A. VB.C.D.解析:解析選項A)是一個表達式,它后面沒有分號結尾(C語言中規定語句必須以分號結束 ), 所以它不 是語句;選項 B)用一個花括號把幾條語句括起來了,這是一個復合語句;選項C)中只有一個分號,是一個空語句;選項 D) 是個復合語句,也是一個空語句。17. 假設有表達 (W)?(-x):(+y) ,那么其中與 W 等價的表達式是 。A) w=1 B) w=0 C) w!=1 D) w!=0( 分數: 1.00 )A.B.C.D. V解析: 評析 條件表達式的一般形式為:表達式 1?表達式 2: 表達式 3,其執行順序:先求解 表達

14、式 1,假設 非 0( 真) 那么求解表達式 2 ,此時表達式 2 的值就作為整個條件表達式的值,假設表達 式 1 的值為 0( 假 ) ,那么求 解表達式 3,此時表達式 3 的值就作為整個條件表達式的值。 此題中 相當于先判斷 w 的值是否為非0,所以 與 w 等價的表達式是 w!=0 。18. 以下能正確定義且賦初值的語句是 ( ) 。A) int n1=n2=10 ; B) char c=32 ;C) float f=f+1.1; D) double x=12.3E2.5 ;( 分數: 2.00 )A.C.D.解析:解析C語言規定,可以在定義變量的同時給變量賦初值,稱為變量初始化。在選

15、項A)中在給 n1和 n2 進行賦初值,但變量 02 沒有定義;在選項 C) 中定義變量 f 時,不能在賦值表達式的右邊出 現變量f自身,所以選項C)錯誤:在選項D)用指數表達式的常量中, 字母E后面的數應該為整數, 而不應該為小數 形式。因此,選項 B) 正確。19. 當變量 c 的值不為 2、4、6 時,值也為“真的表達式是 ( ) 。A (c=2)|(c=4)|(c=6) B (c > =2&&c < =6)|(c!=3)|(c!=5)C (c >=2&&c <=6)&&!(c%2) D (c > =2&

16、;&c < =6)&&(c%2!=1)( 分數: 1.00 )A.B. VC.D.解析:解析 B 選項中 C 的值不為 2、4、6 時,表達式的值也為真。20. 以下程序中函數 reverse 的功能是對 a 所指數組中的內容進行逆置。 void reverse(int a, int n) int i, t;for(i=0; i <n/2; i+)t=ai; ai=an-1-1; an-1-i=t;main()int b10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10;int i, s=0;reverse(b, 8);for(i=6; i &

17、lt;10; i+) s+=bi;printf("% d/n", s);程序運行后的輸出結果是 _ 。A) 22 B) 10 C) 34 D) 30( 分數: 1.00 )A. VB.C.D.解析: 解析 主函數調用 reverse 時。實參為 b 和 8 ,即 reverse 函數的功能是將數組 b 中的前 8 個元素 逆置,其余元素不變。因此函數調用結束后數組 b 的內容為:8、7, 6、 5、 4、3、2、1、9、10。 main 函 數中 for 循環語句的功能是求 b6 元素到 b9 元素的和,即 s=b6+b7+b8+b9=2+1+9+10=22 ,因此 pri

18、ntf 語句的輸出結果是 22。21. 以下程序運行后的輸出結果是#include < stdio.h > main()int i, j, m=1;for(i=1; i <3; i+)for(j=3; j> 0; j-)if(i*j> 3) break;m*=i*j;printf("m=%d/n",m);A) m=6 B) m=2 C) m=4 D) m=5( 分數: 1.00 )A. VB.C.D.解析:解析程序中,當循環變量i=2 , j=3時,i X j > 3成立,結束j循環。只有當i為1, j分別為 1,2,3 時,才參與了m*

19、二i*j 計算。因此, m=1 X 1 X 1 X 2X 1 X 3=6。22. 定義如下變量和數組:int i , x33=1 , 2, 3, 4, 5, 6, 7, 8, 9;那么下面語句的輸出結果是 ( ) 。for(i=0 ; i < 3;i+)printf("%d" ,xi2-i);A) 159 B) 147 C) 357 D) 369( 分數: 2.00 )A.B.C. VD.解析: 解析 此題主要考查二維數組的使用。 題中利用 for 循環來輸出 x 數組中的指定元素: 當j=0時,輸出x02=3 ;當i=1時,輸出x115 ;當i=2時。輸出x20=7

20、。23. 設有程序段:int k=12;while(k=1)k=k-1;那么以下描述中正確的選項是 ( ) 。A) while 循環執行 10 次 B) 循環是無限循環C) 循環體語句一次也不執行 D) 循環體語句執行一次分數: 2.00 )A.B.C. VD.解析: 解析 此題考查 while 循環。 while 循環的控制表達式 k=1 是個賦值表達式而不是邏輯表達 式,所 以循環體一次也不執行。24. 以下語句組中,正確的選項是A) char *s; s="Olympic" B) char s7; s="Olympic"( 分數: 2.00 )A.

21、 VB.C.D.解析: 解析 數組名代表數組的首地址,是一個地址常量,不能對其賦值,所以選項B、D 錯誤只有在初始化時才可以用花括號,所以選項 C 錯誤。25. 表達式 '8'-'2' 的值是 ( ) 。A) 整數 6 B) 字符 6 C) 表達式不合法 D) 字符 8( 分數: 2.00 )A. VB.C.D.解析: 解析 在 C 語言中,雖然字符都是變為其對應的 ASCII 碼值來參與算術運算的,但字符間的相對 位置關系還是不變的,字符 26. 假設各選項中所用變量已正確定義, 錯誤的程 序是 ( ) 。A) main()? ? x =fun(2,10);

22、? ?float fun(int a,int b) ? ?8 和字符 2 的 ASCII 碼值相差仍是6 。fun() 函數中通過 return 語句返回一個函數值, 以下選項中B) float fun(int a,int b) main()? ? x =fun(i,j); ? ?C) float fun(int,int); main()? ? x =fun(2,10); ? float fun(int a,int b) ?D) main()float fun(int I,int j);? ? x =fun(i,j); ? ? float fun(int a,int B) ?( 分數: 2.0

23、0 )A. VB.C.D.解析: 解析 C 語言規定,函數必須先定義,后調用 (函數的返回值類型為 int 或 char 時除外 ) 在選項A) 中,調用的子函數在調用后面定義,所以不正確。在選項 再在主函數中調用,所以是正確的:在選項 主調函數中先對于函數 float fun(int i,int j) 進行 了定義,然后進行調用。27. 以下數組定義中錯誤的選項是A) int x 3=0; B) int x23=1,2,3,4,5,6;C) int x 3=1,2,3,4,5,6; D) int x23=1,2,3,4,5,6;B) 、C)中,被調用函數在主調函數之前定義, D)中,在( 分

24、數: 2.00 )A.B. VC.D.解析:解析二維數組的初始化有以下幾種形式:分行進行初始化;不分行進行初始化;局部數組元素進行初始化;省略第一維的定義,不省略第二維的定義。選項B)等號右邊分了 3行,大于等號左 邊數組的行數 2。28. 假設語句“ t=fun(fun(x,y,a),(a+b,a+c),x+y+z); 對 fun 函數的調用正確, 那么 fun 函數的形參個數為 ( ) A) 3 B) 4 C) 5 D) 6( 分數: 2.00 )A. VB.C.D.解析: 解析 此題考查函數調用時的參數個數。在函數調用時,實參必須和形參的個數、類型一一對應。 但函數的計算結果只有一個值,

25、因而 fun 函數的參數個數為 3。29. 有如下程序段: int *p,a=10,b=1; p=&a; a= *p+b;執行該程序段后, a 的值為 ( ) 。A) 12 B) 11 C) 10 D) 編譯出錯( 分數: 1.00 )A.B. VC.D.解析: 解析 p=&a 表達式的含義是將變量 a 的地址賦給指針變量 p;a=*p+b 表達式的含義是指針 變量 p 所指內存的值 10 與 b 的和賦給 a。30. 有以下程序: #include < stdio.h > #define N 20 fun(int a ,int n,int m) int i,j;f

26、or(i=m;i > :n;i-) ai+1 =ai;main( )int i,aN. = 11,2.3,4,5,6,7,8,9,10;fun( a,2,9)for(i =0;i <5;i + ) printf("% d" ,ai );程序運行后的輸出結果是 ( ) 。A) 10234 B) 12344 C) 12334 D) 12234( 分數: 1.00 )A.B.c. VD.解析:解析此題函數fun的作用是將指定的數組元素(下標從nm)向后移一位。調用函數fun(a ,2 ,9)將a2到a9的各元素依次向后移一位,最后a數組中各元素的值分別為1 , 2 ,

27、 3 ,3, 4 ,5, 6, 7,8,9, 10,程序輸出數組的前 5 個元素: 12334。31. 有以下程序#include < stdio.h >#include < string.h >main()char a10= abcd" ;printf("%d ,%d/n" , strlen(a) , sizeof(a) ;程序運行后的輸出結果是A) 7 ,4 B) 4 ,10C) 8 ,8 D) 10 ,10( 分數: 2.00 )A.B. VC.D.解析: 解析 strlen() 用來返回字符串的長度,而 si- zeof() 返回的

28、是一個對象或者類型所占的內存 字 節數,即數組所占的內存。32. 以下程序的輸出結果是 _ 。structHARint x,y;structHAR*p;main()h0.x=1;h0.y=2;h1.x=3;h1.y=4;h0.p=&h1.p=h;printf("%d%d/n",(h0.p-> y) ;A) 12 B) 23 C) 14 D) 32分數: 2.00 )A.B.C.D. V解析: 評析 此題中是個含有兩個結點的循環鏈表。 C 語言中結構體的定義為: srtyct 結構體類 型名 成 員項表; 33. 假設有說明:int*p1 , *p2 , n=8

29、 , m ;以下均是正確賦值語句的選項是()。A) p1=&n;p2=&p1C) p1=&n;*p2=p1B) p1=n ;D) p1=&n;p2=p1( 分數: 2.00 )A.B.C.D. V解析: 解析 此題考查指針變量的賦值。選項A)中,pl、p2本身都是地址變量,不能再將pl取地址賦給p2 ;選項B)中,不能將整型數據直接賦值 給指針型數據;選項 C)中,*p2代表了一個整型變量,而 *p2=p1這個語句試圖把一個 地址值放入一個整型 變量中是錯誤的:選項 D) 中指針間的賦值是正確的。34. 有以下程序:void ss(char *s,char t)

30、while(*s) if(*s=t)*s=t-'a'+'A' s+;main()char str1100="abcddfefdbd",c='d' ss(str1,c);printf("%s/n",str1); 程序運行后的輸出結果是 ( ) 。A) ABCDDEFEDBD B) abcDDfefDbDC) abcAAfefAbA D) Abcddfefdbd( 分數: 2.00 )A.B. VC.D.解析:解析函數ss(char *s,char t)的功能是將指針s所指向的字符串中存在的字符“t 均改寫成大

31、 寫字母; 所以main函數中引用函數ss后使得數組strl中的小寫字母“d均變成了大寫字母“ D,然后輸出數組strl ,結果為:abcDDfefDbD。35. 有以下程序:#include < string.h >main(int argc , char *argv)int i=1 ,n=0;while(i < argc)n=n+strlen(argvi);i+)printf("%d/n" , n) ;該程序生成的可執行文件名為: proc.exe ,假設在運行時 輸入命令行:proc 123 45 67那么該程序的輸出結果是 _ 。A) 3 B) 5

32、C) 7 D) 11( 分數: 2.00 )A.B.c. VD.解析: 解析 main() 函數中參數 argc 包含命令行選項的個數, argv 包括 argc 個 C 風格字符串 字符串 長度函數 strlen(s) 計算以 s 為起始地址的字符串的長度。36. 以下語句或語句組中,能正確進行字符串賦值的是 。A) char*sp ; *sp="right!" ;B) char s10 ; s="right!" ;C) char s10 ; *s="right!" ;D) char*sp="right!" ;(

33、 分數: 2.00 )A.B.C.D. V解析: 解析 此題的考點是 C 語言的數組和指針。 C 的數組名是一個特殊類型的指針,固定指向 數組第一 個元素的位置,運行過程中不能再改變其指向。因此選項B、C 都是錯誤的。指針可以指向任何單元,但選項 A 是錯誤的, 因為賦值語句“ *sp="right!" 是錯誤的, 正確寫法是“ sp="right!" 。而對于 選項D ,由于“ char * sp="right!" 是定義指針同時賦初值,因此是正確的。37. 假設有以下說明,那么 ( ) 不是對 strcpy 庫函數的正確的調用。

34、strcpy 庫函數用于復制一個字符串: char*str1="abcd",str210,*str3="hijklmn",*str42,*str5="aaaa"A) strcpy(str2,str1) B) strcpy(str3,str1)C) strcpy(str4,str1) D) strcpy(str5,str1)( 分數: 2.00 )A.B.C. VD.解析: 解析 strcpy(s1,s2) 函數的功能是將字符串 s2 復制到字符串 s1 中( 注意:要保證s1 存儲區能容納下 s2 字符串 ) 。38. 有以下程序#i

35、ncludemain()FILE *fp; int a10=1,2,3,i,n;fp=fopen("dl.dat","w");for(i=0;i < 3;i+) fprintf(fp,"%d",ai); fprintf(fp,"/n");fclose(fp);fp=fopen("dl.dat","r");fscanf(fp,"%d", n); fclose(fp);printf("%d/n",n);程序的運行結果是(A) 1230

36、0(B) 123(C) 1(D) 321( 分數: 2.00 ) A.B. VC.D.解析:39. 以下描述中不正確的選項是 。A 字符型數組中可以存放字符串B可以對字符型數組進行整體輸入、輸出C可以對整型數組進行整體輸入、輸出D不能在賦值語句中通過賦值運算符“=對字符型數組進行整體賦值 分數: 2.00 A.B.C. VD.解析: 解析 此題考查對數組的理解。 C 語言規定只能逐個引用數組元素,而不能一次引用整 個數組。對 于字符數組,可以將整個字符串一次輸入或輸出。所以,選項C不正確。40. 假設有以下結構體,那么正確的定義或引用的是 。struct Test int x ; int y

37、; vl ;A) Test.x=10 ; B) Test v2 ; v2.x=10 ;C) struet v2 ; v2.x=10 ; D) struct Test v2=10 分數: 2.00 A.B.C.D. V解析:解析此題考查結構體的定義和引用。選項 A的錯誤是通過結構體名引用結構體成員; 選項B的 錯誤是將結構體名作為類型名使用;選項C的錯誤是將關鍵字 struct作為類型名使用;選項D是定義變量v2并對其初始化的語句,初始值只有前一局部,這是允許的。二、填空題總題數: 15 ,分數: 32.00 41. 軟件定義時期主要包括 1 和需求分析兩個階段。分數:2.00 )填空項1: 正

38、確答案:可行性研究解析: 解析 軟件生命周期一般包括可行性研究與需求分析、設計、實現、測試、交付使用 及維護等,還 可以將軟件生命周期分為三個階段:軟件定義階段:可行性研究和需求分析; 軟件開發階段:設計、實現和測試;軟件運行維護階段:交付使用和維護。42. 在樹形結構中,沒有前件的結點是 。分數: 2.00 填空項 1: 正確答案:根結點解析:解析樹型結構具有如下特點: 每個結點只有一個前件,稱為父結點,沒有前件的 結點只有一個,稱為樹的根結點,簡稱為樹的根;每一個結點可以有多個后件,它們都稱為該結點的子結點。沒有后件的結點稱為葉子結點;一個結點所擁有的后件個數稱為樹的結點度;樹的最大層次稱

39、為樹的深度。43. 在面向對象方法中, 1 描述的是具有相似屬性與操作的一組對象。分數: 2.00 填空項 1: 正確答案:類解析: 解析 在面向對象方法中,把具有相同屬性和方法的對象稱為類,類是對象的抽象, 對象是類的實 例。44. 測試用例包括輸入值集和1 值集。分數: 2.00 填空項 1: 正確答案:輸出解析: 解析 測試用例是為測試設計的數據,測試用例由測試輸入數據和與之對應的預期輸出結果兩局部 組成。測試用例的格式為: 輸入值集 , 輸出值集 。45. 按“先進后出原那么組織數據的數據結構是 1 。分數:2.00 )填空項 1: 正確答案:棧或 Stack 解析: 解析 棧和隊列是

40、兩種特殊的線性表, 其特殊性在于對它們的操作只能在表的端點進行 棧中的數 據按照后進先出的原那么進行組織,而隊列中的數據是按照先進先出的原那么進行組織。因 此,此題的正確答 案是棧 Stack 。46. 以下程序的輸出結果是 main int i ;for ( i=1;i+1 ;i+) if(i > 4)printf("%d/n" , i) ;break ;printf("%d/n" , i+) ; 分數: 2.00 填空項 1: 正確答案:15)解析: 解析 此題考查了 for 循環語句的使用, break 語句用在此題中是結束 for 循環直接

41、跳出循 環體外。 當 i=1 時,因為 if 語句條件不滿足,所以直接執行 printf("%d/n" , i+) ;輸出 1,同時 i 自加 1;執行 第二次 for 循環時, i=3 ;同樣的 if 語句條件不滿足,所以直接執行 printf("%d/n" , i+) ;輸出 3,同時 i 自加 1;執行第三次 for 循環時, i=5 , if 語句條件滿足,所以執行 printf("%d/n" , i) ,輸出 5 ,然后 break 語句跳出了 for 循環。47. 以下程序段是從鍵盤輸入的字符中統計小寫字母的個數,用換行符

42、結束循環。請填空。int n=0 , c ;c=getchar() ; while(c!='/n') if() n+ ;( 分數: 2.00 )填空項 1: ( 正確答案: c >='a'&&c <='z' )解析:解析小寫字母在內存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z' 判斷是不是小寫字母; c!='/n' 判斷是用換行符結束循環。48. 在計算機中,字符的比擬是對它們的 1 進行比擬。( 分

43、數: 2.00 )填空項 1: ( 正確答案: ASCII 碼)解析:解析在C語言中,對字符也可以進行比擬運算,并且是按照其ASCII碼值進行的。49. 以下程序的功能是:求出數組 x 中各相鄰兩個元素的和依次存放到 a 數組中,然后輸出。請 填空。 main( )int x10 , a9,i;for(i=0;i <10;i+) scanf("%d", xi);for( 11 ;i < 10;i+)ai-1=xi+ 12 ;for(i=0;i < 9;i+) printf("%d",ai);printf("");(

44、分數: 4.00 )填空項 1: ( 正確答案:i=1xi-1 )解析: 解析 對于 10 個數,相鄰的兩個數相加取和,總共要進行 9 次加法運算, 所以空 11 處應填入 i=1 相鄰的兩個數相加取和,放在數組 a 中, x0 與 x1 的和存放在 a0 中,所以空 12 處 應填入 xi-1 。50. 假設有定義 double a5 ;,那么 a 數組元素下標的上限為 1 。( 分數: 2.00 )填空項 1: (正確答案: 4)解析: 解析 一維數組元素的定義形式為:數組名N ,那么該數組中元素的下限是 0,上限是 N-151. 假設有以下定義: int a=1,2,3,4,5,6,7,

45、8,9,10,*p=a ;,那么值為 3 的表達式為: 1 。( 分數: 2.00 )*(p+) )p 指向 a3 ,然后再引用指針的值就可以了填空項 1: (正確答案: p+=2,解析: 解析 由題可知 a2=3 ,因此只要使指針52. 以下程序運行后的輸出結果是 。struct NODEint hum ; struct NODE *next ;main()structNODE s3=1 ,'/0' ,2, '/0' ,3,'/0' , *p , *q , *r ; int sum=0 ;s0 next=s+1 ; s1.next=s+2 ; s2.next=s ;p=S ; q=p- >next ; r=q- >next ;sum+=q= >next- > num ; sum+=r- >next- > next- >num; printf("%d/n" , sum);( 分數: 2.00 )填空項 1: (正確答案:5)解析:解析程序通過語句“s0next = s+1 ; s1.next=s+2 ; s2.next = s ;將結構體變量s中各結點連接成了一個循環鏈表, 即最后一個結點的指針域指向了頭結點, 整個鏈表形成了一個環, 并通過語句“P=s;

溫馨提示

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

評論

0/150

提交評論