等級考試二級C語言考前密卷(一)_第1頁
等級考試二級C語言考前密卷(一)_第2頁
等級考試二級C語言考前密卷(一)_第3頁
等級考試二級C語言考前密卷(一)_第4頁
等級考試二級C語言考前密卷(一)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、唯C動力 全國計算機等級考試二級C專業(yè)網(wǎng)站更多考前資料進入>>>2005年9月等級考試二級C語言考前密卷(一)一、選擇題(1)(10)每小題2分,(11)(50)每小題1分,共60分)下列各題A)、B)、c)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)在數(shù)據(jù)結構中,從邏輯上可以把數(shù)據(jù)結構分為_。A)動態(tài)結構和靜態(tài)結構B)緊湊結構和非緊湊結構c)線性結構和非線性結構D)內(nèi)部結構和外部結構答案:C評析:邏輯結構反映數(shù)據(jù)元素之間的邏輯關系,線性結構表示數(shù)據(jù)元素之間一對一的關系,非線性結構表示數(shù)據(jù)元素之間一對多或多對一的關系。

2、(2)若進棧序列為l,2,3,4,進棧過程中可以出棧,則下列不可能的一個出棧序列是_。A)1,4,3,2B)2,3,4,lC)3,1,4,2D)3,4, 2,1答案:C評析:棧是一種后進先出表,選項c中,先出棧的是3,說明此時棧內(nèi)必然有1,2,由于l先于2進棧,所以l不可能在2之前出棧,故選項C這種出棧序列是不可能的。(3)排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的方法,稱為_。A)希爾排序B)冒泡排序c)插入排序D)選擇排序答案:A評析:希爾排序法的基本思想是:將整個無序序列分割成若干小的子序列分別進行插入排序。(4)在順序表(3,6,8,10,12,15,16,18

3、,21,25,30)中,用二分法查找關鍵碼值11,所需的關鍵碼比較次數(shù)為_。A)2B)3 C)4D)5答案:C評析:二分法查找是用關鍵碼與線性表的中間元素比較,然后根據(jù)比較結果來判斷是結束查找,還是在左邊或者右邊子表按相同的方法繼續(xù)查找。本題中,與ll比較的關鍵碼分別為15,8,10,12四個。(5)對于n個結點的單向鏈表(無表頭結點),需要指針單元的個數(shù)至少為_。A)n-1B)nC)n+lD)2n答案:C評析:在n個結點的單向鏈表(無表頭結點)中,每個結點都有一個指針單元(即指針域),加上頭指針,至少需要n+1個指針單元。(6)在軟件開發(fā)過程中,軟件結構設計是描述_。A)數(shù)據(jù)存儲結構 B)軟

4、件體系結構C)軟件結構測試D)軟件控制過程答案:B評析:從工程管理角度來看,軟件設計分兩步完成:概要設計和詳細設計。概要設計(又稱結構設計)將軟件需求轉(zhuǎn)化為軟件體系結構、確定系統(tǒng)級接口、全局數(shù)據(jù)結構或數(shù)據(jù)庫模式。(7)模塊本身的內(nèi)聚是模塊獨立性的重要性度量因素之一。在7類內(nèi)聚中,具有最強內(nèi)聚的一類是_。A)順序性內(nèi)聚 B)過程性內(nèi)聚c)邏輯性內(nèi)聚D)功能性內(nèi)聚答案:D評析:內(nèi)聚性是一個模塊內(nèi)部各元素間彼此結合的緊密程度的度量。內(nèi)聚共有7類,它們之間的內(nèi)聚性由弱到強排列順序為:偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚和功能內(nèi)聚。(8)數(shù)據(jù)存儲和數(shù)據(jù)流都是_,僅僅是所處的狀態(tài)不同

