二級C語言筆試-349_第1頁
二級C語言筆試-349_第2頁
二級C語言筆試-349_第3頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、二級 C 語言筆試 -349( 總分: 103.00 ,做題時間: 90 分鐘 )一、選擇題 (總題數(shù): 50,分數(shù): 70.00)1. 下列選項中不屬于軟件生命周期開發(fā)階段任務(wù)的是 ( ) 。A) 軟件測試 B) 概要設(shè)計 C) 軟件維護 D) 詳細設(shè)計(分數(shù): 2.00 )A.B.C. VD.解析:解析 軟件的生命周期可分為軟件定義、軟件開發(fā)及軟件運行維護 3 個階段。其中軟件定義階段的 主要工作有可行性研究與計劃制定和需求分析等:軟件開發(fā)階段的主要工作有概要設(shè)計、詳細設(shè)計和測試 等;軟件運行維護階段的主要工作是軟件的運行及后期的維護等。2. 在 Windows 98 的開始菜單中,包括了

2、 Windows 98 系統(tǒng)提供的 ( )A) 全部功能B) 初始功能C) 主要功能D) 部分功能(分數(shù): 1.00 )A. VB.C.D.解析:3. 已知二叉樹BT的后序遍歷序列是 dabec,中序遍歷序列是 debac,它的前序遍歷序列是 。A) cedba B) acbed C) decab D) deabc(分數(shù): 1.00 )A. VB.C.D.解析:解析二叉樹BT時后序遍歷序列為dabec,故BT的根結(jié)點為c ;而BT的中序遍歷序是debac,即 遍歷序列中最后一個結(jié)點為跟結(jié)點,說明BT的右子樹為空。由BT的后序遍歷序列和中序遍歷序列可知BT的左子樹(LST)的后序遍歷序列和中序遍

3、歷序列分別為dabe和deba(樹是遞歸定義的);故LST的根結(jié)點是e,在由LST的中序遍歷序列可知其左子樹為d。因此BT的前序遍歷序列為 cedba。4. 設(shè)有如下定義:char*a3="aa" , "bb" , "cc" ;則以下說法正確的是 。A) 數(shù)組 a 的第二個元素的值是 "bb"B) 輸出 "cc" 使用語句 printf("%s" , a2) ;C) 數(shù)組 a 的 3 個元素分別存放的是含有兩個字符的一維字符數(shù)組D) 數(shù)組 a 的 3 個元素中各自存放了字符

4、'a' 、 'b' 和 'c'(分數(shù): 1.00 )A.B. VC.D.解析:5. 有以下程序的輸出結(jié)果是int f(int b 4)int i,j,s=0;for(j=0;j<4;j+)i=j;if(i>2) i=3-j;s+=bij;return s;main( )int a44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0;printf( “%d/n”,f(a);A) 12B) 11C) 18D) 16分數(shù): 1.00 )A.B.C.D. V解析: 解析 程序執(zhí)行過程為: j i i=3-j s 0 0 不執(zhí)

5、行 1 1 1 不執(zhí)行 3 2 2 不執(zhí)行 12 3 3 0 16 4結(jié)束循環(huán)。6. 以下敘述中錯誤的是 。A) 改變函數(shù)形參的值,不會改變對應(yīng)實參的值B) 函數(shù)可以返回地址值C) 可以給指針變量賦一個整數(shù)作為地址值D) 當(dāng)在函數(shù)的開頭包括頭文件 stdio.h 時,可以給指針變量賦 NULL(分數(shù): 2.00 )A.B.C. VD.解析: 解析 函數(shù)的形參接收傳遞給函數(shù)的變元的值,它類似于局部變量,也是動態(tài)的,當(dāng)函數(shù)退出時自 動銷毀,因此,改變函數(shù)形參的值,并不會改變對應(yīng)實參的值,所以選項 A 是正確的。選項 B 是正確的, 函數(shù)可以返回地址值即返回一個指針,只是必須明確聲明返回的指針類型。

6、選項C是錯誤的,因指向變量的指針既不是整數(shù),也不是無符號整數(shù),它只是某類型數(shù)據(jù)的內(nèi)存地址,因此不能賦一個整數(shù)給指針變量 作為地址值。選項 D是正確的,頭文件stdio.h 中定義了宏NULL,它是一個空指針常數(shù),若給指針變量賦 NULL,即將指針初始化為空。7. 在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是 ( ) 。A) 可行性分析報告 B) 軟件需求規(guī)格說明書C) 概要設(shè)計說明書 D) 集成設(shè)計計劃(分數(shù): 2.00 )A.B. VC.D.解析: 解析 需求分析的最終結(jié)果是生成軟件需要規(guī)格說明書,可以為用戶、分析人員和設(shè)計人員之間的 交流提供方便,可以直接支持目標(biāo)確認,又可以作為控制軟件開發(fā)

