![2022年福建省三明市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第1頁](http://file4.renrendoc.com/view/59120cdb207cfa7efa09cbcf17197954/59120cdb207cfa7efa09cbcf171979541.gif)
![2022年福建省三明市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第2頁](http://file4.renrendoc.com/view/59120cdb207cfa7efa09cbcf17197954/59120cdb207cfa7efa09cbcf171979542.gif)
![2022年福建省三明市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第3頁](http://file4.renrendoc.com/view/59120cdb207cfa7efa09cbcf17197954/59120cdb207cfa7efa09cbcf171979543.gif)
![2022年福建省三明市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第4頁](http://file4.renrendoc.com/view/59120cdb207cfa7efa09cbcf17197954/59120cdb207cfa7efa09cbcf171979544.gif)
![2022年福建省三明市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第5頁](http://file4.renrendoc.com/view/59120cdb207cfa7efa09cbcf17197954/59120cdb207cfa7efa09cbcf171979545.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022年福建省三明市全國計(jì)算機(jī)等級考試
C語言程序設(shè)計(jì)測試卷(含答案)學(xué)校: 班級: 姓名: 考號: 一、2.填空題(10題)面向?qū)ο蟮哪P椭?,最基本的概念是對象?O以下程序的輸出結(jié)果是【]omain(){unsignedshorta=65536;intb;printfC%d\nu,b=a);)關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括選擇、連接和【】。設(shè)一棵完全二叉樹共有700個結(jié)點(diǎn),則在該二叉樹中有【】個葉子結(jié)點(diǎn)。軟件定義時(shí)期主要包括 和需求分析兩個階段。當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲結(jié)構(gòu))改變時(shí),不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的 O以下程序的輸出結(jié)果是#include<stdio.h>voidprt(int*x,int*y,int*z)(printf(n%d,%d,%d\nH,++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prr(&a,&b,&c);)在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個設(shè)有以下結(jié)構(gòu)體類型:structst{chamame[8];intnum;floats[4];)student[50];并且結(jié)構(gòu)體數(shù)組student中的元素都已有值。若要將這些元素寫到硬盤文件fp中,請將以下fwrite語句補(bǔ)充完整:fwrite(student,[],1,fp);下列程序的輸出結(jié)果是 o#include<stdio.h>main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf(”%d%d",x??,y);)以下程序的輸出是【]omain()
charstrl[]="Howdoyoudo",*pl=strl;strcpy(strl+strlen(strl)/2,"esshe");intf(n%s\n",pl);二、單選題(10題)以下敘述中正確的是0。結(jié)構(gòu)體變量中的成員可以是簡單變量、數(shù)組或指針變量不同結(jié)構(gòu)體的成員名不能相同C.結(jié)構(gòu)體定義時(shí),其成員的數(shù)據(jù)類型可以是本結(jié)構(gòu)體類型D.C.結(jié)構(gòu)體定義時(shí),其成員的數(shù)據(jù)類型可以是本結(jié)構(gòu)體類型D.結(jié)構(gòu)體定義時(shí),類型不同的成員項(xiàng)之間可以用逗號隔開12.若有定義語句:char*sl=nOKu,*s2=”ok”;12.若有定義語句:出“OK”的語句是A.if(strcmp(sl,s2)==0)puts(sl);if(strcmp(sl,s2)!=0)puts(s2);if(strcmp(s1,s2)==1)puts(s1);if(strcmp(sl,s2)!=0)puts(sl);以下對C語言函數(shù)的有關(guān)描述中,正確的是在C語言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳給形參,形參的值不能傳送給實(shí)參C函數(shù)既可以嵌套定義又可以遞歸調(diào)用函數(shù)必須有返回值,否則不能使用函數(shù)函數(shù)必須有返回值,返回值類型不定若變量x、y已正確定義并賦值,以下符合C語言語法的表達(dá)式是()oA.X+l=yB.++X.Y=X——C.X=X+10=X+YD.double(X)/10查找較快,且插入和刪除操作也比較方便的查找方法是A.分塊查找B.二分查找C.順序查找D.折半查找有以下程序:#include<stdio.h>int*f(int*s){s[l]+=6;*s=7;s+=2;returns;)main(){inta[5]={1,2,3,4,5},*p=a;P=f(P);printf(“%d,%d,%d\n”,a[0],a[l],*p);1程序運(yùn)行后的輸出結(jié)果是()。A.9,8,9B.7,8,7C.7,8,3D.1,2,1對一個滿二叉樹,m個葉子,n個結(jié)點(diǎn),深度為h,則()。A.n=h+mB.h+m=2nC.m=h-1D.n=2h-1設(shè)char型變量x中的值為10100111,則表達(dá)式(2+x)(,的值為 o10101001B.1O1O1OOOC.111111O1D.1010101在下列運(yùn)算符中,優(yōu)先級最低的是()。A.||B.!=C.<D.+下列選項(xiàng)中,能夠滿足“若字符串si等于字符串s2,則執(zhí)行ST”要求的是()。if(strcmp(s2,sl)==O)ST;if(sl===s2)ST;if(strcpy(sl,s2)==l)ST;if(sl,s2==0)ST;三、程序設(shè)計(jì)題(10題)21.請編寫函數(shù)proc(),它的功能是計(jì)算下列級數(shù)和,和值由函數(shù)值返回。sum=l-x+x2/2!-x3/31+...+(-l*x)n/n!例如,當(dāng)n=23,x=0.3時(shí),函數(shù)值為0.740818。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。試題程序:5皿心<&心>?include<conk>.h>?indutk<Btd>o.h><incl??k<BMih.h>doubleprac<doublei.mt■>tvx>idmain“,?yBtrm(-CLS-)ipnndCMIa.prDHO.3.23>>i>22.編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個數(shù),并返回此值。例如,若輸入字符串123412132,輸入字符為1,則輸出3。注意:部分源程序在文件PROG1.C中。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。?include<sldio.h>■include<string.*h>?<kGneM81in!fuii(rhju*?m.charc)main()Ichara[MJ.ch;voidNONO():printf("\nPlc?eenterosiring:"):Es(?):printf("\nPlcascenterachar:"t;ch=gelchar();printf("\nThcnumberoflhechnris:%d\n".fun(a.ch)):NONO():voidNONO()I/.本函數(shù)用亍打開文件?輸入圈試數(shù)虬調(diào)用fun函敬.首岀數(shù)虬關(guān)閉文件.?/intiIFILE??<.?wfichara(M].b(M].ch;rf=!bpen("in.ilat","r");wf=(open("oul.dal"w");for(i=0:i<10;.?+)|rf.?)(rf.H%s".b);ch=?b;fprintf(wf,"%c=%d\n".ch.fun(a.ch));fcla?e(ff):fclwe(wf):23.使用VC++2010打開觸文件夾下progl中的解決方案。此解決方案的項(xiàng)目中包含一個源程序文件progl.Co在此程序中,請編寫函數(shù)fun(),其功能是移動字符串中的內(nèi)容,移動的規(guī)則是把第l~m個字符,移動到字符串的最后,把第m+1到最后的字符移動到于符串的前面。例如,字符串中原有的內(nèi)容為“ABCDEFGHIJK”,m的值為3,移動后,字符串中的內(nèi)容應(yīng)該是“DEFGHUKABC”。注意:部分源程序在文件progl.c中。請勿改動main。函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fim()的花括號中填入你編寫的若干語句。試題程序:iinclude<stdio.h>#include<string.h>?defineN80voidfun(char*w,intm)voidmain(){FILE?wf;chara[N]=”ABCDEFGHIJK”,b[N]?="ABCDEFGHIJK";intm;printf(MTheoriginalstring:\nn);puts(a);printf("\n\nEnterm:");scanf("%dMr&m);fun(a,m);printf("\nThestringaftermoving:\n");puts(a);printf("\n\n");/*?????*??found?????????/wf=fopen("out.dat","w");fun(b,3);fprintf(wfr"%s'\b);fclose(wf);/*********found*********/24.學(xué)生的記錄由學(xué)號和成績組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組stu中,請編寫函數(shù)proc(),它的功能是:把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中。注意:分?jǐn)?shù)低的學(xué)生可能不止一個。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:0includeSdefinrMUtypedefstrwldiartMimf10:iSTRWI?ntproc(STREC?STREl,?b>STRH'-:?<;AOOS*.?.f<iA0iXI*.75UCGAOor.tSh*GAW.7a.I?GAoor.nni*GAoor.M).CGA0M-.60d*GAOO6\R5l.(*GA0i5a.*3F.{*GA0l3a.94:.<*GAOi2*.7?:,l-GA0U\?7>.l*GAOir.K)H{*GAO17*.<5Kl-GAOIB-.W^CGAOie-.yiH.STRah(M]imii.mn-proc<*iu?h>(pnntfl,"nieHdI*—?cnrrt\n*?n>i(or(i~0ii<??汁?)prurt?aK*K4rf\n*.l<Cnim.Mil?)■岀■!!分學(xué)1的學(xué)91#|<1?pnnd<a\na)i使用VC++2010打開考生文件夾下progl中的解決方案。此解決方案的項(xiàng)目中包含一個源程序文件progl.co此程序定義了NxN的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)該函數(shù)的功能是使數(shù)組下三角元素中的值乘以no例如,若n的值為3,a數(shù)組中的值為TOC\o"1-5"\h\z9 73 84 5 6則返回主程序后,a數(shù)組中的值應(yīng)為9 76 9 812 15 18注意:部分源程序給出如下。請勿改動函數(shù)main。和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineN5voidfun(inta[][N],intn)()main()(inta[N][N],n,i,j;printf(“*****Thearray*****\n“);for(i=0;ivn;i++)<p=,'"x/n;i++)<>(for(j=0;j<=nnp=nn>(a[i][j]=rand()%10;printf(“%4d”,a[i][j]);}printf("\n");)n=rand()%4;printf(“n=%4d\n",n);fun(a,n);printf(“*****TheResult*****\n");for(i=0;i<=nnp=nn>(for(j=O;j<=nnp=””>printf(“%4d”,a[i][j]);printf}}編程計(jì)算下列表達(dá)式:s=n!(n從鍵盤上輸入)假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:將字符串尾部的*號全部刪除,前面和中間的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g。***,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是****a*bc*def*g。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:minclineVcomo.h>voidpraHchu??ir)pnntf("Entera?trifMlAna)i(?(■(■>Ipradgpnnt(<"Th**trtn<afterdelrtrdAn")i使用VC++2010打開考生文件夾下progl中的解決方案。此解決方案的項(xiàng)目中包含一個源程序文件progl.co在此程序中,請編寫函數(shù)其功能是移動一維數(shù)組中的內(nèi)容,若數(shù)組中有n個整數(shù),要求把下標(biāo)為。?P(含P,P小于等于n-1)的數(shù)組元素平移到數(shù)組的最后。例如,一維數(shù)組中的原始內(nèi)容為1、2、3、4、5、6、7、8、9、10;P的值為3。移動后,一維數(shù)組中的內(nèi)容應(yīng)為5、6、7、8、9、10、1、2、3、4o注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#defineN80voidfun(int*w,intp,intn)(}main()(inta[N]二{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};inti,p,n=15;printf("Theoriginaldata:\n”);for(i=0;i<=,M,p=,M,>printf(“%3d”,a[i]);printfr\n\nEnterpf,);scanf("%d",&p);fun(a,p,n);printf("\nThedataaftermoving:\n,,);for(i=0;i<=,M,p=,M,>printf(“%3d”,a[i]);printf("\n\n");請改正程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)試題程序:#include<conio.h>#include<stdio.h>doublefun(intn)doublesum,SO,SI,S2,Sintk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;si=0.0;s2=1.0;/*************必und*************/for(k=4;k<n;k++)S=S0+Sl+s2;Sum+=s;S0=sl;Sl=s2;/*************必und*************/S2=S;returnsum;}main()intn;clrscr();printf(ulnputN=”);scanf(”%d”,&n);prmtf(,,%f\n,,Ifun(n));下列給定程序中,函數(shù)fun()的功能是:應(yīng)用遞歸算法求某數(shù)a的平方根。求平方根的迭代公式如下:X,=(j0+—)/2例如,2的平方根為1.414214。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<math,h>#include<stdio.h>fun(doublea,doublexO){doublexl,y;xl=(x0+a/x0)/2.0;if(fabs(xl-xO)>0.00001)y=fun(a,xl);elsey=xl;returny;}main(){doublex;printf(uEnterx:");scanf(”%lf',&x);printf("Thesquarerootof%Ifis%lf\n",x,fun(x,l.O));給定程序中函數(shù)fun的功能是:根據(jù)整型形參m,計(jì)算如下公式的值。例如,若m中的值為5,則應(yīng)輸出:1.463611。請改正程序中的錯誤,使它能得到正確結(jié)果。[注意]不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)[試題源程序]#include<stdiO.h>doublefun(intm)(doubley=l.0;inti;for(i=2;i<m;i++)y+=l/(i*i);return(y);)main(){intn=5;printf("\nTheresultis%lf\n",fun(n));給定程序M0D11.C中函數(shù)fun的功能是:根據(jù)整型形參n,計(jì)算如下公式的值。4=1.4=~~~-—,…,4=—-—多1+x,if-!+<,例如,若n=10,則應(yīng)輸出:0.617977。請改正程序中的語法錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!??include<stdio.h>;/…………End…………/!intfun(intn)!(floatA-l;inti;;/***???**?***fOuncj?*\ for(i-2;i<n;!.+?)? A-1/(1+A);I;returnA;9,'main();{intn;\printf("\nPleaseentern:");!scanf("%dwr&n);?printf("A%d-%f\n"rn,fun(n));i}下列給定程序中,函數(shù)fun()的功能是:計(jì)算s所指字符串中含有t所指字符串的數(shù)目,并作為函數(shù)值返回。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<conio.h>#include<string.h>#include<stdio.h>#defineN80intfun(char*s,char*t){intn;char*p,*r;n=0;while(*s){P=s;while(*r)if(*r==*p){r++;p++;)elsebreak;if(*r=0)n++;s++;}returnn;}main()(chara[N],b[N];intm;clrscr();printf("\nPleaseenterstringa:");gets(a);printf("\nPleaseentersubstringb:");gets(b);m=fun{a,b);printf("\nTheresultis:m=%d\nH,m);}36.下列給定程序中,函數(shù)fun()的功能是:輸出M行N列整數(shù)方陣,然后求兩條對角線上的各元素之和,返回此和數(shù)。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu).試題程序:#include<conio.h>#include<stdio.h>#defineM5/**********************************/ihtfun(intn,intxx[][])(inti,j,sum=0;printf(u\nThe%dx%dmatrix:\nu,M,M);for(i=0;i<M;i++)(for(j=0;j<M;j++)/**********************************/printf("%4仁xx[i][j]);printf(”\n”);for(i=0;i<n;i++)sum+=xx[i][i]+xx[i][n-i-1];return(sum);}main(){intaa[M][M]={{1,2,3,4,5},{4,3,2,1,0},{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};clrscr();printf("\nThesumofallelementson2diagnalsis%d",fun(M,aa));)scanf(”%d”,&n);printf(”A%d=%lf\n",n,fun(n));39.下列給定程序中,函數(shù)fun()的功能是:統(tǒng)計(jì)字符串substr在字符串srt中出現(xiàn)的次數(shù)。例如,若字符串為aaas1kaaas,子字符串為as,則應(yīng)輸出2。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>fun(char*str,char*substr){inti,j,k,num=0;for(i=0,str[i],i++)for(j=i,k=O;substr[k]==str[j];k++,j++)if(substr[k+l]==,\0,){num++;break;}returnnum;)main(){charstr[80],substr[80];printf("Inputastring:");gets(str);printf("Inputasbustring:");gets(substr);printf("%d\n",fun(str,substr));40.下列給定的程序中,函數(shù)fun()的功能是;將s所指字符串中出現(xiàn)的n所指字符串全部替換成t2所指字符串,所形成的新的字符串放在w所指的數(shù)組中。在此處,要求tl和t2所指字符串的長度相同。例如:當(dāng)s所指字符串中所指的內(nèi)容為abcdabfab.tl所指字符串中的內(nèi)容為ab,t2所指字符串中的內(nèi)容為99時(shí),結(jié)果在w所指的數(shù)組中的內(nèi)容應(yīng)為99cd99f99o請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<conio.h>#include<stdio.h>#include<string.h>intfun(char*s,char*tl,char*t2,char*w){inti;char*p,*r,*a;strcpy(w,s);while(*w){p=w;r=tl;while(r)if(*r==*p){r++;p++;}elsebreak;if(*r==,\(y){a=w;r=t2;while(*r)(*a=*r;a++;r++)w+=strlen(t2);}elsew++;main()(chars[100],tl[100],t2[100],w[100];clrscr();Stinclude<stdio.h>//????found????voidproc(charl)(charnuix.?qiinii=0imax=while(t[i]!=O){if<max<i[i]>I//????found????Lq+hmax—([如}i++i)whilc(q>t).q??<q-l>iq I}}voidmain()<charstr[8O]iprintf("Enterastring,")igcts(str)tprintF("\nTheoriginalstring:")?puts(str)iproc(Mr)iprintf("\nThcHiringaftermoving;")ipuK(?tr)iprind("\n\n")?42.下列給定的程序中,函數(shù)proc()的功能是:計(jì)算并輸出m以內(nèi)最大的6個能被7或11整除的自然數(shù)之和。m的值由主函數(shù)傳人。例如,Em的值為600,則函數(shù)的值為3515。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:UaiVfh>9mdudeh>Htacludr<como.h>miproHmik)mtm—O.mc"?O?〃????found..??whk4k>*2)&^&><tM>?>//????found■???tf<<kH7*0):(kKll-0?//????Comm!????mwkirvinraanZfMMO,E?m《?CLS*>8六、操作題(2題)43.請補(bǔ)充main()函數(shù),該函數(shù)的功能是:從鍵盤輸入一個長整數(shù),如果這個數(shù)是負(fù)數(shù),則取它的絕對值,并顯示出來。例如,輸入>123456,結(jié)果為:123456。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在橫線上填入所編寫的若干表達(dá)式或語句。試題程序:9mcludrV&r.h>0mclude<mio.h>voidmainC)longintnum*?y?Kin(-CLS">.priBt?aEmcfthc<htai\Ba)i(>rinl(<,???theab^lwieraJvr???\?")|il(nMOi<0)J3LpriatfC*\B\n")ipnntfl”】>?44.funl函數(shù)的調(diào)用語句為funl(&a,&b,&c);。它將3個整數(shù)按由大到小的JI匣序調(diào)整后依次放入a,b,c三個變量中,a中放最大數(shù),請?zhí)羁?。voidfun2(int*x,int*y){intt;t=*x;*x;*y;*y=t;}voidfunl(int*pa,int*pb,int*pc){if(*pc>*pb)fun2([]);if(*pa<*pc)fun2(【】);if(*pa<*pb)fun2(【]);}參考答案1.類類2.00解析:對于一個unsignedshort來說,它能取的最大值是65535o這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實(shí)際為0。3.投影專門關(guān)系運(yùn)算包括對單個關(guān)系進(jìn)行垂直分解(投影操作)或水平分解(選擇操作)和對多個關(guān)系的結(jié)合(連接操作)等。4.350350解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結(jié)點(diǎn)。因此,設(shè)一棵完全二叉樹具有n個結(jié)點(diǎn),若n為偶數(shù),則在該二叉樹中有n/2個葉子結(jié)點(diǎn)以及n/2-l個度為2的結(jié)點(diǎn),還有1個是度為1的結(jié)點(diǎn)若n為奇數(shù),則在該二叉樹中有[n/2]+l個葉子結(jié)點(diǎn)以及[n/2]個度為2的結(jié)點(diǎn),沒有度為1的結(jié)點(diǎn)。本題中,完全二叉樹共有700個結(jié)點(diǎn),700是偶數(shù),所以,在該二叉樹中有350個葉子結(jié)點(diǎn)以及349個度為2的結(jié)點(diǎn),還有1個是度為1的結(jié)點(diǎn)。所以,本題的正確答案為350??尚行匝芯靠尚行匝芯拷馕?軟件生命周期一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、交付使用及維護(hù)等,還可以將軟件生命周期分為三個階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計(jì)、實(shí)現(xiàn)和測試;③軟件運(yùn)行維護(hù)階段:交付使用和維護(hù)。B關(guān)系關(guān)系解析:關(guān)系模型用,?維表表示,則每個;維表代表一種關(guān)系。sizeof(structst)*50sizeof(structst)*50解析:fwrite函數(shù)的一般調(diào)用形式為:fwrite(buffer,size,count,fp);其中:buffer是一個指針變量,是要輸出數(shù)據(jù)的起始地址;size是要寫的字節(jié)數(shù);count是要寫多少個size字節(jié)的數(shù)據(jù)項(xiàng);fp是文件指針。9.101091101091解析:for(表達(dá)式1;表達(dá)式2:表達(dá)式3)語句的功能是:首先計(jì)算表達(dá)式1的值,然后檢測表達(dá)式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計(jì)算表達(dá)式3的值。然后再檢測表達(dá)式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,貝腿出循環(huán):第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=l,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=l,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。lO.HowdoessheHowdoesshe解析:strcpy(strl,si):字符串拷貝函數(shù),作用是將字符串si拷貝到字符數(shù)組strl中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實(shí)際長度,不包括、\0'在內(nèi)。本題中strlen(strl)的值為13,則strcpy(strl+strlen(strl)/2,,esshe*);相當(dāng)于strqoy(strl+6,'esshe');因此可得答案為HowdoessheoU-A結(jié)構(gòu)體變量中的成員可以是簡單變量、數(shù)組、指針變量或者結(jié)構(gòu)體變量,選項(xiàng)A正確;不同結(jié)構(gòu)體成員名可以相同,選項(xiàng)B錯誤;結(jié)構(gòu)體定義時(shí),其成員的數(shù)據(jù)類型不能是本結(jié)構(gòu)體類型,選項(xiàng)C錯誤;結(jié)構(gòu)體定義時(shí),類型不同的成員項(xiàng)之間使用分號隔開,選項(xiàng)D錯誤。本題答案為A選項(xiàng)。D解析:strcmp(sl,s2)的作用是比較字符串si和s2。參數(shù)strl,str2如果相同,則返回0,如果strl大于str2則返回一個正整數(shù),如果strl小于str2則返回一個負(fù)整數(shù)。本題中si,s2不相同,A)選項(xiàng)不會輸出任何字符,B)選項(xiàng)輸出ok,C)選項(xiàng)不輸出任何字符,D)選項(xiàng)會輸岀OKoA解析:C語言中的函數(shù)可以進(jìn)行遞歸調(diào)用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。BA選項(xiàng)中不能將變量Y賦給表達(dá)式,c選項(xiàng)中錯誤與A選項(xiàng)一樣,D選項(xiàng)中強(qiáng)制類型轉(zhuǎn)換表達(dá)式應(yīng)寫成(double)x/10oA分塊查找是折半查找和順序查找的一種改進(jìn)方法,分塊查找要求索引表是有序的,對塊內(nèi)節(jié)點(diǎn)沒有排序要求,因此查找較快,且插入和刪除操作也比較方便。C在main函數(shù)中調(diào)用了f函數(shù)使形參s指向數(shù)組a。執(zhí)行⑶1]+=6”;語句,則%[1]=8;”執(zhí)行“*s=7;”語句,貝憐[0]=7”;執(zhí)行“s+=2;”語句,則s指向數(shù)組的第3個元素并返回s。調(diào)用后,函數(shù)返回值賦給指針P,則*P=3,因此輸出的結(jié)果為7,8,3。故本題答案為C選項(xiàng)。DD解析:異或運(yùn)算符(八)的運(yùn)算規(guī)則是:參加運(yùn)算的兩個相應(yīng)位同號,則結(jié)果為0(假);異號則為1(真)。取反運(yùn)算符(-)的運(yùn)算規(guī)則是:對一個二進(jìn)制數(shù)按位取反,即將0變?yōu)?,1變?yōu)?。本題(-3)是對3(二進(jìn)制形式為00000011)按位取反即11111100。表達(dá)式(2+x)3)的值就等價(jià)于(00000010+10100111)A11111100,結(jié)果為01010101。AA解析:strcmp(char*,char*),函數(shù)strcmp用于比較兩個字符串的長度,長者為大,若字符個數(shù)也一樣,則從左至右依次比較相同位上的字符,字符大小按ASCII表值計(jì)算,直到最后一個字符,若還相同,則兩個字符串相等,返回值Oo選項(xiàng)A中if(strcmp(s2,sl)=0)ST,若s2等于si,則返回值0,。等于0,所以邏輯表達(dá)式strcmp(s2,sl)=0為真執(zhí)行ST。21.【解析】首先定義兩個變量分別用來存儲級數(shù)的和與每一項(xiàng)的分母。觀察級數(shù)的特點(diǎn),其每一項(xiàng)的正負(fù)號是交替變化的。根據(jù)這些特點(diǎn),每增加一項(xiàng)都需要變換符號。最后求出級數(shù)的和。22.【考點(diǎn)分析】本題考查:for循環(huán)語句遍歷字符串,并通過if條件語句,判斷字符串是否結(jié)束?!窘忸}思路】從字符串中查找指定字符,需要使用循環(huán)判斷結(jié)構(gòu),循環(huán)語句用來遍歷字符串,循環(huán)條件為字符串沒有結(jié)束,即當(dāng)前字符不是,\0',判斷語句用來判斷當(dāng)前字符是否為指定字符。最后返回指定字符的個數(shù)。Vdidfun(char*w,intm)chart;for(i=l;iv=m;i++)/*進(jìn)行m次的循環(huán)左移*/{t=w[o];for(j=l;wU]!='\0';j++)/*從第2個字符開始以后的每個字符都依次前移一個字符*/w[j.l]=w|J];9w|j.l]=t;/*將第1個字符放到最后一個字符中*/10}}本題應(yīng)采用“循環(huán)左移”的算法。外層循環(huán)用于控制移動的字符的個數(shù),即需進(jìn)行多少次循環(huán)。內(nèi)層循環(huán)的作用是將第2個字符以后的每個字符依次前移一個位置,最后將第1個字符放到最后一個字符中。24.【解析】要返回分?jǐn)?shù)最低的學(xué)生個數(shù),首先要找出學(xué)生中的最低分?jǐn)?shù)。然后將各個學(xué)生的成績與最低分?jǐn)?shù)相比較,最后將分?jǐn)?shù)最低的學(xué)生個數(shù)返回給主函數(shù)。voidfun(inta[][n],intn){inti,j;for(i=0;iv="p=,,H>for(j=0;j<=i;j++)/*矩形的下三角時(shí),積相乘*/a[i][j]=a[i][j]*n;}首先從數(shù)組中找出要乘以n的元素。這其實(shí)就是找出將被挑出的元素在原數(shù)組中的分布規(guī)律的過程。通過觀察得出,要被處理的元素下標(biāo)的范圍是從每行中第1個元素開始,直到列數(shù)等于該行行數(shù)為止。即數(shù)組下三角元素的列下標(biāo)①小于等于(v=)行下標(biāo)①。找到這個規(guī)律后,依次從數(shù)組中取得符合要求的元素,然后乘以n。\n\t#include'stdio.h'\nmain\n{longt=l;\ninti;\nfor(i=l;i<=10;i++)\nt=t*i;\nprintf('%ld',t);}\n27.【解析】要刪除字符串尾部的所有*,只要將尾部所有*中的第一個改為字符串結(jié)束符即可。首先,將字符串指針移動到字符串最后一個位置,檢查最后一個字符,是*則將指針前移,否則將指針后移一個位置賦值作為結(jié)束符。voidfun(int*w,intp,intn){intX,j,ch;for(x=0;x<=p;x++){ch=w[0];for(j=l;j/*通過for循環(huán)語句,將p+1?n-1(含n-1)之間的數(shù)組元素依次向前移動p+1個存儲單元*/(w[j?l]=w[jl;}w[n-l]=ch;/*將下標(biāo)為0~p的數(shù)組元素逐一賦給數(shù)組wfn-1]*/})本題要求把下標(biāo)為。?P(含p,p小于等于n?l)的數(shù)組元素平移到數(shù)組的最后??梢愿鶕?jù)輸入的P值,通過for循環(huán)語句,將p+l?n.l(含n.l)之間的數(shù)組元素依次向前移動P+1個存儲單元,即wU-l]=wU];o同時(shí)將下標(biāo)為0?P的數(shù)組元素逐一賦給數(shù)組w[n.l],也就是通過語句w[n?l]=ch;來實(shí)現(xiàn)此操作。29.【解析】首先我們應(yīng)定義一個變量來表示其和,另一個來表示其項(xiàng)數(shù),然后通過循環(huán),求得其差值,最后把和的平方返回到主函數(shù)中。voidfun(char*a,intn){inti=0,k=0;char*p,*t;p=t=a;/*開始時(shí),p與t同時(shí)指向數(shù)組的首地址*/while(*t=*)/*用k來統(tǒng)計(jì)前導(dǎo)星號的個數(shù)*/{k++;t++;}if(k>n)/*如果k大于n,則使p的前導(dǎo)保留n個星號,其后的字符依次存入數(shù)組a中*/{while(*p){a[i]=*(p+k-n);i++;P++;}a[i]=4\09;/*在字符串最后加上字符串結(jié)束標(biāo)志*/)}字符串中前導(dǎo)*號不能多于n個,多余的應(yīng)刪除。首先需要通過while循環(huán)統(tǒng)計(jì)字符串前導(dǎo)*號的個數(shù),然后通過if條件語句完成前導(dǎo)*號的個數(shù)和n的比較,如果前導(dǎo)*號多于n個,則需要把n個*號和其余字符重新保留。(1)錯誤:for(k=4;k<n;k++)正確:for(k=4;k<=n;k++)(2)錯誤:s2=s;正確:s2=s;}⑴錯誤:for(k=4;k<n;k++)正確:for(k=4;k<=n;k++)\r\n⑵錯誤:s2=s;正確:s2=s;)解析:錯誤1:循環(huán)中包括k=n的情況,所以k要取到n之后才結(jié)束循環(huán)。錯誤2:for循環(huán)的語句要用大括號,在此處少了應(yīng)添上。(1)錯誤:fun(doubleadoublexO)正確:doublefun(doubleadoublexO)(2)錯誤:if(fabs(xl-xO)>0.00001)正確:if(fabs(xl-xO)>=0.00001)(1)錯誤:fun(doublea,doublex0)正確:doublefun(doublea,doublex0)\r\n⑵錯誤:if(fabs(xl-xO)>0.00001)正確:if(fabs(xl-xO)>=0.00001)解析:用C語言求平方根的方法一般有兩種經(jīng)典的算法,它們分別是迭代法和遞歸法,本題要求用遞歸法。該程序采用了if語句,錯誤在于if語句的判斷條件,程序的含義是當(dāng)?shù)Y(jié)果差小于誤差時(shí)進(jìn)行循環(huán),故正確的應(yīng)該是if(fabs(xl-x0)>=0.00001)o(1)錯誤:for(i=2;i<m;i++)正確:for(i=2;i<=m;i++)(2)錯誤:y+=l/(i*i)正確:y+=l?/(i*i)錯誤2:在除法運(yùn)算中如果除數(shù)和被除數(shù)都是整數(shù)所以所除結(jié)果也是整數(shù)因此應(yīng)改為y+=l./(i*i)。(1)錯誤:for(i=2;i<m;i++)\r\n正確:for(i=2;i<=m;i++)\r\n⑵錯誤:y+=l/(i*i)\r\n正確:y+=l?/(i*i)\r\n錯誤2:在除法運(yùn)算中,如果除數(shù)和被除數(shù)都是整數(shù),所以所除結(jié)果也是整數(shù),因此應(yīng)改為y+=l./(i*i)。(l)floatfun(intn)(2)for(i=2;i<=n;i++)(l)floatfun(intn)⑵for(i=2;i<=n;i++)解析:本題中函數(shù)的功能是計(jì)算公式的值。其中,每一項(xiàng)的分母是前一項(xiàng)的值加1。(1)錯誤:r=p;正確;r=t;(2)錯誤:if(*r=O)正確:if(*r=湖)(1)錯誤:r=p;正確;r=t;\r\n⑵錯誤:if(*r=O)正確:if(*r==,\\O,)解析:從字符串s中找出子字符串的方法是:從第1個字符開始,對字符串進(jìn)行遍歷;若s串的當(dāng)前字符等于t串的第1個字符,兩字符串的指針自動加1,繼續(xù)比較下一個字符:若比較至字符串的結(jié)尾,則跳出循環(huán):若s串的字符和t串的字符不對應(yīng)相同,則繼續(xù)對s串的下一個字符進(jìn)行處理。(1)錯誤:intfun(ihtnintxx[][])正確:intltm(ihtmintr.x[J[M])(2)錯誤:printf(u%4ffxx[i]fj]);正確:printf(,,%4d,,xx[i][j]);(l)錯誤:intfun(ihtn,intxx[][])正確:intltm(ihtmintr.x[][M])\r\n(2)錯誤:printfC%4f,f\\xx[i]fj]);正確:printfC%4d\xx[i]|j]);解析:該題錯誤比較隱蔽,一般的C語言上機(jī)考試很少涉及printfM數(shù)中的錯誤,在這里,我們只要明白“d”和T的區(qū)別就0K了。格式字符d表示:以帶符號的十進(jìn)制形式輸出整數(shù)(正整數(shù)不輸出符號);格式字符f表示;以小數(shù)形式輸出單、雙精度,隱含輸出6位小數(shù)。(1)錯誤:voidfun(inta)正確:intfim(int*a(2)錯誤:a|j]=a|j+l];正確:a[j]=a|j-l]
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年二手帶租購房合同模板版
- 2025年果品購銷合同樣本標(biāo)準(zhǔn)
- 2025年農(nóng)業(yè)種植工勞動合同書
- 2025年中小企業(yè)融資合同樣本
- 2025年建筑工地材料配送聯(lián)營合同
- 2025年債務(wù)償還期限修訂策劃合同
- 2025年度二零二五年度酒店客房托管租賃合同
- 2025年度建筑節(jié)能材料采購及改造合同
- 2025年度城市軌道交通環(huán)境影響評價(jià)技術(shù)協(xié)作合同
- 2025年度攪拌車混凝土運(yùn)輸合同糾紛處理范本
- 房地產(chǎn)工程管理 -中建八局機(jī)電工程質(zhì)量通病治理辦法
- GB/T 6403.4-2008零件倒圓與倒角
- GB/T 2518-2019連續(xù)熱鍍鋅和鋅合金鍍層鋼板及鋼帶
- 企業(yè)合規(guī)管理-課件
- 火電廠安全工作規(guī)程
- GB∕T 33047.1-2016 塑料 聚合物熱重法(TG) 第1部分:通則
- 電力業(yè)務(wù)許可證豁免證明
- 特發(fā)性肺纖維化IPF
- FIDIC國際合同條款中英文對照.doc
- 建筑工程資料歸檔立卷分類表(全)
- 個人勞動仲裁申請書
評論
0/150
提交評論