5、。A)分析結果B)事件C)動作D)數(shù)據(jù)答案:D評析:數(shù)據(jù)流圖有4種成分:源點或終點、處理、數(shù)據(jù)存儲和數(shù)據(jù)流。數(shù)據(jù)存儲是處于靜止狀態(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運動中的數(shù)據(jù)。(9)數(shù)據(jù)的完整性是指數(shù)據(jù)的正確性、有效性和_。A)可維護性B)獨立性C)安全性D)相容性答案:D評析:數(shù)據(jù)模型的完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)及其狀態(tài)的變化,以保證數(shù)據(jù)的正確性、有效性和相容性。(10)關系代數(shù)運算是以_為基礎的運算。A)關系運算B)謂詞運算c)集合運算 D)代數(shù)運算答案:C評析:關系代數(shù)運算是以關系代數(shù)作為運算對象的一組高級運算的集合。它的基本操作

6、是并、交、差、笛卡爾積,另外還包垂直分割(投影)、水平分割(選擇)、關系的結合(連接)等。(11)能將高級語言程序轉(zhuǎn)換成目標語言程序的是_。A)調(diào)試程序B)解釋程序C)編譯程序D)編輯程序答案:C評析:用高級語言編寫的程序稱為"源程序",而計算機只能識別和執(zhí)行由0和l組成的二進制指令,所以高級語言必須先用一種稱為"編譯程序"的軟件,把源程序翻譯成二進制形式的"目標程序"。(12) _是構成c語言程序的基本單位。A)函數(shù)B)過程c)子程序 D)子例程答案:A評析:c程序是由函數(shù)構成的。一個c源程序至少包含一個main函數(shù),也可以包含一個

7、main函數(shù)和若干個其他函數(shù),因此,函數(shù)是c程序的基本單位。(13)可以在C語言中用做用戶標識符的是_。A)voidB)as_b3C)forD)2cdefine_123 -abcDoWORD Ifcas SIG答案:B評析:c語言規(guī)定,標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。另外還需要注意的是關鍵字不能作標識符。選項A中void,C中for都為關鍵字,D中2c以字母開頭。(14)若有以下類型說明語句:char w;int x;float y,z;則表達式w*x+z-y的結果為_類型。A)floatB)char C)int D)double答案:A評析:在進

8、行運算時,不同類型的數(shù)據(jù)參加運算,需要先將其轉(zhuǎn)換成同一類型的數(shù)據(jù),然后再進行運算。轉(zhuǎn)換的順序由低到高為:char,shortintunsignedlongdoublefloat,故結果為float型。(15)main()float x=123A56;printf("-52fn",x);以上程序輸出的結果是_。A)1234B)1235C)12345D)12346答案:D評析:f格式符,用來輸出實數(shù),以小數(shù)形式輸出。"-mnf"的含義是:輸出數(shù)據(jù)共占m列,其中n位小數(shù),如果輸出位數(shù)小于m。則右端補空格。如果總長度大于列數(shù),則按實際情況四舍五入輸出。(16)下

9、面語句的輸出結果是_。Printf("dn",strlen("t"065xffn");A)14B)8C)5 D)輸出項不合法,無正常輸出答案:C評析:在c語言中,以""開頭的字符均為轉(zhuǎn)義字符,其中""后可跟l3位八進制數(shù)或在""后跟字母x及l(fā)2位十六進制數(shù),以此來代表一個特定的字符。(17)下列程序的輸出結果是_。main()int a=0,b=0,c=0;if(+a>0lI+b>0)+c;printf("na=d,b=d,c=d",a,b,c);A)a

10、=0,b=0,c=0 B)a=l,b=l,c=1C)a=l,b=O, c=I D)a=0, b=1c=1答案:C評析:""是或運算,它有個"短路"的特點需特別注意,當""運算符左邊的表達式的值為真時,則程序就不再對""右邊的表達式的值進行運算,而是使得整個表達式的值直接為真。(18)下列程序的輸出結果是_。Main()int i;for(i=1;i+l;i+)if(i>4)printlf("d",i+);break;printf("d",i+);A)55B)56c)程序

11、錯誤,沒有輸出D)循環(huán)條件永遠為真,死循環(huán)答案:B評析:本程序中有個for循環(huán),但注意到for循環(huán)的條件是"i+l",也就是只要i+l的值為真(非零值均為真),就執(zhí)行循環(huán)。當i=l的時,i+l的值為真,判斷if條件不成立,執(zhí)行i+,輸出i的值為5。(19)下列程序的輸出結果是_。#define A 100main()int i=O,sum=O;doif(I=(i2)*2)continue;sum+=i;while(+i<A);printf("dn",sum);A)2500B)2050C)4D)O答案:A評析:本題程序的功能是求1到_99之問(包括1