7、進程的依據(jù)。8. 數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中, ( ) 沒有專門的軟件對數(shù)據(jù)進行管理。I.人工管理階段文件系統(tǒng)階段山數(shù)據(jù)庫階段A) 僅I B)僅山C) I和n D) U和山(分數(shù): 2.00 )A. VB.C.D.解析: 解析 數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,只有人工管理階段, 沒有操作系統(tǒng), 沒有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。在文件系統(tǒng)階段,操作系統(tǒng)中已經(jīng)有了專門數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。 在數(shù)據(jù)庫系統(tǒng)階段,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng),即數(shù)據(jù)庫管理系統(tǒng)。9. 在數(shù)據(jù)庫設(shè)計中,將 E-R 圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于 ( ) 。A) 需求分析階段 B) 概念沒計階段C)

8、邏輯設(shè)計階段 D) 物理設(shè)計階段(分數(shù): 1.00 )A.B.C. VD.解析:解析數(shù)據(jù)庫的設(shè)計階段包括需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計,其中將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于邏輯設(shè)計階段。10. 若變量均已正確定義并賦值,以下合法的C語言賦值語句是。A) x=y=5 ; B) x=n%2.5 ; C) x+n=i D) x=5=4+1;(分數(shù): 1.00 )A. VB.C.D.解析:解析對于取模運算符“ %,不能用于浮點數(shù),在表達式B中,2.5為浮點數(shù),因此B是錯誤的;在賦值表達式,其左值不能為表達式,因此C是錯誤的;在賦值表達式,其左值不能為常數(shù),因此D是錯誤的,因為在“ 5=4

9、+1”中,5是常數(shù),但出現(xiàn)在賦值表達式的左邊。11. 下面的程序執(zhí)行后,文件 test.t 中內(nèi)容是 。#include < stdio.h >void fun(char *fname,char*st)FILE*myf , int i;myf=fopen(fname,"w");for(i=0;i < strlen(st);i+)fputc(sti,myf);fclose(myf) ;main()fun("test.t","new world");fun("test.t", "hello,

10、");A) hello , B) new worldhello C) new world D) hello, rld(分數(shù): 1.00 )A. VB.C.D.解析: 解析 C 語言中文件有文本文件與二進制文件,對文件的使用前必須先打開,打開方式有只讀、寫 入、讀寫等方式。12. 有以下程序:point( char 木 p)p+=3;main()char a4='1','2','3','4', *p=a;point(p) ;printf("%c/n" , *p) ; 程序運行后的輸出結(jié)果是A) 1 B)

11、 2 C) 3 D) 4(分數(shù): 1.00 )A. VB.C.D.解析:解析在函數(shù)point調(diào)用時,系統(tǒng)自動為函數(shù)的形參p分配內(nèi)存空間,并賦值為實參p的值。當(dāng)執(zhí)行語句“ p+=3';時,系統(tǒng)操作的是形參p的內(nèi)存空間,更改形參 p的內(nèi)容,而實參指針變量p的值未受影響,即指針變量作為函數(shù)參數(shù)時,不能更改實參指針變量的指向。故在“ printf("%c/n" , *p) ”;語句 中, p 仍然指向字符數(shù)組的首元素。13. 已知大寫字母F的ASCII碼為70,以下程序的運行結(jié)果為()#include < stdio.h >main( )char c1='

12、;F', c2='p' ;printf("%d , %d/n", c1, c2);A) 70 , 80 B) 70 , 81 C) 70 , 82 D) 70 , 83(分數(shù): 1.00 )A. VB.C.D.解析:14. 若有以下說明和語句:char *language="FORTRAN" , "BASIC", "PASCAL", "JAVA" , "C";char*q ; q=language+2 ;則語句 printf(" o/n&qu

13、ot; , *q) ; ( ) 。A) 輸出的是 language2 元素的地址B) 輸出的是字符串 PASCALC) 輸出的是language2元素的值,它是字符串 PASCAL勺首地址D) 格式說明不正確,無法得到確定的輸出(分數(shù): 1.00 )A.B.C. VD.解析: 解析 考查用指針數(shù)組來引用數(shù)組元素的方法。 解題要點 題中指針數(shù)組 language 中的每個元素都是一個指向一個字符串的字符指針。通過這個指針可 以引用到字符串中的每一個字符。題中的q是雙重字符指針,q=language+2則使指針q指向了數(shù)組language的第三個元素,是字符串“ PASCAL的首地址。15. 下列

14、程序段中,不能正確賦值的是 ( ) 。A) char*p,ch ;p=&ch ;scanf ("%c", &p);B) char*p ;p=(char*)malloc(1);scabf("%c" , p);C) char*p ;*p=getchar();D) char*p,ch ;p=&ch ;*p=getchar();(分數(shù):1.00 )A.B.C. VD.解析:解析地址變量p指向的存儲空間一定要明確,否則可能影響程序的正確性。16. C語言中用于結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)是A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)B) if 、swi

