2012年3月份全國計算機等級考試二級C語言筆試題庫50套_第1頁
2012年3月份全國計算機等級考試二級C語言筆試題庫50套_第2頁
2012年3月份全國計算機等級考試二級C語言筆試題庫50套_第3頁
2012年3月份全國計算機等級考試二級C語言筆試題庫50套_第4頁
2012年3月份全國計算機等級考試二級C語言筆試題庫50套_第5頁
已閱讀5頁,還剩70頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、2012年3月份全國計算機等級考試二級C語言筆試題庫50套一、選擇題在下列各題的A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替傳統的程序流程圖,通常也把這種圖稱為 A)PAD圖 B)N-S圖 C)結構圖 D)數據流圖(2)結構化程序設計主要強調的是 A)程序的規模 B)程序的效率 C)程序設計語言的先進性 D)程序易讀性 (3)為了使模塊盡可能獨立,要求 A)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量強 B)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡

2、量弱 C)模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量弱 D)模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量強 (4)需求分析階段的任務是確定 A)軟件開發方法 B)軟件開發工具 C)軟件開發費用 D)軟件系統功能(5)算法的有窮性是指 A)算法程序的運行時間是有限的 B)算法程序所處理的數據量是有限的 C)算法程序的長度是有限的 D)算法只能被有限的用戶使用 (6)對長度為n的線性表排序,在最壞情況下,比較次數不是n(n-1)/2的排序方法是 A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序 (7)如果進棧序列為e1,e2,e3,e4,則可能的出棧序列是 A)e3,e1,e

3、4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意順序 (8)將E-R圖轉換到關系模式時,實體與聯系都可以表示成 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)下列有關數據庫的描述,正確的是 A)數據處理是將信息轉化為數據的過程 B)數據的物理獨立性是指當數據的邏輯結構改變時,數據的存儲結構不變 C)關系中的每一列稱為元組,一個元組就是一

4、個字段 D)如果一個關系中的屬性或屬性組并非該關系的關鍵字,但它是另一個關系的關鍵字,則稱其為本關系的外關鍵字 (11)以下敘述中正確的是 A)用C程序實現的算法必須要有輸入和輸出操作 B)用C程序實現的算法可以沒有輸出但必須要有輸入 C)用C程序實現的算法可以沒有輸入但必須要有輸出 D)用C程序實現的算法可以既沒有輸入也沒有輸出 (12)下列可用于C語言用戶標識符的一組是 A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof (13)以下選項中可作為C語言合法常量的是 A)-80 B)-080 C

5、)-8e1.0 D)-80.0e (14)若有語句:char *line5;,以下敘述中正確的是 A) 定義line是一個數組,每個數組元素是一個基類型為char為指針變量 B) 定義line是一個指針變量,該變量可以指向一個長度為5的字符型數組 C) 定義line是一個指針數組,語句中的*號稱為間址運算符 D) 定義line是一個指向字符型函數的指針 (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 ch;

6、int k; ch=a;k=12; printf("%c,%d,",ch,ch,k); printf("k=%d n",k);已知字符a的ASCII碼值為97,則執行上述程序段后輸出結果是 A)因變量類型與格式描述符的類型不匹配輸出無定值 B)輸出項與格式描述符個數不符,輸出為零值或不定值 C)a,97,12k=12 D)a,97,k=12 (17)有以下程序 main() int i,s=1; for (i=1;i<50;i+) if(!(i%5)&&!(i%3) s+=i; printf("%dn",s);

7、程序的輸出結果是 A)409 B)277 C)1 D)91 (18)當變量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&& c<=6)&&(c%2!=1) (19)若變量已正確定義,有以下程序段 int a=3,b=5,c=7; if(a>b)a=b; c=a; if(c!=a)c=b; pr

8、intf("%d,%d,%dn",a,b,c); 其輸出結果是 A)程序段有語法錯 B)3,5,3 C)3,5,5 D)3,5,7 (20)有以下程序 #include <stdio.h> 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

