




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年寧夏回族自治區(qū)吳忠市全國(guó)計(jì)算機(jī)
等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答
案)學(xué)校: 班級(jí): 姓名: 考號(hào): 一、2.填空題(10題)下列程序段的輸出結(jié)果是【]ointn=*c';switch(n++){default:printf("error");break;case'a*:case'A':caseb:case'B*:printf("good");break;case'c*:case'C':printf("pass");cased:case'D':printf("warn");1注釋一般分為序言性注釋和 注釋。軟件生命周期可分為多個(gè)階段,一般分為定義階段、開(kāi)發(fā)階段和維護(hù)階段。編碼和測(cè)試屬于【】階段。閱讀下面語(yǔ)句,則程序的執(zhí)行結(jié)果是【]o#include"stdio.h"main(){inta=-l,b=l,k;if((++a<0)&&!(b--<=0))printf(”%d,%d\n",a,b);elseprintf(n%d,%d\n”,b,a);)在計(jì)算機(jī)軟件系統(tǒng)的體系結(jié)構(gòu)中,數(shù)據(jù)庫(kù)管理系統(tǒng)位于用戶和【】之間。以下程序段的功能是統(tǒng)計(jì)鏈表中結(jié)點(diǎn)的個(gè)數(shù),其中first為指向第一個(gè)結(jié)點(diǎn)的指針(鏈表帶頭結(jié)點(diǎn))。請(qǐng)?jiān)谙聞澗€內(nèi)填入正確內(nèi)容。structlink{chardata;structlink*next;};structlink*p,*first;intc=0;p=first;while([]){C++;P=【】;}若有如下結(jié)構(gòu)體說(shuō)明:structSTRU{inta,b;charc:doubled;structSTRU*pl,*p2;};請(qǐng)?zhí)羁眨酝瓿蓪?duì)t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型。【]tl20]以下函數(shù)用來(lái)求出兩整數(shù)之和,并通過(guò)形參將結(jié)果傳回,請(qǐng)?zhí)羁?。voidfunc(intx,inty,[]z){*z=x+y;)已知字母A的ASCII碼為65。以下程序運(yùn)行后的輸出結(jié)果是()。main(){chara,b;a='A'+5-'3';b=a+6?2;a='A'+S-'3';b=a+6?2;printf(,,%d%c\n,\a,B);1以下程序運(yùn)行后的輸出結(jié)果是【】。#defineS(x)4*x*x+1mah(){inti=6,j=8;printf(”%d\n”,S(i+j));}二、單選題(10題)將兩個(gè)字符串連接起來(lái)組成一個(gè)字符串時(shí),選用()函數(shù)。strlen()B.strcpyOC.strcat()D.strcmpO以下程序的輸出結(jié)果是 o#defineM(x,y,z)x*y+zmain(){inta=l,b=2,c=3;printf("%d\n”,M(a+b,b+c,c+a));}A.19B.17C.15D.12下面描述中,不屬于軟件危機(jī)表現(xiàn)的是()A.軟件過(guò)程不規(guī)范B.軟件開(kāi)發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高以下敘述中正確的是 oC語(yǔ)言比其他語(yǔ)言高級(jí) C語(yǔ)言可以刁;用編譯就能被計(jì)算機(jī)識(shí)別執(zhí)行C語(yǔ)言以接近英語(yǔ)國(guó)家的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言作為語(yǔ)言的表達(dá)形式C語(yǔ)言出現(xiàn)的最晚,具有其他語(yǔ)言的一切優(yōu)點(diǎn)設(shè)有二維數(shù)組A7x8,每個(gè)數(shù)據(jù)元素占8個(gè)字節(jié)存儲(chǔ)單元,順序存放,A第一個(gè)元素A0,0的存儲(chǔ)地址為1000,數(shù)組A的最后一個(gè)元素A6,7的存儲(chǔ)地址為0。A.1024B.1440C.1448D.1432下列程序的執(zhí)行結(jié)果是()。#include<stdioh>main{inta,b,c;a=b=2,c=I;c=(a++)-l;printf("%d,OAd",a,c);c+=?a+++(++b);printf(”%d,%d",a,c);)A.3,14,1B.3,14,2C.2,04,1D.2,14,1在待排序文件已基本有序的前提下,下述排序方法中效率最高的是0。A.直接插入排序B.直接選擇排序C.快速排序D.二路歸并排序采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類似于二叉樹(shù)的()。A.先序遍歷B.中序遍歷C.后序遍歷D.按層遍歷將一棵有100個(gè)結(jié)點(diǎn)的完全二叉樹(shù)從上到下,從左到右依次對(duì)結(jié)點(diǎn)進(jìn)行編號(hào),根結(jié)點(diǎn)的編號(hào)為1.則編號(hào)為49的結(jié)點(diǎn)的左孩子的編號(hào)為A.98B.99C.50D.48層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫(kù)劃分原則是()。A.記錄長(zhǎng)度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式三、程序設(shè)計(jì)題(10題)請(qǐng)編寫一個(gè)函數(shù)proc,它的功能是:求出1?m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過(guò)n返回這些數(shù)的個(gè)數(shù)。例如,若傳給m的值為70,則程序輸出:7111421222833354244495556636670注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填人所編寫的若干語(yǔ)句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineN100voidproc(intm,int*a,int*n){)voidmain(intarr[N],n,k;system(”CLS”);proc(70,arr,&n);for(k=0;k<n;k++)if((k+l)%20=0)//每行輸出20個(gè)數(shù){printf(”%4d”,arr[k]);printf("\n");}elseprintf(”%4d”,arr[k]);printf(”\n");}請(qǐng)編寫函數(shù)proc,該函數(shù)的功能是:將放在字符串?dāng)?shù)組中的M個(gè)字符串(每串的長(zhǎng)度不超過(guò)N),按順序合并組成一個(gè)新的字符串。例如,若字符串?dāng)?shù)組中的M個(gè)字符串為:ABCDBCDEFGCDEFGHI則合并后的字符串內(nèi)容應(yīng)該是ABCDBCDEFGCDEF—GH1o注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填人所編寫的若干語(yǔ)句。試題程序:#include<stdio.h>#include<conio.h>#defineM3#defineN20voidproc(chararr[M][N],char*b)()voidmain(charstr[M][N]={”ABCD”,,BCDEFG”,”CDEFGHI”},i;chararr[100]=(“##################");printf("Thestring:\n");for(i=0;i<M;i++)puts(str[i]);printf("\n");proc(str,arr);printf("TheAstring:\n");printf("%s",arr);printf("\n\n,^);請(qǐng)編寫函數(shù)proc(),該函數(shù)的功能是:移動(dòng)一維數(shù)組中的內(nèi)容,若數(shù)組中有n個(gè)整數(shù),要求把下標(biāo)從p到n-1(p<n-l)的數(shù)組元素平移到數(shù)組的前面。例如,一維數(shù)組中的原始內(nèi)容為1,2,3,4,5,6,7,8,9,10,11,12,13,14,P的值為4。移動(dòng)后,一維數(shù)組中的內(nèi)容應(yīng)為5,6,7,8,9,10.11,12,13,14,1,2,3,4O注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:Sinclude<stdio.h>3defineM80voidproc(int?w.intp.intn)voidmain()(mtarr[M]=<..2.13.14},inti.p.n141prinlfCThcoriginaldatai\n**>i(or(i-"0ii<nji++)printf("%3d".arr£i]>iprintfCXnXnEntcrp:")iproc(arr.p.n)(print(("\nThedataaftermoving:\n")ifor(i—0?i<nii++)printK"%3d"?■rr£ij)iprintf("\n\n")?24.請(qǐng)編寫一個(gè)函數(shù)proc(),它的功能是:根據(jù)以下公式求7c的值(要求滿足精度0.0005,即某項(xiàng)小于0.005時(shí)停止迭代)ox/2;1+1/3+1-2/(3?5)+1-2-3/(3?5-7)+1?2.3?4/(3,5,7?9>+???+1?2?3 ? 5?7?????(2n+D)程序運(yùn)行后,如果輸入精度0.0005,則程序輸出3.140578。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:5include<conio.h>ssincludeVstdio.h>sinclude<math.h>doubleproc(doubleepsOvoidmain()(doublemiprintf("\nPkascenteraprecision:")j心nWlf.&Q,prind("\nPi—%l(\n".proc(s>)(}規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號(hào)。編寫函數(shù)時(shí),不得使用c語(yǔ)言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為:****a*BC*DEF*G*******刪除*后字符串中的內(nèi)容應(yīng)當(dāng)是:ABCDEFGO注意:部分源程序在文件PR0G1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。*in<?lu(ic<fltdio.h>voidfim(char?m)main()ichars'81];wmiNONO()jprintff"LntrraMring:\n") ?);fun(?)tpnntff"Thesiringafterdeleted:\n"):pute(?);NONO()tvoidNONO(>八本兩數(shù)用于打開(kāi)文件,■人致蝌,調(diào)用函數(shù),専出數(shù)據(jù).關(guān)閉文件。?/FILE?in,?nut;inti:rhar?[8I];in=fopmCin.dm"."r"):mil=<bpen(*(xil.<lat","wB);for(i=0;i<10;i??)Jfftc?nf(in,"%?",?);fun(s);fpnnlffout. ,■);R?lo?e(in)ifckw?r(otii);n個(gè)人的成績(jī)存放在score數(shù)組中,請(qǐng)編寫函數(shù)proc(),它的功能是將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分?jǐn)?shù)放在down所指的數(shù)組中。例如,當(dāng)score數(shù)組中的數(shù)據(jù)為{99,80,40,56,59,84,60,76,100}時(shí),函數(shù)返回的人數(shù)應(yīng)該是4,down中的數(shù)據(jù)應(yīng)為40565960o注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:9indude<cocmq.h>■indude<?tdao.h>9include<?mng.h>uMproc(mi?coc*[].mfn.mt<IowrC]>voidmai?()IiniI.n.down[9]imi?cor?(9]*<99.tO.4O.M.S9?M.?0.7?.!00li?yMemCCtS-).np?oc(itcoe*?9.dowvt>ipnntfC*\ndowototheaveragescore ">i(or<i-0ii<nii4-4->prim"W?虹Kg\a*)t請(qǐng)編寫函數(shù)proc。,其功能是:將str所指字符串中下標(biāo)為偶數(shù)的字符刪除,串中剩余字符形成的新串放在t所指數(shù)組中。例如,當(dāng)str所指字符串中的內(nèi)容為abedefg,則在t所指數(shù)組中的內(nèi)容應(yīng)是bdfo注意:部分源程序給出如下。請(qǐng)勿改動(dòng)rnainO?數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc。的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:stadudrVcocwo.0includr<Md~.h>?indude<?inn?.h>vodproc^duir?Mr.chart£J)火&???<)charMr[100].l[l00]iny*ieoi<"CIA">Ipnnif<v\nPi???eenter?tnn<?tri">i?canK?%??ir〉■proe(prm?f(a\aTh?r??ultMtH*\n*?t)?使用VC++2010打開(kāi)考生文件夾下progl中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件progl.co在此程序中,編寫函數(shù)fun(),其功能是實(shí)現(xiàn)B=A+AT,即將矩陣A加上A的轉(zhuǎn)置,結(jié)果存放在矩陣B中。計(jì)算結(jié)果在main。函數(shù)中輸出。舉例如下。輸入如下的矩陣:其轉(zhuǎn)置矩陣如下:123147456258789369程序輸出:26 10610 141014 18注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fim()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>voidfun(inta[3][3],intb[3][3]){)voidmain()(inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3];inti,j;system(“CLS“);fun(a,t);for(i=0;i<3;i++){forU=0;j<3;j++)printfC%7d”,t[i][j]);printf("\n“);})使用VC++2010打開(kāi)考生文件夾下progl中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件progl.co在此程序中,編寫函數(shù)fun(),其功能是根據(jù)以下公式求冗的值(要求精度0.0005,即某項(xiàng)小于0.0005時(shí)停止迭代)OTT_1.1.1x2.1x2x31x2x3x4k+亍+場(chǎng)*詬方+夜志爲(wèi)+????_1-2x…3x5x—x(2n+I)程序運(yùn)行后,若輸入精度0.0005,則程序應(yīng)輸出為3.140578。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main。和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<stdio.h>#include<conio.h>#include<math.h>doublefun(doubleeps)()voidmain(){doublex;printf("Inputeps:");scanf("%lf',&x);printf(t6\neps=%lf,PI=%lf\n",x,fun(x));}請(qǐng)編寫函數(shù)proc(),其功能是:利用以下所示的簡(jiǎn)單迭代方法求方程cos(x)-x=0的一個(gè)實(shí)根。xn+l=COS(xn)迭代步驟如下:⑴取xl初始值為0.0;x0=xl,把?XI的值賦給x0;xl=cos(xO),求出一個(gè)新的xl;⑷若xO-xl的絕對(duì)值小于0.000001,則執(zhí)行步驟(5),否則執(zhí)行步驟(2);(5)所求xl就是方程cos(x)-x=0的一個(gè)實(shí)根,作為函數(shù)值返回。程序?qū)⑤攲缃Y(jié)果root=0.739085。注意:部分源程序給出如下。voidfun(char*pstr[6])(inti,j;char*p;for(i=0;i<5;i++)for(j=i+l;j<6;j++)if(strcmp((pstr+i),(pstr+j))<0)(p=*(pstr+i);*(pstr+i)=*(pstr+j);*(pstr+j)=*p;})main(){inti;char*pstr[6],str[6][MAXLINE];clrscr();for(i=0;i<6;i++)pstr[i]=str[i];printf('7nEnter6string(lstringateachline):\n");for(i=0;i<6;i++)scanf(”%s”,pstr[i]);fun(pstr);printf("Thestringsaftersorting:\n");returna;}main()(chars[100],t[100],,*p;clrscr();printf("\nPleaseenterstringS:");scanf("%s",s);printf("\nPleaseentersubstringt:");scanf(”%s”,t);p=fun(S,t);if(p)printf("\nTheresultis:%s\n",p);elseprintf("\nNotfound!\n”);}給定程序M0D11.C中函數(shù)fun的功能是:首先把b所指字符串中的字符按逆序存放,然后將a所指字符串中的字符和b所指字符串中的字符,按排列的順序交叉合并到c所指數(shù)組中,過(guò)長(zhǎng)的剩余字符接在c所指數(shù)組的尾部。例如,當(dāng)a所指字符串中的內(nèi)容為“abcdefg”,b所指字符串中的內(nèi)容為“1234”1時(shí),c所指數(shù)組中的內(nèi)容應(yīng)該為“a4b3e2dlefg”;而當(dāng)a所指字符串中的內(nèi)容為“1234”,b所指字符串中的內(nèi)容為“abedefg”時(shí),c所指數(shù)組中的內(nèi)容應(yīng)該為Tg2旋4dcba”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!?linclude<stdio.h>!#include<string.h>ivoidfun(char*archar*b,char*c)"!inti,j;charch;ii-0;j■strlen(b)-1;?/*?………*found!while(i>j)? {ch-b[i];b[i]-b[jj;b[j]-ch;i j—;11]}?while(*aII*b)(\/…………found: If(*a)! (*c-*a;C++;a++;}i if(*b)j(*c=*b;C++;b++;}TOC\o"1-5"\h\z! }j*c-0;\)!main()3;charsi[100],s2[100]rt(200);!printf("\nEntersistring:w);!scanf("%sHrsl);;printf(w\nEnters2string:");-scanf("%s*rs2);!fun(si,s2,t);jprintf("\nTheresultis:%s\n"rt);\}給定程序中,函數(shù)fun()的功能是:使數(shù)組中的元素的值增加10倍。改正其中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu).試題程序:#include<stdio.h>#include<conio.h>ihtm[10];voidfun(void)intj;printf("Insubfuncaftercalling\n");for(j=0;j<10;j++)/************Sund**********************/printf(”%3d”,m[j]*10);}}main()(inti;printf("Inmainbeforecalling\n");for(i=0;i<10;i++)printf(”%3d”,m[i]);)fun();printf("\nlnmainaftercalling\n");for(i=0;i<10;i++)printf(”%3d”,m[i]);getch();}假如整數(shù)數(shù)列中的數(shù)不重復(fù),并存放在數(shù)組中。下列給定的程序中,函數(shù)fun()的功能是:刪除數(shù)列中值為X的元素。N中存放的是數(shù)列中元素的個(gè)數(shù)。請(qǐng)改正程序中的錯(cuò)誤,使它能夠得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:公約數(shù)為27o請(qǐng)改正函數(shù)fun()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)試題程序:#include<stdio.h>intfun(inta,intb)(intr,t;if(a<b){t=a;b=a;a=t;}r=a%b;while(r!=0){a=b;b=r;r=a%b;}return(a);)main(){intnuml,num2,a;printf(ulnputnumlnum2:");scanf("%d%d",&numl,&num2);printf("num1=%dnum2=%d\n\n",num1,num2);a=fun(numl,num2);printf("Themaximuncommondivisoris%d\n\n",a);)37.給定程序M0D11.C中函數(shù)fun的功能是:讀入一個(gè)字符串(長(zhǎng)度<20),將該字符串中的所有字符按ASCII碼升序排序后輸出。例如,若輸入:edcba,則應(yīng)輸出:abcde。請(qǐng)改正程序中的錯(cuò)誤,使它能統(tǒng)計(jì)出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!;tinclude<stdio.h>;tinclude<string.h>voidfun(chart[]){charc;?inti,j;i/*????*****found**????*??**/;for(i-strlen(t);i;i--)?for(j-0;j<i;j++)I/………*found………?,/j if(t[j]<t(j+1))TOC\o"1-5"\h\z; (!c-t[jj;j t(j]■t[j?11/;t[j*11-c;16: }J};main()!(!chars[81];iprintf("\nPleaseenteracharacter?string:");!gets(s);;printf("\n\nBeforesorting:\n;\”%s\",s);!fun(s);jprintf("\nAftersortingdecendingly:-\n s);!}38.下列給定程序中,函數(shù)fun()的功能是根據(jù)整型形參m,計(jì)算如下公式的值。y=1.l/(2x2)+l/(3x3)?1/(4><4)+…+(.1)(m+l)/(mxm)例如:m中的值為5,則應(yīng)輸出0.83861lo請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<conio.h>#include<string.h>#include<stdio.h>intfun(charstr[][10],intm,char*pt){intk,q,i,j=O;for(k=0;k<m;k++){q=strlen(str[k]);j+=q;for(i=0;i<q;i++)pt[i]=str[k,i];Pt+=q;pt[O]=0;)Pt?=j;}main(){intm,h;chars[10][10],p[120];clrscr();printf("\nPleaseenterm:");scanf(”%d”,&m);gets(s[0]);printf("\nPleaseenter%dstring:In",m);for(h=0;h<m;h++)gets(s[h]);fun(s,m,p);printf("\nTheresultis:%s\n",p);}五、程序改錯(cuò)題(2題)41.下列給定程序中函數(shù)fun的功能是:用冒泡法對(duì)6個(gè)字符串進(jìn)行升序排列。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!?include<?tdio.h>^include<string,h>?defineMAXLINE20fun(char?petr[6])Iimi.j;char?p;i=0;i<5;i?+)I/??????????????(bund??????????????/for(j=i+l,j<6.j*?)Iif(strcmp(?(畋?i).?(pstr?j))>0)IP=?(p?tr?i);found??????????????/?(prtr+i)=p?tr*j;?(沖+j)=p:main()Iinti:char rtr[6][MAXUNE];fbr(i=0;i<6;i?*)p?tr[i]=str[i]:printf("\nEntcr6rtring(】stringaleachline):\n");for(i=0;i<6;i+?)ncanf("%?-,p?tr(i]);fun(patr);printf("Thestringaftersorting:\n")tfbr(i=0;i<6;i??)printf("%?\n".pstr[i]>;I42.下列給定程序中,函數(shù)proc()的功能是:計(jì)算str所指字符串中含有t所指字符串的數(shù)目,并作為函數(shù)值返回。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main。函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:參考答案passwarnpasswarn解析:n++是在執(zhí)行完其所在的語(yǔ)句后再加1,因此,在執(zhí)行case的時(shí)候,n的值依然為,c\執(zhí)行case。后面的語(yǔ)句,先打印出“pass”;在執(zhí)行完case'c'J^,未遇到break跳出switch,便接著執(zhí)行下面的語(yǔ)句,又打印出warn。所以此題輸出結(jié)果是passwarno功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個(gè)程序的開(kāi)頭部分,給出程序的整體說(shuō)明,?功能性注釋一般嵌在源程序體之中,主要描述其后的語(yǔ)句或程序做什么,開(kāi)發(fā)開(kāi)發(fā)解析:軟件生命周期(SDLC,軟件生存周期)是軟件的產(chǎn)生直到報(bào)廢的生命周期,周期內(nèi)有問(wèn)題定義、可行性分析、總體描述、系統(tǒng)設(shè)計(jì)、編碼、調(diào)試和測(cè)試、驗(yàn)收與運(yùn)行、維護(hù)升級(jí)到廢棄等階段,其中的編碼和測(cè)試屬于開(kāi)發(fā)階段。4.101,0解析:與運(yùn)算兩邊的語(yǔ)句必須同時(shí)為真時(shí),結(jié)果才為真,當(dāng)執(zhí)行完if((++a<0)&&!(b-<=0))時(shí),a,b的值已經(jīng)發(fā)生了變化。操作系統(tǒng)或OS操作系統(tǒng)或OS解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)。位于用戶和操作系統(tǒng)之間。p!=NULLp->nextp!=NULL\r\np->next解析:結(jié)構(gòu)體變量構(gòu)成鏈表需要每個(gè)節(jié)點(diǎn)中都有一個(gè)指向下一個(gè)結(jié)點(diǎn)的指針,就像本題中的next指針一樣。注意:掌握可以對(duì)鏈表進(jìn)行的操作。strudctSTRUstrudctSTRU解析:結(jié)構(gòu)件類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。結(jié)構(gòu)體類型的定義:struct結(jié)構(gòu)體類型名(成員項(xiàng)表;);定義結(jié)構(gòu)體變量的的形式為:struct結(jié)構(gòu)體類型名變量1,變量2,.?.?其中變量包括;一般變量、指針變量、數(shù)組變量等。8.int*int*解析:從題中代碼可知:z應(yīng)該是一個(gè)整型指針,因此應(yīng)填int*o9.67G67G解析:根據(jù)題意,a='A'+'5'-'3'=65+2=67,b=67+4=71,71即為字母G的ASCII碼值。程序要求按十進(jìn)制形式輸出a,按字符形式輸出b,所以結(jié)果為67Go10.8181解析:本題的宏調(diào)用S(i+j)將被替換成表達(dá)式4*i+j*i+j+l等于4*6+8*6+8+1=24+48+8+1=81。所以本題輸出81oC將兩個(gè)字符串連接起來(lái)組成一個(gè)字符串,選用strcat函數(shù)來(lái)連接。D解析:C語(yǔ)言的宏定義包括不帶參數(shù)的宏定義與帶參數(shù)的宏定義。本題為帶參數(shù)的宏定義,其形式為:#define宏名(形參表)字符串本題的M(a+b,b+c,c+a)被字符串a(chǎn)+b*b+c+c+a代替。A軟件危機(jī)主要表現(xiàn)在:軟件需求的增長(zhǎng)得不到滿足;軟件開(kāi)發(fā)成本和進(jìn)度無(wú)法控制;軟件質(zhì)量難以保證;軟件不可維護(hù)或維護(hù)程度非常低;軟件的成本不斷提高;軟件開(kāi)發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長(zhǎng)。所以選擇A。C解析:計(jì)算機(jī)語(yǔ)言分為低級(jí)語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言,C語(yǔ)言屬于高級(jí)語(yǔ)言,但并不是說(shuō)C語(yǔ)言比其他語(yǔ)言高級(jí),所以選項(xiàng)A錯(cuò)誤;除了低級(jí)語(yǔ)言外,其他各種語(yǔ)言都必須譯成能被計(jì)算機(jī)識(shí)別的二進(jìn)制數(shù)才能執(zhí)行,選項(xiàng)B錯(cuò)誤;C語(yǔ)言出現(xiàn)從1972年到1973年間,并不是出現(xiàn)最晚的語(yǔ)言,所以選項(xiàng)D也是錯(cuò)誤的。BA本題主要考查自加減運(yùn)算符(++,??)的使用。①如果作為前綴變量“++a,..a”,在使用a之前,先使a的值加1或者減1,再使用表達(dá)式的值參與運(yùn)算;②后綴變量“a++,a..”,先使用表達(dá)式的值參與運(yùn)算,在使用a之后,再使i的值加1或者減1。在本題中計(jì)算表達(dá)式c=(a++).l時(shí)先使用a的值進(jìn)行計(jì)算,結(jié)果為c=2.l=l,然后將a的值加1,即執(zhí)行完此句后13■的值是3;表達(dá)式c+=.a+++(++b)也可寫成C=c+(—a++)+(++b),c=l+(一3)+3=1,此時(shí)a=4,b=3。TOC\o"1-5"\h\zCAAD層次模型的基本結(jié)構(gòu)是樹(shù)形結(jié)構(gòu),網(wǎng)狀模型是一個(gè)不加任何條件限制的無(wú)向圖,關(guān)系模型采用二維表來(lái)表示,所以三種數(shù)據(jù)庫(kù)的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。\n\tvoidproc(int int*a,int*n)\n{\ninti,j=0;\nfor(i=l;i<=m;i++)//進(jìn)行m次循環(huán)\nif(i%7==0||i%ll==0)//能被7或11整除的所有整數(shù)\na[j++]=i;//符合條件的數(shù)放在數(shù)組a中\(zhòng)n*n=j;//返回這些數(shù)的個(gè)數(shù)\n}\n【解析】本題需要先判斷1?m每一個(gè)整數(shù)能否被7或11整除,然后將符合條件的整數(shù)放在數(shù)組a中,最后將符合條件的數(shù)的個(gè)數(shù)通過(guò)形參n返回主函數(shù)。\n\n\tvoidproc(chararr[M][N],char*b)\n{\ninti?j,k=0;\nfor(i=0;i<M;i++)//i表示其行下標(biāo)\nfor(j=0;.rr[i]|j]!=\O;j++)//由于每行的個(gè)數(shù)不等,因此用a[i][j]!=\O來(lái)作為循環(huán)結(jié)束的條件\nb[k++]=arr[il|j]; //把二維數(shù)組中的元素茄到b的一維數(shù)組中,\nb[k]=\O;//最后把b賦\0作為字符串結(jié)束的標(biāo)志\n}\n【解析】字符串?dāng)?shù)組中每一行都是一個(gè)一個(gè)完整的字符串,其結(jié)束標(biāo)志為\。。因此,通過(guò)字符串的結(jié)束標(biāo)志來(lái)判斷每一個(gè)字符串是否結(jié)束,將字符串?dāng)?shù)組中的所有字符串均賦值新的一維數(shù)組b來(lái)完成字符串的合并。\n23.【解析】題目中要求把下標(biāo)從p到n-1的數(shù)組元素平移到數(shù)組的前面,可以通過(guò)每一次循環(huán)將最后一個(gè)元素放在第一個(gè)位置上,使其成為第一個(gè)元素,其余元素后移一個(gè)位置。通過(guò)n-1-p次循環(huán)實(shí)現(xiàn)將從p到n-1的數(shù)組元素平移到數(shù)組的前面。24.【解析】我們應(yīng)定義一個(gè)變量表示其和,一個(gè)變量表示其分?jǐn)?shù),由題目中可知循環(huán)結(jié)束的標(biāo)志為分?jǐn)?shù)小于eps,因此其為循環(huán)結(jié)束的條件,根據(jù)公式的變化規(guī)律,可求得s,最后把2*s返回到主函數(shù)中。25.【考點(diǎn)分析】要?jiǎng)h除字符串中所有*號(hào)需要用循環(huán)語(yǔ)句遍歷字符串,用判斷語(yǔ)句判斷字符是否為*號(hào),由此可以決定該程序應(yīng)使用循環(huán)判斷結(jié)構(gòu)?!窘忸}思路】26.【解析】要找到所有學(xué)生中成績(jī)低于平均分?jǐn)?shù)的人數(shù),首先需要算出所有學(xué)生的平均成績(jī)。然后將所有學(xué)生的成績(jī)與平均成績(jī)相比較。將低于平均分?jǐn)?shù)學(xué)生的記錄存放在新的數(shù)組中,并將低于平均分?jǐn)?shù)的學(xué)生數(shù)返回給主函數(shù)。27.vodprocfetwr?str.chart[])ft〃,―2.@示為會(huì)的費(fèi)放由Ift■中iOI-Ao*.. Afft【解析】題目要求將下標(biāo)為偶數(shù)的字符刪除,其余字符放在新的字符數(shù)組t中。首先取出字符串str中下標(biāo)為奇數(shù)的字符,將其賦值給新的字符串t,最后用’\0'作為字符串結(jié)束的標(biāo)志。voidfun(inta[3][3],intb[3][3])(inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)b[i]U]=a[i][j]+aU][i];/*把矩陣a加上a的轉(zhuǎn)置,存放在矩陣。中*/}行列數(shù)相等的二維數(shù)組的轉(zhuǎn)置就是行列互換。即轉(zhuǎn)置后的第i行第j列正好對(duì)應(yīng)原矩陣的第j行第i列。本題使用兩層循環(huán)實(shí)現(xiàn)矩陣的轉(zhuǎn)置,并將計(jì)算結(jié)果存入矩陣b中,外層循環(huán)控制矩陣的行下標(biāo),內(nèi)層循環(huán)控制矩陣的列下標(biāo)。doublefun(doubleeps)(doubles=0.0,si=1.0;intn=l;while(sl>=eps)/*當(dāng)某項(xiàng)大于精度要求時(shí),繼續(xù)求下一項(xiàng)*/(s=s+sl;/*求和*/sl=sl*n/(2*n+l);/*求多項(xiàng)式的每一項(xiàng)*/n++;}return2*s;}該題考核的是通過(guò)迭代法求給定多項(xiàng)式的值。迭代法是讓計(jì)算機(jī)對(duì)一組指令(或一定步驟)進(jìn)行重復(fù)執(zhí)行,在每次執(zhí)行這組指令(或這些步驟)時(shí),都從變量的原值推出它的一個(gè)新值。需要注意變量的數(shù)據(jù)類型和賦初值操作。定義double類型變量s,并為其賦初值,用來(lái)存放多項(xiàng)式的某一項(xiàng)和最后的總和。從第2項(xiàng)開(kāi)始,以后的每一項(xiàng)都是其前面一項(xiàng)乘以n/(2*n+l)o程序用si來(lái)表示每一項(xiàng),用s表示求和后的結(jié)果。需注意變量si和s的初值都為1.0,因?yàn)檠h(huán)變量從第2項(xiàng)開(kāi)始累加。30.【解析】本題比較簡(jiǎn)單,因?yàn)轭}目中已經(jīng)給出了算法,只要把題目中的說(shuō)法轉(zhuǎn)換成C語(yǔ)言表達(dá)式基本上就出來(lái)了,本題最好用do-while循環(huán)來(lái)做,但要注意循環(huán)終止的條件。(1)錯(cuò)誤if(strcmp((pstr+i)(pstr+j))<0)正確if(strcmp(*(pstr+i)*(pstr+j))<0)(2)錯(cuò)誤:*(pstr+j)=*p;正確:*(pstr+j)=p;(1)錯(cuò)誤:if(strcmp((pstr+i),(pstr+j))<0)正確:if(strcmp(*(pstr+i),*(pstr+j))<0)\r\n(2)錯(cuò)誤:*(pstr+j)=*p;正確:*(pstr+j)=p;解析:錯(cuò)誤1:本題旨在考查指針的引用方法。*(pstr+i)指字符串中下標(biāo)為i的字符。錯(cuò)誤2:*p是字符類型,而*(pstr+j)是指針類型,二者不能進(jìn)行賦值運(yùn)算。⑴錯(cuò)誤:a=NuLL;正確:a=NULL;(2)錯(cuò)誤;if(r==p)(r++;p++;}正確if(*r==*p){r++;p++;}⑴錯(cuò)誤KNuLL;正確a=NULL;\r\n⑵錯(cuò)誤;if(r==p){r++;p++;}正確:if(*r==*p){r++;p++;}解析:題目要求將最后一次出現(xiàn)的輸入字符后面的字符串做一復(fù)制處理,并在主函數(shù)中輸出從此地址開(kāi)始的字符串。a=NuLL;是明顯的常識(shí)性錯(cuò)誤。題目中已經(jīng)定義了指針變量chaf*p,*r,*a;,循環(huán)條件應(yīng)該是if(*r==*p){r++;p++;},而非iRf(r==p){r++;p++;}。(l)while(i<j)或while(j>i)(2)if(*a)(l)while(i<j)或while(j>i)(2)if(*a)解析:本題中函數(shù)的功能是首先把b所指字符串中的字符按逆序存放,然后將a所指字符串中的字符和b所指字符串中的字符,按排列的順序交叉合并到c所指數(shù)組中,過(guò)長(zhǎng)的剩余字符接在c所指數(shù)組的尾部。其中,對(duì)于字符串的逆序過(guò)程,分別用變量i和j代表字符串中開(kāi)始和末尾字符的下標(biāo),把下標(biāo)i和j元素中的值對(duì)調(diào)后,i++和j--直到i的值大于j時(shí)逆序操作完成。錯(cuò)誤:printf(n%3dnm|j]*10);正確:printf(n%3dnm|j]=m|j]*l0錯(cuò)誤:printf(%3dm|j]*10);正確:printf(%3dm|j]=m(j]*10解析:本題考查全局變量相關(guān)知識(shí)。該題程序中的fun()沒(méi)有參數(shù)輸入,但數(shù)組m[10]為全局變量,故可在fun()函數(shù)中使用,fun()函數(shù)對(duì)數(shù)組m的操作可以反映到主函數(shù)的輸出結(jié)果中。錯(cuò)誤:a[i+l]=a[i];正確:a[i]=a[i+l];錯(cuò)誤:a[i+l]=a[i];正確:a[i]=a[i+l];解析:上機(jī)改錯(cuò)題有一個(gè)優(yōu)勢(shì),就是我們可以執(zhí)行該程序,根據(jù)錯(cuò)誤的提示再一步一步實(shí)現(xiàn)改錯(cuò)的目的,我們先不看程序是什么意思,甚至不用看它在求什么。按Ctrl+F9快捷鍵,然后看看屏幕提示。另外,審題時(shí)我們必須要注意“不要改動(dòng)main。函數(shù),不得增行或減行,也不得更改程序結(jié)構(gòu)”,這樣;對(duì)我們來(lái)說(shuō),只要讀懂題意,對(duì)程序執(zhí)行部分:{intp=0,i;a[n]=x;while(x!=a[p])?=P+1;if(p==n)return-1;else{for(i=p;i<n;i++)a[i+l]=a[i];returnn-1;}逐步分析,再應(yīng)用平時(shí)的常識(shí)加以區(qū)分,琢磨,相信答案不攻自破,這種考題,按Ctrl+F9快捷鍵后,屏幕一般都不會(huì)提示錯(cuò)誤,否則就顯得太兒科了一點(diǎn),所以,我們并不需要著急去找錯(cuò)誤,而是把程序讀懂。⑴錯(cuò)誤:(t=a;b=a;a=t;}正確:{t=a;a=b;b=t;}(2)錯(cuò)誤:retum(a);正確:retum(b);⑴錯(cuò)誤:{t=a;b=a;a=t;)正確:{t=a;a=b;b=t;)\r\n(2)錯(cuò)誤:return(a);正確:return(b);解析:若求兩個(gè)數(shù)的最大公約數(shù),如果b除a的非零余數(shù)能夠整除a,那么該余數(shù)就是最大公約數(shù);若余數(shù)為0,則最大公約數(shù)為a。該題程序中采用了循環(huán)語(yǔ)句,若b除以a的余數(shù)不等于0,則繼續(xù)用a除以所得余數(shù),直至余數(shù)為0,如此可以得到a,b的最大公約數(shù)。關(guān)于“交換原則”我們?cè)谇懊?/p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 下水井維修合同范本
- 供應(yīng)合同范本長(zhǎng)期
- 2025年吐魯番怎么考貨運(yùn)從業(yè)資格證
- 住宅綠化養(yǎng)護(hù)合同范本
- 醫(yī)療健康服務(wù)合同范本
- 個(gè)體工商退股合同范本
- 助理編輯聘約合同范本
- 蘇州代建合同范本
- 公司改造施工合同范本
- 營(yíng)地臨建合同范本
- 波普解析PPT質(zhì)譜教案資料
- YS/T 431-2000鋁及鋁合金彩色涂層板、帶材
- 球墨鑄鐵管安裝規(guī)范及圖示課件
- ERCP講義教學(xué)課件
- 《人類行為與社會(huì)環(huán)境》課件
- 霍亂病例分析課件
- 體檢報(bào)告單入職體檢模板
- 銀行基本技能(第2版)電子教案
- 高中英語(yǔ)單詞及短語(yǔ)匯總(北師大版)
- 北京市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- TTT培訓(xùn)教材(-55張)課件
評(píng)論
0/150
提交評(píng)論