12、和99)所有奇數(shù)之和。程序中的while循環(huán)的終止條件為+i=100,在while循環(huán)體內(nèi),如果i是偶數(shù),則執(zhí)行continue,跳過這一次循環(huán),執(zhí)行下一次循環(huán),否則求和。最后輸出的值是1到99之間(包括l和99)所有奇數(shù)之和(1+99)*502=2500。(20)下列程序的輸出結果是_。main()int I=3;switch(i) case 1:case 2:printf("d",i);case 3:case 4:break;default:printf("OK");A)0B)3C)OKD)沒有任何輸出答案:D評析:在題中,i的值為3,由于"

13、;case 3:"后面沒有break語句,所以繼續(xù)向下執(zhí)行"case 4:"后面的語句,由于"case 4:"后面的語句為break強行退出switch語句,所以,本題沒有任何輸出。(21)下列程序執(zhí)行后的輸出結果是_。main()int m3=1,4,7,2,5,8,3,6,9;int i,k=2:for(I=0;i<3;i+)printf("d",mki);A)456B)258C)369D)789答案:C評析:根據(jù)二維數(shù)組的定義得出:mOO=1,mO1=4,mO2=7,m10=2,rail1=5,m12=8,m20

14、=3,m2l=6,m22=9,所以本題的輸出是第3行的值m20,m21,m22,即369。(22)設已定義洱口k為int類型變量,則以下for循環(huán)語句_。for(i=0;k=-1,k=1;i+,k+)printf("*n");A)判斷循環(huán)結束的條件不合法B)是無限循環(huán)C)循環(huán)一次也不執(zhí)行D)循環(huán)只執(zhí)行一次答案:B評析:本題定義了一個for循環(huán),循環(huán)變量是i,但由于本題并沒有設置循環(huán)條件,所以循環(huán)的條件永遠默認為真,即無限次執(zhí)行循環(huán)。(23)下面程序的輸出結果是_。unsigned fun(unsigned num) unsigned k=1;dok*=numlO;num=l

15、O;while(num);return(k);main()unsigned n。26;printf("dn",fun(n);A)0B)4c)12D)無限次循環(huán)答案:C評析:本題定義了一個fun函數(shù),用于num求和,具體執(zhí)行過程如下:num=26:k=k*(num10)=1*(2610),所以k=6,num=num10=2;num=2:k=k*(num10)=6*(210),所以k=12,num=numlO=O;num=O:while條件不成立,所以返回k的值12(24)已知字母A的ASCII碼值是65,字母a的ASCII碼值是97,以下程序_。main()char a=&#

16、39;A';int b=20;printf("d,o",(a=a+a,a+b,b),a+'a'-'A',b);A)表達式非法,輸出零或不確定值B)因輸出項過多,無輸出或輸出不確定值C)輸出結果為20,141D)輸出結果為20,141,20答案:C評析:本題中首先輸出逗號表達式"a=a+a,a+b,b"的值,即20。然后以八進制的形式輸出a+'a'-'A'的值為97對應的八進制數(shù)141,由于最后一個表達式b沒有對應輸出格式的輸出項表列就不會輸出。(25)C語言函數(shù)返回值的類型是由_決定

17、的。A)return語句中的表達式類型B)調(diào)用函數(shù)的主調(diào)函數(shù)類型c)調(diào)用函數(shù)時臨時 D)定義函數(shù)時所指定的函數(shù)類型答案:D評析:函數(shù)值的類型應當是在定義函數(shù)時指定的。在定義函數(shù)時對函數(shù)值說明的類型一般應該和return語句中的表達式類型一致,如果不_致,則以函數(shù)類型為準,即函數(shù)類型決定返回值的類型。(26)下列程序執(zhí)行后輸出的結果是_。int d=l:fun(int p)int d。5;d+=p+;printf("d,",d);main()int a=3;fun(a);d+=a+:printf("dn",d);A)8,12B)9,13C)8,4D)9,5