9、,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;i<10;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)循環控制表達式的值為0 B)循環控制表達式的值為1 C)循環控制表達式不合法 D)以上

10、說法都不對 (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)int 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+; ma

11、in() char str1100="abcddfefdbd",c=d; ss(str1,c); printf("%sn",str1); 程序運行后的輸出結果是 A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd (26)有如下程序 main() char ch25="6937","8254",*p2; int i,j,s=0; for(i=0;i<2;i+)pi=chi; for(i=0;i<2;i+) for(j=0;pij>0;j+

12、=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)在程序中凡是以"#"開始的語句行都是預處理命令行 B)預處理命令行的最后不能以分號表示結束 C)#define MAX

13、是合法的宏定義命令行 D)C程序對預處理命令行的處理是在程序執行的過程中進行的 (29)設有以下說明語句 typedef struct int n; char ch8; PER; 則下面敘述中正確的是 A)PER 是結構體變量名 B)PER是結構體類型名 C)typedef struct 是結構體類型 D)struct 是結構體類型名 (30)以下敘述中錯誤的是 A)gets函數用于從終端讀入字符串 B)getchar函數用于從磁盤文件讀入字符 C)fputs函數用于把字符串輸出到文件 D)fwrite函數用于以二進制形式輸出數據到文件 (31)以下能正確定義一維數組的選項是 A)int a5

14、=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<string.h> main() char p=a, b, c,q10= a, b, c; printf("%d%dn",strlen(p),strlen(q); 以下敘述中正確的是 A) 在給p和q數組置初值時,系統會自動添加字符串結束符,故輸出的長度都為3 B) 由于p數組中沒有字符串結束符,長度不能確定,但q數組中字符串長度為3 C) 由于q數組中沒有字符串結束

15、符,長度不能確定,但p數組中字符串長度為3 D) 由于p和q數組中都沒有字符串結束符,故長度都不能確定 (33)有以下程序 #include <stdio.h> #include <string.h> void fun(char *s,int n) char *t; int i,j; for(i=0;i<n-1;i+) for(j=i+1;j<n;j+) if(strlen(si)>strlen(sj) t=si;si:sj;sj=t; main() char *ss="bcc","bbcc","xy&

16、quot;,"aaaacc","aabcc" fun(ss,5); printf("%s,%sn",ss0,ss4); 程序的運行結果是 A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc (34)有以下程序 #include <stdio.h> 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); 程序

17、的運行結果是 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,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=

18、p.next; C)p->next=&c; q->next=p->next; D)(*p).next=q; (*q).next=&b; (37)對于下述程序,在方式串分別采用"wt"和"wb"運行時,兩次生成的文件TEST的長度分別是 #include<stdio.h> void main() FILE *fp=fopen("TEST",); fputc(A,fp);fputc(n,fp);fputc(B,fp);fputc(n,fp);fputc(C,fp); fclose(fp); A

19、)7字節、7字節 B)7字節、5字節 C)5字節、7字節 D)5字節、5字節 (38)變量a中的數據用二進制表示的形式是01011101,變量b中的數據用二進制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執行的運算是 A)ab B)a|b C)a&b D)a<<4(39)下面的程序段運行后,輸出結果是 int i,j,x=0; static int a88; for(i=0;i<3;i+) for(j=0;j<3;j+) aij=2*i+j; for(i=0;i<8;i+) x+=aij; printf("%d"

20、;,x); A)9 B)不確定值 C)0 D)18 (40)下列程序執行后的輸出結果是 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】 的目的是發現錯誤的位置并改正錯誤。(2)某二叉樹中度為2的結點有18個,則該二叉樹中有 【2】 個葉子結點。 (3)當循環隊列非空且隊尾指

21、針等于隊頭指針時,說明循環隊列已滿,不能進行入隊運算。這種情況稱為 【3】 。(4)在關系模型中,把數據看成一個二維表,每一個二維表稱為一個 【4】 。 (5)在計算機軟件系統的體系結構中,數據庫管理系統位于用戶和 【5】 之間。(6)以下程序的輸出結果是 【6】 。 main() char c=z; printf("%c",c-25); (7)閱讀下面語句,則程序的執行結果是 【7】 。 #include "stdio.h" main() int a=-1,b=1,k; if(+a<0)&&!(b-<=0) printf(&

