二級C語言上機(jī)編程題技巧總結(jié)_第1頁
二級C語言上機(jī)編程題技巧總結(jié)_第2頁
二級C語言上機(jī)編程題技巧總結(jié)_第3頁
二級C語言上機(jī)編程題技巧總結(jié)_第4頁
二級C語言上機(jī)編程題技巧總結(jié)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

二級C語言上機(jī)編程題技巧、方法總結(jié)1、 二級C語言上機(jī)編程題在二級上機(jī)考試中屬于較難題型,因此很多同學(xué)都害怕通過不了。綜合往年的考試,結(jié)合考試大綱,每年考試的編程題都有一定的規(guī)律和方法,只要同學(xué)們認(rèn)真熟練使用做題的方法,通過考試是沒有問題的。2、 編程題做題方法一:使用C語言特有的函數(shù)做題(1) 編程思想:使用C語言函數(shù)庫中的做題,做題時必須注意包含對應(yīng)的頭文件(2) 考題舉例:題庫中的第37題,要求將數(shù)字字符串轉(zhuǎn)化為對應(yīng)整數(shù),例如“-1234”轉(zhuǎn)化后為-1234。做題時需要添加頭文件#include"stdlib.h",然后在fun函數(shù)中寫入程序returnatol(p);其中atol(p)表示將p從字符串轉(zhuǎn)化為長整型數(shù)。最后編譯,運(yùn)行后輸入測試數(shù)據(jù)后即可得到滿分。#include<stdio.h>#include<string.h>#include"stdlib.h"longfun(char*p){returnatol(p);}(3) 方法總結(jié):該類方法可以適用的題目較少,同學(xué)們了解即可。3、 編程題做題方法二:使用規(guī)律做題(1) 編程思想:部分題目的答案是固定的,不會因?yàn)檩斎氲臄?shù)據(jù)改變而改變,因此這部分題目我們直接將答案記住即可,減少編程的麻煩。(2) 考題舉例:題庫中的70題,求cos(x)-x=0的一個實(shí)根。做題時候在fun函數(shù)中輸入return0.739085;后點(diǎn)擊編譯和運(yùn)行即可,無需輸入測試數(shù)據(jù)。(補(bǔ)充:如果需要輸入測試數(shù)據(jù),程序在輸出的黑屏上面會提示,不過一般是英文提示,所以同學(xué)們要格外小心)#include<math.h>#include<stdio.h>doublefun(){return0.739085;}(3) 考題總結(jié):該題為每年必考的題目,因此同學(xué)們要將答案熟記,以便大家能順利通過考試。4、 編程題做題方法三:使用C語言編程(1) 編程思想:該種方法是考試中使用頻率最多的方法,就是使用學(xué)習(xí)的C語言進(jìn)行編程,對C語言的知識進(jìn)行綜合運(yùn)用,因此難度較大,容易出錯。(2)考題舉例:題庫14題,求小于形參n同時能被3和7整除的所有自然數(shù)之和的平方根,并作為函數(shù)的返回。做題時時一定要按照三個步驟來:一要定義,二要滿足題意,三要看有無返回。#include<math.h>#include<stdio.h>doublefun(intn){inti;intsum=0;for(i=0;i<n;i++){if(i%3==0&&i%7==0){sum=sum+i;}}returnsqrt(sum);}考題總結(jié):該題屬于編程方法中較簡單的題型,做題時也可以使用簡便方法,請參考考試總結(jié)中的敘述。5、 編程題做題方法四:使用簡便方法做題(1)編程思想:顧名思義這是一種簡單而且高效的方法,可是要提醒大家里面的方法不是看一遍就能掌握的,同學(xué)們要仔細(xì)再仔細(xì),多練習(xí)多思考。(2)考題舉例:題庫第8題,要求除了字符串前導(dǎo)的*號之外,將串中其他的*號全部刪除。例女口,字符串的內(nèi)容:****A*BC*DEF*G*******,刪除后為:****ABCDEFG。做題步驟如下:讀題目,否則將不能正確做題。該題目的要求很清晰,就是刪除*號,但是不能刪除前導(dǎo)*號。這里大家要知道什么是前導(dǎo)*號?其實(shí)它是指字符串中第一個字母以前的全部*號,該題中有4個前導(dǎo)*號。開始做題,找到NONO函數(shù),了解做題的來龍去脈。以該題為例,以下是NONO函數(shù)的全部內(nèi)容:NONO(){/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*in,*out;inti;chars[81];in=fopen("D:\\k01\\24010001\\in.dat","r");out=fopen("D:\\k01\\24010001\\out.dat","w");for(i=0;i<10;i++){fscanf(in,"%s",s);fun(s);fprintf(out,"%s\n",s);}fclose(in);fclose(out);}分析NONO函數(shù):分析過程有點(diǎn)多,第一次就要將其看懂,后面就可以很輕松!FILE*in,*out;表示定義了兩個文件類型的指針in和out,用來指向某個打開的某個文件。inti;chars[81];定義了一個整型的變量i,一般用來表示循環(huán)的遞增;定義了一個字符類型的一維數(shù)組s,這里數(shù)組s沒有存儲任何的數(shù)據(jù),因此一般是閑置用來后面題目中存放數(shù)據(jù)使用的。in=fopen("D:\\k01\\24010001\\in.dat","r");in是上面定義的文件指針,用來指向一個文件in.dat。首先大家要知道open在英語里面表示是“打開”file在英語里面是“文件”因此形象記憶fopen就是打開文件,打開什么文件?看后面的存儲目錄D:\\k01\\24010001\\in.dat,就是這個路徑下面的文件in.dat,以”r”只讀的形