15、tch、breakC) for 、 while 、 do-while D) if 、 for、 continue(分數(shù):1.00 )A. VB.C.D.解析:解析結(jié)構(gòu)化程序設(shè)計是由3種基本結(jié)構(gòu)組成的,它們是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。所以,A選項為所選。17. 有兩個關(guān)系R、S如下:由關(guān)系R通過運算得到關(guān)系S,則所使用的運算為A)選擇B)投影C)插入D)連接(分數(shù):2.00 )A.B. VC.D.解析:解析專門的關(guān)系運算有3種:投影、選擇和連接。選擇運算是從關(guān)系中找岀滿足給定條件的那些 元組,其中的條件是以邏輯表達式給岀的,值為真的元組將被選取,這種運算是從水平方向抽取元組的。投影運算是從關(guān)

16、系模式中挑選若干屬性組成新的關(guān)系,這是從列的角度進行的運算,相當(dāng)于對關(guān)系進行垂 直分解。連接運算是二目運算,需要兩個關(guān)系作為操作對象。18. 下面程序的輸岀結(jié)果是 。#define a 121const b=12 ;enum ca1,a2 ;main() printf("%d,%d,%d",sizeof(a) ,sizeof(b) ,sizeof(enum c) )A) 121 ,0,4 B) 2,2,2 C) 0,2,4 D) 0,2,2(分數(shù): 1.00 )A.B. VC.D.解析:解析sizeof函數(shù)是取變量所占的存儲空間的字節(jié)數(shù),標(biāo)識a代表常量121 ; const

17、 b=12;,其中數(shù)據(jù)類型可以缺省,默認為整型; enum ca1,a2 ;定義了一個枚舉類型 enum c, a1,a2 為枚舉元素,在 C 編譯時,對枚舉元素按常量處理,它們的值按定義順序依次為 0, 1。因此它們的字節(jié)數(shù)均為 2,2,2 。19. 以下選項中非法的表達式是A) 0 < = x v 100 B) i=j= =0 C) (char)(65+3) D) x+仁x+1(分數(shù): 1.00 )A.B.C.D. V解析:解析選項D中將表達式的值賦給表達式,在c語言中是不允許給表達式賦值的20. 數(shù)據(jù)處理的最小單位是 ( ) 。A) 數(shù)據(jù) B) 數(shù)據(jù)元素 C) 數(shù)據(jù)項 D) 數(shù)據(jù)結(jié)

18、構(gòu)(分數(shù): 1.00 )A.B.C. VD.解析: 解析 數(shù)據(jù)處理的最小單位是數(shù)據(jù)項; 由若干數(shù)據(jù)項組成數(shù)據(jù)元素; 而數(shù)據(jù)是指能夠被計算機識別、 存儲和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運算。故正確答案為選項C)。21. 以下不合法的字符常量是 ( ) 。A) '/018' B) '/'" C) '/' D) '/xcc'(分數(shù): 1.00 )A. VB.C.D.解析: 解析 本題考查的知識點是字符常量中的轉(zhuǎn)義字符。轉(zhuǎn)義字符是以一個“/”開頭的字符序列,它只代表一個字符。在選項 A)中,“/”后跟著

19、三個數(shù)字,是表示一個ASCII碼值等于這三位數(shù)字所組成的八進制數(shù)數(shù)值的字符,但是八進制數(shù)只能是由07這八個數(shù)字表示,而選項 A)中出現(xiàn)了數(shù)字8所以是不合法的。選項B)是表示一個雙引號的轉(zhuǎn)義字符表示方法;選項C)表示的是一個反斜桿;選項D)表示一個ASCII 值為十六進制值 cc 的字符。故應(yīng)該選擇 A)。22. 下列選項中不符合良好程序設(shè)計風(fēng)格的是 。A) 源程序要文檔化 B) 數(shù)據(jù)說明的次序要規(guī)范化C) 避免濫用 goto 語句 D) 模塊設(shè)計要保證高耦合、高內(nèi)聚 (分數(shù): 2.00 )A.B.C.D. V解析:解析程序設(shè)計的風(fēng)格主要強調(diào):清晰第一,效率第二。主要應(yīng)注重和考慮下述一些因素:源