22、quot;%d,%d",a,b); else printf("%d,%dn",b,a); (8)下列程序的輸出結果是 【8】 。 main() int i; for(i=1;i+1;i+) if(i>4) printf("%dn",i); break; printf("%dn",i+);(9)以下程序的定義語句中,x1的初值是 【9】 ,程序運行后輸出的內容是 【10】 。 #include <stdio.h> main() int x=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

23、,16,*p4,i; for(i=0;i<4;i+) pi=&x2*i+1; printf("%d",pi0); printf("n");) (10)以下程序的輸出結果是 【11】 。 #include <stdio.h> 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)以下程序的輸出結果是 【12】 。 main()

24、 char s="ABCD", *p; for(p=s+1; p<s+4; p+)printf ("%sn",p);(12)以下程序的輸出結果是 【13】 。 float fun(int x,int y) return(x+y); main() int a=2,b=5,c=8; printf("%3.0fn",fun(int)fun(a+c,b),a-c); (13)有如下圖所示的雙鏈表結構,請根據圖示完成結構體的定義: lhead data rchild struct aa int data; 【14】 node;(14)fs

25、eek函數的正確調用形式是 【15】 。一、選擇題(1)B 【解析】 N-S圖是由Nassi 和 Shneiderman 提出的一種符合程序化結構設計原則的圖形描述工具。它的提出是為了避免流程圖在描述程序邏輯時的隨意性上靈活性。(2)D【解析】 結構化程序設計方法的主要原則可以概括為自頂向下、逐步求精、模塊化及限制使用goto語句,總的來說可使程序結構良好、易讀、易理解、易維護。(3)B【解析】 模塊的獨立程度可以由兩個定性標準度量:耦合性和內聚性。耦合性是衡量不同模塊彼此間互相依賴(連接)的緊密程度;內聚性是衡量一個模塊內部各個元素彼此結合的緊密程度。一般來說,要求模塊之間的耦合盡可能地低,

26、而內聚性盡可能地高。(4)D 【解析】 需求分析是軟件定義時期的最后一個階段,它的基本任務就是詳細調查現實世界要處理的對象(組織、部門、企業等),充分了解原系統的工作概況,明確用戶的各種需求,然后在此基礎上確定新系統的功能。選項A)軟件開發方法是在總體設計階段需完成的任務;選項B)軟件開發工具是在實現階段需完成的任務;選項C)軟件開發費用是在可行性研究階段需完成的任務。(5)A【解析】 算法具有5個特性: 有窮性:一個算法必須(對任何合法的輸入值)在執行有窮步之后結束,且每一步都可在有限時間內完成,即運行時間是有限的; 確定性:算法中每一條指令必須有確切的含義,讀者理解時不會產生歧義; 可行性

27、:一個算法是可行的,即算法中描述的操作都是可以通過已經實現的基本運算執行有限次來實現; 輸入:一個算法有零個或多個輸入,這些輸入取自于某個特定的對象的集合; 輸出:一個算法有一個或多個輸出。(6)D【解析】 在最壞情況下,快速排序、冒泡排序和直接插入排序需要的比較次數都為n(n-1)/2,堆排序需要的比較次數為nlog2n。(7)B 【解析】 由棧"后進先出"的特點可知:A)中e1不可能比e2先出,C)中e1不可能比e2先出,D)中棧是先進后出的,所以不可能是任意順序。B)中出棧過程如下圖所示:(8)B【解析】 關系數據庫邏輯設計的主要工作是將E-R圖轉換成指定RDBMS中