18、答案:C評析:本題執(zhí)行過程如下:首先調(diào)用fun函數(shù),使得實參a的值3傳遞給形參p,得到局部變量d=8,打印出局部變量d的值8;返回主函數(shù)執(zhí)行"d+=a+",此處的d為全局變量,所以d=1+3=4(由于本題是值傳遞,所以在函數(shù)fun中對p值的改變并不能引起a的改變),故本題的輸出是8,4。(27)已知下面的程序段,正確的判斷是_。#define A 3#define B(A)(_A+1)'a)int a=3:X=3*(A+B(7);A)程序錯誤,不允許嵌套定義B)X=93C)X=8lD)程序錯誤,宏定義不允許有參數(shù)答案:C評析:本題的宏定義是合法的,宏定義展開為3*(

19、3+(A+1)*a)=3*(3+(7+1)*3)=81。(28)定義int*swap()指的是_。A)一個返回整型值的函數(shù)swap()B)一個返回指向整型值指針的函數(shù)swap()C)一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值D)以上說法均錯答案:B評析:一個函數(shù)可以帶回一個整型值、字符值、實型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和·號,由于f)優(yōu)先級高于t。故它是一個返回整型指針的函數(shù)。(29)以下程序段的輸出結果是_。main() char s110,s210,s310;scanf("s",s1);gets(s2);gets(s3

20、);puts(s 1);puts(s2);puts(s3);輸入數(shù)據(jù)如下:(此處<cR>代表回車符)aaa<CR>bbb<CR>A)aaaB)aaaC)aaa0bbb0D)aaabbbbbbbbb答案:B評析:scanf是標準輸入函數(shù),在輸入字符串a(chǎn)aa時,實際的內(nèi)容為"aaa0","0"是由系統(tǒng)自動加入的;gets的功能是從終端讀入一行字符,即一直讀到換行符為止,并由系統(tǒng)自動以"0"代替換行符。(30)下述函數(shù)功能是_。Int fun(char*x)char*y=x;while(*y+);retu

21、rn y-x-l;A)求字符串的長度B)求字符串存放的位置C)比較兩個字符串的大小D)將字符串x連接到字符串y后面答案:A評析:在函數(shù)體內(nèi)定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長度。(31)以下程序的輸出結果是_。main() char str12='s','t','r','i','n',' g';printf("dn",strlen(str);A)6B)7C)llD)12答案:A評析:在c語言中,字符串的長度是其首字

22、符到NULL(不含)字符的總字符個數(shù)。本題定義字符數(shù)組str的同時,對第7個元素,由系統(tǒng)自動添加上"0",故字符串的長度為6。(32)請讀程序段:char str="ABCD",*p=str;printf("dn",*(p+4);程序段的輸出結果是_。A)68 B)0C)字符'D'的地址D)不確定的值答案:B評析:在對字符數(shù)組賦字符串值時,系統(tǒng)會自動在字符串的末尾加上一個字符串結束標志"0",故指向字符數(shù)組的指針p的+(p+4)的值為"0"。由于"0"的編碼值

23、就是0,所以本題輸出為0。(33)若有定義:int a410;,則以下選項中對數(shù)組元素aij引用錯誤的是_。(0<=i<4,0<=j<10)A)*(aOO+10*i+j) B)*(a+i)+jC)*(*(a+i)+j) D)*(ai+j)答案:B評析:本題中選項B是錯誤的引用,*(a+i)+j只代表了aii的地址。(34)設有以下語句:char strl="string",str28,。str3,。str4="strin;則_不是對庫函數(shù)的正確調(diào)用。A)strcpy(strl,"HELLOl");B)strcpy(str

24、2,"HELL02");C)strcpy(str3,"HELL03");D)strcpy(str4,"HELL04");答案:C評析:c語言中:sgcpy(stl,st2);,其兩個參數(shù)均為字符指針或字符數(shù)組,選項c中的目的串指針str3沒有指向具體有效的存儲單元,故是錯誤的調(diào)用。(35)請讀程序:#include<stdio.h>#include<string.h>main()char*sl="AbCdEf",*s2="aB";s1+;s2+;printf("