20、程 序文檔化;數(shù)據(jù)說明,其主要包括數(shù)據(jù)說明的次序規(guī)范化、說明語句中變量安排有序化、使用注釋來說 明復(fù)雜數(shù)據(jù)的結(jié)構(gòu);語句的結(jié)構(gòu)。在程序結(jié)構(gòu)中各模塊的內(nèi)聚性越強,則耦合性越弱。優(yōu)秀軟件應(yīng)高內(nèi) 聚,低耦合。23. 以下能正確定義且賦初值的語句是 。A) int n1=n2=10 ;B) char c=32 ;C) float f=f+1.1;D) ;(分數(shù): 1.00 )A.B. VC.D.解析:解析C語言中規(guī)定程序中所要用到的變量應(yīng)該先定義后使用。因此選項A和C都是錯誤的。選項D中,E的后面只能為整數(shù),不能是實數(shù)。所以D電是錯誤的。只有選項 B是正確的,char和int是通用的。24. 若程序中定

21、義了以下函數(shù)double myadd(double a,double b)return (a+b);并將其放在調(diào)用語句之后,則在調(diào)用之前應(yīng)該對該函數(shù)進行說明,以下選項中錯誤的說明是()A) double myadd(double a,b);B) double myadd(double,double);C) double myadd(double b,double a);D) double myadd(double x,double y);分數(shù): 1.00 )A. VB.C.D.解析: 解析 在對函數(shù)進行說明時,參數(shù)類型要一一對應(yīng),而參數(shù)名完全是虛設(shè)的,可以不必與出數(shù)首部 中的形參名一致,而且參

22、數(shù)名可以省略。25. 有如下程序段:int a=14, h=15, x;char c='A'x=(a && b) && (c < 'B');執(zhí)行該程序段后, x 的值為A) true B) false C) 0 D) 1(分數(shù): 2.00 )A.B.C.D. V解析:解析在C語言中,邏輯運算符有4個,它們分別是:!(邏輯非)、|(邏輯或)、&& (邏輯與)、人(異或)。在位運算里面還有& (位與)、|(位或)的運算。本題考查邏輯與運算符的用法,在表達式x=(a &&b) &&a

23、mp; (c v 'B');中,先判斷a&& b條件,邏輯與條件的兩邊都要保證為1,即a和b都成立,當(dāng)然cv 'B'是成立的,顯然,該表達式的值為1。26. 有以下程序:#include v stdio.h >main()int a=2, 4, 6, 8, 10, y=0, x, *p;p=& a1;for(x=1; x v 3; x+)y+=px;printf("%d/n", y);程序運行后的輸出結(jié)果是 ( ) 。A) 10 B) 11 C) 14 D) 15(分數(shù): 1.00 )A.B.C. VD.解析:解

24、析本題考查的是指針的運用。題目首先申請了一個整型數(shù)組a,并讓一個指針變量 p指向數(shù)組的元素a1。然后使用一個for循環(huán),循環(huán)變量x從l遞增到2,即循環(huán)兩次。在循環(huán)體中每次讓y累加px的值,而px寫成指針形式就是*(p+x)。所以兩次y加的值分別是a2和a3的值,故最終輸出6+8=14 應(yīng)該選擇 C)。27. E-R 圖是數(shù)據(jù)庫設(shè)計的工具之一,它一般適用于建立數(shù)據(jù)庫的 。A) 概念模型 B) 結(jié)構(gòu)模型C) 物理模型 D) 邏輯模型分數(shù): 2.00 )B.C.D.解析: 解析 E-R 模型是描述現(xiàn)實世界的概念模型,它將現(xiàn)實世界的信息結(jié)構(gòu)統(tǒng)一用實體、屬性、以及實 體之間的聯(lián)系描述。 E-R 圖提供了

25、表示實體型、屬性和聯(lián)系的方法。28. 以下程序的運行結(jié)果是 。main()char t=02 ;printf("%d/n",t=+t >> 2);A) 0 B) 1C) 2 D) 3(分數(shù): 1.00 )A. VB.C.D.解析: 解析 t 的二進制形式是 00000010,前置加之后, t 值的二進制形式為 00000011 ,右移兩位,最 后兩個 1 將移出, t 值最后是 0 。29. 若函數(shù)調(diào)用時的實參為變量時,以下關(guān)于函數(shù)形參和實參的敘述中正確的是 。A) 函數(shù)的實參和其對應(yīng)的形參共占同一存儲單元B) 形參只是形式上的存在,不會占用具體存儲單元C) 同

26、名的實參和形參占同一存儲單元D) 函數(shù)的形參和實參分別占用不同的存儲單元(分數(shù): 2.00 )A.B.C.D. V解析:30. 待排序的關(guān)鍵碼序列為 (33,18,9,25,67,82,53,95,12,70) ,要按關(guān)鍵碼值遞增的順序排序, 采取以第一 個關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第 ( ) 個位置。A) 3 B) 5 C) 7 D) 9(分數(shù): 2.00 )A.B. VC.D.解析: 解析 快速排序的基本思想是:從表中選取一個元素 ( 如本題中的 33) ,將表中小于此元素的移到 前面,大于此元素的移到后面, 結(jié)果把線性表分割成兩部分 ( 兩個子表 ) ,此