式打開,記住不能就行對in.dat的改動。④out=fopen("D:\\k01\\24010001\\out.dat","w");out文件指針用來指向out.dat,打開的方式以”W”寫的方式寫數(shù)據(jù),換句話說:in.dat是考試時候的數(shù)據(jù)源文件,而out.dat是用來存放答案的文件,所以要確保out.dat中的數(shù)據(jù)完全正確。for(i=0;i<10;i++)循環(huán)語句,該循環(huán)將執(zhí)行10次fscanf(in,"%s",s);從in文件所指向的數(shù)據(jù)源文件in.dat中讀取一行字符串?dāng)?shù)據(jù)給一維數(shù)組s,(順便說下為什么知道是讀取一行字符串?dāng)?shù)據(jù),是因?yàn)椋格式是用來控制字符串的,因此不難判斷),通過循環(huán)語句,將讀取10行數(shù)據(jù)進(jìn)行處理,該題目總共40分,因此每行就是4分。fun(s);調(diào)用函數(shù)fun,傳入實(shí)參s,我們從題目得知fun函數(shù)要完成的事情是刪除字符串中的*號,但是不刪除前導(dǎo)*號,每次傳入的數(shù)據(jù)都會被執(zhí)行。fprintf(out,"%s\n",s);printf在第二章學(xué)習(xí)的時候知道是輸出的意思,fprintf的意思是將數(shù)據(jù)輸出到out指針指向的文件中,以“%s\n”格式方式輸出,輸出的數(shù)據(jù)是s,同學(xué)們一定要注意,此時的s是修改過的s,即是刪除*號后的字符串。fclose(in);關(guān)閉文件指針infclose(out);關(guān)閉文件指針out,文件打開后要將其關(guān)閉。3) 在VC6.0中fun函數(shù)位置輸入一些簡單的語句,例如:輸入定義一個test變量,給其賦值,最好多敲幾個回車進(jìn)去,如果數(shù)據(jù)有返回值,必須輸入返回值。然后點(diǎn)擊編譯,運(yùn)行后將出現(xiàn)這個界面:#include<stdio.h>voidfun(char*a){inttest;test=5;}要求輸入一個字符串,可以任意的從鍵盤中輸入字符串,例如輸入:12345回車得到:程序中出項(xiàng)Pressanykeytocontinue則說明程序已經(jīng)運(yùn)行,將在考試文件夾下面生成out.dat文件,否則在考生文件夾下面將不會生成out.dat文件,就沒有辦法繼續(xù)做題。打開in.dat①關(guān)閉第三步程序運(yùn)行的界面,打開int.dat文件。