25、dn",strcmp(s 1,s2);上面程序的輸出結果是_。A)正數(shù)B)負數(shù)C)零D)不確定的值答案:A評析:函數(shù)strcmp的功能是比較字符串s1和s2,如果sl>s2,則返回個正數(shù);如果sl<s2,則返回負數(shù),否則返回零。由于本題中小寫字母b的ASCII碼值大于大寫字母B,故sl>s2,所以函數(shù)的值為正數(shù)。(36)下面程序的輸出是_。char s="ABcD";main()char*p;for(p=s;p<s+4;p+)printf("sn",p);A)ABCDB)AC)DD)ABCDBCD BCABCCDCBAB

26、D DAA答案:A評析:在第一次執(zhí)行for循環(huán)時,字符數(shù)組的首地址賦給了指針變量p,使得指針變量p指向了s的首地址,輸出p所指向的字符串;第二次執(zhí)行for循環(huán)時,p值增加1,p指向了s的第二個元素輸出BCD;第三次輸出CD;第四次輸出D;直到p指向字符串的結束字符"0",for循環(huán)終止執(zhí)行。(37)以下程序輸出的結果為_。main()char* alpha6="ABCD",EFGH","IJKL","MNOP","QRST","UVwX";char*p;int i:

27、p=alpha;for(I=0;i<4;i+)printf("s",pI);A)ABCDEFGHIJKLB)ABCDC)ABCDEFGHIJKLMNOPD)AEIM答案:C評析:alphaO指向"ABCD"的首地址;alpha1指向"EFGH"的首地址;alpha2指向"IJKL"的首地址,依此類推。當執(zhí)行p=alpha后,p指向指針數(shù)組alpha的首地址。for循環(huán)中輸出了4個字符串。(38)下面程序的輸出結果是_。#include<stdioh>main()char*p="B00L&

28、quot;,"0PK","H","SP";int i:for(i=3;i>=0;i-,i-)printf("c",*pi);printf("n");A)SOB)SPC)SPOPKD)SHOB答案:A評析:p0存放的是"BOOL0"的首地址;p1存放的是"OPK0"的首址等。在printf語句中輸出的+pI表示pi字符串的第一個字符。在for循環(huán)中,i的初值為3,那么輸出的第一個字符為"s",接著兩次i-,則輸出的值為+p1,即字符

29、"0",所以本題的輸出為SO。(39)以下程序的輸出結果是_。#include<stdioh>void prt(int*x,int*y,int*z) printf("d,d,dn",+*x,+*y*(z+);int a=10,b=40,c=20;main()prt(&a,&b&c);prt(&a,&b,&c);A)ll,42,3lB)ll,41,20C)1l,21,40D)11,41,2l12,22,4112,42,2011,2l,4112,42,22答案:B評析:由于實參傳送的是變量的地址,所

30、以對形參指針所指向的單元內(nèi)容的改變,即對實參內(nèi)容的改變。(40)若一個外部變量的定義形式為static int x;,那么,其中static的作用應該是_。A)將變量存儲在靜態(tài)存儲區(qū)B)使變量x可以由系統(tǒng)自動初始化c)使x只能在本文件內(nèi)引用D)使x的值可以永久保留答案:C評析:事實上,無論有無static修飾,外部變量都具有A、B和c三種特性。作為一種修飾,static僅是限制此類型外部變量的引用范圍:只能在定義它的文件范圍內(nèi)使用。(41)以下程序的輸出結果是_。#include<stdioh>#define SQR(x)x*xmain()int a,k=3;a=+SQR(k+1)

31、;printf("dn",a);A)8B)9C)17D)20答案:B評析:本題宏替換中遇到形參x以實參k+l代替,其它字符不變。sQR(k+1)展開后應為字符串k+l*k+l。(42)下面是對宏定義的描述,不正確的是_。A)宏不存在類型問題,宏名無類型,它的參數(shù)也無類型B)宏替換不占用運行時間C)宏替換時先求出實參表達式的值,然后代入形參運算求值D)宏替換只不過是字符替代而已答案:C評析:宏替換實質(zhì)上就是字符替代,它不可能進行計算,故c錯誤。帶參數(shù)的宏與函數(shù)相比,宏在程序編譯之前已經(jīng)將代碼替換到程序內(nèi),執(zhí)行時不會產(chǎn)生類似于函數(shù)調(diào)用的問題,可以說不占用運行時間。(43)以下程