27、元素插入到其分界線的位置處。然后分別對兩個子表再次分割本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12 后面。31. 軟件需求分析一般應(yīng)確定的是用戶對軟件的 。A) 功能需求 B) 非功能需求 C) 性能需求 D) 功能需求和非功能需求(分數(shù): 2.00 )A.B.C.D. V解析: 解析 軟件需求分析中需要構(gòu)造一個完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求, 使用戶明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶對軟件的功能需求和非功能需求。32. 有如下程序:main()char ch25="6937","8254" , *

28、p2 ;int i,j, s=0;for(i=0 ; i v 2; i+)pi=chi;for(i=0 ; i v 2 ; i+)for(j=0 ;pij!='/O'j+=2)s=10*s+pij-'0';printf("%d/n" ,s) ;該程序的輸出結(jié)果是 。A) 69825 B) 63825 C) 6385 D) 693825(分數(shù): 1.00 )A.B.C. VD.解析:33. 有以下程序main()int a33,*p,i;p=a00;for(i=0;iv 9;i+)pi=i;for(i=0;iv 3;i+)printf(&quo

29、t;%d",a1i);程序運行后的輸出結(jié)果是 。(A) 0 1 2(B) 1 2 3(C) 2 3 4(D) 3 4 5分數(shù): 2.00 )A.B.C.D. V 解析:34. 關(guān)系表中的每一橫行稱為一個 ( ) A) 元組 B) 字段 C) 屬性 D) 碼(分數(shù): 1.00 )A. VB.C.D.解析: 解析 關(guān)系表中,每一行稱為一個元組,對應(yīng)表中的一條記錄;每一列稱為一個屬性,對應(yīng)表中的 一個字段;在二維表中凡能唯一標(biāo)識元組的最小屬性集稱為該表的鍵或碼。35. 有以下程序#include < stdio.h >#include < stdlib.h >int

30、 fun(int n)int *p;p=(int*)malloc(sizeof(int);*p=n; return *p;int a;a=fun(10); printf("%d/n",a+fun(10);程序的運行結(jié)果是 。A) 0 B) 10 C) 20 D)出錯(分數(shù): 2.00 )A.B.C. VD.解析: 解析 malloc(sizeof(int) 的作用是開辟一個長度為 sizeof(int) 存儲空間,并通過強制類型轉(zhuǎn) 換(int*)將此存儲空間的地址賦給了一個整型的指針變量p。然后執(zhí)行語句“ *p=n”,使得*p的值為10,并通過返回此值,在主函數(shù)中輸出 a+

31、10 的值,即輸出 20。36. 若輸入 60和13,以下程序的輸出結(jié)果是 ( )# define SURPLUS(a , b)(a)%(b)main( )int a , b;scanf("%d , %d", &a, &b);printf("%d/n" , SURPLUS(a, b) ;A60B13C73D8(分數(shù): 1.00 )A.B.C.D. V解析:37. 以下數(shù)組定義中錯誤的是A) int x3=0; B) int x23=1, 2, 3, 4, 5, 6;C) int x3=1, 2, 3, 4, 5, 6; D) int x2

32、3=1, 2, 3, 4, 5, 6;(分數(shù): 2.00 )A.B. VC.D.解析:解析二維數(shù)組的初始化有以下幾種形式:分行進行初始化;不分行進行初始化;部分數(shù)組元素進行初始化;省略第一維的定義,不省略第二維的定義。選項B)等號右邊分了 3行,大于等號左邊數(shù)組的行數(shù) 2。38. 下列敘述中,不屬于結(jié)構(gòu)化分析方法的是 。A) 面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法B) 面向數(shù)據(jù)結(jié)構(gòu)的 Jackson 方法C) 面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法D) 面向?qū)ο蟮姆治龇椒?分數(shù): 1.00 )A.B.C.D. V解析: 解析 常見的需求分析方法有結(jié)構(gòu)化分析方法和面向?qū)ο蟮姆治龇椒▋深?。其中結(jié)構(gòu)化分析方法又包

33、括面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法 (SAStructured analysis)、面向數(shù)據(jù)結(jié)構(gòu)的 Jackson方法(JSD,Jackson system development method) 和面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD,Data structured systemdevelopment method) 。39. 有以下程序:void f(int*q)int i=0;for( ; i < 5; i+)(*q)+;main()int a5=1,2,3,4,5,i;f(a);for(i=0;i < 5;i+)printf("%d , " , ai

34、);程序運行后的輸出結(jié)果是 。A) 2,2,3,4,5, B) 6,2,3,4,5, C) 1,2,3,4,5, D) 2,3,4,5,6,(分數(shù): 2.00 )A.B. VC.D.解析:解析 題目中定義了一個指針變量作為函數(shù)f() 的參數(shù)。主函數(shù) main() 中調(diào)用 f() 函數(shù),當(dāng) i=0 時,執(zhí)行語句“ (*q)+ ;”,此處 *q 就代表數(shù)組 a0 的地址,也即將 q 進行加 1 操作;當(dāng) i=1 時, q 仍指向數(shù) 組元素a0的地址,因為在函數(shù)f()中并未對指針變量q做任何變動,即*9仍代表數(shù)組元素a0的值,所 以此次 (*q)+ 即為 2+1,a0 的值變?yōu)?3;直到 i=4 時