28、的關系模式。首先,從E-R圖到關系模式的轉換是比較直接的,實體與聯系都可以表示成關系,E-R圖中屬性也可以轉換成關系的屬性,實體集也可以轉換成關系。(9)D【解析】 在關系運算中,交的定義如下:設R1和R2為參加運算的兩個關系,它們具有相同的度n,且相對應的屬性值取自同一個域,則R1 R2為交運算,結果仍為度等于n的關系,其中,交運算的結果既屬于R1,又屬于R2。(10)D【解析】 數據處理是指將數據轉換成信息的過程,故選項A)敘述錯誤;數據的物理獨立性是指數據的物理結構的改變,不會影響數據庫的邏輯結構,故選項B)敘述錯誤;關系中的行稱為元組,對應存儲文件中的記錄,關系中的列稱為屬性,對應存儲

29、文件中的字段,故選項C)敘述錯誤。(11)C【解析】 算法具有的5個特性是:有窮性;確定性;可行性;有0個或多個輸入;有一個或多個輸出。所以說,用C程序實現的算法可以沒有輸入但必須要有輸出。(12)B【解析】 C語言規定標識符只能由字母、數字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,排除選項C)和D);C語言中還規定標識符不能為C語言的關鍵字,而選項A)中void為關鍵字,故排除選項A)。(13)A【解析】 選項B)項中,以0開頭表示是一個八進制數,而八進制數的取值范圍是07,所以-080是不合法的;選項C)和D)中,e后面的指數必須是整數,所以也不合法。(14)A【解析】 C語言

30、中 比*優先級高,因此line先與5結合,形成line5形式,這是數組形式,它有5個元素,然后再與line前面的"*"結合,表示此數組是一個指針數組,每個數組元素都是一個基類型為char的指針變量。(15)B【解析】 本題考查變量的定義方法。如果要一次進行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和D)錯誤。在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數據,不能指向指針變量b,故選項C)錯誤。(16)D【解析】 輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數輸出,所以第一個輸出語句輸出的結果為a,9

31、7;第二個輸出語句輸出的結果為k=12。(17)D【解析】 本題是計算50之內的自然數相加之和,題中if語句括號中的條件表達式!(i%5)&&!(i%3)表明只有能同時被5和3整除的數才符合相加的條件,1 49之間滿足這個條件的只有,15、30和45,因為s的初始值為1,所以s=1+15+30+45=91。(18)B【解析】 滿足表達式(c>=2&&c<=6)的整型變量c的值是2,3,4,5,6。當變量c的值不為2,4,6時,其值只能為3或5,所以表達式c!=3和c!=5中至少有一個為真,即不論c為何值,選項B中的表達式都為"真"

32、。(19)B【解析】 兩個if語句的判斷條件都不滿足,程序只執行了c=a這條語句,所以變量c的值等于3,變量b的值沒能變化,程序輸出的結果為3,5,3。所以正確答案為B)。(20)D【解析】 本題考查switch語句,首先,x=1符合條件case 1,執行switch(y)語句,y=0符合case 0語句,執行a+并跳出switch(y)語句,此時a=1。因為case 1語句后面沒有break語句,所以向后執行case 2語句,執行a+,b+,然后跳出switch(x),得a=2,b=1。(21)B【解析】continue語句的作用是跳過本次循環體中余下尚未執行的語句,接著再一次進行循環條件的

33、判定。當能被2整除時,a就會增1,之后執行continue語句,直接執行到for循環體的結尾,進行i+,判斷循環條件。(22)B【解析】t=1是將t賦值為1,所以循環控制表達式的值為1。判斷t是否等于1時,應用t=1,注意"="與"="的用法。(23)A【解析】 在C語言中,數組元素是從0開始的。指針變量p指向數組的首地址,(p+2)就會指向數組中的第3個元素。題目中要求輸出的是元素的值。(24)C【解析】 本題考查的是二維數組的定義和初始化方法。C語言中,在定義并初始化二維數組時,可以省略數組第一維的長度,但是不能省略第二維的長度。故選項C)錯誤。(2

34、5)B【解析】 在內存中,字符數據以ASCII碼存儲,它的存儲形式與整數的存儲形式類似。C語言中,字符型數據和整型數據之間可以通用,也可以對字符型數據進行算術運算,此時相當于對它們的ASCII碼進行算術運算,在本題中,s+相當于s=s+1,即讓s指向數組中的下一個元素。(26)C【解析】 該題稍微難一點。主要要搞清楚以下幾點:定義了一個指針數組char *p2后,程序中第一個循環for(i=0;i<2;i+)pi=chi;的作用,是使指針數組的p0元素(它本身是一個指針)指向了二維數組ch的第一行字符串,并使指針數組的p1元素指向二維數組ch的第二行字符串,這樣,就使指針數組p和二維數組