32、序(程序左邊的數(shù)字為附加的行號)_。1#include<strh>2#include<stdioh>3main()4char s="string";5puts(s);6strcpy(s,"hello");7printf("3sn",s);A)沒有錯B)第l行有錯C)第6行有錯D)第7行有錯答案:B評析:字符串復制函數(shù)strcpy包含在頭文件stringh中,因此,程序中的第l行文件包含命令是錯誤的。(44)若有如下說明,則_的敘述是正確的。struct stint a;int b2l;a;A)結構體變量a與結構

33、體成員a同名,定義是非法的B)程序只在執(zhí)行到該定義時才為結構體st分配存儲單元c)程序運行時為結構體st分配6個字節(jié)存儲單元D)類型名struct st可以通過extern關鍵字提前引用(即引用在前,說明在后)答案:D評析:結構體變量a與結構體成員a同名是合法的定義,引用成員a的方法是aa,變量a處于不同的"層次"上,系統(tǒng)完全能夠分清。st是一個結構體名,不會為結構體名分配存儲空間,應該是在運行時為結構體變量a分配6個字節(jié)的存儲單元,故選項B和選項C錯誤。(45)若有以下結構體定義,則_是正確的引用或定義。struct exampleint x;int y;v1;A)exa

34、mplex=10B)example v2x=10C)struct v2;v2x=lOD)struct example v2=10;答案:D評析:在定義結構體變量時,不能只用結構體名example或關鍵字strum進行定義,必需要用結構體類型名struct example定義,在引用結構體成員變量時,需要用結構體變量名進行引用,所以選D。(46)下列程序的執(zhí)行結果是_。#include<stdioh>union unint i;char c21;void main() union un x;xc0=10:xc1=1:printf("nd",xi);A)266B)l

35、lC)265D)138答案:A評析:由于本題定義的是共用體,所以成員表列中的整型變量x與字符數(shù)組c共占用同一個存儲單元,且此存儲單元為2個字節(jié),通常cO位于低字節(jié),c1位于高字節(jié),所以xi的值為266。(47)已知形成鏈表的存儲結構如下圖所示,則下述類型描述中的空白處應填_。struct linkData next char data;_node;A)struct link nextB)link*nextC)struct next linkD)struct link*next答案:D評析:在單向鏈表中,由于每個結點需要存儲下一個結點的地址,且下一個結點的數(shù)據(jù)類型與前一個結點的數(shù)據(jù)類型完全相同,

36、故應為struct link*next。(48)已知小寫字母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結果是_。main()unsigned int a=32,b=66;printf("cn",atb);A)66B)98C)bD)B答案:C評析:位運算符"l"的作用是按位或,即兩個二進制數(shù)的相應位中只要有一個為1,該位的結果值為l。最后以字符型輸出,98對應的字符"b"。(49)C語言庫函數(shù)龜ets(str,n,fp)的功能是_。A)從fp指向的文件中讀取長度n的字符串存入str指向的內(nèi)存B)從fp指向的文件中

37、讀取長度不超過n-l的字符串存入str指向的內(nèi)存C)從fp指向的文件中讀取n個字符串存Xstr指向的內(nèi)存D)從str讀取至多n個字符到文件fp答案:B評析:fgets函數(shù)的作用是從指定的文件讀入一個字符串。fgets(str,n,fp);中的n為要求得到的字符的個數(shù),但只從fb指向的文件輸入n-1個字符,然后在最后加一個'O'字符,因此得到的字符串共有n個字符。(50)下述程序向文件輸出的結果是_。#include<stdioh>void main()("TEST","wb");fprintf(fp,"d50fcd&

38、quot;,58,762730,'-',2278);fclose(fp);A)58 76273-2278B)5876273。000000-2278c)5876273-2278 D)因文件為二進制文件而不可讀答案:C評析:fprintf函數(shù)工作時,多個數(shù)據(jù)間不會自動加分隔符,選項A錯誤;浮點數(shù)的輸出格式是"50f"表明其小數(shù)部分輸出O位,即沒有輸出,所以選項B也是錯誤的。二、填空題(每空2分,共40分)請將每空的正確答案寫在【l】至【20】序號的橫線上,答在試卷上不得分。(1)對于長度為n的順序存儲的線性表,當隨機插入和刪除一個元素時,需平均移動元素的個數(shù)為【

