




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、245/2452012年3月份全國計算機等級考試二級C語言筆試培訓機構復習題-內部資料一、選擇題在下列各題的A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,通常也把這種圖稱為 A)PAD圖B)N-S圖 C)結構圖 D)數(shù)據(jù)流圖(2)結構化程序設計主要強調的是 A)程序的規(guī)模 B)程序的效率 C)程序設計語言的先進性 D)程序易讀性 (3)為了使模塊盡可能獨立,要求 A)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量強 B)模塊的內聚程度要盡量高
2、,且各模塊間的耦合程度要盡量弱 C)模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量弱 D)模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量強 (4)需求分析階段的任務是確定 A)軟件開發(fā)方法 B)軟件開發(fā)工具 C)軟件開發(fā)費用 D)軟件系統(tǒng)功能(5)算法的有窮性是指 A)算法程序的運行時間是有限的 B)算法程序所處理的數(shù)據(jù)量是有限的 C)算法程序的長度是有限的 D)算法只能被有限的用戶使用 (6)對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是 A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序 (7)如果進棧序列為e1,e2,e3,e4,則可能的出棧
3、序列是 A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意順序 (8)將E-R圖轉換到關系模式時,實體與聯(lián)系都可以表示成 A)屬性 B)關系 C)鍵 D)域(9)有三個關系R、S和T如下:RB C D a 0 k1 b 1 n1 SB C D f 3 h2 a 0 k1 n 2 x1 TBCDa0k1由關系R和S通過運算得到關系T,則所使用的運算為 A)并 B)自然連接 C)笛卡爾積 D)交(10)下列有關數(shù)據(jù)庫的描述,正確的是 A)數(shù)據(jù)處理是將信息轉化為數(shù)據(jù)的過程 B)數(shù)據(jù)的物理獨立性是指當數(shù)據(jù)的邏輯結構改變時,數(shù)據(jù)的存儲結構不變 C)關系中的每一
4、列稱為元組,一個元組就是一個字段 D)如果一個關系中的屬性或屬性組并非該關系的關鍵字,但它是另一個關系的關鍵字,則稱其為本關系的外關鍵字 (11)以下敘述中正確的是 A)用C程序實現(xiàn)的算法必須要有輸入和輸出操作 B)用C程序實現(xiàn)的算法可以沒有輸出但必須要有輸入 C)用C程序實現(xiàn)的算法可以沒有輸入但必須要有輸出 D)用C程序實現(xiàn)的算法可以既沒有輸入也沒有輸出 (12)下列可用于C語言用戶標識符的一組是 A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof (13)以下選項中可作為C語言合法常量的是 A
5、)-80 B)-080 C)-8e1.0 D)-80.0e (14)若有語句:char *line5;,以下敘述中正確的是 A) 定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char為指針變量 B) 定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組 C) 定義line是一個指針數(shù)組,語句中的*號稱為間址運算符 D) 定義line是一個指向字符型函數(shù)的指針 (15)以下定義語句中正確的是 A)int a=b=0; B)char A=65+1,b=b; C)float a=1,*b=&a,*c=&b; D)double a=00;b=1.1; (16)有以下程序段 char
6、 ch; int k; ch=a;k=12; printf(%c,%d,ch,ch,k); printf(k=%d n,k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結果是 A)因變量類型與格式描述符的類型不匹配輸出無定值 B)輸出項與格式描述符個數(shù)不符,輸出為零值或不定值 C)a,97,12k=12 D)a,97,k=12 (17)有以下程序 main() int i,s=1; for (i=1;i=2& c=2&c=2& cb)a=b; c=a; if(c!=a)c=b; printf(%d,%d,%dn,a,b,c); 其輸出結果是 A)程序段有語法錯 B)3,5,3 C
7、)3,5,5 D)3,5,7 (20)有以下程序 #include main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0:a+; break; case 1:b+; break; case 2:a+; b+; break; case 3:a+; b+; printf(a=%d,b=%dn,a,b); 程序的運行結果是 A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1 (21)下列程序的輸出結果是 #include stdio.h main() int i,a=0,b=0; for(i=1;i1
8、0;i+) if(i%2=0) a+; continue; b+; printf(a=%d,b=%d,a,b); A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5 (22)已知 #int t=0; while (t=1) . 則以下敘述正確的是 A)循環(huán)控制表達式的值為0 B)循環(huán)控制表達式的值為1 C)循環(huán)控制表達式不合法 D)以上說法都不對 (23)下面程序的輸出結果是 main() int a10=1,2,3,4,5,6,7,8,9,10,*p=a; printf(%dn,*(p+2); A)3 B)4 C)1 D)2 (24)以下錯誤的定義語句是 A)in
9、t x3=0,1,1,2,3; B)int x43=1,2,3,1,2,3,1,2,3,1,2,3; C)int x4=1,2,3,1,2,3,1,2,3,1,2,3; D)int x3=1,2,3,4; (25)有以下程序 void ss(char *s,char t) while(*s) if(*s=t)*s=t-a+A; s+; main() char str1100=abcddfefdbd,c=d; ss(str1,c); printf(%sn,str1); 程序運行后的輸出結果是 A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfef
10、dbd (26)有如下程序 main() char ch25=6937,8254,*p2; int i,j,s=0; for(i=0;i2;i+)pi=chi; for(i=0;i0;j+=2)s=10*s+pij-0; printf(%dn,s); 該程序的輸出結果是 A)69825 B)63825 C)6385 D)693825 (27)有定義語句:char s10;,若要從終端給s輸入5個字符,錯誤的輸入語句是 A)gets(&s0); B)scanf(%s,s+1); C)gets(s); D)scanf(%s,s1); (28)以下敘述中錯誤的是 A)在程序中凡是以#開始的語句行都是
11、預處理命令行 B)預處理命令行的最后不能以分號表示結束 C)#define MAX 是合法的宏定義命令行 D)C程序對預處理命令行的處理是在程序執(zhí)行的過程中進行的 (29)設有以下說明語句 typedef struct int n; char ch8; PER; 則下面敘述中正確的是 A)PER 是結構體變量名 B)PER是結構體類型名 C)typedef struct 是結構體類型 D)struct 是結構體類型名 (30)以下敘述中錯誤的是 A)gets函數(shù)用于從終端讀入字符串 B)getchar函數(shù)用于從磁盤文件讀入字符 C)fputs函數(shù)用于把字符串輸出到文件 D)fwrite函數(shù)用于
12、以二進制形式輸出數(shù)據(jù)到文件 (31)以下能正確定義一維數(shù)組的選項是 A)int a5=0,1,2,3,4,5; B)char a=0,1,2,3,4,5,0; C)char a=A,B,C; D)int a5=0123; (32)有以下程序 #include main() char p=a, b, c,q10= a, b, c; printf(%d%dn,strlen(p),strlen(q); 以下敘述中正確的是 A) 在給p和q數(shù)組置初值時,系統(tǒng)會自動添加字符串結束符,故輸出的長度都為3 B) 由于p數(shù)組中沒有字符串結束符,長度不能確定,但q數(shù)組中字符串長度為3 C) 由于q數(shù)組中沒有字符
13、串結束符,長度不能確定,但p數(shù)組中字符串長度為3 D) 由于p和q數(shù)組中都沒有字符串結束符,故長度都不能確定 (33)有以下程序 #include #include void fun(char *s,int n) char *t; int i,j; for(i=0;in-1;i+) for(j=i+1;jstrlen(sj) t=si;si:sj;sj=t; main() char *ss=bcc,bbcc,xy,aaaacc,aabcc; fun(ss,5); printf(%s,%sn,ss0,ss4); 程序的運行結果是 A)xy,aaaacc B)aaaacc,xy C)bcc,aab
14、cc D)aabcc,bcc (34)有以下程序 #include int f(int x) int y; if(x=0|x=1) return(3); y=x*x-f(x-2); return y; main() int z; z=f(3); printf(%dn,z); 程序的運行結果是 A)0 B)9 C)6 D)8 (35)下面程序段的運行結果是 char str=ABC,*p=str; printf(%dn,*(p+3); A)67 B)0 C)字符C的地址 D)字符C (36)若有以下定義: struct link int data; struct link *next; a,b,
15、c,*p,*q; 且變量a和b之間已有如下圖所示的鏈表結構: 指針p指向變量a,q指向變量c。則能夠把c插入到a和b 之間并形成新的鏈表的語句組是: A)a.next=c; c.next=b; B)p.next=q; q.next=p.next; C)p-next=&c; q-next=p-next; D)(*p).next=q; (*q).next=&b; (37)對于下述程序,在方式串分別采用wt和wb運行時,兩次生成的文件TEST的長度分別是 #include void main() FILE *fp=fopen(TEST,); fputc(A,fp);fputc(n,fp);fputc
16、(B,fp);fputc(n,fp);fputc(C,fp); fclose(fp); A)7字節(jié)、7字節(jié) B)7字節(jié)、5字節(jié) C)5字節(jié)、7字節(jié) D)5字節(jié)、5字節(jié) (38)變量a中的數(shù)據(jù)用二進制表示的形式是01011101,變量b中的數(shù)據(jù)用二進制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執(zhí)行的運算是 A)ab B)a|b C)a&b D)a4(39)下面的程序段運行后,輸出結果是 int i,j,x=0; static int a88; for(i=0;i3;i+) for(j=0;j3;j+) aij=2*i+j; for(i=0;i8;i+) x+=aij;
17、 printf(%d,x); A)9 B)不確定值 C)0 D)18 (40)下列程序執(zhí)行后的輸出結果是 void func(int *a,int b) b0=*a+6; main() int a,b5; a=0; b0=3; func(&a,b); printf(%dn,b0); A)6 B)7 C)8 D)9 二、填空題請將每一個空的正確答案寫在答題卡序號的橫線上,答在試卷上不給分。(1)測試的目的是暴露錯誤,評價程序的可靠性;而 【1】 的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。(2)某二叉樹中度為2的結點有18個,則該二叉樹中有 【2】 個葉子結點。 (3)當循環(huán)隊列非空且隊尾指針等于隊頭指針
18、時,說明循環(huán)隊列已滿,不能進行入隊運算。這種情況稱為 【3】 。(4)在關系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個 【4】 。 (5)在計算機軟件系統(tǒng)的體系結構中,數(shù)據(jù)庫管理系統(tǒng)位于用戶和 【5】 之間。(6)以下程序的輸出結果是 【6】 。 main() char c=z; printf(%c,c-25); (7)閱讀下面語句,則程序的執(zhí)行結果是 【7】 。 #include stdio.h main() int a=-1,b=1,k; if(+a0)&!(b-4) printf(%dn,i); break; printf(%dn,i+);(9)以下程序的定義語句中,x1的初值是
19、 【9】 ,程序運行后輸出的內容是 【10】 。 #include main() int x=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,*p4,i; for(i=0;i4;i+) pi=&x2*i+1; printf(%d,pi0); printf(n);) (10)以下程序的輸出結果是 【11】 。 #include void swap(int *a, int *b) int *t; t=a; a=b; b=t; main() int i=3,j=5,*p=&i,*q=&j; swap(p,q); printf(%d %dN,*p,*q) (11)以下程序
20、的輸出結果是 【12】 。 main() char s=ABCD, *p; for(p=s+1; p=2&c=6)的整型變量c的值是2,3,4,5,6。當變量c的值不為2,4,6時,其值只能為3或5,所以表達式c!=3和c!=5中至少有一個為真,即不論c為何值,選項B中的表達式都為真。(19)B 【解析】 兩個if語句的判斷條件都不滿足,程序只執(zhí)行了c=a這條語句,所以變量c的值等于3,變量b的值沒能變化,程序輸出的結果為3,5,3。所以正確答案為B)。(20)D 【解析】 本題考查switch語句,首先,x=1符合條件case 1,執(zhí)行switch(y)語句,y=0符合case 0語句,執(zhí)行
21、a+并跳出switch(y)語句,此時a=1。因為case 1語句后面沒有break語句,所以向后執(zhí)行case 2語句,執(zhí)行a+,b+,然后跳出switch(x),得a=2,b=1。(21)B 【解析】continue語句的作用是跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)條件的判定。當能被2整除時,a就會增1,之后執(zhí)行continue語句,直接執(zhí)行到for循環(huán)體的結尾,進行i+,判斷循環(huán)條件。(22)B 【解析】t=1是將t賦值為1,所以循環(huán)控制表達式的值為1。判斷t是否等于1時,應用t=1,注意=與=的用法。(23)A 【解析】 在C語言中,數(shù)組元素是從0開始的。指針變量p指向數(shù)
22、組的首地址,(p+2)就會指向數(shù)組中的第3個元素。題目中要求輸出的是元素的值。(24)C 【解析】 本題考查的是二維數(shù)組的定義和初始化方法。C語言中,在定義并初始化二維數(shù)組時,可以省略數(shù)組第一維的長度,但是不能省略第二維的長度。故選項C)錯誤。(25)B 【解析】 在內存中,字符數(shù)據(jù)以ASCII碼存儲,它的存儲形式與整數(shù)的存儲形式類似。C語言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用,也可以對字符型數(shù)據(jù)進行算術運算,此時相當于對它們的ASCII碼進行算術運算,在本題中,s+相當于s=s+1,即讓s指向數(shù)組中的下一個元素。(26)C 【解析】 該題稍微難一點。主要要搞清楚以下幾點:定義了一個指針數(shù)組c
23、har *p2后,程序中第一個循環(huán)for(i=0;i0 是指pij中的字符只要不是字符串結束標志0就繼續(xù)循環(huán),語句j+=2;是使下標j每次增加2,也即一個隔一個地從pi所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p0所指向的字符串6937中一個隔一個地取出字符,分別是6和3,然后從p1所指向的字符串8254中一個隔一個地取出字符,分別是8和5,同時經(jīng)過轉換和相加運算后,結果s中的值應該是6385。(27)D 【解析】 在格式輸入中,要求給出的是變量的地址,而D)答案中給出的s1是一個值的表達式。(28)D 【解析】 C語言中的預處理命令以符號#開頭,這些命令是在程序編譯之前
24、進行處理的,選項D)的描述錯誤。(29)B 【解析】 本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。(30)B 【解析】 getchar函數(shù)的作用是從終端讀入一個字符。(31)B 【解析】 選項A)中,定義的初值個數(shù)大于數(shù)組的長度;選項C)中,數(shù)組名后少了中括號;選項D)中,整型數(shù)組不能賦予字符串。(32)A 【解析】 在給p和q數(shù)組賦初值時,系統(tǒng)會自動添加字符串結束符,從題目中可以看出數(shù)組p和q都有3個字符,所以長度均為3。(33)A 【解析】 函數(shù)fun(char *s,int n)的功能是對字符串數(shù)組的元
25、素按照字符串的長度從小到大排序。在主函數(shù)中執(zhí)行fun(ss,5)語句后,*ss=xy, bcc, bbcc, aabcc, aaaacc,ss0,ss4的輸出結果為xy,aaaacc。(34)C 【解析】 函數(shù)int f(int x)是一個遞歸函數(shù)調用,當x的值等于0或1時,函數(shù)值等于3,其他情況下y=x2-f(x-2),所以在主函數(shù)中執(zhí)行語句z=f(3)時,y=3*3-f(3-2)=9-f(1)=9-3=6。(35)B 【解析】 考查指向字符串的指針變量。在該題中,指針變量p指向的應該是該字符串中的首地址,p+3指向的是字符串結束標志0的地址,因而*(p+3)的值為0。(36)D 【解析】
26、本題考查鏈表的數(shù)據(jù)結構,必須利用指針變量才能實現(xiàn),即一個結點中應包含一個指針變量,用它存放下一結點的地址。(37)B 【解析】 以wt方式寫入的是字符文件,轉義字符n被看作兩個字符來處理。而wb方式寫入的是二進制文件,轉義字符n是一個字符。(38)A 【解析】 本題考查的是位運算的知識,對于任何二進制數(shù),和1進行異或運算會讓其取反,而和0進行異或運算不會產生任何變化。(39)C 【解析】 本題主要考查的是用二維數(shù)組首地址和下標來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個如下的二維數(shù)組:0 1 22 3 44 5 6由于數(shù)組的下標是從0開始的,所以二維數(shù)組元素aij表示的是
27、二維數(shù)組a的第i+1行、第j+1列對應位置的元素。 (40)A 【解析】 函數(shù)的參數(shù)不僅可以是整型、實型、字符型等數(shù)據(jù),還可以是指針型。它的作用是將一個變量的地址傳遞到另一個函數(shù)中。當數(shù)組名作參數(shù)時,如果形參數(shù)組中的各元素的值發(fā)生變化,實參數(shù)組元素的值也將隨之發(fā)生變化。二、選擇題(1)【1】調試 【解析】 軟件測試的目標是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯誤,給出程序可靠性的鑒定;調試也稱排錯,它是一個與測試既有聯(lián)系又有區(qū)別的概念。具體來說,測試的目的是暴露錯誤,評價程序的可靠性,而調試的目的是發(fā)現(xiàn)錯誤的位置,并改正錯誤。(2)【2】19 【解析】 在任意一棵二叉樹中,度為0的結點(
28、即葉子結點)總是比度為2的結點多一個。(3)【3】 上溢 【解析】 入隊運算是指在循環(huán)隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當rear=m+1時,置rear=1;然后將新元素插入隊尾指針指向的位置。當循環(huán)隊列非空(s=1)且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算,這種情況稱為上溢。(4)【4】 關系 【解析】 在關系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個關系。表中的每一列稱為一個屬性,相當于記錄中的一個數(shù)據(jù)項,對屬性的命名稱為屬性名;表中的一行稱為一個元組,相當于記錄值。(5)【5】 操作系統(tǒng)或OS
29、【解析】 數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機構,它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務。位于用戶和操作系統(tǒng)之間。(6)【6】 a 【解析】 z的ASCII碼值為122,經(jīng)過c-25運算后,得97,以字符形式輸出是a。(7)【7】 1,0 【解析】 與運算兩邊的語句必須同時為真時,結果才為真。當執(zhí)行完if(+a0)&!(b-=A& kk=A|kk=a&(kk+32)=Z D)isalpha(kk)&(kk=2& c=2&c=2& c=6)&(c%2!=1)(19)若有條件表達式 (exp)?a+:b-,則以下表達式中能完全等價于表達式(exp)的是 A)(ex
30、p=0) B)(exp!=0) C)(exp=1) D)(exp!=1)(20)以下不正確的定義語句是 A)double x5=2.0,4.0,6.0,8.0,10.0; B)int y5=0,1,3,5,7,9; C)char c1=1,2,3,4,5; D)char c2=x10, xa, x8;(21)下列程序執(zhí)行后的輸出結果是 main() int a33, *p,i; p=&a00; for(i=1; i2!1 (27)有定義語句:char s10;,若要從終端給s輸入5個字符,錯誤的輸入語句是 A)gets(&s0); B)scanf(%s,s+1); C)gets(s); D)s
31、canf(%s,s1);(28)有以下程序 #include #define N 5 #define M N+1 #define f(x) (x*M) main() int i1,i2; i1=f(2); i2=f(1+1); printf(%d %dn,i1,i2); 程序的運行結果是 A)12 12 B)11 7 C)11 11 D)12 7(29)若有以下說明和定義 union dt int a; char b; double c;data; 以下敘述中錯誤的是 A)data的每個成員起始地址都相同 B)變量data所占內存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等 C)程序段:data.a=5;pr
32、intf(%fn,data.c);輸出結果為5.000000 D)data可以作為函數(shù)的實參 (30)有以下程序 #include main() FILE *fp;int k,n,a6=1,2,3,4,5,6; fp=fopen(d2.dat,w); fprintf(fp,%d%d%dn,a0,a1,a2); fprintf(fp,%d%d%dn,a3,a4,a5); fclose(fp); fp=fopen(d2.dat,r); fscanf(fp,%d%d,&k,&n);printf(%d%dn,k,n);fclose(fp); 程序運行后的輸出結果是 A)1 2 B)1 4 C)123
33、4 D)123 456(31)若已定義 int a=0,1,2,3,4,5,6,7,8,9, *p=a,i; 其中 則對a數(shù)組元素不正確的引用是 A)ap-a B)*(&ai) C)pi D)a10(32)有以下程序 #include void fun(int *s,int n1,int n2) int i,j,t; i=n1; j=n2; while(ij) t=si;si=sj;sj=t;i+;j-; main() int a10=1,2,3,4,5,6,7,8,9,0,k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(k=0;kl0;k+)printf
34、(%d,ak); printf(n); 程序的運行結果是 A)0987654321 B)4321098765 C)5678901234 D)0987651234 (33)閱讀下列程序,當運行函數(shù)時,輸入asd af aa z67,則輸出為 #include #include #include int fun (char *str) int i,j=0; for(i=0;stri!= 0;i+) if(stri!= )strj+=stri; strj= 0; main() char str81; int n; printf(Input a string : ); gets(str); puts(
35、str); fun(str); printf(%sn,str); A)asdafaaz67 B)asd af aa z67 C)asd D)z67(34)有以下程序 int fun(int n) if(n=1)return 1; else return(n+fun(n-1); main() int x; scanf(%d,&x); x=fun(x);printf(%dn,x) 執(zhí)行程序時,給變量x輸入10,程序的輸出結果是 A)55 B)54 C)65 D)45(35)下面程序段中,輸出*的個數(shù)是 char *s=ta018bc; for(;*s!=0;s+)printf(*); A)9 B)
36、5 C)6 D)7 (36)C語言結構體類型變量在程序運行期間 A)TC環(huán)境在內存中僅僅開辟一個存放結構體變量地址的單元 B)所有的成員一直駐留在內存中 C)只有最開始的成員駐留在內存中 D)部分成員駐留在內存中(37)已知函數(shù)的調用形式為fread(buf,size,count,fp),參數(shù)buf的含義是 A)一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù) B)一個文件指針,指向要讀的文件 C)一個指針,指向要讀入數(shù)據(jù)的存放地址 D)一個存儲區(qū),存放要讀的數(shù)據(jù)項(38)設有以下語句 char x=3,y=6,z; z=xy2; 則z的二進制值是 A)00010100 B)00011011 C)0001
37、1100 D)00011000(39)在C語言中,只有在使用時才占用內存單元的變量,其存儲類型是 A)auto和register B)extern和register C)auto和static D)static和register(40)設有定義語句int (*f)(int);,則以下敘述正確的是 A)f是基類型為int的指針變量 B)f是指向函數(shù)的指針變量,該函數(shù)具有一個int類型的形參 C)f是指向int類型一維數(shù)組的指針變量 D)f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址二、填空題請將每一個空的正確答案寫在答題卡序號的橫線上,答在試卷上不給分。(1)測試用例包括輸入值集和 【1】
38、 值集。(2)在樹形結構中,樹根結點沒有 【2】 。(3)數(shù)據(jù)結構分為邏輯結構與存儲結構,線性鏈表屬于 【3】 。(4)一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體項目主管與實體項目的聯(lián)系屬于 【4】 的聯(lián)系。(5)數(shù)據(jù)庫設計分為以下6個設計階段:需求分析階段、 【5】 、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。(6)閱讀下面程序段,則執(zhí)行后輸出的結果是 【6】 。 #include stdio.h main() char fun(char,int); char a=A; int b=13; a=fun(a,b); putchar(a); char fun(cha
39、r a,int b) char k; k=a+b; return k;(7)函數(shù)fun的返回值是 【7】 fun(char *a,char *b) int num=0,n=0; while(*(a+num)!=0)mm+; while(bn)*(a+num)=bn;num+;n+; return num; (8)以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。 例如,若一維數(shù)組中的數(shù)據(jù)是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 刪除后,數(shù)組中的內容應該是: 2 3 4 5
40、6 7 8 9 10。 請?zhí)羁铡?#include #define N 80 int fun(int a, int n) int i,j=1; for(i=1;in;i+) if(aj-1 【8】 ai) aj+=ai; 【9】 ; main() int aN= 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10, i, n=19; printf(The original data : n); for(i=0; in; i+)printf(%3d,ai); n=fun(a,n); printf(nThe data after deleted: n); for(i=
41、0; in; i+)printf(%3d,ai); printf(nn); (9)以下程序的運行結果是 【10】 。 #include main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0:a+; break; case 1: b+; break; case 2:a+; b+; break; case 3:a+; b+; printf(a=%d,b=%dn,a,b); (10)以下程序的輸出結果是 【11】 。 fun (int x,int y,int z) z =x*x+y*y; main () int a=31; fu
42、n (6,3,a) printf (%d, a) (11)函數(shù)my_cmp( )的功能是比較字符串s和t的大小,當s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即st時返回正值,st時返回負值。請?zhí)羁?。My_cmp(char*s,char*t) while (*s = *t) if (*s = 0)return0; +s; +t; return 【12】 ; (12)以下程序的輸出結果是 【13】 。 void reverse(int a,int n) int i,t; for(i=0;in/2;i+) t=ai; ai=an-1-i;an-1-i=t; main() i
43、nt b10=1,2,3,4,5,6,7,8,9,10; int i,s=0; reverse(b,8); for(i=6;i10;i+)s+=bi; printf( %dn,s); (13)以下說明語句中, 【14】 是結構體類型名。 typedef struct int n; char ch8; PER;(14)以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?#include main() FILE *fp; char ch; fp=fopen( 【15】 ); ch=fgetc(fp); while(!feof(fp) putchar(ch);
44、 ch=fgetc(fp); putchar(n);fclose(fp);一、選擇題(1)C 【解析】 程序流程圖是人們對解決問題的方法、思路或算法的一種圖形方式的描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內容;流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流;帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項中,在圖元之間用帶有箭頭的線段表示圖元關系。在模塊之間用帶有箭頭的線段表示調用關系。(2)C 【解析】 軟件設計遵循軟件工程的基本目標和原則,建立了適用于在軟件設計中應該遵循的基本原理和與軟件設計有關的概念,它們具有抽象、模塊化、信息隱蔽和數(shù)據(jù)獨立性
45、。自底向上是集成測試中增量測試的一種。(3)C 【解析】 模塊之間的耦合程度反映了模塊的獨立性,也反映了系統(tǒng)分解后的復雜程度。按照耦合程度從強到弱分別是:內容耦合、公共耦合、外部耦合、控制耦合、標記耦合、數(shù)據(jù)耦合和非直接耦合,沒有異構耦合這種方式。(4)D 【解析】 軟件需求規(guī)格說明書(SRS,Software Requirement Specification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它具有以下幾個方面的作用: 便于用戶、開發(fā)人員進行理解和交流; 反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù); 作為確認測試和驗收的依據(jù)。(5)C 【解析】 算法的復雜度
46、主要包括算法的時間復雜度和空間復雜度。所謂算法的時間復雜度是指執(zhí)行算法所需要的計算工作量,即算法執(zhí)行過程中所需要的基本運算的次數(shù);算法的空間復雜度一般是指執(zhí)行這個算法所需要的內存空間。(6)B 【解析】 堆排序的比較次數(shù)為nlog2n;直接插入排序的比較次數(shù)為n(n-1)/2;快速排序的比較次數(shù)為nlog2n。當數(shù)據(jù)表A中每個元素(7)B 【解析】 棧操作原則上后進先出,棧底至棧頂依次存放元素A、B、C、D,則表明這4個元素中D是最后進棧,B、C處于中間,A最早進棧,所以出棧時一定是先出D,再出C,最后出A。(8)A 【解析】 數(shù)據(jù)庫設計包括數(shù)據(jù)庫概念設計和數(shù)據(jù)庫邏輯設計兩個方面的內容。(9)
47、A 【解析】 關系表中,每一行稱為一個元組,對應表中的一條記錄;每一列稱為一個屬性,對應表中的一個字段;在二維表中凡能唯一標識元組的最小屬性集稱為該表的鍵或碼。(10)C 【解析】 選課SC 表是 學生S 表和 課程C 表的映射表,主鍵是兩個表主鍵的組合。(11)D 【解析】 在C語言所有的運算符中,逗號運算符的優(yōu)先級最低。C語言中區(qū)分大小寫,所以APH和aph是兩個不同的變量。賦值表達式a=b表示將b的值付給a,而b本身的值保持不變;通過鍵盤可以向計算機輸入允許的任何類型的數(shù)據(jù)。選項D)中當從鍵盤輸入數(shù)據(jù)時,對于整型變量可以輸入整型數(shù)值和字符,對于實型變量可以輸入實型數(shù)值和整型數(shù)值等。(12
48、)B 【解析】 C語言規(guī)定用戶標識符由字母、數(shù)字和下劃線組成,且第一個字符必須是字母或下劃線,可見選項C),D)是錯誤的;此外,C語言不允許用戶將關鍵字作為標識符,而選項A)中的void正是C語言的關鍵字。(13)B 【解析】 C語言的語法規(guī)定,字母e(E)之前必須有數(shù)字,且e(E)后面的指數(shù)必須是整數(shù),而選項B)中,e(E)后面的指數(shù)是小數(shù),所以不合法。(14)A 【解析】 在C語言中,%運算符兩側的運算數(shù)必須是整型。(15)A 【解析】 賦值運算符左側的操作數(shù)必須是一個變量,而不能是表達式或者常量,選項C)和D)錯誤。%運算符兩側都應當是整型數(shù)據(jù),選項B)錯誤。(16)D 【解析】 輸出格
49、式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數(shù)輸出,所以第一個輸出語句輸出的結果為a,97;第二個輸出語句輸出的結果為k=12。(17)B 【解析】 C語言的字符以其ASCII碼的形式存在,所以要確定某個字符是大寫字母,只要確定它的ASCII碼在A和Z之間就可以了,選項A)和C)符合要求。函數(shù)isalpha用來確定一個字符是否為字母,大寫字母的ASCII碼值的范圍為65到90,所以如果一個字母的ASCII碼小于91,那么就能確定它是大寫字母。(18)B 【解析】 滿足表達式(c=2&c=6)的整型變量c的值是2,3,4,5,6。當變量c的值不為2,4
50、,6時,其值只能為3或5,所以表達式c!=3和c!=5中至少有一個為真,即不論c為何值,表達式B)都為真。(19)B 【解析】 條件運算符要求有3個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式1?表達式2:表達式3其求解順序是:先求解表達式1,若為非0(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值。若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值,注意+、-的用法。(20)B 【解析】 在一維數(shù)組中要注意的是作為下標表達式的常量表達式的值必須是大于等于0,選項B)中定義有5個元素,但賦值時有6個元素,
51、所以是錯誤的。(21)B 【解析】 本題中,a12是二維數(shù)組中的第6個元素,對應for循環(huán)中i的值為5,p5=5+1。(22)B 【解析】 本題中,!表示邏輯非運算符,!=表示不等于運算符,邏輯非運算符比不等于運算符的優(yōu)先級高。(23)C 【解析】 對于字符串指針,其保留的是整個串的首地址,即第一個字符的起始地址;當該指針做算術運算時,就是該指針根據(jù)其類型向后移動相應的存儲空間。 (24)A 【解析】 數(shù)組c4表示一個4行4列數(shù)組,c22表示第3行第3列上的元素62,*(*(c+1)+1)表示第2行第2列上的元素6,通過十六進制輸出為3e,6。(25)C 【解析】 選項A)char *a;*a
52、=china應改為a=china;,選項B)應該是char str6;D)項表述方法有錯誤。(26)D 【解析】 C語言中數(shù)組下標是從0開始的,所以二維數(shù)組a23的第一維下標取值為0、1;第二維的下標取值為0、1、2,因而選項A)、B)、C)都是錯誤的,選項D)表示數(shù)組元素a00。(27)D 【解析】 在格式輸入中,要求給出的是變易的地址,而D)答案中給出的s1是一個值的表達式。 (28)B 【解析】 根據(jù)宏替換的替換規(guī)則,我們可知,f(2)=2*N+1=2*5+1=11,f(1+1)=1+1*N+1=1+1*5+1=7。(29)D 【解析】 選項A),共用體的每個成員的起始地址都相同;選項B
53、),共用體變量所占的內存長度等于最長的成員的長度;選項C)因為每個成員的起始地址相同,所以整型數(shù)5以浮點型輸出時為5.000000;選項D)C語言規(guī)定,不能把共用體變量作為函數(shù)的參數(shù)。(30)D 【解析】 將有6個元素的整型數(shù)組分兩行輸出到一個文件中,因為輸出的都是數(shù)字并且每行都沒有分隔符,所以當再對其進行讀取操作時,每一行都會被認為是一個完整的數(shù),而換行符則作為它們的分隔符。(31)D 【解析】 通常,引用一個數(shù)組元素可以用下標法,如ap-a形式,或指針法,如*(&ai)的形式。本題中a9=9,a10顯然超出數(shù)組范圍,注意,數(shù)組的下標是從0開始的。(32)C 【解析】 函數(shù)fun(int *
54、s,int n1,int n2)的功能是對數(shù)組s中的元素進行首尾互相調換。所以在主函數(shù)中,當fun(a,0,3)執(zhí)行完后,數(shù)組a12=4,3,2,1,5,6,7,8,9,0;再執(zhí)行fun(a,4,9),數(shù)組a12=4,3,2,1,0,9,8,7,6,5;再執(zhí)行fun(a,0,9)后,數(shù)組a12=5,6,7,8,9,0,1,2,3,4。(33)A 【解析】 本題題意要求刪除所有空格,即除了空格以外的其他所有字符都要留下。由于C語言中沒有直接刪除字符的操作,所以我們對于刪除字符的操作都是采用留下字符的算法,以前的題目亦是如此。用stri從串頭到串尾逐一走動,每走到一個字符都判斷其是否為空格,若不是
55、空格(注意在if()的單引號之間有一個空格),則將其保存strj中。注意j的下標變化、初值及最后加串結束符0。(34)A 【解析】 本程序考察的是函數(shù)的遞歸調用,在調用一個函數(shù)的過程中又出現(xiàn)直接或間接地調用該函數(shù)本身,稱為函數(shù)的遞歸調用,執(zhí)行結果為1+2+3+4+5+6+7+8+9+10=55。(35)C 【解析】 本題中,格式符0表示的是八進制無符號形式輸出整型數(shù)(不帶前導0),字符常量在內存中占一個字節(jié),存放的是ACSII碼代碼值。C語言規(guī)定,所有字符常量都作為整型量來處理,在計算機內部,其對應的整數(shù)值就是ACSII字符集中該字符的序號,即&*s中有幾個字符就輸出幾個*。(36)B 【解析
56、】 結構體類型的變量在程序運行期間要作為一個整體占用連續(xù)的內存單元。(37)C 【解析】 這是一道考查fread函數(shù)的題。buf是一個指針,fread是讀入數(shù)據(jù)的存放地址;fwrite是輸出數(shù)據(jù)的地址(以上指的是起始地址)。(38)B 【解析】 本題考查兩個位運算符。 按位異或運算符是雙目運算符,其功能是參與運算的兩數(shù)各對應的二進位相異或,當兩對應的二進位相異或時,結果為1。左移運算符是雙目運算符,其功能把 左邊的運算數(shù)的各二進位全部左移若干位,由右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0,并且 t時,返回正值,當s t時,返回負值。(12)【13】 22 【解析】 在main函數(shù)中,調用re
57、verse函數(shù)將b數(shù)組中的前8個成員進行互置,執(zhí)行完畢后,b數(shù)組中的成員為8,7,6,5,4,3,2,1,9,10,然后再執(zhí)行for循環(huán)結構,將b6,b7.b9的值相加,結果為22。(13)【14】 PER 【解析】 本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。(14)【15】 “filea.dat”,“r” 【解析】 fopen函數(shù)的調用方式通常為 fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內容,所以空白處應當填入 filea.dat,r。一、選擇
58、題在下列各題的A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)軟件是指 A)程序 B)程序和文檔 C)算法加數(shù)據(jù)結構 D)程序、數(shù)據(jù)與相關文檔的完整集合(2)檢查軟件產品是否符合需求定義的過程稱為 A)確認測試 B)集成測試 C)驗證測試 D)驗收測試(3)以下不屬于對象的基本特點的是 A)分類性 B)多態(tài)性 C)繼承性 D)封裝性(4)在設計程序時,應采納的原則之一是 A)不限制goto語句的使用 B)減少或取消注解行 C)程序越短越好 D)程序結構應有助于讀者理解(5)下列敘述中正確的是 A)程序執(zhí)行的效率與數(shù)據(jù)的存儲結
59、構密切相關 B)程序執(zhí)行的效率只取決于程序的控制結構 C)程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量 D)以上三種說法都不對 (6)數(shù)據(jù)結構中,與所使用的計算機無關的是數(shù)據(jù)的 A)存儲結構 B)物理結構 C)邏輯結構 D)物理和存儲結構(7)線性表的順序存儲結構和線性表的鏈式存儲結構分別是 A)順序存取的存儲結構、順序存取的存儲結構 B)隨機存取的存儲結構、順序存取的存儲結構 C)隨機存取的存儲結構、隨機存取的存儲結構 D)任意存取的存儲結構、任意存取的存儲結構(8)樹是結點的集合,它的根結點數(shù)目是 A)有且只有1 B)1或多于1 C)0或1 D)至少2(9)下列有關數(shù)據(jù)庫的描述,正確的是 A)數(shù)據(jù)
60、庫是一個DBF文件 B)數(shù)據(jù)庫是一個關系 C)數(shù)據(jù)庫是一個結構化的數(shù)據(jù)集合 D)數(shù)據(jù)庫是一組文件(10)數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間的關系是 A)數(shù)據(jù)庫包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng) B)數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng) C)數(shù)據(jù)庫管理系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng) D)三者沒有明顯的包含關系(11)以下4個選項中,不能看作一條語句的是 A); B)a=5,b=2.5,c=3.6; C)if(a5); D)if(b!=5)x=2;y=6;(12)下面四個選項中,均是不合法的用戶標識符的選項是 A)A P_0 do B)float la0_A C)b-a goto int D)_123
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國多功能電動護理床市場供需預測及投資戰(zhàn)略研究咨詢報告
- 適配器市場分析報告
- 中國非快充客車行業(yè)市場全景評估及投資前景展望報告
- 間隙可調式輥篩行業(yè)市場發(fā)展及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年棉布棉線花邊行業(yè)深度研究分析報告
- 《火力發(fā)電廠可行性研究報告內容深度規(guī)定》(報批稿)(含條文說明)
- 股份投資建房合同范本
- 2024年認證機構行業(yè)市場發(fā)展現(xiàn)狀及投資方向研究報告
- 中國一次性防護服行業(yè)市場全景評估及投資前景展望報告
- 新設備專項辨識評估報告
- 可愛的四川精編版課件
- 蘇教版二年級數(shù)學下冊第一單元第一課時
- 二年級下冊科學考點歸納
- 債權法總論課件
- 醫(yī)院先進科室、先進個人評選辦法
- 新部編版四年級下冊道德與法治全冊優(yōu)秀教學課件(1-12課)
- 港口危險貨物安全管理人員機考試題庫(含答案)
- 門診醫(yī)師出診申請表(2022版)
- 材料進場檢驗項目清單
- 開學第一課學生心理調適家長會PPT
- 口腔科四手操作[]通用課件
評論
0/150
提交評論