35、ch建立起了一種對應關系,以后對二維數組ch的某個元素的引用就有兩種等價的形式:chij或pij。對二維數組ch的初始化,使其第一行ch0中存入了字符串"6937",第二行ch1中的內容為字符串"8254"。程序中第二個循環中的循環體s=s*10+pij-'0'的功能是這樣的,每執行一次,將s中的值乘以10(也即,將s中的數值整體向左移動一位,并在空出來的個位上添一個0),再將當前pij中的字符量轉換為相應的數字,然后把這個數字加到s的個位上。注意到內層循環的循環條件pij>'0 '是指pij中的字符只要不是字符串結

36、束標志'0'就繼續循環,語句j+=2;是使下標j每次增加2,也即一個隔一個地從pi所指向的字符串中取出字符。經過上述解析后,不難看出,該程序首先從p0所指向的字符串"6937"中一個隔一個地取出字符,分別是'6'和'3',然后從p1所指向的字符串"8254"中一個隔一個地取出字符,分別是'8'和'5',同時經過轉換和相加運算后,結果s中的值應該是6385。(27)D【解析】 在格式輸入中,要求給出的是變量的地址,而D)答案中給出的s1是一個值的表達式。(28)D 【解析】 C

37、語言中的預處理命令以符號#開頭,這些命令是在程序編譯之前進行處理的,選項D)的描述錯誤。(29)B【解析】 本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。(30)B 【解析】 getchar函數的作用是從終端讀入一個字符。(31)B【解析】 選項A)中,定義的初值個數大于數組的長度;選項C)中,數組名后少了中括號;選項D)中,整型數組不能賦予字符串。(32)A【解析】 在給p和q數組賦初值時,系統會自動添加字符串結束符,從題目中可以看出數組p和q都有3個字符,所以長度均為3。(33)A【解析】 函數fun(ch

38、ar *s,int n)的功能是對字符串數組的元素按照字符串的長度從小到大排序。在主函數中執行fun(ss,5)語句后,*ss="xy", "bcc", "bbcc", "aabcc", "aaaacc",ss0,ss4的輸出結果為xy,aaaacc。(34)C【解析】 函數int f(int x)是一個遞歸函數調用,當x的值等于0或1時,函數值等于3,其他情況下y=x2-f(x-2),所以在主函數中執行語句z=f(3)時,y=3*3-f(3-2)=9-f(1)=9-3=6。(35)B【解析】

39、考查指向字符串的指針變量。在該題中,指針變量p指向的應該是該字符串中的首地址,p+3指向的是字符串結束標志'0'的地址,因而*(p+3)的值為0。(36)D【解析】 本題考查鏈表的數據結構,必須利用指針變量才能實現,即一個結點中應包含一個指針變量,用它存放下一結點的地址。(37)B【解析】 以"wt"方式寫入的是字符文件,轉義字符'n'被看作兩個字符來處理。而"wb"方式寫入的是二進制文件,轉義字符'n'是一個字符。(38)A【解析】 本題考查的是位運算的知識,對于任何二進制數,和1進行異或運算會讓其取反,