39、l】。答案:【1】n2評析:刪除一個元素,平均移動的元素個數(shù)為(n-l+n-2+0)n=(n-1)2;插入一個元素,平均移動元素個數(shù)為(n+n-l+n-2+1)n=(n+1)2;所以總體平均移動元素個數(shù)為n2。(2)注釋說明了程序的功能,它分為【2】注釋和功能性注釋。答案:【2】序言性評析:注釋一般分為序言性注釋和功能性注釋。(3)軟件測試中路徑覆蓋測試是整個測試的基礎,它是對軟件【3】進行測試。答案:【3】結構評析:路徑測試是白盒測試方法中的一種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結構進行測試。(4)數(shù)據(jù)庫技術的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【4】和低冗余性、數(shù)據(jù)獨立性和

40、數(shù)據(jù)統(tǒng)一管理與控制。答案:【4】共享性評析:數(shù)據(jù)庫技術的主要特點有以下幾個方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)韻獨立性,數(shù)據(jù)統(tǒng)一管理與控制。(5)數(shù)據(jù)元素之間【5】的整體稱為邏輯結構。答案:【5】邏輯關系評析:數(shù)據(jù)元素之間邏輯關系的整體稱為邏輯結構。數(shù)據(jù)的邏輯結構就是數(shù)據(jù)的組織形式。(6)若有定義int m=5,y=2,則執(zhí)行表達式y(tǒng)+=y-=m*=y后,y的值為【6】。答案:【6】16評析:將賦值運算符右側(cè)的"表達式"的值賦給左側(cè)的變量,并且賦值運算符按照"白右而左"的結合順序,本題表達式應先算m的值為10,再運算y的值為8,最后計算y=

41、y+(-8)=-8+(-8)=-16。(7)若x和y都是double型變量,ix的初值為30,y的初值為20,則表達式pow(y,fabs(x)的值為【7】。答案:【7】8000000評析: fabs函數(shù)功能是求x的絕對值,計算結果為double型。pow功能是計算x的y次方的值,計算結果同樣為double型。所以本題表達式相當于20的30次方,結果為8000000。(8)設有char a,b;,若要通過a&b運算屏蔽掉a中的其它位,只保留第2位和第8位(右起為第1位),則b的二進制是【8】。答案:【8】10000010評析:運算"&"的規(guī)則是只有當兩個相應

42、的二進制位都為1時,該位的結果才為1。要保留第2、8位,只要將其與二進制數(shù)10000010相與。(9)下列程序執(zhí)行后輸出的結果是【9】。f(int a)static c=0;C=a+C+:return(c);main()int a=2,i,k;for(i=O;i<2;i+)k=f(a+);printf("dn",k);答案:【9】7評析:在程序執(zhí)行時,static變量僅初始化一次,下次使用時將使用上次保存的值。(10)下面程序執(zhí)行后輸出的結果是【10】。int m=13:int fun(int x,int y)int m=3;return(x*y-m);main()i

43、nt a=7,b=5;printf("dn",fun(a,b)m);答案:【10】2評析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,ftm(a,b)m中的m應取外部變量的值13,因此輸出2。(11)下列程序執(zhí)行后輸出的結果是【11】。main()nt arr10,i,k=0;for(I=0;i<l0;i+)arrI=i;for(I=1;i<4;i+)k+=arri+i;printf("dn",k);答案:【11】12評析:本題的第一個fur循環(huán)用于給數(shù)組arr賦初值,第二個for循環(huán)用于求和運算。由于第二個fur循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是art1到arr3及i的和,所以輸出結果為12。(12)下列程序執(zhí)行后輸出的結果是 【12】 。struct sint x,y;data2=10,100,20,200;main()struct s*p=data;printf("dn",+(p->x);答案:【12】11評析:程序中結構體數(shù)組data首地址(即&

溫馨提示

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

評論

0/150

提交評論