②在VC++6.0界面中“單擊File”,在彈出的菜單中選取“Open”,打開考生文件夾D:\\k01\\24010001下面的in.dat文件。截圖如下:③查找范圍里面選中D盤④找到k01下面的24010001,發(fā)現(xiàn)沒有in.dat文件,單擊文件類型,選擇“所有文件(*.*)”即可⑤選中in.dat,然后單擊打開,出現(xiàn)下圖所示界面為正確打開[flin.datpt###A*BC*DEF*G********JFHG****KHJ***SDFGH****KJKJ*J*K*K*J*****######ogh*gklj*lkj*lkj*klkjhg*dq*lj*kj*****JJKD***JHHKJH*DGH*TDFHG*TVRVTRIU*JGJ***************HKHJLKH***GUHHJ*GFHJ**GJHK***GJKGK****KHKLHKJHKJ*********jhgdfxggjh****jfhgfk**hkh**kjhkl***klh***JDFARTQVU*****HFGUJ**KJHKJ**KJHK***********jkhiluhiugclklkjgh*******hjghg**kjh**jv*jh*m*hjh*********jkh***ghjk*jhgg*ggjk*gjkg*gkj*gh*gk*jk*********KJKHLKJHSQDQDQ*DQDq*DQ*DQLKDKJQ*POUOIUO*LKJL*****將out.dat里面的數(shù)據(jù)清空,即將out中所有東西都刪除,讓out沒有任何的代碼out.dat*將in.dat中第一行數(shù)據(jù)****A*BC*DEF*G********復(fù)制到out.dat中將out.dat第一行數(shù)據(jù)的中間*和尾部*全部刪除,然后敲入回車[flout.dat*****ABCDEFG以此類推將in.dat中剩余9行按照上面的步驟復(fù)制到out.dat中進(jìn)行修改,兩行中間沒有空行[=l|out.dat*****ABCDEFG**********LKJFHGKHJSDFGHKJKJJKKJ******OGHGKLJLKJLKJKLKJHGDQLJKJ********HJJKDJHHKJHDGHTDFHGTVRVTRIUJGJ####*HKHJLKHGUHHJGFHJGJHKGJKGKKHKLHKJHKJ####*#jhgdfxggjhjfhgfkhkhkjhklklh*#*#*#*#*#*#UVKJDFARTQVWHFGUJKJHKJKJHK********JKHILUHIUGCLKLKJGHHJGHGKJHJVJHMHJH####*JKHGHJKJHGGGGJKGJKGGKJGHGKJK****KJKHLKJHSqDqDqDqDqDqDqLKDKJQPOUOIUOLKJL6)保存交卷①單擊左上方的保存,保存結(jié)果②保存后關(guān)閉vc++6.0方可交卷二、考題總結(jié)第一種類型:字符串操作一,字符串刪除*號1、 考題庫中考題對應(yīng)編號:8、9、10、19、45、54、57、61、65、71、77、90、92、93、100、56、60、72、75、85、862、 舉例:以第10題為例講解分析題目:使字符串的前導(dǎo)*號不得多于n個,若多于n個,則刪除多余的*好,若少于或等于n個,則什么也不做,字符串中間和尾部*號不得刪除。分析NONO函數(shù):NONO(){/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*in,*out;inti,n;chars[81];in=fopen("D:\\k01\\24010001\\in.dat","r");out=fopen("D:\\k01\\24010001\\out.dat","w");for(i=0;i<10;i++){fscanf(in,"%s",s);fscanf(in,"%d",&n);fun(s,n);fprintf(out,"%s\n",s);}fclose(in);fclose(out);}NONON函數(shù)具體分析方法前面(方法四)已經(jīng)詳細(xì)講解過了,現(xiàn)將不同的點(diǎn)進(jìn)行分析。fscanf(in,"%s",s);表示從in.dat中讀取一個字符串放到數(shù)組s中fscanf(in,"%d",&n)表示從in.dat中讀取一個整型數(shù)據(jù)給變量n,從題目中我們不難發(fā)現(xiàn)s和n之間的關(guān)系,就是如果s字符串中的前導(dǎo)多于n個刪除,則刪除多余的*號,否則什么也不做。fprintf(out,"%s\n",s);只將修改后的字符串輸出在fun函數(shù)中輸入測試數(shù)據(jù),該題函數(shù)返回void則無需return語句#include<stdio.h>voidfun(char*a,intn){inttest;test=5;}編譯運(yùn)行,輸入一個字符串后還需輸入一個n

5)打開in.dat融nDi\k01\24010001\Debug\progl.exen5)打開in.datEnterastring:123456Entern: 3Thestringafterdeleted:123456PressanykeytocontinueHin.dat*******f)*******f)*******f)c*DEF*G****JFHG****KHJ***SDFGH****KJKJ*J*K*K*J**********OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ********HJJKD***JHHKJH*DGH*TDFHG*TVRVTRIU*JGJ**********8JFHG****UVKJDFARTQVW*****HFGUJ**KJHKJ**KJHK******JKHILUHIUGCLKLKJGH*******HJGHG**KJH**JV*JH*M*HJH******JKH***GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK*****KHJJHGDFXGGJH****JFHGFK**HKH**KJHKL***KLH***SDFGH****KJKJ*J*K*K*J7) ****UVKJDFARTQVW*****HFGUJ**KJHKJ**KJHK******JKHILUHIUGCLKLKJGH*******HJGHG**KJH**JV*JH*M*HJH******JKH***GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK*****JHGDFXGGJH****JFHGFK**HKH**KJHKL***KLH***7) 保存交卷第二種類型:字符串操作二,移動字符串1、 考題庫中對應(yīng)試題編號:1、42、83、87Q]ABCDEFGHIJK21FkjdlsFhjsdlkfjsdlkfjsdlkfjdsrewoiru29Fdsill<Fj93242dfhdkjFhdskjFhdsjkFdshjfdhFkjdshFkjdsfhdksjfueoSifheufSQUSS19kclsdjFksdlfjsdlkfjdsfw329oruewoifjdslkfdf932dFjhklsujFhd55kdjsFldsjflkdfjdskFjdslkFjweioufeoijFlkdwejfe2wruoiweuFwekFhd10jsdaFhdsFhdsFdsfkjdsFhlkdjFhdfdskjFsd31jfdashFdjksfhfe93tFiuujdFg934r4329ugFi2493ru9fur2Q39ruefoi36FjsdFhdsjkFhsdF3o4irouiwreFu43298ruoit3290rfudkgrejg439tufrl9jFdshFkjdshFdsjkfhsdjkfhsdkjfhds28FjkhdsFkjhdsjfhdsjkfhsdfhsFkhsdkjfhdskjfhdsjFhdslkFjhdslk分析:in.dat結(jié)合NONO函數(shù)中的fscanf函數(shù)可以得到,函數(shù)將整數(shù)3給了m,將字符串:ABCDEFGHIJK給了數(shù)組a6)打開out.dat①將in.dat中第一行中的字符的前3個字母移動到最后JDFARTQVVJ*****HFGUJHKHJLKH***GUHHJ*GFHJ**GJHK***GJKGK****KHKLHKJHKJ***KJHKJ**KJHK***HKHJLKH***GUHHJ*GFHJ**GJHK***GJKGK****KHKLHKJHKJ********JKH***GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK*****分析in.dat中的數(shù)據(jù)剛好是一行字符串一行整數(shù),總共有20行,通過fscanf(in,"%s",s);fscanf(in,"%d",&n);兩個函數(shù)每次輸入兩個數(shù)據(jù)分別給s和n,例如第一行中輸入的時候s字符串就該為:*******A*BC*DEF*G****,n的值就為:4,s字符串中的前導(dǎo)*號為個,多于了n的值,因此需要將多于的3個*號刪除。打開out.dat打開out.dat并清空數(shù)據(jù),因?yàn)閒printf(out,〃%s\n〃,s);只將修改后的字符串輸出,將第一個字符串刪除3個*號填寫到out.dat中,不輸出in.dat中的4[=1o此扣t*以此類推將數(shù)據(jù)進(jìn)行輸入:[=1out.dat*

2、 試題舉例:以第1題為例分析題目:把1到第m個字符平移到字符串的最后分析NONO函數(shù):NONO()</*請在此函數(shù)內(nèi)打開文件,輸入測試數(shù)據(jù),調(diào)用Fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wF;chara[N];intm,i;rf=Fopenf'D:\\kB1\\24010801Win.daf/'r");TOC\o"1-5"\h\zwF= 譏2即町盹MXout.d日 ;for(i=B;i<18;i++)<|Fscanf(rF,"^d%s",&m,a); |“Fun(日,m); "『印fintFM;■需W,日);fclose(rF);Fclose(wF)注意fscanf(rf,"%d%s",&m,a);表示從rf指向的文件in.dat中讀取兩個數(shù)據(jù),一個整型數(shù)據(jù)給變量m,另外一個給數(shù)組a。根據(jù)題目我們不難判斷,程序就完成:將數(shù)組a中的字符串從第1個到第m個移動到最后。3)在fun函數(shù)中輸入測試數(shù)據(jù),,該題函數(shù)返回void則無需return語句,在執(zhí)行窗口中需要輸入m的值。uoidFun(char*w,intm)inttest;test=5:4)編譯,執(zhí)行,輸入測試數(shù)據(jù)4)編譯,執(zhí)行,輸入測試數(shù)據(jù)nDi\k01\24dl0001\Debug\prfcl.exennDi\k01\24dl0001\Debug\prfcl.exen"D:\k01\24010001\Debug\proTheoriginalstringABCDEFGHIJKEnterm-TheoriginalstringABCDEFGHIJKEnterm-TheoriginalstringABCDEFGHIJKEnterm: 35)打開in.dat[fl5)打開in.dat[flin.datThestringaftermoving[=1out.dat*DEFGHIJKABC②依次類推將得到正確的結(jié)果。7)保存交卷第三種類型:數(shù)學(xué)問題一,將兩個數(shù)字按照要求合并成一個數(shù)字1、對應(yīng)題庫中的題目編號:13、38、44、46、63、69、78、88、94、95、962、試題舉例:以13題為例分析題目:將a中十位和個位數(shù)依次放在變量c的百位和個位上,b中的十位和個位依次放在變量c的十位和千位上(2)分析NONO函數(shù):N0N0()</*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*rF,*wf;inti,a,b;longc;rF=Fopen("D:\\k01\\24010801Win.daf/'r")F FEcmnFfrF,■喘d,盅d“,蠱日,F(xiàn)un(日,D,He);|Fp廣盅d,t)=^(i,c=盅],(i\n??,日,b,c)3)Fclose(rf);Fclosetwf*在fun函數(shù)丿行窗口中需要輸入12空格45回車后,出現(xiàn)下圖結(jié)果。uoidFun(inta,int3)Fclose(rf);Fclosetwf*在fun函數(shù)丿行窗口中需要輸入12空格45回車后,出現(xiàn)下圖結(jié)果。uoidFun(inta,intb,long*c)中輸入測試數(shù)據(jù),編譯,執(zhí)行,該題函數(shù)返回void則無需return語句,在執(zhí)SnDi\k11\24010001\[|ebug\pFogl.exen4)5)inttest;test=B;|Inputa,b:1245Theresultis:-858993460Pressanvkeytocontinue打開in.dat,fscanf(rf,"%d,%d",&a,&b);第一行中將45給了變量a,將12給了變量b打開out.datefprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);輸出格式一定要注意,如下圖所示,否則不得分。6)保存交卷第四種類型:數(shù)學(xué)問題二,二維數(shù)組相關(guān)類型題目1、題庫中對應(yīng)題目編號:15、17、24、26、31、32、40、41、43、50、812、考題舉例:以15題為例題目分析:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到二維數(shù)組中NONO函數(shù):NONO()</*請在此函數(shù)內(nèi)打開文件,輸入測試數(shù)據(jù),調(diào)用fun函數(shù),輸岀數(shù)據(jù),關(guān)閉文件。*/FILE*rf,*wf;inti,j,k;intw[18][1B],a[100],n=8,mm,nn;rF= 舶\\2卻町盹舶\\in-d日;For(k=B;k<5;k++){[匸二日nF(f*,■喘d盅6",Edim;&nn); [*d1"常;i.(ihwi;i.八) -For(j=O;j<nn;j++)FscanF(rf,"^d",&w[i][j]);For(i=O;i<n;i++)|Fprintf(wF,"^3d",a[i]);fprintF(wf,"\n");|Fclose(rf);fclose(wf);在fun函數(shù)中輸入測試數(shù)據(jù),編譯,執(zhí)行,該題函數(shù)返回void則無需return語句,出現(xiàn)下圖結(jié)果。uoidFun(int(*s)[18],int*b,int*n,intmm,intnn)inttest;test=5:打開in.dat。fscanf(rf,"%d%d",&mm,&nn);從in.dat中第一行輸入兩個整型數(shù),第一個3給變量mm表示數(shù)組中的行,第二個4給變量nn表示數(shù)組中的列。for(i=0;i<mm;i++)for(j=0;j<nn;j++)fscanf(rf,"%d",&w[i][j]);將mm*nn個整數(shù)放到二維數(shù)組w中,即讀取二維數(shù)組的數(shù)據(jù)。例如第一行mm為3,nn為4,則應(yīng)該有一個3行4列的二維數(shù)組。[Flin.dat打開out.dat。根據(jù)for(i=0;i<n;i++)fprintf(wf,"%3d",a[i]);fprintf(wf,"\n");格式進(jìn)行數(shù)據(jù)的輸出。for(i=0;i<n;i++)fprintf(wf,"%3d",a[i]);表示將n個二維數(shù)組元素以%3d的形式輸出到out.dat中,以第一個二維數(shù)組為例即將

以行的形式進(jìn)行輸出,結(jié)果如下:以行的形式進(jìn)行輸出,結(jié)果如下:第一個33前面要加一個空格,因?yàn)?3d要求輸出的寬度為3,但是33這個數(shù)字只占了2個的寬度,因此必須在33前面加一個空格,依次類推,第二33至55都要在前面加一個空格。輸完數(shù)據(jù)后要記得執(zhí)行fprintf(wf,"\n");輸出一個換行符。將題目中其它的二維數(shù)組修改后的結(jié)果如下:[J]out.dat7)保存交卷7)保存交卷第五種類型:找出數(shù)組中的最大值或者最大值所在的下標(biāo)題庫中對應(yīng)題目編號:18、29、36、66、83、55考題舉例:以18題為例題目要求:求出數(shù)組中最大數(shù)的下標(biāo)并存放在k所指的存儲單元中(2)NONO函數(shù):第五種類型:找出數(shù)組中的最大值或者最大值所在的下標(biāo)題庫中對應(yīng)題目編號:18、29、36、66、83、55考題舉例:以18題為例題目要求:求出數(shù)組中最大數(shù)的下標(biāo)并存放在k所指的存儲單元中(2)NONO函數(shù):NONO()</*本函數(shù)用于打開文件,輸入測試數(shù)據(jù),調(diào)用刊0函數(shù),輸岀數(shù)據(jù),關(guān)閉文件。*/inta[1B],i,k,j;FILE,*wF;3)rf= 佃。眄Win.dmt","嚴(yán));wF=FoDent,,D:\\k01\\24010001\\out.daf/'w"!:For(i=8;i<10;i++){for(j=0;j<10;j++) ■寵d",陰口])訂[印廣話"(前,噸d;樂d\n“,l<,日[k])訂Fclose(rf);J|在1fun函數(shù)中輸入測試數(shù)據(jù),編譯,執(zhí)行,該題函數(shù)返回int則需return語句,

題目中嚴(yán)格要求k返回的是最大值下標(biāo),因此必須給*k初始值0出現(xiàn)下圖結(jié)果。另外ttinclude<stdio.h>intfun(int*s,intt,int*k)*k=0;returnQ;4)打開4)打開in?dat文件。NONNO函數(shù)中:333333334444444455551011121211107899111213111213111213910111299988776515221222399989797989912558 777665511221212414342For(j=0;j<18;j++)|FEcmnF(",■寵d”,陰[j])說明的信息是將10個據(jù)通過fscanf函數(shù)讀入到數(shù)組a中,從10個數(shù)據(jù)中找到最大值及其下標(biāo)

計980121876101276885657543277767589610130140143145191080660549690110110123115144412057627559640120121144140132118017617519620120120123145188828027627529620120128723145155538037637539630130130133135199948047647549620120110113115111158017647529630160180113115111198;加759610304(J434111里面的數(shù)據(jù)都是10列,總共有10行,因此只要將每一行分析:in.dat可以發(fā)現(xiàn),里面的數(shù)據(jù)都是10列,總共有10行,因此只要將每一行5)的最大值及其下標(biāo)找出來存放在out.dat中即可。打開out.dat并清空文件里面的數(shù)據(jù)5)|印rintFWF,■喘d,盅dVT,K,日[K]);|該語句將最大值下標(biāo)k及其最大值以%d,%d的形式輸出,結(jié)合in.dat中的第一行數(shù)據(jù)不難發(fā)現(xiàn)最大值是121,它所在的下標(biāo)是1(補(bǔ)充下標(biāo)是從0開始的),因此將1,121輸入到out.dat中的第一行,記得在121后面加上回車進(jìn)行換行。6)[Jout.dat*[=16)[Jout.dat*[=1out.dat*保存交卷字符串操作三。包括統(tǒng)計單詞、字符的個數(shù),比較字符串,轉(zhuǎn)換字符串60,字符串操作三。包括統(tǒng)計單詞、字符的個數(shù),比較字符串,轉(zhuǎn)換字符串60,74(比較特殊,多練習(xí))1、 題庫中對應(yīng)題目編號:26,30,37,40,53,56,592、 考題舉例:以53題為例(1) 題目要求:求出ss所指字符串中指定字符的個數(shù),例如字符串:123412132,輸入的字符為:1,則輸出為:3。該類型的題目一定要知道哪個字符需要計算個數(shù)。(2) NONO函數(shù):uoidNONO()</*本函數(shù)用于打開文件,輸入測試數(shù)據(jù),調(diào)用Fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/inti;FILE*rf,*wf;chara[M],b[M],ch;Ifscanf(rf,a);Ifscanffrf.f-ri ■b):rf=Fop即「?叭\\|{町\\2即町盹日t??,Ifscanf(rf,a);Ifscanffrf.f-ri ■b):fprintf(wf,"^c^dXn",(ch)(fun(a>ch))J;fclose(rf);fclose(wf);3)在fun函數(shù)中輸入測試數(shù)據(jù),編譯,執(zhí)行,該題函數(shù)返回int則需return語句,出現(xiàn)下圖結(jié)果。nDi\k01\24010001\Debug\progl.exenPleaseenterastringnDi\k01\24010001\Debug\progl.exenPleaseenterastring:Pleaseenterastring:123456Pleaseenterachar:S"D:\k01\24010001\Debug\procPleaseenterastring:123456Pleaseenterachar:Pleaseenterastring:123456Pleaseenterachar:lThenumberofthecharis:5.dal^文continue_4)FscanF(rf,"^s",a);FscanF(rf,"^s",b);NONO函數(shù)中的兩個fscanf分別從in.dat中讀取兩行數(shù)據(jù)給數(shù)組a和數(shù)組b,以第一行和第二行數(shù)據(jù)為例,數(shù)組a存儲字符串為:hsfgjkdgfdgfdgkfdjgkldf,數(shù)組b存儲字符為:h,做題時需要從字符串中找出字符h的個數(shù),為1[=1in.datgdkljgkdfjgiotuiorsmhnFsjfsfjseffksdljfksdjfksdjFkdsjfksdjFdksFdsklfjsdkfdsfksd1:kdsl8904592fkdsjfksdfjdskFjsdklFjsdFjsd(5)打開fkdsjfksdfjdskFjsdklFjsdFjsd(5)打開out.dat文件,并清空里面的數(shù)據(jù)首先程序先將*b的值賦值給變量ch,通過in.dat中分析可以得到,*b存放的就是指定的字符,以第一行為例就應(yīng)該為h。數(shù)據(jù)在寫入out.dat時,必須以%c=%d\n的形式輸出,其中%c對應(yīng)ch,即為h,%d對應(yīng)的是函數(shù)的返回值,即為h在字符串中的個數(shù)為1。輸出的結(jié)果為:其它行依次類推6)保存交卷第七種類型:字符串操作四,刪除指定字符1、 題庫中對應(yīng)題目編號:4、12、25、28、35、39、52、55、72、75、85、862、 考題舉例:以第4題為例(1)題目要求:將ss所指字符串中所有下標(biāo)為奇數(shù)位置上的字母轉(zhuǎn)為大寫,若該位置不是字母,則不轉(zhuǎn)換。該類型的題目不難但是必修認(rèn)真,有耐心!(2)NONO函數(shù):該題中的NONO函數(shù)比較難理解,同學(xué)們只需將紅色方框里面的語句讀懂就行,具體的將在第四步中介紹。

NONO()/*請在此函數(shù)內(nèi)打開文件,輸入測試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)用文件。*/chartt[51],ch;FILE*rf,*wf;intlen,i=0;rf=fopen("D:\\k01W24010001Win.daf/'r");wf= 時譏2即時朋時\\out.d日“曠);uhile(i<10){|Fgets(tt,SB,rf);|len=str±en(tt)-1;ch=tt[len];if(ch==?\n?||ch==0x1a)tt[len]=O;廣intF(川F,■喘s\n“,tt); |i++:Fclose(rf);Fclose(wf);3)在fun函數(shù)中輸入測試數(shù)據(jù),編譯,執(zhí)行,該題函數(shù)返回void則無需return語句,出現(xiàn)下圖結(jié)果。uoidFun(charuoidFun(char*ss)inttest;test=5:Pleaseenterancliaracterstringuithin50characters:4)打開in.dat文件fgets(tt,50,rf表示從in.dat中讀入一個字符串給tt數(shù)組,如果不了解也不要緊,對做題沒有太大的影響。[=1in.dat==hdsFFdsFdsUFsdUFdsl.FdsjfdFdsjhFjdshFdsfdsjFdsjkFdsFjsdhffsdjkfdsjkfdskjfdsjsdffFjkFhdsfjdshkfsdhFsFdsjfdsjdsdhfdFdkjshFfdsjkfdskjfsksFdhjdfjkdhFsfdsjhfsdkFsdFsdjFkjdsFfFdjFhdsfsjdkhfsdfdsjkhFsdFsdjkhjFFdshjfdshjFdsfdhjsFhjdsfdshjkhkjFdhjFdhsfdkhjFsdkjdskdffdskFfFfFFdFhjsdkFsdkjhfsdkjfjdshfsdkhkFsd做題時候首先要知道字符的字符的小標(biāo)是否是奇數(shù),我們可以通過標(biāo)注數(shù)字刪除不符合的字符。以第一行為例,將奇數(shù)位置的字符改動就行,記住空格占一個字符,在做其它題目時候一定要小心dsffdsfdsljfdslfdsljkfsd0123456789101112131415161718192021222324252627285)打開out.dat文件,清空數(shù)據(jù)。fprintf(wf,〃%s\n〃,tt);將tt數(shù)組中的字符串修改后進(jìn)行輸出,即將下標(biāo)是奇數(shù)位置的小寫字符改為大寫字母。[=1out.dathDsFFdSFdSlJFsDIJFdSlFDsUkFsD[=1out.dat*[lDsFFdSFdSlJFsDIJFdSlFDsUkFsDjFdFDsJhfJdShfDsFdSjfDsjKfDsFJsDhFFsDjKFdSjKFdSkJFdSJSdFFFjKFHdSFjDsHKFsDhFSFDsJFdSjDsDhFdFDkJsHFFdSjKFdSKjFskSFDHjdFjKdHFSFdSjHFsDkFSdFSdJFKjDsFFFdJFHdSFsJdKhFsDFdSjKhFSdFSdJkHJFFDe町FdShJFdSFd町EF町DsFdShJkHkJFDhJFDhSFdKhJFSdkJdSKdFFdSkfFFFfFDFHjSdKFSdKjHFsDkJFjDsHFsDkHKFSd6)保存交卷第八種類型:結(jié)構(gòu)體1、 題庫中對應(yīng)題目編號:2、3、16、23、33、51、58、64、68、82、97、98、992、 考題舉例:以第二題為例(備注第二題是該類型中最典型的例題)題目要求:N名學(xué)生的數(shù)據(jù)已經(jīng)通過主函數(shù)存放在s數(shù)組中,函數(shù)功能是:把指定分?jǐn)?shù)范圍內(nèi)的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)由函數(shù)返回。(注釋:該題不僅僅考查題目中要求的內(nèi)容,在程序段中有特殊的語句需要執(zhí)行,所以需要特別注意!)main函數(shù):該題沒有NONO函數(shù),因此以主函數(shù)為準(zhǔn)。說明main函數(shù):typedefstruct{charnum[1O];ints;在main函數(shù)之前定義了一個結(jié)構(gòu)體STREC,里面有兩個成員,分別表示學(xué)號和成績,該題中一定要認(rèn)清操作的是學(xué)號還是成績,特別是輸出的時候,該類型的題目都擁有相同的考點(diǎn)。在主函數(shù)中STRECs[N];定義了一個結(jié)構(gòu)體類型的數(shù)組,長度為N,并且為其賦值16個數(shù)據(jù)。STRECh[N],tt;FILE*out;定義了另一個結(jié)構(gòu)體數(shù)組h,和結(jié)構(gòu)體變量tt,文件指針。在下圖中已經(jīng)用紅色框住的部分需要明白。第一紅框到第二個紅框之間的部分可以不去理解,對做題沒有影響。n=fun(s,h,80,98);最為關(guān)鍵,結(jié)合題目可以知道該句話的含義是:從結(jié)構(gòu)體數(shù)組s中找到80到98之間的所有數(shù)據(jù)放到結(jié)構(gòu)體數(shù)組中。帥選的數(shù)據(jù)為:<,,GA005,,,85},{,,GA004,,,85},{,,GA001,,,96},{"GA006,,,87}總共8個,題目中說將分?jǐn)?shù)范圍內(nèi)的人數(shù)返回,這樣可以得知n的值為8fprintf(out,"%d\n",n);將n以%4的格式輸出到out.dat中For(i=B;i<n-1;i++)For(j=i+1;j<n;j++)為冒泡法排序,旨在將h中

的數(shù)據(jù)按照分?jǐn)?shù)進(jìn)行從小到大排序,如果不了解排序過程請參考“注意事項(xiàng)”,結(jié)構(gòu)體數(shù)組h中的數(shù)據(jù)進(jìn)行從小到大的操作后變?yōu)椋簕,,GA005,,,85},{,,GA004,,,85},{"GA015,,,85},{,,GA006,,,87}for(i=8;i<n;i++)|表示將排序后h中的數(shù)據(jù)以4d%\n的形式輸出到out.dat中,并且輸出的是h[i].s成績數(shù)據(jù)項(xiàng)。3)STRECh[N],tt;FILE*out;STRECS[N1={{,,GA005,,,85},{GA003",76},{GA002",69},{GA004",85},i,i,n.lou.heiqh:printf("Enter2integernumberlou&heighscanFC'^d^d",&lou,&heiqh);if(heiqh<lou){t=heiqh;heigh=low;low=t;}n=Fun(s,h,lou,heigh);printf("Thestudent'sdatabetueen一一:\n",low,heigh);For(i=0:i<n:i++)printF("^s^UdXn'^hril.num,h[i].s);printFC'Xn");n=Fun(s,h,80,98):3)STRECh[N],tt;FILE*out;STRECS[N1={{,,GA005,,,85},{GA003",76},{GA002",69},{GA004",85},i,i,n.lou.heiqh:printf("Enter2integernumberlou&heighscanFC'^d^d",&lou,&heiqh);if(heiqh<lou){t=heiqh;heigh=low;low=t;}n=Fun(s,h,lou,heigh);printf("Thestudent'sdatabetueen一一:\n",low,heigh);For(i=0:i<n:i++)printF("^s^UdXn'^hril.num,h[i].s);printFC'Xn");n=Fun(s,h,80,98):FpnntF(out,"^d\n",n);For(1=1+1;i<n;1++)iF(h[i].s>h[i].s)<tt=h[i];h[i]=h[il;h[i]=tt;]1函數(shù)中輸入測Itt ?u試數(shù)據(jù),編譯,,執(zhí)行,該essanykey[題函數(shù)返回int則需retu在果都則將不生成該文件語句,出現(xiàn)下圖結(jié)tocontinue"字樣才會生成out.dat文件,凰nDi\k01\24010001\Debug\progl.exenintFun(STRECEnter2integernumberIdh&heigh(4)打開out.dat(因?yàn)闆]有in.dat,所以無須打開它),清空里面的數(shù)據(jù)。[=1out.dat*首先輸出n的值,以%d\n的形式進(jìn)行輸出:I其次將h排序后的第一個數(shù)據(jù)輸出,以%4d\n的形式輸出,第一個數(shù)據(jù)位85,85的寬度為2,但是輸出中要求為4,所以必須在85前面加上2個空格。[flout.dat*nr

將剩余數(shù)據(jù)全部輸出:圍out.dat85858587909194965)保存交卷第九種類型:鏈表類型1、題庫中對應(yīng)題目編號:22、80、842、考題舉例:以22為例進(jìn)行講解(1)題目要求:N名學(xué)生的成績已經(jīng)在主函數(shù)中放在一個帶頭結(jié)點(diǎn)的鏈表中,h指向鏈表的頭結(jié)點(diǎn),函數(shù)功能是:找出學(xué)生的最高分,由函數(shù)值返回。(注釋:返回值是最高分,不是數(shù)據(jù)整體)(2)NONO函數(shù):主要觀察紅框部分,具體解釋將在下面介紹。N0N0()</*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*in,*out;inti,j;doubles[N],max;STREC*h;in=fop盹町;out= 盹MWout-dmfW);For(i=B:i<1B:i++)<|For(j=8;j<N;j++)Fscanf(in, &s[j]);|max=Fun(h);FprintF(out,"^6.1lf\n",max);Fclose(in);Fclose(out);(3)在fun函數(shù)中輸入測試數(shù)據(jù),編譯,執(zhí)行,該題函數(shù)返回double則需return語句,出現(xiàn)下圖結(jié)果。執(zhí)行結(jié)果中必須出現(xiàn)“Pressanykeytocontinue"字樣才會生成out.dat文件,都則將不生成該文件。4)doublefun(STREC*h)int4)doublefun(STREC*h)inttest;test=5;|returnQ.Q;打開in.dat文件。ITDi\k01\24010001\Debug\progl.exen?iead->85->76->69->85->91->72->64->87max=0.0PresseinykeytocontinueHfor(j=0;j<N;j++)fscanf(in,"%lf,",&s[j]);表示從in.dat中輸入N個實(shí)型數(shù)給數(shù)組s中,總共有十行。從每行中找到最大值,然后在out.dat中進(jìn)行輸出。H]in.dat85.5,76,69.5,85,91,72,64.5,87.582.5.66.76.5.76.89.76.46.5.78.572.5.56.66.5.66.79.68.46.5.58.592.5.76.86.5.86.99.86.56.5.88.582.66.5.46.5.56.76.75.76.5.63.575.5.74.71.5.85.81.79.64.5.71.592.5.61.72.5.84.79.75.66.5.72.572.5.86.73.5.80.69.63.76.5.53.566.5.71.74.5.70.61.82.86.5.58.576.66.5.75.5.60.76.71.96.5.93.5

max=fun(h);(5)打開out.dat文件。 函數(shù)將返回的最大值放在變量max中,然后將max以%6.1f\n的格式進(jìn)行輸出,注意%6.1f表示數(shù)據(jù)的總寬度為6,小數(shù)點(diǎn)占1位,則應(yīng)該對數(shù)據(jù)小數(shù)點(diǎn)后的第二位進(jìn)行四舍五入操作。以第一行為例,最大值為91,則輸出值為“91.0”,91.0前面加2個空格。\=\out.dat*91.089.079.099.082.085.092.586.086.596.5依次類推將每行中的最大值找出來進(jìn)行輸出即可,結(jié)果如上圖所示。6)保存交卷第十種類型:數(shù)學(xué)問題二,素數(shù)考題中對應(yīng)題目編號:20、21、62考題舉例:以21為例(1)題目要求:將大于形參m且僅靠m的k個素數(shù)存放在xx所指的數(shù)組中。分析題目需要同學(xué)們了解:什么是素數(shù)?素數(shù)就是只能被自身和1整除的數(shù),最小的素數(shù)是2,例如4不是素數(shù)因?yàn)樗鼙?整除,5是素數(shù),因?yàn)樗荒鼙?和它自身整除。NONO函數(shù):NONO()</*本函數(shù)用于打開文件,輸入測試數(shù)據(jù),調(diào)用刊0函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/intm,n,zz[1SOO],i;FILE*rf,*wF;rf=fopenf'D:\\kQ1\\24010001Win.daf'/'r");wf=F叩{時譏2即時朋時;勺廣fi=O:i<佃:i++)€日■寵d鬼(T,ean,喪n);|Fun(m,n,zz):|For(m=8;m<n;m++)fprintf(wF,"^d",zz[m]);|Fclose(rF);Fclose(wF);在fun函數(shù)中輸入測試數(shù)據(jù),編譯,執(zhí)行,該題函數(shù)返回void則無需return語句,出現(xiàn)下圖結(jié)果。執(zhí)行時必須輸入兩個整型數(shù):格式必須為17,5兩個數(shù)終將要加一個逗號。執(zhí)行結(jié)果中必須出現(xiàn)“Pressanykeytocontinue"字樣才會生成out.dat文件,都則將不生成該文件。SnDi\k01\24010001\Debug\progl.EuoidFun(intm,intk,intxx[])SnDi\k01\24010001\Debug\progl.Etest=5:

打開in.dat。fscanf(rf,"%d%d",&m,&n);表示從in.dat中輸入兩個數(shù)給變量m和n,以第一行為例將101給了m,將7給了n,即找出101后面的7個素數(shù)放在out.dat中。[=1in.dat101717532153245567669947815226663(5)打開out.dat。for(m=0;m<n;m++)fprintf(wf,"%d",zz[m]);將m個素數(shù)以%小的形式輸出,注意%d后面有一個空格,輸出的時候要原樣輸出。根據(jù)in.dat中的第一行數(shù)據(jù)我們可以知道101后面的7個素數(shù)為:103107109113127131137,計算的時候多帶幾個數(shù)字進(jìn)去就行,一般個位出現(xiàn)1,3,5,7,9都很難被其它的數(shù)字整除。[=1out.dat*103107109113127131137[=1out.dat*10310710911312713113710310710911312713113719232931373313373473493533741434759616771737979838997101103101103107109787797809811821232931374143677173[=1out.dat第十一種類型:數(shù)學(xué)問題三,公式類型考題中對應(yīng)題目編號:6、11、14、34、48、49、67、73、76、89、91,該類型題目如果使用特殊方法做題,將不變的復(fù)雜,因此該類型題目只能使用編程的方法來執(zhí)行??碱}6和73題一樣,題目要求:根據(jù)公式求pi的值,要求精度滿足0.0005,即某項(xiàng)小于0?0005時停止迭代1X21X2X33X53X5X71X2X3X43X5X7X91X2X--Xn3X5X--x1X21X2X33X53X5X71X2X3X43X5X7X91X2X--Xn3X5X--x(2口+1)觀察表達(dá)式,左邊求出的是pi的值的一半,所以右邊的表達(dá)式的值的計算好后應(yīng)該乘以2才能得到pi的值,觀察表達(dá)式的右邊,右邊表達(dá)式中有分子、分母以及各表達(dá)式的值的和,分子是階乘、分母是奇數(shù)項(xiàng)的積,分子除以分母得到一項(xiàng)的值。由此定義三個變量:si代表分子,s2代表分母、s3代表各項(xiàng)的和,定義一個整型變量i,讓變量i從1開始。知道循環(huán)的結(jié)束。(1)將下面的代碼寫入fun函數(shù)體中

doubleFun(doubleeps)inti;doubles1=1.8,s2=1.0,53=0.0;For(i=1;s1/s2>=eps;i++)s3+=s1/s2;s1*=i;s2*=(2*i+1);return2*s3:(2)編譯,執(zhí)行函數(shù)◎圍矗?「竺_3)執(zhí)行過程時輸入測試數(shù)據(jù)0.0005,最后輸出PI的值為3.14?..為正確的結(jié)果,交卷即可Q"Ci\Exdm\24010001\Debug\progl.exe"nC:\Exam\24010001\Debug\progl.exe"Inputeps:注意:此題目中要特別注意,循環(huán)語句的表leps=0.000500,PI=3.140578夕曲側(cè);友nC:\Exam\24010001\Debug\progl.exe"Inputeps:注意:此題目中要特別注意,循環(huán)語句的表leps=0.000500,PI=3.140578夕曲側(cè);友q岸:卯科號11號\i<=n,循環(huán)語句的語句的順尋不能顛倒,即先加之后再計算。考題11,題目要求:求出能整除形參x且不是偶數(shù)的各個整數(shù),并從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參n返回。此題中要求能整除X,那么x應(yīng)該為分子,而不是分母,把滿足條件的數(shù)組放到pp所指的數(shù)組中,即pp數(shù)組應(yīng)用一個整型的變量來做pp下標(biāo),數(shù)組下標(biāo)從0開始,所以定義一個整形變量k并且賦初值為0;滿足條件的個數(shù)通過形參傳回。(1)在fun函數(shù)中輸入代碼:uoidFun(intx,intpp[],int*n)inti,k=0;For(i=1;i<=x;i++)€ if(x^i==0&&i^2==1)*pp[k++]=i;*n=k;(2)'編譯運(yùn)行程序,輸入測試數(shù)據(jù)35,輸出1,5,7,35就說明正確,交卷即可"Ci\Exdm\24010001\Debug\progl.exe""Ci\Exdin\24010001\Debug\progl.exe""Ci\Exdm\24010001\Debug\progl.exe""Ci\Exdin\24010001\Debug\progl.exe"PleaseenteranintegernumberPleaseenteranintegernumber35PleaseenteranintegernumberPleaseenteranintegernumber3515735PressanykeytocontinueH備注:此題目中不能把備注:此題目中不能把i初值定義為0,否則程序運(yùn)行時得不到結(jié)果??碱}14:求小于形參n能同時被3和7同時整除的所有自然數(shù)之和的平方根。67題和14題類似。首先看清題意,題目中要求是小于形參n,不包括n,能被3與7整除,兩者用邏輯與連接,平方根用平方根的函數(shù)sqrt;此題中要求的是自然數(shù)的和的平方根,而不是平方根的和,所以要先把滿足條件的數(shù)加起來后再開方。定義一個整型變量i,讓該變量由1直到n-1,用循環(huán)實(shí)現(xiàn),一個整形變量S,讓該變量存放的是滿足條件的數(shù)的和,由于s為全局變量,故應(yīng)該賦初值為0;inti,s=0;for(i=1;i<n;i++)if(i%3==0&&i%7==0)s+=i;returnsqrt(s);34、觀察表達(dá)式,表達(dá)式的分子為x的n次冥,分母為數(shù)字的階乘,s為表達(dá)式的累加和,定義三個變量s1為分子,s2為分母,s為分子除以分母的和。floats1=1.0,s2=1.0,s=1.0;inti;for(i=1;i<=n;i++){s1*=x;s2*=i;s+=s1/s2;}returns;備注:此時s的值不能賦初值為0;如果s得初值為0,此時表達(dá)式的值中沒有第一項(xiàng)的值。并且必須用return返回。48、該表達(dá)式的分子均為1,分母為該項(xiàng)和下一項(xiàng)的積,s為最后表達(dá)式的累加和,定義一個整形變量I,用于代表某一項(xiàng)的序號,則i+1到表達(dá)的是下一項(xiàng)的序號。floats=0.0;inti;for(i=1;i<=n;i++)s+=1.0/(i*(i+1));returns;備注:分子為1.0,而不能是1;因?yàn)閏語言中規(guī)定,整型除以整型,得到的值仍然為整型,。i+1必須用括號括起來,如果沒有用括號括起來,根據(jù)乘法運(yùn)算規(guī)則,則先運(yùn)算i*i,再運(yùn)算i*i+1的值。49、在該表達(dá)式中,分子分母都是階乘,可以看做是三個數(shù)之間的運(yùn)算,其中的每一個數(shù)都是另外一個數(shù)的階乘,定義三個變量,其中si代表的是m的階乘,s2代表的n的階乘,s3代表的是m-n的階乘,表達(dá)式的值可以計算為:s1/(s2*s3);三個變量都是代表的是階乘,所以在賦初值時應(yīng)該賦初值為1或者是1.0;floats1=1.0,s2=1.0,s3=1.0;inti;for(i=1;i<=m;i++) s1*=i;for(i=1;i<=n;i++) s2*=i;for(i=1;i<=m-n;i++) s3*=i;returns1/(s2*s3);67、題目要求:求出1到1000之間能被7或11整除,但不能同時被7和11整除的所有的整數(shù)。分析題目可以知道求出1到1000之間的數(shù)字必須使用循環(huán),起始值為1,終止值為1000,否則太復(fù)雜,不能同時被7和11整除即時不能被7和11的乘積77整除,最后通過n返回滿足條件的個數(shù)。程序如下,經(jīng)過編譯執(zhí)行后得到的結(jié)果如下:uoidFun(int*a,int*n)inti,cnt=0;For(i=1;i<1O00;i++)if((iV==0||i^11==0)fe&iV7?=0)

a[cnt]=i;cnt++;*n=cnt;?111421222833354249555663667084889199105110112119121126132133143147161165168175176182187196198203209210217220224238245252253259264266273275280287294297301315319322329330341343350352357363364371374392396399406407413418420427434440441448451455469473476484490495497504506511517518528532546550553560561567572581583588594595602605609623630637638644649651658660665672679682686700704707714715726?28735737742748749?5675977778178479179279880380S812819825826833836840854858861869875880882889891896902903913917931935938945946952957966968973979980987990994Press"D:\kOl\24OlOOOl\Debug\pr0gl.exe"編寫函數(shù)Hit,它的功能是:求Fibonacci數(shù)列中大于t的攝小的一個數(shù),結(jié)果由函數(shù)返回口苴中Fibonacci數(shù)列Fg〕的定義対:F(O)=OfF(l)=l9. 76、分析題目知道F(0)和F(1)是兩個初始值為0和1,假設(shè)F(0)為變量a,F(1)為變量1,假設(shè)F(n)為c,則:a=0,b=1;F(3)=F(2)+F(1)即:F(3)=b+a=1 即:c=b+aF(4)=F(3)+F(2)即:F⑷二(b+a)+b=2即:c=(b+a)+b換種形式:c=b+a,即b的值應(yīng)該為上一步中c的值,a應(yīng)該為上一步中b的值,依次類推即可使用循環(huán)來實(shí)現(xiàn)結(jié)果。使用C語言編程時,必須給

溫馨提示

  • 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

提交評論