40、而和0進行異或運算不會產生任何變化。(39)C【解析】 本題主要考查的是用二維數組首地址和下標來引用二維數組元素的方法。通過分析可知,程序中的雙重循環定義了一個如下的二維數組:0 1 22 3 44 5 6由于數組的下標是從0開始的,所以二維數組元素aij表示的是二維數組a的第i+1行、第j+1列對應位置的元素。 (40)A 【解析】 函數的參數不僅可以是整型、實型、字符型等數據,還可以是指針型。它的作用是將一個變量的地址傳遞到另一個函數中。當數組名作參數時,如果形參數組中的各元素的值發生變化,實參數組元素的值也將隨之發生變化。二、選擇題(1)【1】調試【解析】 軟件測試的目標是在精心控制的環

41、境下執行程序,以發現程序中的錯誤,給出程序可靠性的鑒定;調試也稱排錯,它是一個與測試既有聯系又有區別的概念。具體來說,測試的目的是暴露錯誤,評價程序的可靠性,而調試的目的是發現錯誤的位置,并改正錯誤。(2)【2】19【解析】 在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。(3)【3】 上溢【解析】 入隊運算是指在循環隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當rear=m+1時,置rear=1;然后將新元素插入隊尾指針指向的位置。當循環隊列非空(s=1)且隊尾指針等于隊頭指針時,說明循環隊列已滿,不能進行入隊運

42、算,這種情況稱為"上溢"。(4)【4】 關系【解析】 在關系模型中,把數據看成一個二維表,每一個二維表稱為一個關系。表中的每一列稱為一個屬性,相當于記錄中的一個數據項,對屬性的命名稱為屬性名;表中的一行稱為一個元組,相當于記錄值。(5)【5】 操作系統或OS 【解析】 數據庫管理系統是數據庫的機構,它是一種系統軟件,負責數據庫中的數據組織、數據操縱、數據維護、控制及保護和數據服務。位于用戶和操作系統之間。(6)【6】 a【解析】 'z'的ASCII碼值為122,經過c-25運算后,得97,以字符形式輸出是a。(7)【7】 1,0【解析】 與運算兩邊的語句必須

43、同時為真時,結果才為真。當執行完if(+a<0)&&!(b-<=0)時,a,b的值已經發生了變化。(8)【8】 1 3 5 【解析】 本題考查了for循環語句的使用,break語句用在本題中是結束for循環直接跳出循環體外。當i=1時,因為if語句條件不滿足,所以直接執行printf("%dn",i+);輸出1,同時i自加1;執行第二次for循環時,i=3;同樣的if語句條件不滿足,所以直接執行printf("%dn",i+);輸出3,同時i自加1;執行第三次for循環時,i=5,if語句條件滿足,所以執行printf(&qu

44、ot;%dn",i),輸出5,然后break語句跳出了for循環。(9)【9】 2 【10】 2 4 6 8【解析】 在主函數中根據整型數組x的定義可知,x1的初值等于2。在for循環語句中,當i=0時,p0=&x1,p00=2; 當i=1時,p1=&x3,p10=4;當i=2時,p2=&x5,p20=6;當i=3時,p3=&x7,p30=8,所以程序輸出的結果為2、4、6、8。(10)【11】 35【解析】 函數swap(int *a,int *b)的功能是實現*a和*b中兩個數據的交換,在主函數中調用swap(p,q)后,形參指針變量a和b分別指向

45、i和j,在swap(int *a,int *b)執行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發生變化,所以輸出結果為35。(11)【12】 BCD CD D【解析】 本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執行p=s+1后,p指向字符串中的第二個字符B,然后輸出值"BCD"并換行,依次執行循環語句。(12)【13】 9【解析】 本題考查函數的綜合知識。首先,我們可以利用強制轉換類型轉換運算符,將一個表達式轉換成所需類型。如:(double)a是將a轉換成double類型;(int)(x+y)是將x+y的值轉

46、換成整型。 本題可按部就班地逐步運算: fun(int)fun(a+c,b),a-c) fun(int)fun(10,5),2-8) fun(int)15.000000,-6) fun(15,-6) 9(13)【14】 struct aa *lhead,*rchild;【解析】 結構體對鏈表的定義。(14)【15】 fseek(文件指針,位移量,起始點)【解析】 本題考查函數fseek的用法。fseek函數的調用形式為: fseek(文件指針,位移量,起始點) "起始點"用0,1或2代替,其中,0代表"文件開始"1為"當前位置"2為&

