交大程序設(shè)計(jì)C試驗(yàn)三程序_第1頁
交大程序設(shè)計(jì)C試驗(yàn)三程序_第2頁
交大程序設(shè)計(jì)C試驗(yàn)三程序_第3頁
交大程序設(shè)計(jì)C試驗(yàn)三程序_第4頁
交大程序設(shè)計(jì)C試驗(yàn)三程序_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、程序填空給定程序中函數(shù)fun的功能是:找出100?n(不大于1000)之間的三位數(shù)字相等的所有整數(shù),把這些整數(shù)放在s所指的數(shù)組中,整數(shù)的個(gè)數(shù)作為函數(shù)值返回。在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果即可。程序填空如下:修改后代碼如下:#include<stdio.h>#defineN100intfun(int*s,intn){inti,j,k,a,b,c;j=0;for(i=100;i<n;i++){found**************/found**************//**************k=i;found**************/found**************/a=k%10;k/=10;b=k%10;k/=10;/**************c=k;if(a==b&&a==c)s[j++]=i;}returnj;}main(){inta[N],n,num=0,i;do{printf("\nEntern(<=1000); ");scanf("%d",&n);}while(n>1000);num=fun(a,n);printf("\n\nTheresult:\n");for(i=0;i<num;i++)printf("%5d",a[i]);printf("\n\n");}2、程序改錯(cuò)給定程序中函數(shù)fun的功能是:將形參n中各位上為偶數(shù)的數(shù)取出,并按原來從高位到低位的順序組成一個(gè)新的數(shù),并作為函數(shù)值返回。例如,從主函數(shù)輸入一個(gè)整數(shù)27638496,函數(shù)返回值為26846。請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能夠得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。需改正程序如下:修改后代碼如下:#include<stdio.h>longfun(longn){longx=0,s,i;intt;s=n;/*********found**********/i=1;/*********found**********/while(s>0){t=s%10;if(t%2==0){/*********found**********/x=x+t*i;i=i*10;}s=s/10;}returnx;}main(){longn=-1;while(n>9999999911n<0){printf("Pleaseinput(0<n<100000000):");scanf("%ld",&n);}printf("\nTheresultis:%ld\n",fun(n));}3、編程題(1)給定程序中函數(shù)fun的功能是:輸出M行M列的整數(shù)方陣,然后求兩條對(duì)角線上的元素之和,要求返回此和數(shù)。同時(shí),在函數(shù)中需完整輸出整數(shù)方陣和對(duì)角線上元素之和。因此,編寫程序時(shí)需注意方陣元素的排列順序和求對(duì)角線元素之和時(shí)不要漏項(xiàng)。注意:切勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入編寫的語句。程序如下:#include<conio.h>#include<stdio.h>#defineM5intfun(intn,intxx[M][M])(}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}};printf(“\nThesumofallelementson2diagnalsis%d.“,fun(M,aa));}編程后代碼如下:#include<conio.h>#include<stdio.h>#defineM5intfun(intn,intxx[M][M]){inti,j,sum=0;printf("整數(shù)方陣為:\n");for(i=0;i<n;i++){for(j=0;j<n;j++){printf("%3d”,xx[i][j]);}printf("\n");}printf("\n相加的數(shù)組元素為:\n");for(i=0;i<n;i++){for(j=0;j<n;j++){if(i==j){printf("xx[%d][%d]=%d\n",i,j,xx[i][j]);sum+=xx[i][j];}if(j==(n-1)-i){printf("xx[%d][%d]=%d\n",i,j,xx[i][j]);sum+=xx[i][j];}}}returnsum;}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}};printf("\nThesumofallelementson2diagnalsis%d.",fun(M,aa));}(2)使用遞歸方法求解斐波那契數(shù)列的前30項(xiàng)。其中,斐波那契數(shù)列由以下公式定義:0 (n=0)Fib(n)=1 (n=1)Fib(n-2)+Fib(n-1) (n>1)從上述公式可以看出:斐波那契數(shù)列的第1個(gè)數(shù)是0,第2個(gè)數(shù)是1,從第3個(gè)數(shù)開始,以后每個(gè)數(shù)都是前兩個(gè)數(shù)之和。編程后代碼如下:#include<conio.h>#include<stdio.h>intfib(intn){if(n==0){return0;}elseif(n==1){return1;}else{returnfib(n-2)+fib(n-1);}}intmain(void){inti,a;printf("斐波那契數(shù)列的前30項(xiàng)為:\n");for(i=0;i<30;i++){a=fib(i);printf("f(%2d)=%d\n",i,a);}}選做題:【編程擴(kuò)展題】開放式基金是一種委托投資理財(cái)產(chǎn)品。用戶可以向基金管理機(jī)構(gòu)購買/贖回基金,基金管理機(jī)構(gòu)負(fù)責(zé)將基金投資于股票等金融產(chǎn)品獲取收益,并收取一定的管理費(fèi)用。假設(shè)某基金在成立時(shí)每份面值為1元,申購費(fèi)率為1.5%,贖回費(fèi)率為0.5%。則有如下規(guī)則:每個(gè)用戶購買時(shí)的金額必須大于等于1000,并且是1000的整數(shù)倍;基金份額=購買金額*(1—申購費(fèi)率)/份額面值;基金運(yùn)作后每天公布當(dāng)日每份基金凈值,如0.9871或者1.0121,則:用戶當(dāng)前凈值=基金份額X當(dāng)日每份基金凈值;每日凈值增長(zhǎng)率=(當(dāng)日每份基金凈值一昨日每份基金凈值)/昨日每份基金凈值X100%;浮動(dòng)盈虧=用戶當(dāng)前凈值X(1一贖回費(fèi)率)一購買金額;周平均凈值=一周每日凈值的和/工作日;;編寫一個(gè)程序,要求用戶輸入在基金成立時(shí)的購買金額和基金運(yùn)作第一周的每日每份基金凈值,統(tǒng)計(jì)一周來用戶的收益情況(提示:可用數(shù)組存放一周中每日的數(shù)據(jù))。例如,一次程序運(yùn)行的情況如下:Pleaseinputyourmoney(>1000,andmultiple):15001500isnotmultipleof1000.Pleaseinputyourmoney(>=1000,andmultiple):10000Pleaseinputeverydaynetvalueinthisweek:0.98720.99351.01020.99051.0235QuotientNetValueIncreaseRateCurrentValueCurrentPayoff98500.98720.00%9724 -32598500.99350.64%9786 -26398501.01021.68%9950 -9998500.9905-1.95% 9756-29298501.02353.33%10081 31AverageNetValueinthisweek=1.00098編程后代碼如下:#include<stdio.h>#defineM5//工作日天數(shù)intmain(void){inti,input;//購買金額charheader[M][16]={"Quotient","NetValue","IncreaseRate","CurrentValue","CurrentPayoff"};floatfacevalue=1.0;//面值floatexprate=0.015;//申購費(fèi)率floatredrate=0.005;//贖回匯率floatquotient;//份額floatsumnetvalue=0;//周凈值和floatweekavg;//周平均凈值//定義個(gè)數(shù)組分別存一周內(nèi)每個(gè)工作日的凈值,增長(zhǎng)率,用戶當(dāng)前凈值,當(dāng)前浮動(dòng)盈虧floatnetvalue[M];//凈值floatincrate[M];//每日凈值增長(zhǎng)率floatcurvalue[M];//用戶當(dāng)前凈值floatcurpayoff[M];//浮動(dòng)盈虧//輸入的倍數(shù)printf("Pleaseinputyourmoney(>1000,andmultiple):");scanf_s("%d”,&input);do{if(input==0||input%1000!=0){//判斷輸入的數(shù)是不是的倍數(shù),如果不是繼續(xù)輸入,直到輸入正確printf("%disnotmultipleof1000.\n",input);printf("Pleaseinputyourmoney(>=,andmultiple):");scanf_s("%d”,&input);}}while(input==0||input%1000!=0);//計(jì)算基金份額:基金份額=購買金額X(-申購費(fèi)率)/份額面值quotient=input*(1-exprate)/facevalue;//輸入凈值放入數(shù)組中printf("Pleaseinputeverydaynetvalueinthisweek:\n");for(i=0;i<M;i++){scanf_s("%f”,&netvalue[i]);sumnetvalue+=netvalue[i];//計(jì)算每日凈值增長(zhǎng)率:每日凈值增長(zhǎng)率=(當(dāng)日每份基金凈值-昨日每份基金凈值)/昨日每份基金凈值X%if(i==0){incrate[i]=0.00;//工作日第一天無法計(jì)算前一天凈值,所以為}else{incrate[i]=(netvalue[i]-netvalue[i-1])/netvalue[i-1]*100;}//計(jì)算用戶當(dāng)前凈值:用戶當(dāng)前凈值=基金份額X當(dāng)日每份基金凈值curvalue[i]=quotient*netvalue[i];//計(jì)算浮動(dòng)盈虧:浮動(dòng)盈虧=用戶當(dāng)前凈值X(-贖回費(fèi)率)-購買金額curpayoff[i]=curvalue[i]*(1-redrate)-input;}//計(jì)算周平均凈值:周平均凈值=一周每日凈值的和/工作日weekavg=sumnetvalue/M;//打印所有數(shù)據(jù)printf("\n");for(i=0;i<M;i++){printf("%-16s",header[i]);}printf("\n");for(i=0;i<M;i++){printf("%8.0f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論