



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
每部分完后。。一、選擇題在下列各題的A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替傳統的程序流程圖,通常也把這種圖稱為A)PAD圖B)N-S圖C)結構圖D)數據流圖(2)結構化程序設計主要強調的是A)程序的規模B)程序的效率C)程序設計語言的先進性D)程序易讀性(3)為了使模塊盡可能獨立,要求A)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量強B)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量弱C)模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量弱D)模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量強(4)需求分析階段的任務是確定A)軟件開發方法B)軟件開發工具C)軟件開發費用D)軟件系統功能(5)算法的有窮性是指A)算法程序的運行時間是有限的B)算法程序所處理的數據量是有限的C)算法程序的長度是有限的D)算法只能被有限的用戶使用(6)對長度為n的線性表排序,在最壞情況下,比較次數不是n(n-l)/2的排序方法是A)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果進棧序列為el,e2,e3,e4,則可能的出棧序列是A)e3,el,e4,e2B)e2,e4,e3,elC)e3,e4,el,e2D)任意順序(8)將E-R圖轉換到關系模式時,實體與聯系都可以表示成A)屬性B)關系C)鍵D)域(9)有三個關系R、S和T如下:RBCDa 0 klb 1 nlBCDf3h2a0kln2xlTBCDa0kl由關系R利S通過運算得到關系T,則所使用的運算為A)并B)自然連接C)笛卡爾積D)交(10)下列有關數據庫的描述,正確的是A)數據處理是將信息轉化為數據的過程B)數據的物理獨立性是指當數據的邏輯結構改變時,數據的存儲結構不變C)關系中的每一列稱為元組,一個元組就是一個字段D)如果一個關系中的屬性或屬性組并非該關系的關鍵字,但它是另一個關系的關鍵字,則稱其為本關系的外關鍵字(11)以下敘述中正確的是A)用C程序實現的算法必須要有輸入和輸出操作B)用C程序實現的算法可以沒有輸出但必須要有輸入C)用C程序實現的算法可以沒有輸入但必須要有輸出D)用C程序實現的算法可以既沒有輸入也沒有輸出(12)下列可用于C語言用戶標識符的一組是A)void,define,WORDB)a3_3,」23,CarC)For,-abc,IFCaseD)2a,DO,sizeof(13)以下選項中可作為C語言合法常量的是A)-80B)-080C)-8el.OD)-80.0e(14)若有語句:char*line[5];,以下敘述中正確的是A)定義line是一個數組,每個數組元素是一個基類型為char為指針變量B)定義line是一個指針變量,該變量可以指向一個長度為5的字符型數組C)定義line是個指針數組,語句中的*號稱為間址運算符D)定義line是一個指向字符型函數的指針(15)以下定義語句中正確的是A)inta=b=0;B)charA=65+l,b='b';C)floata=l,*b=&a,*c=&b:D)doublea=0 0;b=1.1;(16)有以下程序段charch;intk;ch二'a';k=12;printf(”%c,%d,”,ch,ch,k);printf(,'k=%d\n”,k);已知字符a的ASCII碼值為97,則執行上述程序段后輸出結果是A)因變量類型與格式描述符的類型不匹配輸出無定值B)輸出項與格式描述符個數不符,輸出為零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序main(){inti,s=l;for(i=l;i<50;i++)if(!(i%5)&&!(i%3))s+=i;printf(H%d\n';s);}程序的輸出結果是A)409B)277C)1D)91(18)當變量c的值不為2、4、6時,值也為“真”的表達式是A)(c==2)ll(c==4)ll(c==6)B)(c>=2&&c<=6)ll(c!=3)ll(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&&c<=6)&&(c%2!=l)(19)若變量已正確定義,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf(M%d,%d,%d\n",a,b,c);其輸出結果是A)程序段有語法錯B)3,5,3C)3,5,5D)3,5,7(20)有以下程序#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;)case2:a++;b++;break;case3:a++;b++;}printf(na=%d,b=%d\n",a,b);}程序的運行結果是A)a=l,b=0B)a=2,b=2C)a=l,b=lD)a=2,b=l(21)下列程序的輸出結果是#include"stdio.h"main(){inti,a=O,b=O;for(i=l;i<10;i++){if(i%2=0){a++;continue;}b++;}printf(na=%d,b=%d';a,b);}A)a=4,b=4B)a=4,b=5C)a=5,b=4D)a=5,b=5(22)已知#intt=0;while(t=l){.J則以下敘述正確的是A)循環控制表達式的值為0B)循環控制表達式的值為1C)循環控制表達式不合法D)以上說法都不對(23)下面程序的輸出結果是main(){inta[10]={1,23,4,5,6,7,8,9,10),*p=a;printf(n%d\nM,*(p+2));}A)3B)4C)1D)2(24)以下錯誤的定義語句是A)intx[][3]={{0},{1},{1,2,3));B)intx[4][3]={{1,2,3},{1,2,3},{1,2,3),{1,2,3});C)intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};D)intx[][3]={l,2,3,4);(25)有以下程序voidss(char*s,chart){while(*s){if(*s==t)*s=t-/a'+'A';s++;})main(){charstrl[100]=,,abcddfefdbd,',c=,d';ss(strl,c);printf(H%s\n'\strl);}程序運行后的輸出結果是A)ABCDDEFEDBDB)abcDDfefDbDOabcAAfefAbAD)Abcddfefdbd(26)有如下程序main(){charch[2][5]={M6937M;,8254,,},*p[2];inti,j,s=O;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>/\0z;j+=2)s=10*s+p[i][j]-/O';printf("%d\n",s);}該程序的輸出結果是A)69825B)6382506385D)693825(27)有定義語句:char 若要從終端給s輸入5個字符,錯誤的輸入語句是A)gets(&s[O]);B)scanf(',%s**,s+1);C)gets(s);D)scanf(',%s,\s[l]);(28)以下敘述中錯誤的是A)在程序中凡是以,鏟開始的語句行都是預處理命令行B)預處理命令行的最后不能以分號表示結束C)#defineMAX是合法的宏定義命令行D)C程序對預處理命令行的處理是在程序執行的過程中進行的(29)設有以下說明語句typedefstruct{intn;charch[8];}PER;則下面敘述中正確的是A)PER是結構體變量名B)PER是結構體類型名C)typedefstruct是結構體類型D)struct是結構體類型名(30)以下敘述中錯誤的是A)gets函數用于從終端讀入字符串B)getchar函數用于從磁盤文件讀入字符C)fputs函數用于把字符串輸出到文件D)fwrite函數用于以二進制形式輸出數據到文件(31)以下能正確定義一維數組的選項是A)inta[5]={0,l,2,3,4,5);B)chara[]={'O'1' 21 3' 4' 5'\Of);C)chara={'N;B'C};D)inta[5]="0123";(32)有以下程序#include<string.h>main(){charp[]={/a','b','c'},q[10]={'a','b','c'};printf(',%d%d\n',,strlen(p),strlen(q));}以下敘述中正確的是A)在給p和q數組置初值時,系統會自動添加字符串結束符,故輸出的長度都為3B)由于p數組中沒有字符串結束符,長度不能確定,但q數組中字符串長度為3C)由于q數組中沒有字符串結束符,長度不能確定,但p數組中字符串長度為3D)由于p和q數組中都沒有字符串結束符,故長度都不能確定(33)有以下程序#include<stdio.h>#include<string.h>voidfun(char*s[],intn){char*t; inti,j;for(i=0;i<n-l;i++)for(j=i+l;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]:s[j];s[j]=t;})main(){char*ss[]={,'bccM,',bbcc,,,,,xy,,,Haaaacc",,,'aabccn);fun(ss,5);printf(M%s,%s\nM,ss[0],ss[4]);}程序的運行結果是A)xy,aaaaccB)aaaacc,xyC)bcc,aabccD)aabcc,bcc(34)有以下程序#include<stdio.h>intf(intx){inty;if(x==Ollx==1)retum(3);y=x*x-f(x-2);returny;}main(){intz;z=f(3);printf("%d\nH,z);}程序的運行結果是A)0B)9C)6D)8(35)下面程序段的運行結果是charstr[]=nABCn,*p=str;printf(,,%d\n,*,*(p+3));A)67B)0C)字符'C'的地址D)字符,Cz(36)若有以下定義:structlink{intdata;structlink*next;}a,b,c,*p,*q;且變量a和b之間已有如下圖所示的鏈表結構:指針p指向變量a,q指向變量Co則能夠把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<stdio.h>voidmain(){FILE*fp=fopen(nTESTM,);fputc(rA',fp);fputc('\n',fp);fputc(rB',fp);fjputc('\n',fp);fputc('C',fp);fclose(fp);}A)7字節、7字節B)7字節、5字節C)5字節、7字節D)5字節、5字節(38)變量a中的數據用二進制表示的形式是01011101,變量b中的數據用二進制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執行的運算是A)aAbB)albC)a&bD)a?4(39)下面的程序段運行后,輸出結果是inti,j,x=0;staticinta[8][8];for(i=0;i<3;i++)for(j=0;j<3;j++)a[i]|j]=2*i+j;for(i=0;i<8;i++)x+=a[i]|j];printf(M%d'\x);A)9B)不確定值C)0D)18(40)下列程序執行后的輸出結果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf(H%d\n'\b[O]);}A)6B)7C)8D)9二、填空題請將每一個空的正確答案寫在答題卡序號的橫線上,答在試卷上不給分。(1)測試的目的是暴露錯誤,評價程序的可靠性;而 m 的目的是發現錯誤的位置并改正錯誤。(2)某二叉樹中度為2的結點有18個,則該二叉樹中有 [2]個葉子結點。TOC\o"1-5"\h\z(3)當循環隊列非空且隊尾指針等于隊頭指針時,說明循環隊列已滿,不能進行入隊運算。這種情況稱為【3】 .(4)在關系模型中,把數據看成一個二維表,每一個二維表稱為一個 [4]。(5)在計算機軟件系統的體系結構中,數據庫管理系統位于用戶和【5】之間。(6)以下程序的輸出結果是 [6】omain(){charc=fz';printf(M%cM,c-25);}(7)閱讀下面語句,則程序的執行結果是 【7】.#include"stdio.h"main(){inta=-l,b=l,k;if((++a<0)&&!(b-<=0))printf("%d,%d\",a,b);elseprintf(,,%d,%d\ii,,,b,a);}(8)下列程序的輸出結果是 18】omain(){inti;for(i=l;i+l;i++){if(i>4){printf(,'%d\n,',i);break;}printf(M%d\nH,i++);}}(9)以下程序的定義語句中,x[l]的初值是[9】,程序運行后輸出的內容是 [10]o#include<stdio.h>main(){intx[]={l,2,3,4,5,67,8,9,10,11,12,13,14,15,16),*p[4],i;for(i=0;i<4;i++){p[i]=&x[2*i+l];printf("%d”,p[i]⑼);)printf("\n");))(10)以下程序的輸出結果是[11] ?#include<stdio.h>voidsw叩(int *a,int*b){int*t;t=a;a=b;b=t;)main(){inti=3,j=5,*p=&i,*q=&j;sw叩(p,q);printf("%d%d\N,*p,*q)))(11)以下程序的輸出結果是 【12】 。main(){chars[]二"ABCD",*p;for(p=s+l;p<s+4;p++)printf(1,%s\n,,,p);}(12)以下程序的輸出結果是[13] .floatfun(intx,inty){return(x+y);)main(){inta=2,b=5,c=8;printf("%3.0f\n”,fun((im)fun(a+c,b),a?c));}(13)有如下圖所示的雙鏈表結構,請根據圖示完成結構體的定義:Iheaddatarchildstructaa{intdata;[14]Jnode;(14)fseek函數的正確調用形式是【15】。一、選擇題(DB【解析】N-S圖是由Nassi和Shneiderman提出的一種符合程序化結構設計原則的圖形描述工具。它的提出是為了避免流程圖在描述程序邏輯時的隨意性上靈活性。⑵D【解析】結構化程序設計方法的主要原則可以概括為自頂向下、逐步求精、模塊化及限制使用got。語句,總的來說可使程序結構良好、易讀、易理解、易維護。(3)B【解析】模塊的獨立程度可以由兩個定性標準度量:耦合性和內聚性。耦合性是衡量不同模塊彼此間互相依賴(連接)的緊密程度;內聚性是衡量一個模塊內部各個元素彼此結合的緊密程度。一般來說,要求模塊之間的耦合盡可能地低,而內聚性盡可能地高。⑷D【解析】需求分析是軟件定義時期的最后一個階段,它的基本任務就是詳細調查現實世界要處理的對象(組織、部門、企業等),充分了解原系統的工作概況,明確用戶的各種需求,然后在此基礎上確定新系統的功能。選項A)軟件開發方法是在總體設計階段需完成的任務;選項B)軟件開發工具是在實現階段需完成的任務;選項C)軟件開發費用是在可行性研究階段需完成的任務。(5)A【解析】算法具有5個特性:①有窮性:一個算法必須(對任何合法的輸入值)在執行有窮步之后結束,且每?步都可在有限時間內完成,即運行時間是有限的;②確定性:算法中每一條指令必須有確切的含義,讀者理解時不會產生歧義;③可行性:一個算法是可行的,即算法中描述的操作都是可以通過已經實現的基本運算執行有限次來實現;④輸入:一個算法有零個或多個輸入,這些輸入取自于某個特定的對象的集合;⑤輸出:一個算法有一個或多個輸出。(6)D【解析】在最壞情況下,快速排序、冒泡排序和直接插入排序需要的比較次數都為n(n-1)/2,堆排序需要的比較次數為nlog2no(7)B【解析】由棧"后進先出"的特點可知:A)中el不可能比e2先此C)中el不可能比e2先出,D)中棧是先進后出的,所以不可能是任意順序。B)中出棧過程如下圖所示:(8)B【解析】關系數據庫邏輯設計的主要工作是將E-R圖轉換成指定RDBMS中的關系模式。首先,從E-R圖到關系模式的轉換是比較直接的,實體與聯系都可以表示成關系,E-R圖中屬性也可以轉換成關系的屬性,實體集也可以轉換成關系。(9)D【解析】在關系運算中,交的定義如下:設R1和R2為參加運算的兩個關系,它們具有相同的度n,且相對應的屬性值取自同?個域,則RIR2為交運算,結果仍為度等于n的關系,其中,交運算的結果既屬于R1,又屬于R2。(10)D【解析】數據處理是指將數據轉換成信息的過程,故選項A)敘述錯誤;數據的物理獨立性是指數據的物理結構的改變,不會影響數據庫的邏輯結構,故選項B)敘述錯誤;關系中的行稱為元組,對應存儲文件中的記錄,關系中的列稱為屬性,對應存儲文件中的字段,故選項C)敘述錯誤。(1DC【解析】算法具有的5個特性是:有窮性;確定性;可行性;有0個或多個輸入;有一個或多個輸出。所以說,用C程序實現的算法可以沒有輸入但必須要有輸出。(12)B【解析】C語言規定標識符只能由字母、數字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,排除選項C)和D);C語言中還規定標識符不能為C語言的關鍵字,而選項A)中void為關鍵字,故排除選項A)。(13)A【解析】選項B)項中,以0開頭表示是一個八進制數,而八進制數的取值范圍是0?7,所以-080是不合法的;選項。和D)中,e后面的指數必須是整數,所以也不合法。(14)A【解析】C語言中□比*優先級高,因此line先與[5]結合,形成line[5]形式,這是數組形式,它有5個元素,然后再與line前面的"*"結合,表示此數組是一個指針數組,每個數組元素都是一個基類型為char的指針變量。(15)B【解析】本題考查變量的定義方法。如果要一次進行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和D)錯誤。在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數據,不能指向指針變量b,故選項C)錯誤。(16)D【解析】輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數輸出,所以第一個輸出語句輸出的結果為a,97;第二個輸出語句輸出的結果為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中的表達式都為“真"。(19)B【解析】兩個if語句的判斷條件都不滿足,程序只執行了c=a這條語句,所以變量c的值等于3,變量b的值沒能變化,程序輸出的結果為3,5,3.所以正確答案為B)。(20)D【解析】本題考查switch語句,首先,x=l符合條件case1,執行switch(y)語句,y=0符合case0語句,執行a++并跳出switch(y)語句,此時a=l?因為case1語句后面沒有break語句,所以向后執行case2語句,執行a++,b++,然后跳出switch(x),得a=2,b=l。⑵)B【解析】continue語句的作用是跳過本次循環體中余卜,尚未執行的語句,接著再一次進行循環條件的判定。當能被2整除時,a就會增1,之后執行continue語句,直接執行到for循環體的結尾,進行i++,判斷循環條件。(22)B【解析】t=l是將t賦值為1,所以循環控制表達式的值為1.判斷t是否等于1時,應用t==l,注意"="與"=="的用法。(23)A【解析】在C語言中,數組元素是從0開始的。指針變量p指向數組的首地址,(p+2)就會指向數組中的第3個元素。題目中要求輸出的是元素的值。(24)C【解析】本題考查的是二維數組的定義和初始化方法。C語言中,在定義并初始化二維數組時,可以省略數組第一維的長度,但是不能省略第二維的長度。故選項C)錯誤。(25)B【解析】在內存中,字符數據以ASCII碼存儲,它的存儲形式與整數的存儲形式類似。C語言中,字符型數據和整型數據之間可以通用,也可以對字符型數據進行算術運算,此時相當于對它們的ASCII碼進行算術運算,在本題中,s++相當于s=s+l,即讓s指向數組中的下一個元素。(26)C【解析】該題稍微難一點。主要要搞清楚以下幾點:①定義了一個指針數組char*p[2]后,程序中第一個循環for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數組的p⑼元素佗本身是一個指針)指向了二維數組ch的第一行字符串,并使指針數組的p[l]元素指向二維數組ch的第二行字符串,這樣,就使指針數組p和二維數組ch建立起了一種對應關系,以后對二維數組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或②對二維數組ch的初始化,使其第一行ch[0]中存入了字符串"6937",第二行ch[l]中的內容為字符串“8254”。③程序中第二個循環中的循環體s=s*10+p[i][j]-O;的功能是這樣的,每執行次,將s中的值乘以10(也即,將s中的數值整體向左移動一位,并在空出來的個位上添一個0),再將當前中的字符量轉換為相應的數字,然后把這個數字加到s的個位上。④注意到內層循環的循環條件p[i]'是指疝田]中的字符只要不是字符串結束標志'\0'就繼續循環,語句j+=2;是使下標j每次增加2,也即一個隔一個地從p[i]所指向的字符串中取出字符。經過上述解析后,不難看出,該程序首先從p[0]所指向的字符串“6937”中一個隔一個地取出字符,分別是6和3,然后從p[1]所指向的字符串“8254"中一個隔一個地取出字符,分別是8和5,同時經過轉換和相加運算后,結果s中的值應該是6385。(27)D【解析】在格式輸入中,要求給出的是變量的地址,而D)答案中給出的s[l]是個值的表達式。(28)D【解析】C語言中的預處理命令以符號#開頭,這些命令是在程序編譯之前進行處理的,選項D)的描述錯誤。(29)B【解析】本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。(30)B【解析】getchar函數的作用是從終端讀入一個字符。⑶)B【解析】選項A)中,定義的初值個數大于數組的長度;選項C)中,數組名后少了中括號;選項D)中,整型數組不能賦予字符串。(32)A【解析】在給p和q數組賦初值時,系統會自動添加字符串結束符,從題目中可以看出數組p和q都有3個字符,所以長度均為3。(33)A【解析】函數fun(char*s[J,intn)的功能是對字符串數組的元素按照字符串的長度從小到大排序。在主函數中執行fun(ss,5)語句后,*ss[]={"xy","bcc","bbcc","aabcc","aaaacc"},ss[0],ss[4]的輸出結果為xy,aaaacc。(34)C【解析】函數intf(intx)是一個遞歸函數調用,當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【解析】考查指向字符串的指針變量。在該題中,指針變量p指向的應該是該字符串中的首地址,P+3指向的是字符串結束標志、0'的地址,因而*(p+3)的值為0。(36)D【解析】本題考查鏈表的數據結構,必須利用指針變量才能實現,即?個結點中應包含一個指針變量,用它存放下一結點的地址。(37)B【解析】以”wt"方式寫入的是字符文件,轉義字符5,被看作兩個字符來處理。而“wb”方式寫入的是二進制文件,轉義字符5'是一個字符。(38)A【解析】本題考音的是位運算的知識,對于任何二進制數,和1進行異或運算會讓其取反,而和0進行異或運算不會產生任何變化。(39)C【解析】本題主要考查的是用二維數組首地址和下標來引用二維數組元素的方法。通過分析可知,程序中的雙重循環定義了一個如下的二維數組:TOC\o"1-5"\h\z0 1 22 3 44 5 6由于數組的下標是從0開始的,所以二維數組元素表示的是二維數組a的第i+1行、第j+1列對應位置的元素。(40)A【解析】函數的參數不僅可以是整型、實型、字符型等數據,還可以是指針型。它的作用是將一個變量的地址傳遞到另一個函數中。當數組名作參數時,如果形參數組中的各元素的值發生變化,實參數組元素的值也將隨之發生變化。二、選擇題⑴【1】調試【解析】軟件測試的目標是在精心控制的環境下執行程序,以發現程序中的錯誤,給出程序可靠性的鑒定;調試也稱排錯,它是一個與測試既有聯系又有區別的概念。具體來說,測試的H的是暴露錯誤,評價程序的可靠性,而調試的目的是發現錯誤的位置,并改正錯誤。⑵【2】19【解析】在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。(3)【3】上溢【解析】入隊運算是指在循環隊列的隊尾加入??個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+l),并當rear=m+l時,置rear=l;然后將新元素插入隊尾指針指向的位置。當循環隊列非空(s=l)且隊尾指針等于隊頭指針時,說明循環隊列已滿,不能進行入隊運算,這種情況稱為“上溢”。⑷【4】關系【解析】在關系模型中,把數據看成一個二維表,每一個二維表稱為一個關系。表中的每一列稱為一個屬性,相當于記錄中的一個數據項,對屬性的命名稱為屬性名;表中的一行稱為一個元組,相當于記錄值。[5]操作系統或OS【解析】數據庫管理系統是數據庫的機構,它是一種系統軟件,負責數據庫中的數據組織、數據操縱、數據維護、控制及保護和數據服務。位于用戶和操作系統之間。[6]a【解析】N的ASCII碼值為122,經過c-25運算后,得97,以字符形式輸出是a。⑺[7]1,0【解析】與運算兩邊的語句必須同時為真時,結果才為真。當執行完if((++a<0)&&!(b--<=0))時,a,b的值已經發生了變化。⑻【8】135【解析】本題考查了for循環語句的使用,break語句用在本題中是結束for循環直接跳出循環體外。當i=l時,因為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",。,輸出5,然后break語句跳出了for循環。[9]22468【解析】在主函數中根據整型數組x[]的定義可知,x[l]的初值等于2。在for循環語句中,當i=0時,p[0]=&x[l],p[0][0]=2;當i=l時,p[l]=&x[3],p[l][0]=4;當i=2時,p[2]=&x[5],p[2][0]=6;當i=3時,p[3]=&x[7],p[3][0]=8,所以程序輸出的結果為2、4、6、8。[11]35【解析】函數swap(int*a,int*b)的功能是實現*a和*b中兩個數據的交換,在主函數中調用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發生變化,所以輸出結果為35。[12]BCDCDD【解析】本題考查指向字符串的指針的運算方法。指針變量p苜先指向字符串中的第一個字符A,執行p=s+l后,p指向字符串中的第二個字符B,然后輸出值“BCD”并換行,依次執行循環語句。[13]9【解析】本題考查函數的綜合知識。首先,我們可以利用強制轉換類型轉換運算符,將一個表達式轉換成所需類型。如:(double)a是將a轉換成double類型;(int)(x+y)是將x+y的值轉換成整型。本題可按部就班地逐步運算:fun((int)fun(a+c,b),a-c)fun((int)fun(10,5),2-8)fun((int)15.000000,-6)fun(15,-6)9[14]structaa*lhead,*rchild;【解析】結構體對鏈表的定義。[15]fseek(文件指針,位移量,起始點)【解析】本題考查函數fseek的用法。fseek函數的調用形式為:fseek(文件指針,位移量,起始點)“起始點”用0,1或2代替淇中,0代表"文件開始";1為"當前位置";2為"文件末尾"。"位移量”指以"起始點"為基點,向前移動的字節數。ANSIC和大多數C版本要求位移量是long型數據,這樣當文件的長度大于64k時不致出現問題。ANSIC標準規定在數字的末尾加一個字母L,就表示long型。一、選擇題在下列各題的A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置匕答在試卷上不得分。(1)程序流程圖中帶有箭頭的線段表示的是A)圖元關系B)數據流C)控制流D)調用關系(2)下面不屬于軟件設計原則的是A)抽象B)模塊化C)自底向上D)信息隱蔽(3)下列選項中,不屬于模塊間耦合的是A)數據耦合B)標記耦合C)異構耦合D)公共耦合(4)下列敘述中,不屬于軟件需求規格說明書的作用的是A)便于用戶、開發人員進行理解和交流B)反映出用戶問題的結構,可以作為軟件開發工作的基礎和依據C)作為確認測試和驗收的依據D)便于開發人員進行需求分析(5)算法的時間復雜度是指A)執行算法程序所需要的時間B)算法程序的長度C)算法執行過程中所需要的基本運算次數D)算法程序中的指令條數(6)已知數據表A中每個元素距其最終位置不遠,為節省時間,應采用的算法是A)堆排序B)直接插入排序C)快速排序D)B)和C)(7)棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是A)ABCEDB)DCBEAC)DBCEAD)CDABE(8)數據庫設計包括兩個方面的設計內容,它們是A)概念設計和邏輯設計B)模式設計和內模式設計C)內模式設計和物理設計D)結構特性設計和行為特性設計(9)關系表中的每一橫行稱為一個A沅組B)字段C)屬性D)碼(10)設有表示學生選課的三張表,學生S(學號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學號,課號,成績),則表SC的關鍵字(鍵或碼)為A)課號,成績B)學號,成績C)學號,課號D)學號,姓名,成績(11)以下不正確的敘述是A)在C程序中,逗號運算符的優先級最低B)在C程序中,APH和aph是兩個不同的變量C)若a和b類型相同,在計算了賦值表達式a=b后b中的值將放入a中,而b中的值不變D)當從鍵盤輸入數據時,對于整型變量只能輸入整型數值,對于實型變量只能輸入實型數值(12)請選出可用作C語言用戶標識符的是A)void,define,WORDB)a3_b3,_123,IFC)FOR,—abc.CaseD)2a,Do,Sizeof(13)以下選項中,不能作為合法常量的是A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0(14)在C語言中,運算對象必須是整型數的運算符是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)有以下程序段charch; intk;ch='a'; k=12;printf(H%c,%d,M,ch,ch,k);printf(uk=%d\nn,k);已知字符a的ASCII碼值為97,則執行上述程序段后輸出結果是A)因變量類型與格式描述符的類型不匹配輸出無定值B)輸出項與格式描述符個數不符,輸出為零值或不定值C)a,97,12k=12D)a,97,k=12(17)已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達式是A)kk>='A'&&kkv='Z'B)!(kk>=,A'llkk<='Z')C)(kk+32)>='a'&&(kk+32)v='Z'D)isalpha(kk)&&(kk<91)(18)當變量c的值不為2、4、6時,值也為“真”的表達式是A)(c==2)ll(c==4)ll(c==6)B)(c>=2&&c<=6)ll(c!=3)ll(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&&c<=6)&&(c%2!=l)(19)若有條件表達式(exp)?a++:b--,則以卜表達式中能完全等價于表達式(exp)的是A)(exp==O)B)(exp!=O)C)(exp==l)D)(exp!=l)(20)以下不正確的定義語句是A)doublex[5]={2.0,4.0,6.0,8.030.0};B)inty[5]={0,13,5,7,9);C)charcl[]={,P/2,/3' 4' 5'};D)charc2[]={,\xl0','xa','\x8'};(21)下列程序執行后的輸出結果是main(){inta[3][3],*p,i;p=&a[0][01;for(i=l;i<9;i++)p[i]=i+l;printf("%d\n”,a[l]⑵;)A)3B)6C)9D)隨機數(22)設有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printfC%dH,s);則A)運行程序段后輸出0B)運行程序段后輸出1C)程序段中的控制表達式是非法的D)程序段執行無限次(23)(23)下面程序段的運行結果是char*s=MabcdeM;s+=2;printf(H%dH,s);A)cdeB)字符'c'C)字符'c’的地址D)無確定的輸出結果(24)閱讀下列程序,則執行后的結果為includeMstdio.hHmain(){intc[][4]={1,2,3,4,5,6,734,213,56,62,3,23,12,34,56);printf(',%x,%x\n,,,c[2][2],*(*(c+1)+1));}A)3e,6B)62,5C)56,5D)3E,6(25)下面判斷正確的是A)char*a="china";等價于char*a;*a="china";B)charstr[5]={"china"};等價于charstr[]={"china"};C)char*s="china";等價于char*s;s="china";D)charc[4]="abc",d[4]="abc";等價于charc[4]=d[4]="abc";(26)若有定義:inta⑵[3];,以下選項中對a數組元素正確引用的是A)a[2][!l]B)a[2][3]C)a[0][3]D)a[l>2][!l](27)有定義語句:char 若要從終端給s輸入5個字符,錯誤的輸入語句是A)gets(&s[O]);B)scanf("%s",s+1);C)gets(s);D)scanf("%s",s[l]);(28)有以下程序#include<stdio.h>#defineN5#defineMN+l#definef(x)(x*M)main(){intil,i2;il=f(2);i2=f(l+l);printf(H%d%d\nH,il,i2);程序的運行結果是A)1212B)ll7C)ll11D)127(29)若有以下說明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯誤的是A)data的每個成員起始地址都相同B)變量data所占內存字節數與成員c所占字節數相等C)程序段:data.a=5;printf("%f\n",data.c);輸出結果為5.000000D)data可以作為函數的實參(30)有以下程序#include<stdio.h>main(){FILE*fp;intk,n,a[6]={1,2,3A5,6);fp=fopen(',d2.dat',,,,w,');fprintf(fp;,%d%d%d\n,,,a[OJ,a[1],a[2]);fprintf(fp,',%d%d%d\n,,,a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat",T');fscanf(fp,,,%d%dM,&k,&n);printf(M%d%d\n'\k,n);fclose(fp);}程序運行后的輸出結果是A)12B)14C)1234D)123456(31)若已定義inta[]={0,1,2,3,4,5,678,9},*p=a,i;其中則對a數組元素不正確的引用是A)a[p-a]B)*(&a[i])C)p[i]D)a[10](32)有以下程序#include<stdio.h>voidfun(int*s,intnl,intn2){inti,j,t;i=nl;j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j-;}1main(){inta[10]={l,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;k<10;k-H-)printf(,'%d,,,a[k]); printf(^'\n'^);)程序的運行結果是A)0987654321B)432109876505678901234D)0987651234(33)閱讀下列程序,當運行函數時,輸入asdafaaz67,則輸出為#include<stdio.h>#include<ctype.h>#include<string.h>intfun(char*str){inti,j=0;for(i=0;str[i]!=z\0';i++)if(str[i]!=z,)str|j++]=str[i];str[j]='\0';)main()(charstr[81J;intn;printf(HInputastring:");gets(str);puts(str);fun(str);printf(n%s\nH,str);)A)asdafaaz67B)asdafaaz67C)asdD)z67(34)有以下程序intfun(intn){if(n==l)return1;elsereturn(n+fun(n-1));)main(){intx;scanf("%d",&x);x=fun(x);printf(M%d\n",x)}執行程序時,給變量x輸入10,程序的輸出結果是A)55B)54C)65D)45(35)下面程序段中,輸出*的個數是char*s=,,\ta\018bc,,;for(;*s!='\0';s++)printf(,,*u);A)9B)5C)6D)7(36)C語言結構體類型變量在程序運行期間A)TC環境在內存中僅僅開辟一個存放結構體變量地址的單元B)所有的成員一直駐留在內存中C)只有最開始的成員駐留在內存中D)部分成員駐留在內存中(37)已知函數的調用形式為fread(buf,size,count,fp),參數buf的含義是A)一個整型變量,代表要讀入的數據項總數B)一個文件指針,指向要讀的文件C)一個指針,指向要讀入數據的存放地址D)一個存儲區,存放要讀的數據項(38)設有以下語句charx=3,y=6,z;z=xAy?2;則z的二進制值是A)00010100B)00011011000011100D)00011000(39)在C語言中,只有在使用時才占用內存單元的變量,其存儲類型是A)auto/dregisterB)extem和registerC)autostaticD)static和register(40)設有定義語句int(*f)(int);,則以下敘述正確的是A)f是基類型為int的指針變量B)f是指向函數的指針變量,該函數具有一個int類型的形參C)f是指向int類型一維數組的指針變量D)f是函數名,該函數的返回值是基類型為im類型的地址二、填空題請將每一個空的正確答案寫在答題卡序號的橫線上,答在試卷上不給分。(1)測試用例包括輸入值集和[1]值集。(2)在樹形結構中,樹根結點沒有 【2】o(3)數據結構分為邏輯結構與存儲結構,線性鏈表屬于 【3】o(4)一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯系屬于【4】的聯系。(5)數據庫設計分為以下6個設計階段:需求分析階段、 【5】、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。(6)閱讀下面程序段,則執行后輸出的結果是[6】o#include"stdio.h"main()charfun(char,int);chara=zA';intb=13;a=fun(a,b);putchar(a);}charfun(chara,intb){chark;k=a+b;returnk;}(7)函數fun的返回值是【7】fun(char*a,char*b){intnum=0,n=0;while(*(a+num)!='\0,)mm++;while(b[n]){*(a+num)=b[n];num++;n++;}returnnum;)(8)以下程序的功能是:刪去一維數組中所有相同的數,使之只剩一個。數組中的數已按由小到大的順序排列,函數返回刪除后數組中數據的個數。例如,若一維數組中的數據是:2223445666677899101010刪除后,數組中的內容應該是:2345678910o請填空。#include<stdio.h>#defineN80intfun(inta[],intn){inti,j=l;for(i=l;i<n;i++)if(a[j-H[8]a[i])a[j++]=a[i];[9];Imain(){inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;printf(MTheoriginaldata:\nM);for(i=0;i<n;i++)printf(M%3dM,a[i]);n=fun(a,n);printf(M\nThedataafterdeleted:\nM);for(i=0;i<n;i++)printf(M%3dM,a[i]);printf("\n\nM);)(9)以下程序的運行結果是【10】。#include<stdio.h>main(){intx=1,y=O,a=O,b=O;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;)case2:a++;b++;break;case3:a++;b++;)printf(na=%d,b=%cl\n",a,b);(10)以下程序的輸出結果是 [11] ?fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(6,3,a)printf(n%dM,a)}(11)函數my_cmp()的功能是比較字符串s和t的大小,當s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,s<t時返回負值。請填空。My_cmp(char*s,char*t){while(*s==*t){if(*s='\0)return0;++s;++t;}return[12];}(12)以下程序的輸出結果是 [13]ovoidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-ij;a[n-1-i]=t;})main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf(M%d\nM,s);)(13)以下說明語句中,【14】 是結構體類型名。typedefstruct{intn;charch[8];}PER;(14)以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請填空。#include<stdio.h>main(){FILE*fp;charch;fp=fopen([15]);ch=fgetc(fp);while(!feof(fp)){putchar(ch);ch=fgetc(fp);}putchar(^');fclose(fp);一、選擇題(DC【解析】程序流程圖是人們對解決問題的方法、思路或算法的一種圖形方式的描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內容;流程線表示操作的先后次序。帶箭頭的線段在數據流程圖中表示數據流;帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項中,在圖元之間用帶有箭頭的線段表示圖元關系。在模塊之間用帶有箭頭的線段表示調用關系。⑵c【解析】軟件設計遵循軟件工程的基本H標和原則,建立了適用于在軟件設計中應該遵循的基本原理和與軟件設計有關的概念,它們具有抽象、模塊化、信息隱蔽和數據獨立性。自底向上是集成測試中增量測試的一種。⑶C【解析】模塊之間的耦合程度反映了模塊的獨立性,也反映了系統分解后的復雜程度。按照耦合程度從強到弱分別是:內容耦合、公共耦合、外部耦合、控制耦合、標記耦合、數據耦合和非直接耦合,沒有異構耦合這種方式。(4)D【解析】軟件需求規格說明書(SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發中的重要文檔之一。它具有以下幾個方面的作用:①便于用戶、開發人員進行理解和交流;②反映出用戶問題的結構,可以作為軟件開發工作的基礎和依據;③作為確認測試和驗收的依據。⑸C【解析】算法的復雜度主要包括算法的時間復雜度和空間復雜度。所謂算法的時間復雜度是指執行算法所需要的計算工作量,即算法執行過程中所需要的基本運算的次數;算法的空間復雜度?般是指執行這個算法所需要的內存空間。(6)B【解析】堆排序的比較次數為nlog2n;直接插入排序的比較次數為n(n-1)/2;快速排序的比較次數為nlog2no當數據表A中每個元素(7)B【解析】棧操作原則上"后進先出",棧底至棧頂依次存放元素A、B、C、D,則表明這4個元素中D是最后進棧,B、C處于中間,A最早進棧,所以出棧時一定是先出D,再出C,最后出A。(8)A【解析】數據庫設計包括數據庫概念設計和數據庫邏輯設計兩個方面的內容。⑼A【解析】關系表中,每一行稱為一個元組,對應表中的一條記錄;每一列稱為一個屬性,對應表中的一個字段;在二維表中凡能唯一標識元組的最小屬性集稱為該表的鍵或碼。(10)C【解析】"選課SC"表是"學生S"表和"課程C”表的映射表,主鍵是兩個表主鍵的組合。(1DD【解析】在C語言所有的運算符中,逗號運算符的優先級最低。C語言中區分大小寫,所以APH和aph是兩個不同的變量。賦值表達式a=b表示將b的值付給a,而b本身的值保持不變;通過鍵盤可以向計算機輸入允許的任何類型的數據。選項D)中當從鍵盤輸入數據時,對于整型變量可以輸入整型數值和字符,對于實型變量可以輸入實型數值和整型數值等。(12)B【解析】C語言規定用戶標識符由字母、數字和下劃線組成,且第一個字符必須是字母或下劃線,可見選項C).D)是錯誤的;此外,C語言不允許用戶將關鍵字作為標識符,而選項A)中的void正是C語言的關鍵字。(13)B【解析】C語言的語法規定,字母e(E)之前必須有數字,且e(E)后面的指數必須是整數,而選項B)中,e(E)后面的指數是小數,所以不合法。(14)A【解析】在C語言中,運算符兩側的運算數必須是整型。(15)A【解析】賦值運算符左側的操作數必須是一個變量,而不能是表達式或者常量,選項C)和D)錯誤。運算符兩側都應當是整型數據,選項B)錯誤。(16)D【解析】輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數輸出,所以第一個輸出語句輸出的結果為a,97;第二個輸出語句輸出的結果為k=12。(17)B【解析】C語言的字符以其ASCII碼的形式存在,所以要確定某個字符是大寫字母,只要確定它的ASCII碼在'A利Z之間就可以了,選項A)和C)符合要求。函數isalpha用來確定一個字符是否為字母,大寫字母的ASCII碼值的范圍為65到90,所以如果?個字母的ASCII碼小于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)都為“真"。(19)B【解析】條件運算符要求有3個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式1?表達式2:表達式3其求解順序是:先求解表達式1,若為非0(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值。若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值,注意++、-的用法。(20)B【解析】在一維數組中要注意的是作為下標表達式的常量表達式的值必須是大于等于0,選項B)中定義有5個元素,但賦值時有6個元素,所以是錯誤的。⑵)B【解析】本題中,a[1][2]是二維數組中的第6個元素,對應for循環中i的值為5,p[5]=5+l。(22)B【解析】本題中表示邏輯非運算符,"!="表示不等于運算符,邏輯非運算符比不等于運算符的優先級高。(23)C【解析】對于字符串指針,其保留的是整個串的首地址,即第一個字符的起始地址;當該指針做算術運算時,就是該指針根據其類型向后移動相應的存儲空間。(24)A【解析】數組c[U4]表示?個4行4列數組,c[2]⑵表示第3行第3列上的元素62,*(*(c+l)+l))表示第2行第2列上的元素6,通過十六進制輸出為3e,6。(25)C【解析】選項A)char*a;*a="china"應改為a=china;,選項B)應該是charstr[6];D)項表述方法有錯誤。(26)D【解析】C語言中數組下標是從0開始的,所以二維數組a[2][3]的第一維下標取值為0、1;第二維的下標取值為0、1、2,因而選項A)、B)、C)都是錯誤的,選項D)表示數組元素a[0][0]o(27)D【解析】在格式輸入中,要求給出的是變易的地址,而D)答案中給出的s[l]是一個值的表達式。(28)B【解析】根據宏替換的替換規則,我們可知,f(2)=2*N+l=2*5+l=ll,f(l+l)=l+l*N+l=l+l*5+l=7。(29)D【解析】選項A),共用體的每個成員的起始地址都相同;選項B),共用體變量所占的內存長度等于最長的成員的長度;選項C)因為每個成員的起始地址相同,所以整型數5以浮點型輸出時為5.000000;選項D)C語言規定,不能把共用體變量作為函數的參數。(30)D【解析】將有6個元素的整型數組分兩行輸出到一個文件中,因為輸出的都是數字并且每行都沒有分隔符,所以當再對其進行讀取操作時,每一行都會被認為是一個完整的數,而換行符則作為它們的分隔符。(31)D【解析】通常,引用一個數組元素可以用下標法,如a[p-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數組范圍,注意,數組的下標是從0開始的。(32)C【解析】函數fun(int*s,intnl,intn2)的功能是對數組s中的元素進行首尾互相調換。所以在主函數中,當fun(a,0,3)執行完后,數組凱12]={4,3,2,1,5,6,7,8,9,0);再執行fun(a,4,9),數組2[12]={4,3,2,1,0,9,8,7,6,5};再執行「119,0,9)后,數組2口2]={5,6,7,8,9,0,1,2,3,4}。(33)A【解析】本題題意要求刪除所有空格,即除了空格以外的其他所有字符都要留下。由于C語言中沒有直接刪除字符的操作,所以我們對于刪除字符的操作都是采用”留下"字符的算法,以前的題目亦是如此。用str[i]從串頭到串尾逐一走動,每走到一個字符都判斷其是否為空格,若不是空格(注意在if()的單引號之間有一個空格),則將其保存str[j]中。注意j的下標變化、初值及最后加串結束符'0'。(34)A【解析】本程序考察的是函數的遞歸調用,在調用一個函數的過程中又出現直接或間接地調用該函數本身,稱為函數的遞歸調用,執行結果為1+2+3M+5+6+7+8+9+10=55.(35)C【解析】本題中,格式符0表示的是八進制無符號形式輸出整型數(不帶前導0),字符常量在內存中占一個字節,存放的是acsii碼代碼值。c語言規定,所有字符常量都作為整型量來處理,在計算機內部,其對應的整數值就是ACSII字符集中該字符的序號,即&*s中有幾個字符就輸出幾個*。(36)B【解析】結構體類型的變量在程序運行期間要作為一個整體占用連續的內存單元。(37)C【解析】這是一道考查fread函數的題。buf是一個指針,fread是讀入數據的存放地址;fwrite是輸出數據的地址(以上指的是起始地址).(38)B【解析】本題考查兩個位運算符。按位異或運算符"""是雙目運算符,其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異或時,結果為1。左移運算符"<<"是雙目運算符,其功能把"<<"左邊的運算數的各二進位全部左移若干位,由"<<”右邊的數指定移動的位數,高位丟棄,低位補0,并且“<<”運算符的優先級于(39)A【解析】在C語言中只有自動變量和寄存器變量在使用時才占用內存單元。(40)B【解析】本題考查的是指向函數的指針。語句int(*f)(int);是對一個函數的聲明,其中f是指向該函數的指針,該函數有一個整型的參數,函數返回值類型為整型。二、選擇題⑴【1】輸出【解析】軟件測試用例是為了有效發現軟件缺陷面編寫的包含測試目的、測試步驟、期望測試結果的特定集合。正確認識和設計軟件測試用例可以提高軟件測試的有效性,便于測試質量的度量,增強測試過程的可管理性。軟件測試用例包括:輸入值集和輸出值集。測試用例是軟件測試的核心。⑵【2】前件【解析】在樹形結構中,每一個結點只有一個前件,稱為父結點;沒有前件的結點只有一個,稱為樹的根結點;每一個結點可以有多個后件,它們都稱為該結點的子結點;沒有后件的結點稱為葉子結點。(3)【3】存儲結構【解析】數據的邏輯結構是指反映數據元素之間邏輯關系的數據結構;數據的存儲結構是指數據的邏輯結構在計算機存儲空間中的存放形式。在數據的存儲結構中,不僅要存放各數據元素的信息,還需要存放各數據元素之間前后件關系的信息。[4]?對多(或1:N)【解析】兩個實體集間的聯系實際上是實體集間的函數系,這種函數關系可以有3種,即一對一(1:1)的聯系、-對多(1:N)或多對(N:1)的聯系和多對多(N:N)的聯系。[5]概念設計階段【解析】數據庫設計分為以下6個設計階段:需求分析階段、概念設計階段、邏輯設計階段、物理設計階段、實施階段及數據庫運行和維護階段。[6]N【解析】函數說明語句中的類型名必須與函數返回值的類型一致。本題實現的是在字符A的ASCII碼值上加上一個常數,使之變成另一個ASCII碼值,從而輸出字符。⑺【7】字符串a和b的長度之和【解析】本題首先通過第一個while循環計算字符串a的長度,再通過第二個循環,將字符串a和b相連,最后返回連接后的總長度。⑻【8】!= [9]returnj【解析】本題程序的流程是:讓i,j都從1開始,其中j用于控制刪除后剩下的數中的下標,i用于搜索原數組中的元素。j始終是新數組已有元素中最后一個元素的下一個元素的下標,所以if()中的條件是其中就是新數組中的最后一個元素,若條件成立則表示出現了不同的值,所以a⑴要留到新數組中。注本題中i、j的初值都要從1開始,該算法只能用于數組已排序的題目中。[10]a=2,b=l【解析】本題考查了switch結構的內容。C語言中,程序執行完一個case標號的內容后,如果沒有break語句,控制結構會轉移到卜.一個case繼續執行,因為case常量表達式只是起語句標號作用,并不是在該處進行條件判斷。本題程序在執行完內部switch結構后,繼續執行了外部switch結構的case2:分支,最后a和b的值分別為2和1。[11]31【解析】在函數調用時,形參值的改變,不會改變實參值。[12]*s-*t【解析】兩字符串大小比較必須從它們的首字符開始,在對應字符相等情況下循環,直至不相等結束。相等時,若字符串已到了字符串的結束標記符,則兩字符串相同,函數返回0值;如還有后繼字符,則準備比較下一對字符。對應字符不相同,循環結束。循環結束時,就以兩個當前字符的差返回,所以在空框處應填入*s-*t,保證在s>t時,返回正值,當s<t時,返回負值。[13]22【解析】在main函數中,調用reverse函數將b數組中的前8個成員進行互置,執行完畢后,b數組中的成員為{8,7,6,5,4,3,2,1,9,10},然后再執行for循環結構,將b[6],b[7]...b[9]的值相加,結果為22。[14]PER【解析】本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。[15]“filea.dat",“r”【解析】fopen函數的調用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內容,所以空白處應當填入"filea.dat","r"。一、選擇題在下列各題的A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)軟件是指A)程序B)程序和文檔C)算法加數據結構D)程序、數據與相關文檔的完整集合(2)檢查軟件產品是否符合需求定義的過程稱為A)確認測試B)集成測試C)驗證測試D)驗收測試(3)以下不屬于對象的基本特點的是A)分類性B)多態性C)繼承性D)封裝性(4)在設計程序時,應采納的原則之一是A)不限制goto語句的使用B)減少或取消注解行C)程序越短越好D)程序結構應有助于讀者理解(5)下列敘述中正確的是A)程序執行的效率與數據的存儲結構密切相關B)程序執行的效率只取決于程序的控制結構C)程序執行的效率只取決于所處理的數據量D)以上三種說法都不對(6)數據結構中,與所使用的計算機無關的是數據的A)存儲結構B)物理結構C)邏輯結構D)物理和存儲結構(7)線性表的順序存儲結構和線性表的鏈式存儲結構分別是A)順序存取的存儲結構、順序存取的存儲結構B)隨機存取的存儲結構、順序存取的存儲結構C)隨機存取的存儲結構、隨機存取的存儲結構D)任意存取的存儲結構、任意存取的存儲結構(8)樹是結點的集合,它的根結點數目是A)有且只有1B)1或多于1C)0或1D)至少2(9)下列有關數據庫的描述,正確的是A)數據庫是一個DBF文件B)數據庫是一個關系C)數據庫是一個結構化的數據集合D)數據庫是一組文件(10)數據庫、數據庫系統和數據庫管理系統之間的關系是A)數據庫包括數據庫系統和數據庫管理系統B)數據庫系統包括數據庫和數據庫管理系統C)數據庫管理系統包括數據庫和數據庫系統D)三者沒有明顯的包含關系(11)以下4個選項中,不能看作一條語句的是A);B)a=5,b=2.5,c=3.6;C)if(a<5);D)if(b!=5)x=2;y=6;(12)下面四個選項中,均是不合法的用戶標識符的選項是A)AP_0doB)floatlaO_AC)b-agotointD)_123tempint(13)以下選項中不屬于字符常量的是A)'CzBy,c,,C)f\xCC'D)'\072'(14)設變量已正確定義并賦值,以下正確的表達式是A)x=y*5=x+zB)int(15.8%5)C)x=y+z+5,++yD)x=25%5.0(15)若變量已正確定義并賦值,以下符合C語言語法的表達式是A)a:=b+1B)a=b=c+2C)int18.5%3D)a=a+7=c+b(16)以下程序的運行結果是intk=0;voidfun(intm){m4-=k;k+=m;printf(',m=%dk=%d2m,k++);}main(){inti=4;fun(i++);printf(Hi=%dk=%d\nH,i,k);}A)m=4k=5i=5k=5B)m=4k=4i=5k=5C)m=4k=4i=4k=5D)m=4k=5i=4k=5(17)已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字母的表達式是A)isupper(c)B)'A'v=cv-Z'C)'A'<=c&&c<=zZ'D)c<=(zzf-32)&&('a'-32)<=c(18)設有:inta=1,b=2,c=3,d=4,m=2,n=2;執行(m=a>b)&&(n=c>d)后,n的值是A)1B)2C)3D)4(19)若變量已正確定義,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025西安音樂學院輔導員考試試題及答案
- 2025贛州師范高等專科學校輔導員考試試題及答案
- 2025綿陽飛行職業學院輔導員考試試題及答案
- 2025福州英華職業學院輔導員考試試題及答案
- T/ZGM 001-2021家用和類似用途飲用水凈化裝置用納濾膜元件
- 健康體檢課件下載
- 健康體檢課件2021
- 生蠔文字排版設計
- 溫州體育文化商業傳媒有限公司招聘筆試題庫2025
- 冬季疾病預防指南
- 追索子女撫養費起訴狀
- 六年級數學質量分析PPT
- 土地平整、池塘推土、雜草灌木叢及樹木清除施工方案
- 眼鏡鏡架的整形專業培訓2課件
- 生物質材料及應用淀粉
- 下線儀式串詞策劃
- 通用長期供銷合同范本
- 新版《藥品管理法》解讀課件
- 《社區治理研究國內外文獻綜述(1900字)》
- 2023浙江省學生藝術特長測試A級理論復習資料
- 建筑業企業資質職稱人員相近專業認定目錄
評論
0/150
提交評論