35、,執(zhí)行 (*q)+ 后 a0 的值變?yōu)?6,最后輸出數(shù)組 a 的 結(jié)果為 6、 2、3、4、5。40. 若有語句: char *line5; ,以下敘述中正確的是 。(A) 定義 line 是一個數(shù)組,每個數(shù)組元素是一個基類型為 char 的指針變量(B) 定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組(C) 定義line是一個指針數(shù)組,語句中的 *號稱為間址運算符(D) 定義line是一個指向字符型函數(shù)的指針(分數(shù): 2.00 )A. VB.C.D.解析:41. 在以下程序段中,已知血型數(shù)據(jù)占兩個字節(jié),則輸出結(jié)果是union unint i ;double y ;stru

36、ct stchar a10 ;union un b ;printf("%" , sizeof(struct st) ;A) 14 B) 18 C) 20 D) 16(分數(shù): 1.00 )A.B. VC.D.解析: 解析 本題考查了結(jié)構(gòu)體和共用體類型的特點。結(jié)構(gòu)體變量的各個數(shù)據(jù)成員分別占據(jù)不同的存儲空間,而共用體變量的數(shù)據(jù)成員共同占據(jù)一段存儲空間。所以共用體un的變量占8個字節(jié),而結(jié)構(gòu)st中,變量所占據(jù)的存儲空間為成員a和b的存儲空間之和,所以答案為Bo42. 以下能正確定義且賦初值的語句是 ( ) 。A) int n1=n2=10 ; B) char c=32 ;C) fl

37、oat f=f+1; ;(分數(shù): 1.00 )A.B. VC.D.解析: 解析 語句 int n1=n2=10 ;中,由于變量 n2 未定義,所以此賦值語句錯誤;由于賦值語句中不能 存在運算表達式,所以選項C)中的賦值語句錯誤;選項D)中指數(shù)表示錯誤,C語言規(guī)定,e后面的指數(shù)必須為整數(shù);選項B)中的32是ASCII碼的表示形式,這是 c語言中字符型數(shù)據(jù)和整型數(shù)據(jù)通用的表現(xiàn),即 一個字符數(shù)據(jù)可以以字符形式出現(xiàn),也可以以整數(shù)形式出現(xiàn)。43. 請讀程序段:char str="ABCD",*p=str print("%d/n",*(p+4);程序段的輸出結(jié)果是

38、。A) 68 B) O C) 字符'D'的地址D)不確定的值(分數(shù): 2.00 )A.B. VC.D.解析: 解析 在對字符數(shù)組賦字符串值時,系統(tǒng)會自動在字符串的末尾加上個字符串結(jié)束標(biāo)志'/0' ,故指向字符數(shù)組的指針p的*(p+4)的值為70'。由于70'的編碼值就是0,所以本題輸出為0。44. 對長度為 n 的線性表進行順序查找,在最壞情況下需要比較的次數(shù)為 ( ) 。A) 125 B) n/2 C) n D) n+1(分數(shù): 2.00 )A.B.C. VD.解析: 解析 對線性表進行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元

39、素的關(guān)鍵字 進行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個元素 或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進行比較,因此比較次數(shù)為n。45. 有以下程序:#include < stdio.h >int fun(int x , int y)if(x=y)return(x) ;else return(x+y)/2) ;main()int a=1 , b=2, c=3;printf("%d/n" , fun(2*a , fun(b , c) ;程序運行后的輸出結(jié)果是 ( ) 。A) 2 B) 3 C) 4 D) 5

40、(分數(shù): 2.00 )A. VB.C.D.解析:解析fun(b , c)即 fun(2,3), 2!=3,所以返回(2+3)/2=2 ; fun(2*a,2)即 fun(2 , 2) , 2=2,所以返回 2。46. 下面程序的執(zhí)行結(jié)果是 。main()char str="quert?",*p=str;while(putchar(*p+)!='?') ;A) quert B) Rvfsu C) quert? D) rvfsu?(分數(shù): 1.00 )A.B.C. VD.解析:解析*p+是先取*p的值,然后指針變量 p指向下一個字符,putchar是先執(zhí)行(輸出

41、)再判斷,所 以“?”是可以顯示的。47. 有以下程序int f1(int x,int y)return x > y?x:y;int f2(int x,int y)return x >y?y:x;main()int a=4,b=3,c=5,d,e,f;d=f1(a,b); d=f1(d,c);e=f2(a,b); e=f2(e,c);f=a+b+c-d-e ;printf("%d,%d,%d/n",d,f,e) ;執(zhí)行后輸出結(jié)果是A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 3,5,4(分數(shù): 1.00 )A.B.C. VD.解析:解析函數(shù)f1()