47、quot;文件末尾"。"位移量"指以"起始點"為基點,向前移動的字節數。ANSI C和大多數C版本要求位移量是long型數據,這樣當文件的長度大于64k時不致出現問題。ANSI C標準規定在數字的末尾加一個字母L,就表示long型。一、選擇題在下列各題的A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)程序流程圖中帶有箭頭的線段表示的是 A)圖元關系 B)數據流 C)控制流 D)調用關系(2)下面不屬于軟件設計原則的是 A)抽象 B)模塊化 C)自底向上 D)信息隱蔽(3)下列

48、選項中,不屬于模塊間耦合的是 A)數據耦合 B)標記耦合 C)異構耦合 D)公共耦合(4)下列敘述中,不屬于軟件需求規格說明書的作用的是 A)便于用戶、開發人員進行理解和交流 B)反映出用戶問題的結構,可以作為軟件開發工作的基礎和依據 C)作為確認測試和驗收的依據 D)便于開發人員進行需求分析(5)算法的時間復雜度是指 A)執行算法程序所需要的時間 B)算法程序的長度 C)算法執行過程中所需要的基本運算次數 D)算法程序中的指令條數(6)已知數據表A中每個元素距其最終位置不遠,為節省時間,應采用的算法是 A)堆排序 B)直接插入排序 C)快速排序 D)B)和C)(7)棧底至棧頂依次存放元素A、

49、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是 A)ABCED B)DCBEA C)DBCEA D)CDABE(8)數據庫設計包括兩個方面的設計內容,它們是 A)概念設計和邏輯設計 B)模式設計和內模式設計 C)內模式設計和物理設計 D)結構特性設計和行為特性設計(9)關系表中的每一橫行稱為一個 A)元組 B)字段 C)屬性 D)碼(10)設有表示學生選課的三張表,學生S(學號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學號,課號,成績),則表SC的關鍵字 (鍵或碼)為 A)課號,成績 B)學號,成績 C)學號,課號 D)學號,姓名,成績(11)以下不

50、正確的敘述是 A)在C程序中,逗號運算符的優先級最低 B)在C程序中,APH和aph是兩個不同的變量 C)若a和b類型相同,在計算了賦值表達式a=b后b中的值將放入a中,而b中的值不變 D)當從鍵盤輸入數據時,對于整型變量只能輸入整型數值,對于實型變量只能輸入實型數值(12)請選出可用作C語言用戶標識符的是 A)void,define,WORD B)a3_b3,_123,IF C)FOR,-abc,Case D)2a,Do,Sizeof(13)以下選項中,不能作為合法常量的是 A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0(14)在C語言中,運算對象必須

51、是整型數的運算符是 A)% B) C)%和 D)*(15)若變量均已正確定義并賦值,以下合法的C語言賦值語句是 A)x=y=5; B)x=n%2.5; C)x+n=i; D)x=5=4+1; (16)有以下程序段 char ch; int k; ch=a;k=12; printf("%c,%d,",ch,ch,k); printf("k=%d n",k);已知字符a的ASCII碼值為97,則執行上述程序段后輸出結果是 A)因變量類型與格式描述符的類型不匹配輸出無定值 B)輸出項與格式描述符個數不符,輸出為零值或不定值 C)a,97,12k=12 D)a,

52、97,k=12(17)已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達式是 A)kk>=A&& kk<=Z B)!(kk>=A|kk<=Z) C)(kk+32)>=a&&(kk+32)<=Z D)isalpha(kk)&&(kk<91) (18)當變量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&& c<=6)&&(c%2!=1)(19)若有條件表達式 (exp)?a+:b-,則以下表達式中能完全等價于表達式(exp)的是 A)(exp=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

溫馨提示

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

評論

0/150

提交評論