國家二級(C語言)筆試模擬試卷26(共475題)_第1頁
國家二級(C語言)筆試模擬試卷26(共475題)_第2頁
國家二級(C語言)筆試模擬試卷26(共475題)_第3頁
國家二級(C語言)筆試模擬試卷26(共475題)_第4頁
國家二級(C語言)筆試模擬試卷26(共475題)_第5頁
已閱讀5頁,還剩113頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

國家二級(C語言)筆試模擬試卷26(共9套)(共475題)國家二級(C語言)筆試模擬試卷第1套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、對長度為n的線性表進(jìn)行順序查找,在最壞的情況下所需要的比較次數(shù)為______。A、log2nB、n/2C、nD、n+l標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:順序查找的最壞情況是所找的元素在線性表的最后,因此查找的比較次數(shù)是線性表的長度,即n。2、下列描述中正確的是______。A、程序就是軟件B、軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制C、軟件既是邏輯實(shí)體,又是物理實(shí)體D、軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:程序是軟件的一部分,軟件是一種邏輯實(shí)體,它的開發(fā)、運(yùn)行都依賴計(jì)算機(jī)系統(tǒng),因此出現(xiàn)了軟件的移植問題。3、在軟件設(shè)計(jì)中,不屬于過程設(shè)計(jì)工具的是______。A、PDL(過程設(shè)計(jì)語言)B、PAD圖C、N-S圖D、DFD圖標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:DFD(DataFlowDiagram)是數(shù)據(jù)流圖結(jié)構(gòu)化分析的常用工具。軟件設(shè)計(jì)中,常見的過程設(shè)計(jì)工具如下。(1)圖形工具:程序流程圖,N-S,PAD,HIPO(2)表格工具:判定表(3)語言工具:PDL(過程設(shè)計(jì)語言)4、下列敘述中正確的是______。A、程序設(shè)計(jì)就是編制程序B、程序測試必須由程序員自己去做C、程序經(jīng)調(diào)試改錯后還應(yīng)進(jìn)行再測試D、程序經(jīng)調(diào)度改錯后不必進(jìn)行再測試標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:軟件測試包括需求分析、結(jié)構(gòu)功能模塊設(shè)計(jì)、編制程序等階段。程序的測試可以由專門的測試人員來完成。程序經(jīng)調(diào)試改錯后還應(yīng)進(jìn)行再測試。5、以下敘述中正確的是______。A、用C語言實(shí)現(xiàn)的算法必須要有輸入和輸出操作B、用C語言實(shí)現(xiàn)的算法可以沒有輸出但必須要有輸入C、用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出D、用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:根據(jù)算法的特性,算法必須有。個或多個輸入,和1個或多個輸出。6、以下4個選項(xiàng)中,不能被看作是一條語句的是______。A、{;}B、a=0,b=0,c=0;C、if(a>O);D、if(b==0)m=1;n=2;標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:選項(xiàng)D中有兩條語句。7、下列選項(xiàng)中,合法的C語言關(guān)鍵字是______。A、VARB、cherC、integerD、default標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查C語言基本知識。本題中default是C語言的關(guān)鍵字。8、在16位C編譯系統(tǒng)上,若定義longa;,則能給變量a賦值40000的正確語句是______。A、a=20000+20000;B、a=4000*10;C、a=30000+10000;D、a=4000L*1OL;標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題中a是長整型變量,故應(yīng)將一個長整型常量賦值給a,選項(xiàng)A、B、C中的數(shù)值的末尾都沒有加L或1,所以不正確。9、以下程序運(yùn)行后的輸出結(jié)果是______。main(){charm;m=’B’+32;printf("%c\n",m);}A、aB、bC、cD、d標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:字符參與運(yùn)算的值是其對應(yīng)的ASCII碼,小寫英文字符的ASCII值比大寫英文字符的ASCII值大32,執(zhí)行語句m=’B’+32;得出結(jié)果m=66+32=98,以“%c”的格式輸出結(jié)果為b。10、設(shè)有定義:intk=1,m=2;floatf=7;則以下選項(xiàng)中錯誤的表達(dá)式是______。A、k=k>=kB、-k++C、k%int(f)D、k>=f>=m標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:A、D選項(xiàng)是關(guān)系運(yùn)算表達(dá)式,在C語言中,只要關(guān)系運(yùn)算符兩邊是合法的表達(dá)式就可以了。C選項(xiàng)中,%只能對整型進(jìn)行運(yùn)算,其中對f進(jìn)行了強(qiáng)制類型轉(zhuǎn)換,但是轉(zhuǎn)換的表達(dá)式錯了,應(yīng)為:(int)(f)。二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是______。A、abs(x-y)<10B、x-y>-10&&x-y<10C、!(x-y)<-10||!(y-x)>10D、(x-y)*(x-y)<100標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:選擇項(xiàng)C中邏輯運(yùn)算!的優(yōu)先級高于關(guān)系運(yùn)算>、<,因此該表達(dá)式不能正確表示數(shù)學(xué)關(guān)系|x-y|<10。12、以下程序段的輸出結(jié)果是______。inta=1234;printf("%2d\n",a);A、12B、34C、1234D、提示出錯、無結(jié)果標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查printf函數(shù)中附加格式字符的用法。本題中的“2”是附加格式字符,其作用是指定變量a的輸出寬度為兩列,而本題中a的值為1234,已經(jīng)超過兩列,所以按實(shí)際值輸出,正確答案為選項(xiàng)C。13、設(shè)有定義:longx=123456L;,則以下能夠正確輸出變量x值的語句是______。A、printf("x=%d\n",x);B、printf("x=%1d\n",x)C、printf("x=%8dL\n",x);D、printf("x=%LD\n",x);標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:x是長整型變量,因此其輸出格式字符應(yīng)為“%1d”,所以正確答案為選項(xiàng)B。14、有以下程序:main(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}執(zhí)行后輸出結(jié)果是______。A、2B、3C、4D、編譯時有錯,無結(jié)果標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:執(zhí)行if(a>b>c)時,首先判斷a>b的值,5>4結(jié)果為真(C語言中規(guī)定真用1表示),然后比較1>c,結(jié)果為假,執(zhí)行第一個else后的語句,判斷條件(c-1>=d)==1是否成立,即判斷(3-1>=2)==1,結(jié)果為真,所以執(zhí)行printf("%d\n",d+1),輸出結(jié)果3。15、下列條件語句中,功能與其他語句不同的是______。A、if(a)printf("%d\n",x);elseprintf("%d\n",y);B、if(a==0)printf("%d\n",y);elseprintf("%d\n",x);C、if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);D、if(a==0)printf("%d\n",x);elseprintf("%d\n",y);標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題中選項(xiàng)A、選項(xiàng)B和選項(xiàng)C中的if條件語句都是在a==0時輸出y,a!=0時輸出x。16、有以下程序:main(){intI;For(i=0;i<3;i++)switch(i){case0:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}程序運(yùn)行后的輸出結(jié)果是______。A、22111B、21021C、122D、12標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查switch語句的執(zhí)行過程。如果case語句中沒有break語句,則順序執(zhí)行。因此第一次循環(huán)i=0被輸出了3次,i=1被輸出一次,i=2被輸出兩次。17、有以下程序:main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是______。A、42B、45C、56D、60標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:此程序?qū)崿F(xiàn)了將p[1)~p[7]中的奇數(shù)求和的功能,因此,最后的輸出結(jié)果是j=13+15+17=45。18、執(zhí)行下列程序時輸入:123<空格>456<空格>789<回車>,輸出結(jié)果是______。main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}A、123,456,789B、1,456,789C、1,23,456,789D、1,23,456標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:根據(jù)給定的數(shù)據(jù)輸入格式:123<空格>456<空格>789<回車>,第一個scanf語句中,格式字符為“%c”,只能得到一個字符’1’,第二個scanf語句中格式字符為“%d”,變量i得到的數(shù)值為23,第三個scanf語句中格式字符為“%s”,遇到空格就自動結(jié)束,因此字符數(shù)組s得到的是"456\0”。因而正確答案為選項(xiàng)D。19、x、y、z被定義為int型變量,若從鍵盤給x、y、z輸入數(shù)據(jù),正確的輸入語句是______。A、INPUTx、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:選項(xiàng)A和選項(xiàng)D都不是C語言中的輸入方法,選項(xiàng)C中的變量名前面缺少取地址符“&”。20、若有說明語句:inta,b,c,*d=&c;,則能正確從鍵盤讀入3個整數(shù)分別賦給變量a、b、c的語句是______。A、scanf("%d%d%d",&a,&b,d);B、scanf("%d%d%d",&a,&b,&d);C、scanf("%d%d%d",a,b,d);D、scanf("%d%d%d",a,b,*d);標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:scanf函數(shù)中格式控制后面應(yīng)為變量地址列表,因此選項(xiàng)C和選項(xiàng)D都錯誤,選項(xiàng)B中“&d”是指針變量d的地址,與題目不符。由題目可知指針變量d中存放的是變量c的地址,所以正確答案為選項(xiàng)A。三、選擇題(2分)(本題共20題,每題1.0分,共20分。)21、若變量已正確定義,要求程序段完成5!的計(jì)算,不能完成此操作的程序段是______。A、for(i=1,p=1;i<=5;i++)p*=i;B、for(i=1;i<=5;i++){p=1;p*=i;}C、i=1;p=1;while(i<=5){p*=i;i++;}D、i=1;p=1;do{p*=i;i++;}while(i<=5);標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:選項(xiàng)B中每次執(zhí)行循環(huán)體都要執(zhí)行p=1,無法保存上次的運(yùn)算結(jié)果,執(zhí)行完while循環(huán)后p=5。22、有以下程序main(){inti,s=0;for(i=1;i<l0;i+=2)s+=i+1printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是______。A、自然數(shù)1~9的累加和B、自然數(shù)1~10的累加和C、自然數(shù)1~9中奇數(shù)之和D、自然數(shù)1~10中偶數(shù)之和標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題中s=(1+1)+(3+1)+(5+1)+(7+1)+(9+1)=2+4+6=8+10。23、下面程序的功能是輸出以下形式的金字塔圖案:****************main(){inti,j;for(i=1;i<=4;i++;){for(j=1;j<=4-i;j++)printf("");for(j=1;;j<=________;j++)printf("*");printf("\n");}}在下劃線處應(yīng)填入的是______。A、iB、2*i-1C、2*i+1D、i+2標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:根據(jù)題意可知第二個j循環(huán)結(jié)束的條件是第i行打印出的"*"的個數(shù)。24、已定義以下函數(shù):fun(char*p2,char*p1){while((*p2=*p1)!=’\0’){p1++;p2++}}函數(shù)的功能是______。A、將p1所指字符串復(fù)制到p2所指內(nèi)存空間B、將p1所指字符串的地址賦給指針p2C、對p1和p2兩個指針?biāo)缸址M(jìn)行比較D、檢查p1和p2兩個指針?biāo)缸址惺欠裼小痋0’標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:while循環(huán)語句的功能是將p1所指存儲單元的內(nèi)容賦值給p2所指的存儲單元,然后p1++、p2++,分別指向下一個存儲單元,直到p1指向符號串的結(jié)束字符’’\0’為止。故函數(shù)的功能是將p1所指字符串復(fù)制到p2所指內(nèi)存空間。25、有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]=(1,2,3,4,5,6,7,8,9,10),i;sort(aa,10);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}其輸出結(jié)果是______。A、1,2,3,4,5,6,7,8,9,10,B、10,9,8,7,6,5,4,3,2.,1,C、9,2,7,4,5,6,3,8,1,10,D、1,10,3,8,5,6,7,4,9,2,標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:函數(shù)sort的功能是將a[0]、a[2]、a[4]、a[6]和a[8]按照由大到小的次序排序,其他元素值不變。正確答案為C。26、設(shè)有定義:intA,*pA=&A;,以下scanf語句中能正確為變量A讀入的數(shù)據(jù)是______。A、scanf("%d",pA);B、scanf("%d",A);C、scanf("%d",&pA);D、scanf("%d",*pA);標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:選項(xiàng)B中不是變量A的地址,錯誤;選項(xiàng)C是指針pA的地址,錯誤;選項(xiàng)D中*pA表示變量A的值,錯誤。27、有以下程序:#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){charstr[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf(~%s\n",str);}程序運(yùn)行后的輸出結(jié)果是______。A、abcdefB、gfedcbaC、gbcdefaD、abedcfg標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:p=str+strlen(str)/2+1=str+4,f(p,p-2)的功能是將p[4]與p[2]互換,p[5]與p[1]互換,p[6]與p[0]互換,最后的結(jié)果為gfedcba。28、有以下程序:main(){chars[]="\n123\\";printf(%d,%d\n",strlen(s),sizeof(s));}執(zhí)行后的輸出結(jié)果是______。A、賦初值的字符串有錯B、6,7C、5,6D、6,6標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題中定義字符數(shù)組s時沒有指定數(shù)組長度,s初始化后存放的內(nèi)容為"\n123\\\0",其中’\n’和’\\’是轉(zhuǎn)義字符,所以strlen(s)=5,sizeof(s)=6。29、有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf’,"cd"};printf("%d\n",strlen(p[4]));}執(zhí)行后的輸出結(jié)果是______。A、2B、3C、4D、5標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題中p[4]="cd",所以strlen(p[4])=2。30、以下關(guān)于函數(shù)的敘述中正確的是______。A、每個函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))B、每個函數(shù)都可以被單獨(dú)編譯C、每個函數(shù)都可以單獨(dú)運(yùn)行D、在一個函數(shù)內(nèi)部可以定義另一個函數(shù)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:main函數(shù)是不能被其他函數(shù)調(diào)用的,函數(shù)可以單獨(dú)編譯,但不能單獨(dú)運(yùn)行,C語言中,一個函數(shù)內(nèi)部是不能再定義另一函數(shù)的。31、下列函數(shù)定義中,會出現(xiàn)編譯錯誤的是______。A、max(intx,inty,int*z){*z=x>y?x:y;}B、intmax(intx,y){intz;z=x>y?x;y;returnz;}C、max(intx,inty){intz;z=x>y?x:y;return(z);}D、intmax(intx,inty){return(x>y?x:y);}標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題考查函數(shù)的定義。選項(xiàng)B中函數(shù)形參y沒有說明數(shù)據(jù)類型。32、有以下程序:#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序運(yùn)行后的輸出結(jié)果是______。A、運(yùn)行后報(bào)錯B、66C、611D、510標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:指針q沒有指向確定的存儲單元,故不能賦值。33、有以下程序:voidfun(int*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;}fun(a,++i,--j);}}main(){inta[]={1,2,3,4,5,6},i;fun(a,0,5);for(i=0;i<6;i++)printf("%d",a[i]);}執(zhí)行后的輸出結(jié)果是______。A、654321B、432156C、456123D、123456標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查指針變量作函數(shù)形參的問題。指針變量作函數(shù)的形參,實(shí)現(xiàn)的是地址傳遞,形參的改變可以影響實(shí)參。fun由數(shù)的功能是將a所指數(shù)組中的內(nèi)容逆置。在main函數(shù)中調(diào)用fun函數(shù)后,實(shí)參數(shù)組s中元素的值變?yōu)椋篴[0]=6、a[1]=5、a[2]=4、a[3]=3、a[4]=2、a[5]=1。34、有以下程序:voidfun(char*a,char*b){a=b;(*a)++;)main(){charc1=’A’,c2=’a’,*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf("%c%c\n",c1,c2);}程序運(yùn)行后的輸出結(jié)果是______。A、AbB、aaC、AaD、Bb標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題中函數(shù)fun的形參是指針變量,因此實(shí)參與形參之間是地址傳遞,即形參的改變可以影響實(shí)參。main函數(shù)中p1指向c1,p2指向c2,函數(shù)調(diào)用語句fun(p1,p2)的功能是將p2所指存儲單元的內(nèi)容的值加1,即將c2的值加1得c2=’b’,故printf函數(shù)的輸出結(jié)果為Ab。35、有以下程序:voidf(inty,int*x){y=y+*x;*x;=*x+y;}main(){intx=2,y=4;f(y,&x);-printf("%d%d\n",x,y);}執(zhí)行后的輸出結(jié)果是______。A、84B、88C、48D、42標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:函數(shù){的形參Y是簡單變量,x是地址變量,故Y=4,x=2+4+2=836、設(shè)有定義語句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次輸出x數(shù)組6個元素中的值,不能完成此操作的語句是______。A、for(i=0;i<6;i++)printf("%2d",*(p++));B、for(i=0;i<6;i++)printf("%2d",*(p+i));C、for(i=0;i<6;i++)printf("%2d",*p++);D、for(i=0;i<6;i++)printf("%2d",(*p)++);標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:選項(xiàng)D中(*p)++的意思是將p所指向的存儲單元的值加1,與題意不符,錯誤。37、設(shè)有定義:intn=0,*p=&n,**q=&p;,則以下選項(xiàng)中,正確的賦值語句是______。A、p=1;B、*q=2C、q=pD、*p=5標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題中n是int型變量,p是指向int型的指針變量,q是指向指針的指針變量,故正確答案為D。38、已有定義:inti,a[10],*p;;,則合法的賦值語句是______。A、p=100;B、p=a[5];C、p=a[2]+2;D、p=a+2;標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:因p是指針變量,故選項(xiàng)D正確。39、下列選項(xiàng)中正確的語句組是______。A、chars[8];s={"Beijing"};B、char*s;s={"Beijing"};C、chars[8];s="Beiiing";D、char*s;s="Beijing";標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:C語言規(guī)定可以對字符指針變量直接賦字符串常量,但不能給字符數(shù)組直接賦字符串常量,對字符數(shù)組賦字符串常量應(yīng)使用的是strcpy函數(shù)。正確答案為選項(xiàng)D。40、已定義以下函數(shù):fun(int*p){return*p;}該函數(shù)的返回值是______。A、不確定的值B、形參p中存放的值C、形參p所指存儲單元中的值D、形參p的地址值標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:函數(shù)fun的形參是指針變量,*p的含義是指針變量p所指存儲單元的內(nèi)容,因此正確答案為C。四、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)41、問題處理方案的正確而完整的描述稱為【】。標(biāo)準(zhǔn)答案:算法知識點(diǎn)解析:算法給出了問題處理方案的準(zhǔn)確而完整的描述。42、數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊(duì)列屬于【】結(jié)構(gòu)。標(biāo)準(zhǔn)答案:存儲知識點(diǎn)解析:循環(huán)鏈表是在線性鏈表的基礎(chǔ)上增加了一個表頭結(jié)點(diǎn)指向第一個元素,并使鏈表中的最后一個結(jié)點(diǎn)指向表頭結(jié)點(diǎn)形成一個環(huán)狀鏈,它給出了數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)空間的存儲形式,因此是一種存儲結(jié)構(gòu)。43、在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和操作的機(jī)制稱為【】。標(biāo)準(zhǔn)答案:繼承知識點(diǎn)解析:繼承是類間的一種基本關(guān)系,是在某個類的層次關(guān)聯(lián)中不同的類共享屬性和操作的一種機(jī)制。在“is-a”的層次關(guān)聯(lián)中,一個父類可以有多個子類,這些子類都是父類的特側(cè),父類描述了這些子類的公共屬性和操作。一個子類可以繼承它的父類(或祖先類)中的屬性和操作。這些屬性和操作在子類中不必定義,子類中還可以定義它自己的屬性和操作。一個子類只有唯一的一個父類,這種繼承稱為單一繼承。一個子類也可以有多個父類,它可以從多個父類中繼承特性,這種繼承稱為多重繼承。例如,“水陸兩用交通工具”類既可繼承“陸上交通工具”類,又可繼承“水上交通工具”類的特性。44、在進(jìn)行模塊測試時,要為每個被測試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。標(biāo)準(zhǔn)答案:驅(qū)動模塊知識點(diǎn)解析:承接模塊(樁模塊)是用于代替被測試模塊調(diào)用的其他模塊,它僅作少量的數(shù)據(jù)操作,是一個模擬子程序,不必將子模塊的所有功能帶入。45、在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是【】。標(biāo)準(zhǔn)答案:數(shù)據(jù)庫系統(tǒng)知識點(diǎn)解析:數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。(1)人工管理階段。這一階段的計(jì)算機(jī)主要用于科技計(jì)算。外存只有磁帶、卡片和紙帶等,軟件只有匯編語言,尚無數(shù)據(jù)管理方面的軟件。數(shù)據(jù)處理方式是批處理。(2)文件系統(tǒng)階段。文件系統(tǒng)是數(shù)據(jù)庫系統(tǒng)發(fā)展的初級階段,它提供了簡單的數(shù)據(jù)共享與數(shù)據(jù)管理能力,但是它無法提供完整的、統(tǒng)一的管理和數(shù)據(jù)共享的能力。由于它的功能簡單,因此它附屬于操作系統(tǒng)而不能成為獨(dú)立的軟件,目前一般將其看成僅是數(shù)據(jù)庫系統(tǒng)的雛形,而不是真正的數(shù)據(jù)庫系統(tǒng)。(3)數(shù)據(jù)庫系統(tǒng)階段。數(shù)據(jù)庫階段用數(shù)據(jù)模型表示復(fù)雜的數(shù)據(jù)模型,有較高的數(shù)據(jù)獨(dú)立性。數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口,用戶可使用查詢語言或終端命令操作數(shù)據(jù)庫,也可以用程序方式(用COBOL、C一類高級語言和數(shù)據(jù)庫語言編制的程序)操作數(shù)據(jù)庫。數(shù)據(jù)庫管理系統(tǒng)提供了數(shù)據(jù)控制功能。五、填空題(本題共5題,每題1.0分,共5分。)46、若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:fabs函數(shù)功能是求x的絕對值,計(jì)算結(jié)果為double型。pow功艙是計(jì)算x的y次方的值,計(jì)算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。47、沒有char,a,b;,若要通過a&d運(yùn)算屏蔽掉a中的其他位,只保留第2位和第8位(右起為第1位),則b的二進(jìn)制是【】。標(biāo)準(zhǔn)答案:10000010知識點(diǎn)解析:運(yùn)算“&”的規(guī)則是只有當(dāng)兩個相應(yīng)的二進(jìn)制位都為1時,該位的結(jié)果才為1。要保留第2、8位,只要將其與二進(jìn)制數(shù)10000010相與。48、下面程序執(zhí)行后輸出的結(jié)果是【】。intm=13;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;Printf(“%d\n",fun(a,b)/m);}標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m外部變量的值13,因此輸出2。49、下列執(zhí)行后輸出的結(jié)果是【】。main(){intarr[10],i,k=0for(i=0;i<10;i++)atr[i]=ifor(i=1,i<4;i++)k+=arr[i]+i;printf("%d\n",k);}標(biāo)準(zhǔn)答案:12知識點(diǎn)解析:本題的第—個for循環(huán)用于始數(shù)組arr賦初值,第二個for循環(huán)用于求和運(yùn)算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。50、下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結(jié)果是【】main(){inta[10]={1,2,3,4,5,6,7,8,9,0},*p;p=aprintf("%x\n",p);printf("%x\n",p+9);}標(biāo)準(zhǔn)答案:la6知識點(diǎn)解析:對于指針變量的運(yùn)算,就是對地址的運(yùn)算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進(jìn)制輸出的。國家二級(C語言)筆試模擬試卷第2套一、選擇題(1分)(本題共10題,每題1.0分,共10分。)1、下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。A、無序線性表B、線性鏈表C、二叉鏈表D、順序存儲的有序表標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:二分法查找只適用于順序存儲的有序表,表中的元素按值從小到大排列。2、下列敘述中,不屬于設(shè)計(jì)準(zhǔn)則的是()。A、提高模塊獨(dú)立性B、使模塊的作用域在該模塊的控制域中C、設(shè)計(jì)成多入口、多出口模塊D、設(shè)計(jì)功能可預(yù)測的模塊標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:大量軟件設(shè)計(jì)表明,以下的設(shè)計(jì)準(zhǔn)則是可以借鑒為設(shè)計(jì)的指導(dǎo)和對軟件結(jié)構(gòu)圖進(jìn)行優(yōu)化,這些準(zhǔn)則是:提高模塊獨(dú)立性;模塊規(guī)模適中:深度、寬度、扇出和扇入適當(dāng);使模塊的作用域在該模塊的控制域中;應(yīng)減少模塊的接口和界面的復(fù)雜性;設(shè)計(jì)成單入口、單出口的模塊;設(shè)計(jì)功能可預(yù)測的模塊。3、下列隊(duì)列的描述中,正確的是()。A、隊(duì)列屬于非線性表B、隊(duì)列在隊(duì)尾刪除數(shù)據(jù)C、隊(duì)列按“先進(jìn)后出”進(jìn)行數(shù)據(jù)操作D、隊(duì)列按“先進(jìn)先出”進(jìn)行數(shù)據(jù)操作標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:隊(duì)列是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊(duì)頭,允許插入的一端叫做隊(duì)尾。隊(duì)列的操作數(shù)是依據(jù)先進(jìn)先出的原則進(jìn)行的。因此隊(duì)列亦稱作先進(jìn)先出的線性表,或后進(jìn)后出的線性表。4、對下列二叉樹進(jìn)行前序遍歷的結(jié)果為()。A、ABCDEFGHB、ABDGEHCFC、GDBEHACFD、GDHEBFCA標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:暫無解析5、對于長度為n的線性表,在最壞情況下,下列各排序法所對應(yīng)的比較次數(shù)中正確的是()。A、冒泡排序?yàn)閚(n-1)/2B、簡單插入排序?yàn)閚C、希爾排序?yàn)閚D、快速排序?yàn)閚/2標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:暫無解析6、為了使模塊盡可能獨(dú)立,要求()。A、內(nèi)聚程度要盡量高,耦臺程度要盡量強(qiáng)B、內(nèi)聚程度要盡量高,耦合程度要盡量弱C、內(nèi)聚程度要盡量低,耦合程度要盡量弱D、內(nèi)聚程度要盡量低,耦合程度要盡最強(qiáng)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:暫無解析7、下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。A、軟件測試B、概要設(shè)計(jì)C、軟件維護(hù)D、詳細(xì)設(shè)計(jì)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:暫無解析8、數(shù)據(jù)獨(dú)立性是數(shù)據(jù)庫技術(shù)的重要特點(diǎn)之一。所謂數(shù)據(jù)獨(dú)立性是指()。A、數(shù)據(jù)與程序獨(dú)立存放B、不同的數(shù)據(jù)被存放在不同的文件中C、不同的數(shù)據(jù)只能被對應(yīng)的應(yīng)用程序所使用D、以上三種說法都不對標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:暫無解析9、在學(xué)校中,“班級”與“學(xué)生”兩個實(shí)體集之間的聯(lián)系屬于()關(guān)系。A、一對一B、一對多C、多對一D、多對多標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:暫無解析10、軟件調(diào)試的目的是()。A、發(fā)現(xiàn)錯誤B、改善軟件的性能C、改正錯誤D、驗(yàn)證軟件的正確性標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:暫無解析二、填空題(本題共15題,每題1.0分,共15分。)11、若有定義:inta=4,b=5,c=6;然后順序執(zhí)行下列語句后,變量b中的值是()。c=(a-=(b-5));c=(a%3)+(b=1);標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:本題考查的是基本賦值運(yùn)算符和賦值表達(dá)式。a-=(b-5)等價(jià)于a=a-(b-5)=4,c=a=4;a%3=1,c=(a%3)+(b=1)=2,其中b的值被b=1確定為1。12、以下程序運(yùn)行后的輸出結(jié)果是()。main(){inta,b,c;a=10;b=20;c=(a/b<1)&&(a%b<1);printf("%d%d%d\n",a,b,C);}標(biāo)準(zhǔn)答案:10200知識點(diǎn)解析:本題考查的是混合運(yùn)算?!?a/b<1)&&(a%b<1)”的運(yùn)算順序?yàn)椋豪ㄌ枺舅阈g(shù)運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算符。其中a%b=10,a,b=0,所以a%b<1的值為0,a/b<1的值為1,故整個表達(dá)式的結(jié)果為0,所以輸出的a,b,c的值為10200。13、以下程序運(yùn)行后的輸出結(jié)果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}標(biāo)準(zhǔn)答案:62知識點(diǎn)解析:本題考查的是宏定義。帶參數(shù)的宏定義是按#indefine命令行中指定的字符串從左到右進(jìn)行轉(zhuǎn)換。本題中替換的式子為:6+8*6+8,代入i,j的值得到62。14、以下程序中,fun函數(shù)的功能足求3行4列二維數(shù)組每行尢素中的最大值。請?zhí)羁?。voidfun(int,int,int(*)[4],int*);main(){inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;fun(3,4,a,B);for(i=0;j<3;i++)printf("%4d",b[i]);printf("\n");}voidfun(intm,intn,intar[][4],int*br){inti,j,x;for(i=0;i<m;i++){x=ar[i][0];for(j=0;j<n;j++)if(())x=ar[i][j];br[i]=x;}}標(biāo)準(zhǔn)答案:x<ar[i][j]知識點(diǎn)解析:本題考查的是循環(huán)的嵌套。本題定義了二維數(shù)組a,存放3行4列的數(shù)組元素,定義了,一維數(shù)組b用于存放每行的最大數(shù)。存函數(shù)fun中,通過二重for循環(huán)求每行的最大數(shù),外層for循環(huán)用于控制行數(shù),內(nèi)層for循環(huán)用于控制列數(shù)。當(dāng)外層循環(huán)執(zhí)行一次時,內(nèi)層循環(huán)則執(zhí)行4次,并求出了這一行的最大值x,最后將每一行求出最大值x賦值給存放最大值的數(shù)組br,故本題答案為x<ar[i][j]。15、下面程序的功能是:輸出100以內(nèi)能被4整除且個位數(shù)為8的所有整數(shù),請?zhí)羁铡ain(){inti,j;for(i=0=();i++){j=i*10+8;if(j%4!=0)continue;printf("%d",j);}}標(biāo)準(zhǔn)答案:i<10知識點(diǎn)解析:分析程序:當(dāng)(i=0,1,2,…)時,“j=i*10+8”語句的運(yùn)行結(jié)果是(8,18,28,…)個位數(shù)字為8的所有整數(shù);題中要求是100以內(nèi)的整數(shù),所以i<10;“if(j%4!=0)continue;”語句的功能是當(dāng)條件不能被4整除時,繼續(xù)循環(huán)不執(zhí)行操作,直到能被4整除時輸出該數(shù),所以輸出的數(shù)滿足條件100以內(nèi)能被4整除且個位數(shù)為8。16、以下程序的輸出結(jié)果是()。#include<stdio.h>fun(){staticinta=0;a+=3;printf("%d",A);}main(){intcc;for(cc=1;cc<5;cc++)fun();printf("\n");}標(biāo)準(zhǔn)答案:36912知識點(diǎn)解析:本題考查最基本的for循環(huán)。for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3,即每次a的值增加3,但因?yàn)閒un函數(shù)中變量a為static類型,所以每次調(diào)用完子函數(shù)之后,變量a所做的改變都要保存。17、下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>#defineSIZE12main(){chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]=’A’+i+32;sub(s,5,SIZE-1);for(i=0;i<SIZE;i++)printf("%c",s[i]);printf("\n");}sub(char*a,intt1,intt2){charch;while(t1<t2){ch=*(a+t1);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--;}}標(biāo)準(zhǔn)答案:abcdelkjihgf知識點(diǎn)解析:本題先給字符型數(shù)組s的12個元素賦值a到1的12個字母,函數(shù)sub(shar*a,intt1,intt2)的功能是將數(shù)組a的從第t1+1個元素到t2+1個元素進(jìn)行逆置,在主函數(shù)中調(diào)用sub(s,5,SIZE-1)函數(shù),是將數(shù)組s的第6個元素到第12個元素進(jìn)行逆置,其他元素位置不變。18、下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){chara[80],*p="AbabCDcd";inti=0,j=0;while(*(p++)!=’\0’){if(*p>=’a’&&*p<=’z’){a[i]=*p;i++;}}a[i]=’\0’;puts(A);}標(biāo)準(zhǔn)答案:babcd知識點(diǎn)解析:C語言中“\0”表示字符串的結(jié)束。程序?qū)指針指向字符串“AbabCDcd”的首地址,循環(huán)開始后若指針不是指向當(dāng)前字符串的結(jié)束標(biāo)志位,則進(jìn)入循環(huán)體。循環(huán)中每次檢驗(yàn)字符串中字母是否在’a’與’z’之間,若滿足則將當(dāng)前值賦值給數(shù)組a,最后給數(shù)組添加字符結(jié)束標(biāo)志。此程序可以篩選出字符串中的小寫字母。19、“printf("%d\n",strlen("\t\"\023\xAB\nC"));”語句的輸出結(jié)果是()。標(biāo)準(zhǔn)答案:6知識點(diǎn)解析:strlen()函數(shù)的作用是計(jì)算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志’\0’。’\t’是轉(zhuǎn)義字符,代表橫向跳若干格;’\"’是轉(zhuǎn)義字符,代表雙引號:’\023’也只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個符;’\xAB’是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個字符;’\n’是轉(zhuǎn)義字符,代表回車換行。題中語句中的字符串有5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。20、下面程序的運(yùn)行結(jié)果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}標(biāo)準(zhǔn)答案:55知識點(diǎn)解析:分析程序執(zhí)行過程,第一次循環(huán)時,j=3,i=5,因?yàn)閟witch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5;第二次循環(huán)時,j=2,i=4,因?yàn)閟witch(2),所以執(zhí)行case2,調(diào)用P(a[i++])=P(a[4])=P(5),輸出5,之后i自加等于5。21、在算法正確的前提下,評價(jià)一個算法的兩個標(biāo)準(zhǔn)是空間復(fù)雜度和()。標(biāo)準(zhǔn)答案:時間復(fù)雜度知識點(diǎn)解析:在算法正確的前提下,評價(jià)一個算法的兩個標(biāo)準(zhǔn)是空間復(fù)雜度和時間復(fù)雜度。算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。算法的空間復(fù)雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。22、二叉樹的遍歷可以分為三種:前序遍歷、()遍歷和后序遍歷。標(biāo)準(zhǔn)答案:中序知識點(diǎn)解析:二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前序遍歷是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹;并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。后序遍歷指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根23、軟件危機(jī)出現(xiàn)于20時紀(jì)60年代末,為了解決軟件危機(jī),人們提出了()的原理來設(shè)計(jì)軟件,這就是軟件工程誕生的基礎(chǔ)。標(biāo)準(zhǔn)答案:軟件工程學(xué)知識點(diǎn)解析:為了消除軟件危機(jī),通過認(rèn)真研究解決軟件危機(jī)的方法,認(rèn)識到軟件工程是使計(jì)算機(jī)軟件走向工程科學(xué)的途徑。逐步形成了軟件工程的概念,開辟了工程學(xué)的新興領(lǐng)域——軟件工程學(xué)。24、()是指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨(dú)立的,也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不變。標(biāo)準(zhǔn)答案:邏輯獨(dú)立性知識點(diǎn)解析:數(shù)據(jù)獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和邏輯獨(dú)立性。物理獨(dú)立性是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨(dú)立的。數(shù)據(jù)在磁盤上的數(shù)據(jù)庫中怎樣存儲是由DBMS管理的,用戶程序不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣當(dāng)數(shù)據(jù)的物理存儲改變時。應(yīng)用程序不用改變。邏輯獨(dú)立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨(dú)立的,也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不變。25、程序測試分為靜態(tài)測試和動態(tài)測試。其中()是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。標(biāo)準(zhǔn)答案:靜態(tài)測試知識點(diǎn)解析:暫無解析國家二級(C語言)筆試模擬試卷第3套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、算法的時間復(fù)雜度是指A、執(zhí)行算法程序所需要的時間B、算法程序的長度C、算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)D、算法程序中的指令條數(shù)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:算法的復(fù)雜度主要包括算法的時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,即算法執(zhí)行過程中所需要的基本運(yùn)算的次數(shù);算法的空間復(fù)雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。2、常采用的兩種存儲結(jié)構(gòu)是()。A、順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)B、散列方法和索引方式C、鏈表存儲結(jié)構(gòu)和數(shù)組D、線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:線性表的存儲通常要用兩種存儲結(jié)構(gòu):順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。3、下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是A、便于用戶、開發(fā)人員進(jìn)行理解和交流B、反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)C、作為確認(rèn)測試和驗(yàn)收的依據(jù)D、便于開發(fā)人員進(jìn)行需求分析標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:軟件需求規(guī)格說明書(SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它具有以下幾個方面的作用:①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測試和驗(yàn)收的依據(jù)。4、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)是一種______的存儲結(jié)構(gòu)。A、隨機(jī)存儲B、順序存儲C、索引結(jié)構(gòu)D、散列結(jié)構(gòu)標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中的每一個存儲結(jié)點(diǎn)不僅含有一個數(shù)據(jù)元素,還包括指針,每一個指針指向一個與本結(jié)點(diǎn)有邏輯關(guān)系的結(jié)點(diǎn)。此類存儲方式屬于順序存儲。5、下列敘述中正確的是()。A、黑箱(盒)測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征B、黑箱(盒)測試方法主要考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征C、白箱(盒)測試不考慮程序內(nèi)部的邏輯結(jié)構(gòu)D、上述3種說法都不對標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例,選項(xiàng)A是正確的,選項(xiàng)B錯誤。白箱測試是根據(jù)對程序內(nèi)部邏輯結(jié)構(gòu)的分析來選取測試用例,選項(xiàng)C錯誤。6、設(shè)a=2、b=3、c=4,則表達(dá)式a+b>c&&b==c&&a||b+c&&b+c的值為______。A、5B、8C、0D、1標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:暫無解析7、下列程序的輸出結(jié)果是______。#include<stdio.h>main(){inti=1,j=3;printf("%d,",i++);{inti=0;i+=j*2;printf("%d,%d,",i,j);}printf("%d,%d\n",i,j);}A、1,6,3,1,3B、1,6,3,2,3C、1,6,3,6,3D、1,7,3,2,3標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:暫無解析8、已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為A、GEDHFBCAB、DGEBHFCAC、ABCDEFGHD、ACBFEDHG標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:利用前序和中序遍歷的方法可以確定二叉樹的結(jié)構(gòu),具體步驟如下:①前序遍歷的第一個結(jié)點(diǎn)A為樹的根結(jié)點(diǎn);②中序遍歷中A的左邊的結(jié)點(diǎn)為A的左子樹,A右邊的結(jié)點(diǎn)為A的右子樹;③再分別對A的左右子樹進(jìn)行上述兩步處理,直到每個結(jié)點(diǎn)都找到正確的位置。9、數(shù)據(jù)庫的物理設(shè)計(jì)是為一個給定的邏輯結(jié)構(gòu)選取一個適合應(yīng)用環(huán)境的______的過程,包括確定數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)和存取方法。A、邏輯結(jié)構(gòu)B、物理結(jié)構(gòu)C、概念結(jié)構(gòu)D、層次結(jié)構(gòu)標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:根據(jù)數(shù)據(jù)庫物理設(shè)計(jì)的概念可知:為一個給定的邏輯數(shù)據(jù)模型選取一個最合適應(yīng)用要求的物理結(jié)構(gòu)的過程,就是數(shù)據(jù)庫的物理設(shè)計(jì)。數(shù)據(jù)庫的物理結(jié)構(gòu)就是指數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法。10、對建立良好的程序設(shè)計(jì)風(fēng)格,下列描述正確的是()。A、程序應(yīng)該簡單、清晰、可讀性好B、符號名的命名只需要符合語法C、充分考慮程序的執(zhí)行效率D、程序的注釋可有可無標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:“清晰第一,效率第二”,在考慮到程序的執(zhí)行效率的同時,一定要保證程序清晰、可讀;對符號名的命名,除了要符合語法要求外,還要具有一定的含義;程序的注釋可以幫助程序員理解程序,不是可有可無的。二、選擇題(1分)(本題共11題,每題1.0分,共11分。)11、下列關(guān)于函數(shù)的敘述中正確的是()。A、每個函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))B、每個函數(shù)都可以被單獨(dú)編譯C、每個函數(shù)都可以單獨(dú)運(yùn)行D、在一個函數(shù)內(nèi)部可以定義另一個函數(shù)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:在C語言中,函數(shù)定義是平行的,函數(shù)不能嵌套定義,即函數(shù)之間沒有從屬關(guān)系。雖然函數(shù)之間可以相互調(diào)用,但main()函數(shù)不能被調(diào)用,選項(xiàng)A錯誤:C程序從main()函數(shù)開始執(zhí)行,當(dāng)main()數(shù)執(zhí)行完畢時,整個程序就結(jié)束了。c程序的執(zhí)行必須從main()函數(shù)開始,選項(xiàng)C選項(xiàng)錯誤;函數(shù)不能嵌套定義,選項(xiàng)D錯誤。12、設(shè)a和b均為int型變量,且a:6、b=11、c=3,則能使值為3的表達(dá)式是()。A、b%(c%4)B、b%(c-a%5)C、b%a-a%5D、(b%a)-(a%4)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題首先判斷a>b,當(dāng)a>b時結(jié)果等于a,否則等于“d>c?d:b”,因?yàn)閍>b,所以直接輸出a的值,注:這里“a:d>c?d:b”是用來干擾考生的。13、在下述程序中,判斷i>j共執(zhí)行的次數(shù)是()。main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf(“%d”,s);break;}s+=i:}}A、4B、7C、5D、6標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題考查的是結(jié)構(gòu)和數(shù)組元素所占的字節(jié)數(shù)。題目中定義的結(jié)構(gòu)st因?yàn)榘瑇、y、z這3個元素,所以slze(structst)=2+2+2=6;而聯(lián)合體所占的字節(jié)數(shù),由于最后存入的元素會把前面存入的元素覆蓋掉,所以聯(lián)合體所占的字節(jié)數(shù)就是占據(jù)最多存儲單元的元素所占的字節(jié)數(shù),sizeof(un)=sizeof(long)=4。14、在關(guān)系中凡能惟一標(biāo)識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的()。A、連接碼B、關(guān)系碼C、外碼D、候選碼標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:在關(guān)系中凡能惟一標(biāo)識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個作為用戶使用的鍵稱為主鍵或主碼。15、下列程序執(zhí)行后的輸出結(jié)果是()。voidfune(int*a,intb[]){b[0]=*a+b;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}A、6B、7C、8D、9標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查函數(shù)的調(diào)用,從主函數(shù)傳遞到調(diào)用函數(shù)中,*a的值為0,因此當(dāng)執(zhí)行完調(diào)用函數(shù)后,b[0]的值為6。16、下列程序執(zhí)行后的輸出結(jié)果是()。main(){inta[3][3],*p,i}.p=&a[0][0];for(i=p;i<9;i++)p[i]=i+1;printf("%d\n”,a[1][2]);}A、3B、6C、9D、隨機(jī)數(shù)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:程序執(zhí)行在for循環(huán),當(dāng)i=p,時.i中放的是p的地址,類型不符合,因此輸出隨機(jī)數(shù),故選擇D選項(xiàng)。17、有定義語句:intb;charc[10];,則正確的輸入語句是()。A、scanf("%d%s",&b,&c);B、scanf("%d%s",&b,c);C、scanf("%d%s",b,c);D、scanf("%d%s",b,&c);標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:本題中4個選項(xiàng)的格式控制字符串都是“%d%s”,其中包括兩個格式控制符%d和%s,它們分別表示輸入一個十進(jìn)制整數(shù)和輸入一個字符串,其對應(yīng)的參數(shù)應(yīng)該分別為一個整型變量的地址和一個字符型數(shù)組的首地址。變量的地址可以通過對變量做取地址(&)運(yùn)算來得到,而字符型數(shù)組的首地址則可以直接通過數(shù)組名來得到。所以,4個選項(xiàng)中選項(xiàng)B符合題意。18、表達(dá)式18/4*sqrt(4.0)/8值的數(shù)據(jù)類型為______。A、intB、floatC、doubleD、不確定標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:根據(jù)數(shù)據(jù)類型轉(zhuǎn)換時的就長轉(zhuǎn)換規(guī)則,可以得到最后的結(jié)果應(yīng)是實(shí)型。19、表達(dá)式(double)(20/3)的值為()A、6B、6C、2D、3標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:暫無解析20、下面程序輸出的結(jié)果是______。main(){inti=5,j=9.x;x=(i==j?i:(j==7));printf("\n%d,%d",i,j);}A、5,7B、5,5C、語法錯誤D、7,5標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3;先求解表達(dá)式1,若為真則求解表達(dá)式2;若表達(dá)式1的值為假,則求解表達(dá)式3。本題中先判斷i==j不等,執(zhí)行j=7。然后執(zhí)行x=7。故本題為A。21、設(shè)有定義:10ngx=-123456L,則以下能夠正確輸出變量x值的語句是()。A、printf("x=%d\n",x);B、printf("x=%1d\n",x);C、peintf("x=%8dL\n",x);D、printf(’x=%LD\n",x);標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:x為一個長整型的變量,而且是一個十進(jìn)制的數(shù),它的輸出控制符是%1d,所以排除選項(xiàng)A和選項(xiàng)C;由于C語言中是區(qū)分大小寫的,1d中的d不能為大寫,故排除選項(xiàng)D。4個選項(xiàng)中B正確。三、選擇題(2分)(本題共20題,每題1.0分,共20分。)22、整型變量X和Y的值相等,且為非0值,則以下選項(xiàng)中結(jié)果為0的表達(dá)式是______。A、X||YB、X|YC、X&YD、X^Y標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:“||”為或運(yùn)算符,當(dāng)其左右表達(dá)式中只要—個為非零則整個表達(dá)式的值1。|是按位或,&是按位與,^是按位異或,這三位運(yùn)算符是按值的二進(jìn)制位來比較的。23、若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*#p;p=&St;A、st.iB、*p.iC、(*p).iD、p->i標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價(jià)的指針形式即(*p).i和p->i。24、下列敘述中正確的是()。A、break語句只能用于switch語句體中B、continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)C、break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)D、在循環(huán)體內(nèi)使用break語句和continue語句的作用相同標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。當(dāng)break出現(xiàn)在循環(huán)體的switch語句體內(nèi)時,其作用只是跳出該switch語句體,并不能中止循環(huán)體的執(zhí)行。若想強(qiáng)行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語句中設(shè)置break語句,滿足某種條件,則跳出本層循環(huán)體。25、有以下程序#includemain(){FILE*fp;intk,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是A、12B、14C、1234D、123456標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:將有6個元素的整型數(shù)組分兩行輸出到一個文件中,因?yàn)檩敵龅亩际菙?shù)字并且每行都沒有分隔符,所以當(dāng)再對其進(jìn)行讀取操作時,每一行都會被認(rèn)為是一個完整的數(shù),而換行符則作為它們的分隔符。26、在C語言中,函數(shù)調(diào)用時()。A、實(shí)參和形參各占獨(dú)立的存儲單元B、實(shí)參和形參共用存儲單元C、由系統(tǒng)自動確定實(shí)參和形參是否共用存儲單元D、由用戶指定實(shí)參和形參是否共用存儲單元標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。函數(shù)的形參是函數(shù)定義時由用戶定義的形式上的變量,實(shí)參是函數(shù)調(diào)用時,主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。在函數(shù)調(diào)用時,實(shí)參和其所對應(yīng)的形參分別占用不同的存儲單元,彼此之間不影響。27、以下程序運(yùn)行后,輸出結(jié)果是#definePT5.5#defineS(x)PT*x*x#includemain(){inta=1,b=2;printf("%4.1f\n",S(a+b));}A、49.5B、9.5C、22D、45標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:考查宏替換的使用。宏替換用"#define宏名宏體"的形式來定義。在進(jìn)行編譯預(yù)處理時,將把程序中宏定義之后的所有宏名用宏體替換。宏雖然可以帶參數(shù),但宏替換過程中不像函數(shù)那樣要進(jìn)行參數(shù)值的計(jì)算、傳遞及結(jié)果返回等操作;宏替換只是簡單的字符替換,不進(jìn)行計(jì)算,因而本題中的S(a+b)進(jìn)行宏替換后為PT*1+2*1+2=5.5*1+2*1+2=9.5。28、下列選項(xiàng)中,能夠滿足“若字符串s1等于字符串s2,則執(zhí)行ST”要求的是()。A、if(strcmp(s2,s1)==0)ST;B、if(s1===s2)ST;C、if(strcpy(s1,s2)==1)ST;D、if(s1,s2==0)ST;標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:strcmp(char*,char*),函數(shù)strcmp用于比較兩個字符串的長度,長者為大,若字符個數(shù)也一樣,則從左至右依次比較相同位上的字符,字符大小按ASCⅡ表值計(jì)算,直到最后一個字符,若還相同,則兩個字符串相等,返回值0。選項(xiàng)A中if(strcmp(s2,s1)=0)ST,若s2等于s1,則返回值0,0等于0,所以邏輯表達(dá)式strcmp(s2,s1)=0為真執(zhí)行ST。29、在一個C源程序文件中,若要定義一個只允許本源文件中所有函數(shù)使用的全局變量,則該變量使用的存儲類別是______。A、externB、registerC、autoD、static標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:暫無解析30、以下程序的功能是:按順序讀入10名學(xué)生4門課程的成績,計(jì)算出每位學(xué)生的平均分并輸出,程序如下:main(){intn.k;floatscore.sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf("%f",&score);sum+=score;}ave=sum/4.0;printf("NO%d:%f\n",n,ave);}}上述程序運(yùn)行后結(jié)果不正確,調(diào)試中發(fā)現(xiàn)有—條語句出現(xiàn)在程序中的位置不正確。這條語句是A、sum=0.0;B、sum+=score;C、ave=sun/4.0;D、printf("NO%d:%f\n",n,ave);標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:程序中使用了兩層for循環(huán),外層循環(huán)的作用是控制人數(shù),循環(huán)一次是求一個人的成績和,然后除以4得到平均成績。每個人的成績總和一開始時都必須清0,否則就會出現(xiàn)后面人的總成績越來越大?!皊um=0.0”;應(yīng)在外層循環(huán)中。選項(xiàng)A正確。31、以下敘述中正確的是()。A、全局變量的作用域一定比局部變量的作用域范圍大B、靜態(tài)(static)類別變量的生存期貫穿于整個程序的運(yùn)行期間C、函數(shù)的形參都屬于全局變量D、未在定義語句中賦初值的auto變量和static變量的初值都是隨機(jī)值標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:若在函數(shù)中定義與全局變量名字相同局部變量,則全局變量在該函數(shù)中將不起作用,因此全局變量的作用域并不一定比局部變量的作用域大,故選項(xiàng)A不正確;靜態(tài)變量一旦定義,將在整個程序的運(yùn)行期間都存在,故選項(xiàng)B正確;函數(shù)的形參只在函數(shù)調(diào)用的時候分配存儲空間,在退出函數(shù)時收回存儲空間,因此是局部的,故選項(xiàng)C不正確;沒有賦值的auto型變量的初值是隨機(jī)的,沒有賦值的static型變量的初值是0,故選項(xiàng)D不正確。所以,B選項(xiàng)為所選。32、以下程序執(zhí)行后sum的值是______。main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}A、15B、14C、不確定D、0標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:變量sum在使用時未賦初值,所以無法確定sum最終的值。33、根據(jù)下面的定義,能打印出字母M的語句是()。structperson{charname[9];intage;};structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};A、printf("%c\n",class[3].name};B、printf("%c\n",class[2].name[0]);C、printf("%c\n",class[3].name[1]);D、printf("%c\n",class[2].name[1]);標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:在結(jié)構(gòu)體數(shù)組class[10]的初始化列表中只有第5個初始值中包含大寫字母M,而該結(jié)構(gòu)體只有兩個成員變量,所以每兩個初始值初始化一個數(shù)組元素,故第5個初始值是屬于第3個數(shù)組元素class[2]的前一個成員變量的,選項(xiàng)A和C不正確。又因?yàn)椤甅’是“Mary”的第一個元素,所以應(yīng)該輸出class[2]的name[0],B是正確答案。34、若有如下程序:main(){chara[]={"1234"};inti,t=0;for(i=0;a[i]>=’0’&&a[i]<=’9’;i+=2)t=10*t+a[i]一-’0’;printf("%d\n’,t);}則程序運(yùn)行后的輸出結(jié)果是()。A、13B、1234C、24D、123標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:程序中首先以字符串常量定義并初始化了一個字符數(shù)組a,此時數(shù)組a包含5個元素{’1’,’2’,’3’,’4’,’\0’},然后定義了一個變量t,并初始化為0。接下來是一個for循環(huán),循環(huán)變量i從0開始每次遞增2,循環(huán)條件a[i]是一個數(shù)字字符。因?yàn)閍[0]、a[2]分別是數(shù)字字符’1’、’3’而a[4]不是,所以循環(huán)體執(zhí)行了兩次,第一次執(zhí)行前t為0,執(zhí)行后t=10*t+a[i]-’0’=10*0+’1’-’0’=1,所以第二次執(zhí)行結(jié)果為t=10*t+a[i]-’0’=10*1+’3’-’0’=13。程序運(yùn)行后的輸出結(jié)果是13,本題選A。35、以下程序的輸出結(jié)果是#include<stdio.h>#include<string.h>main(){charb1[8]=“abcdefg”,b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pb);printf(“%d\n”,strlen(b2));}A、8B、3C、1D、7標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:strcpy()函數(shù)的作用是把第二個參數(shù)代表的字符串,復(fù)制到第一個參數(shù)指向數(shù)組中。首先定義了兩個字符數(shù)組b1和b2,并用一個字符串給b1賦初值,然后定義了一個字符型指針變量pb,通過賦初值使它指向b1[3]。接著執(zhí)行while循環(huán),該循環(huán)執(zhí)行了3次:第一次判斷條件“--pb>=b1”,使pb的值為“b1+2”,執(zhí)行“strcpy(b2,pb);”后,b2中的內(nèi)容為“cdefg”;第二次判斷條件“--pb>=b”,使pb的值為“b1+1”,執(zhí)行“strcpy(b2,pb);”后b2的內(nèi)容為“bcdefg”第三次判斷條件“--pb>:b1”使pb的值為“b1”,執(zhí)行“strcpy(b2,pb);”后b2的內(nèi)容為“abcdefg”。最后輸出b2數(shù)組中存放的字符串長度,顯然是7。(這里還有一個關(guān)鍵點(diǎn):就是每當(dāng)執(zhí)行一次while循環(huán)判斷條件,就執(zhí)行一次“--pb”,使得指針pb自減1,即前移一位)。36、執(zhí)行下面語句后的輸出結(jié)果為()inti=-1;if(i<=0)print{("****\n");elseprintf("%%%%\n");A、****B、%%%%%C、%%%%cD、有語法錯誤,不能正確執(zhí)行標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:暫無解析37、若有說明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。A、2B、3C、4D、無確定值標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當(dāng)初值的個數(shù)能被第二維的常量表達(dá)式的值除盡時,所得商數(shù)就是第一維的大小:②當(dāng)初值的個數(shù)不能被第二維的常量表達(dá)式的值除盡時,第一維的大小等于所得商數(shù)加1。38、設(shè)有程序段:intk=12;while(k=1)k=k-1;則下列描述中正確的是()。A、while循環(huán)執(zhí)行10次B、循環(huán)是無限循環(huán)C、循環(huán)體語句一次也不執(zhí)行D、循環(huán)體語句執(zhí)行一次標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:本題考查while循環(huán)。while循環(huán)的控制表達(dá)式k=1是個賦值表達(dá)式而不是邏輯表達(dá)式,所以循環(huán)體一次也不執(zhí)行。39、有以下程序main(){char*p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};printf(“%d\n”,strlen(p[4]));}執(zhí)行后輸出結(jié)果是()A、2B、3C、4D、5標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)組指針p[4]指向字符串"cd",所以其長度為2。40、有以下程序main(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是______。A、輸出字符a的ASCⅡ碼B、輸出字符c的ASCⅡ碼C、輸出字符cD、程序出錯標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:此題中s是—個字符數(shù)組,而字符數(shù)紐是在編繹時為它分配內(nèi)存單元的,即此字符數(shù)組的地址在編譯時是確定的,所以對此地址變量并不能賦值,故語句“s+=2;”錯誤,故程序出錯。41、有以下程序#include<stdio.h>main(){FILE*fp;intk,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.daf","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是A、12B、14C、1234D、123456標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:將有6個元素的整型數(shù)組分兩行輸出到一個文件中,因?yàn)檩敵龅亩际菙?shù)字并且每行都沒有分隔符,所以當(dāng)再對其進(jìn)行讀取操作時,每一行都會被認(rèn)為是一個完整的數(shù),而換行符則作為它們的分隔符。故本題答案為D)。四、公共基礎(chǔ)填空題(本題共4題,每題1.0分,共4分。)42、按照“先進(jìn)先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。A、隊(duì)列標(biāo)準(zhǔn)答案:知識點(diǎn)解析:隊(duì)列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊(duì)尾”,刪除元素的一端叫做“隊(duì)頭”,先插入的元素先被刪除,是按先進(jìn)先出的原則組織數(shù)據(jù)的。43、關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實(shí)體完整性、【】和自定義完整性。標(biāo)準(zhǔn)答案:參照完整性知識點(diǎn)解析:關(guān)系模型允許定義三類數(shù)據(jù)約束,它們是實(shí)體完整性、參照完整性以及用戶定義的完整性約束,其中前兩種完整性約束由關(guān)系數(shù)據(jù)庫系統(tǒng)自動支持。實(shí)體完整性約束要求關(guān)系的主鍵中屬性值不能為空,這是數(shù)據(jù)庫完整性的最基本要求,因?yàn)橹麈I是惟一決定元組的,如為空則其準(zhǔn)一性就成為不可能的了。參照完整性約束是關(guān)系之間相關(guān)聯(lián)的基本約束,它不允許關(guān)系引用不存在的元組:即在關(guān)系中的外鍵要么是所關(guān)聯(lián)關(guān)系中實(shí)際存在的元組,要么是空值。自定義完整性是針對具體數(shù)據(jù)環(huán)境與應(yīng)用環(huán)境由用戶具體設(shè)置的約束,它反映了具體應(yīng)用中數(shù)據(jù)的語義要求。44、按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。標(biāo)準(zhǔn)答案:線性結(jié)構(gòu)知識點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊(duì)列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。45、線性表的存儲結(jié)構(gòu)主要分為順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。隊(duì)列是一種特殊的線性表,循環(huán)隊(duì)列是隊(duì)列的【】存儲結(jié)構(gòu)。標(biāo)準(zhǔn)答案:順序知識點(diǎn)解析:本題考查數(shù)據(jù)結(jié)構(gòu)的隊(duì)列。隊(duì)列是一種特殊的線性表,即限定在表的一端進(jìn)行刪除,在表的另一端進(jìn)行插入操作的線性表。允許刪除的一端叫做隊(duì)頭,允

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論