42、的作用是返回形參x和y的較大值,函數(shù)f2()的作用是返回形參x和y的較小值, 在main()函數(shù)中通過調(diào)用兩次 f1()函數(shù),求得a、b、c的最大值并存放在變量 d中,通過調(diào)用兩次f2() 函數(shù),求得a、b、c的最小值并存放到變量 e中。由程序可知d值為5,f的值為4, e的值為3,因此最 后輸出的 d、 f、 e 的值為 5、 4、 3。48. 以下敘述中錯誤的是 ( ) 。A) 用戶定義的函數(shù)中可以沒有 return 語句B) 用戶定義的函數(shù)中可以有多個 return 語句,以便可以調(diào)用一次返回多個函數(shù)值C) 用戶定義的函數(shù)中若沒有 return 語句,則應(yīng)當(dāng)定義函數(shù)為 void 類型D)

43、 函數(shù)的 return 語句中可以沒有表達式 (分數(shù): 1.00 )A.B. VC.D.解析: 解析 本題考查的是 return 語句。用戶定義的函數(shù)有兩種:一種是沒有返回值的函數(shù),函數(shù)類型必須為void ;另一種是有返回值的函數(shù)。在沒有返回值的函數(shù)中可以沒有return語句,所以選項 A)和C)是正確的;在沒有返回值的函數(shù)中如果有return語句,該語句必須不帶任何表達式,所以選項 D)也是正確的;用戶定義的函數(shù)可以有多個 return 語句,但是只能返回一個函數(shù)值,所以應(yīng)該選擇 B)。49. 設(shè)有定義語句 int(*f)(int) ;,則以下敘述正確的是 。A) f 是基類型為 int 的

44、指針變量B) f 是指向函數(shù)的指針變量,該函數(shù)具有一個 int 類型的形參C) f 是指向 int 類型一維數(shù)組的指針變量D) f 是函數(shù)名,該函數(shù)的返回值是基類型為 int 類型的地址(分數(shù): 2.00 )A.B. VC.D.解析: 解析 int(*f)(int) ;為指向函數(shù)的指針變量的定義方法,其中 f 為指向函數(shù)的指針變量,第一個 int 為函數(shù)返回值的類型,第二個 int 為函數(shù)的形參類型。50. 以下與函數(shù) fseek (fp, OL, SEEK_SET) 有相同作用的是 ( ) 。A) feof(fp) B) ftell(fp) C) fgetc(fp) D) rewind(fp

45、)(分數(shù): 1.00 )A.B.C.D. V解析: 解析 feof 函數(shù)的功能是判斷文件指針是否已指到了文件末尾,是則返回非零值,否則返回零;ftell 函數(shù)的功能是得到流式文件中文件指針的當(dāng)前位置, 用相對于文件開頭的位移量來表示; fgetc 函數(shù) 的功能是從指定文件讀人一個字符; rewind 函數(shù)的功能是使文件指針重新返回文件的開頭。fseek 函數(shù)用于改變文件的位置指針,調(diào)用形式為: fseek( 文件類型指針,位移量,起始點 ) , “起始點”取值0(SEEK_SET) 1(SEEK_CUR、2(SEEK_END分別表示文件開始、 文件當(dāng)前位置、文件末尾?!拔灰屏俊?是以“起始點”

46、為基點,向前移動的字節(jié)數(shù)。函數(shù)fseek(fp , OL, SEEK_SET的作用是將位置指針移到文件頭,所以選項D)正確。二、填空題 (總題數(shù): 20,分數(shù): 33.00)51. 希爾排序法屬于 1 排序法(分數(shù): 2.00 )填空項 1: (正確答案:插入類)解析: 解析 希爾排序法的基本思想是:將整個無序序列分割成若干小的子序列分別進行插入排序。所以 希爾排序法屬于插入類排序,但它對簡單插入排序做了很大的改進。52. 有以下程序:# include < stdio.h >main()char ch1,ch2; int n1,n2ch1=getchar() ; ch2=getc

47、har() ;n1=ch1-'0' n2=n1*10+(ch2-'0');printf("%d/n",n2);程序運行時輸入: 12<回車>,執(zhí)行后的輸出結(jié)果是 。(分數(shù): 2.00 ) 填空項 1: (正確答案: 12)解析:解析本題中 n1='1'- 'O'=1,n2=1 X 10+(2-0)=10+2=12 。53. 對長度為 8 的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為 1 。(分數(shù): 2.00 )填空項 1: (正確答案:28)解析: 解析 在最壞情況下,冒泡排序所需要的比較次數(shù)為

48、 n(n-1)/2; 簡單插入排序所需要的比較次數(shù)為 n(n-1)/2; 希爾排序所需要的比較次數(shù)為 O(n1.5 ) ;堆排序所需要的比較次數(shù)為 O(nlog2n) 。54. 軟什是程序、數(shù)據(jù)和 1 的集合。(分數(shù): 3.00 )填空項 1: (正確答案:文檔)解析: 解析 計算機軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的 完整集合。55. 設(shè)指針變量p是指向整型變量b的,則p中存放的是1。(分數(shù): 1.00 )填空項 1: (正確答案:變量 b 的地址)解析:56. 若有定義doublea5;,貝U a數(shù)組元素下標(biāo)的上限為1。(分數(shù): 2.00 )填空項 1

49、: (正確答案:4)解析: 解析 一維數(shù)組元素的定義形式為:數(shù)組名 N ,則該數(shù)組中元素的下限是 0,上限是 N-157. 下面程序的輸出結(jié)果是 。#include < stdio.h >main()static chara="zhao" , b="juan" ;char*ptr1=a , *ptr2=b ; int k ;for(k=0 ; kv 4 ; k+)if(*(ptr1+k)=*(ptr2+k) printf("%c" ,*(ptr1+k)(分數(shù): 2.00 )填空項 1: (正確答案: a)解析:解析本程序先

50、將指針ptrl和ptr2分別指向字符數(shù)組 a和b,然后通過指針的移動比較a和b中是否有相同的字符。若有相同的字符則將其輸出。58. 下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序完整。(注:程序采用了冒泡排序算法)#include v stdio.h >#include v string.h >main()char*str="ABCDabcd" , temp;int n,i ;n=strlen(str) ;while(n- > 1)for(i=0 ; i v n;i+)if(stri v stri+1)temp=;stri=stri+1 ;=

51、temp;printf();(分數(shù): 1.00 )填空項 1: (正確答案: stristri+1"%s",str )解析: 解析 本題要求將字符串 str 中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字 符進行比較,如果當(dāng)前字符小于下一個字符;則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:stri ,第二空應(yīng)填: stri+1 。最終打印輸出得到的字符串 str ,所以第三空應(yīng)填; "%s", str 。59. 有如下程序main()int a33=1, 2, 3, 4, 5, 6, i,j,s=0;for(i=1 ; i v 3

52、; i+)for(j=0;j v =i;j+)s+=aij;printf("%d/n" , s) ;該程序的輸出結(jié)果是 。(分數(shù): 1.00 )填空項 1:正確答案: 18)解析:60. 下面函數(shù)的功能是將一個字符串的內(nèi)容顛倒過來,請?zhí)羁?void fun(char str)int i,j ,k ;for(i=0 , j= ; i vj ; i+ , j-)k=stri;stri=strj ;strj=k;(分數(shù): 1.00 )填空項 1: (正確答案: strlen(str)-1 )解析: 解析 程序中的 for 循環(huán)就是用來完成串反序的,所以應(yīng)該對循環(huán)的條件進行初始化,

53、所以在18應(yīng)該填入 strlen(str)-1 。注意,在串反序的時候,不應(yīng)該把串結(jié)束符 /0 '也反序。61. 下面的程序把從終端讀入的文本( 用作為文本結(jié)束標(biāo)志 ) 輸出到一個名為 bi.dat 的新文件中,請?zhí)羁铡?include v stdio . h >#include v stdlib . h >FILE*fp ;main()charch ;if(fp=fopen()=NULL)exit(0) ;while(ch=getchar()!='') fputc(ch, fp) ;fclose(fp) ;(分數(shù): 2.00 )填空項 1: (正確答案:&

54、quot;bi.dat" , "w"或"bi.dat" , "w+/)解析: 解析 根據(jù) fopen 函數(shù)的調(diào)用方式 fopen( 文件名,使用文件方式 ) 和題意可得結(jié)果。62. 順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置 1 的存儲單元中。(分數(shù): 2.00 )填空項 1: (正確答案:相鄰)解析:63. 以下程序的功能是根據(jù)輸入的“y”(“Y)與“n”(“N),在屏幕上分別顯示出“ This isYES”與“This is NO. ”??瞻滋幮枰钊氲膬?nèi)容是#include v stdio.h >void YesNo(char ch)switch(ch)case'y' :case'Y' : printf("/n This is YES./n");case'n' :case'N' : Printf("/nThis is NO./n");main()char ch ;printf("/nEnter a char'y', 'Y'or'n' , 'N': ") ;ch=;printf(&quo

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論