計算機科學與技術第4次上機實驗_第1頁
計算機科學與技術第4次上機實驗_第2頁
計算機科學與技術第4次上機實驗_第3頁
計算機科學與技術第4次上機實驗_第4頁
計算機科學與技術第4次上機實驗_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機科學與技術第 4次上機實驗哈爾濱工程大學《程序設計基礎》實驗報告基礎實踐一姓名: 口豆班級:學號: 實驗時間: 2018年 5月 3日{{成績哈爾濱工程大學計算機基礎課程教學中心實驗題目1:寫一個函數(shù), Sn=a+aa+aaa+??口+aa??口a求多項式的前 n項和,其中a是一個數(shù)字。n由鍵盤輸入。設計思想:聲明函數(shù) sum,利用循環(huán)求得 sum最終值并返回 sum值實驗代碼及注釋:#include<stdio.h>intsum(inta,intn);//sum函數(shù)聲明intmain(){intn;inta;printf("請輸入a,n:\n");scanf("%d%d”,&a,&n);printf("前%d項和為 %d\n”,n,sum(a,n));//調用函數(shù) sumreturn0;intsum(int……;inti;intcount;count=0;for(i=1;i<=n;i++)

count=count*10+a;//每次乘 10加asum=sum+count;returnsum;語言項目.匿四次上機實驗徵目1:寫一^函數(shù)\bin\DBbu9健目1■:寫T■/數(shù),x目1234}Jroctessreturned0(OkOJexefcutiontime!3.672s?FressanykeytoContinue.總結與心得體會:聲明函數(shù)時后面一定要有分號,但寫函數(shù)時不需要。實驗題目2:編程實現(xiàn)求10000以內的回文數(shù)。其中,函數(shù)實現(xiàn)判斷任一正整數(shù)是否為回文數(shù)。 所謂回文數(shù)就是將一個數(shù)從左向右讀與從右向左讀是一樣的,例如 121和1331都是回文數(shù)。設計思想:聲明judje函數(shù),判斷number是否為回文數(shù)。先判斷數(shù)字number位數(shù),由于回文數(shù)為對稱結構,口通過位數(shù)來確定判斷次數(shù),每次判斷數(shù)字首位與個位然后去掉首位與個位再次判斷直至循環(huán)結束。另外需要對個位數(shù)另行判斷,個位數(shù)一定為回文數(shù)。如果為回文數(shù)返回 1,否則返回0。實驗代碼及注釋:#include<stdio.h>#include<math.h>intjudje(intnumber);//聲明 judje00intmain()inti;for(i=0;i<10000;i++){if(judje(i)==1)//judje為1的數(shù)輸出printf("%d\t",i);}return0;}intjudje(intnumber)//判斷number是否為回文數(shù){intjudje,i=0,middle_number,parity,j;//回文數(shù)判斷變量數(shù)字位數(shù),數(shù)字位數(shù)中間變量 ,數(shù)字位數(shù)奇偶intmiddle_number2;//取掉首位個位剩余數(shù)intshouwei,gewei;//首位,個位middle_number2=number;//全部賦初值domiddle_number=number;do//判斷數(shù)字位數(shù){ i++;middle_number=middle_number/10;//對數(shù)字除以 10直到為0}while(middle_number!=0);parity=i/2;//運算次數(shù)for(j=1;j<=parity;j++){shouwei=middle_number2/pow(10.0,(double)(i-2*j+1));//首位數(shù)字gewei=middle_number2%10;//個位數(shù)字middle_number2=(middle_number2-shouwei*pow(10.0,(double)(i-2*j+1)))/10;//將首位與個位去除后剩余的數(shù)if((shouwei==gewei)&&j==parity)//個位與首位相等且都已比較完成judje=1;//1為真}elseif(shouwei!=gewei)break;“p”…judje=1;驗 證 與 結論:,D:\匚諾翔目/四次上機訴求10000以內的回燈貼我口而g俅1DDD口以月的回文數(shù)exeP12.34567391156773S99101111121131141151161212222232242252262272282292303,313363.373.3S3.393404414424434444454464515525535545555565575585595606616566676686696707717747767S1332333834335386889891996997998999910011111122113311441155116612112222223322U2255226622772288229923003.3113茹笈.3773.388339934Q(M4114422443344444455446645115522553355M55555566557755885599560066116666667766886699670077117733774477667S11SS22S3338SUSS55S86688888899891199669977998899999processretuz-ned0(OkO)esecut.iontime7().984sanykeytocontinue.總結與心得體會:通過函數(shù)可以使代碼更加簡潔,流程更加清晰。實驗題目3:假設你每月在儲蓄賬戶上存100元,年利率是5%,則每月的利率是0.05/12=0.00417。第一個月后,賬戶上的值變成 100*(1+0.00417)=100.417;第二個月后,賬戶上的值變成(100+100.417)*(1+0.00417)=201.252;第三個月后,賬戶上的值變成(100+201.252)*(1+0.00417D=302.507,以此類推。寫一個函數(shù),根據用戶輸入的每月的存款數(shù)、 年利率和月份數(shù), 計算給定月份后賬戶上的錢數(shù)。設計思想:聲明final_money,由題意可知每個月錢數(shù)為上個月錢數(shù)加每月存的錢數(shù)乘以每月利率 ,在函數(shù)內部由循環(huán)得到錢數(shù) ,返回final_money。實驗代碼及注釋:#include<stdio.h>doublefinal_money(doublemoney,doublelilv,intn);//函數(shù)聲intmain(){doublemoney,lilv;//每月存款數(shù),年利率intn;//月份printf(“請輸入每月存款數(shù)、年利率和存款月份數(shù)(以空格隔開口:\n");scanf("%lf%lf%d",&money,&lilv,&n);printf("賬戶上的剩余錢數(shù)為%.3lf",final_money(money,lilv,n));return0;}doublefinal_money(doublemoney,doublelilv,intn)//存款數(shù)、年利率和月份數(shù){doublefinal_money=0;//賦初值inti;//循環(huán)變量for(i=1;i<=n;i++)final_money=(final_money+money)*(1+lilv/12);//表達returnfinal_money;//返回錢數(shù)驗證與結論:語WE目僧四妣eb exe請輸入每月存款數(shù)、年利率和存款月份數(shù)(陡空格隔開):1000.053302.;507Processreturned0(0x0)executiontiine:33.819sPressanykeytocontinue.總結與心得體會:函數(shù)參數(shù)可以是多個但返回值只有一個。實驗題目4:用遞歸法將一個整數(shù)n實驗題目4:用遞歸法將一個整數(shù)n轉換成字符串。例如,輸入483,應輸出的字符串“483”,n的位數(shù)不確定,可以是任意位數(shù)的整數(shù)。應輸出的字符串“設計思想:聲明函數(shù),在函數(shù)將數(shù)每次除以 10反復遞歸調用直到為0,00000 '0'可以產生相應的字符。實驗代碼及注釋:#include<stdio.h>voidchange(intn);一intn;printf(“請輸入整數(shù)n:");scanf("%d",&n);printf("輸出相應字符串 :");if(n<0){putchar('-');//先輸出一個‘-’號n=-n;//轉化為正值change(n);printf("\n");return0;}voidchange(intn)inti;i=n/10;if(i!=0)change(i);//對n每次除以 10反復遞歸調用直到為 0, p_上^相應的字符驗 證 與 結論:D:K婚言項目僮四次上機賣臉漏出字符言比、口號bug濯出字符串啟工日@0^3Processreturned0(0x0/exscutinntiine:18.200s?ressanykeytocontinue.總結與心得體會:余數(shù)可以加上 48來得到相應的字符但加‘ 0’會更加簡單。 函數(shù)遞歸必須要有限制條件,轉換字符串函數(shù)限制條件就是 i為0。實驗題目 5:用遞歸方法求 n階勒讓德多項式的值。設計思想:直接利用函數(shù)遞歸,當口數(shù)值為 o返回1,階數(shù)值為1返回輸入的數(shù)。另外階數(shù)值在遞歸時需要強制轉換為 floatDO,否則式子計算為整型數(shù)。實驗代碼及注釋:returnreturn1;returnreturn1;#include<stdio.h>floatnumberfloatx,intn);//函數(shù)聲明intmain(){intn;//。數(shù)floatx;//循環(huán)變量充當輸入的數(shù)printf("請輸入xDODO:\n");scanf("%f%d",&x,&n);printf("%.2f\n”,number(x,n));}return0;floatnumberfloatx,intn)elseif(n==1)returnx;是函數(shù)自身對自身的調用。 注意整型除以整型仍為整型, 故需要對階數(shù)值強制轉換。實驗題目6:編程求20以內正整數(shù)的階乘。要求:寫一函數(shù)求任一整數(shù)的階乘,在函數(shù)內部通過定義靜態(tài)局部變量求階乘。設計思想:聲明一個factorial函數(shù),在函數(shù)內部定義靜態(tài)變量, 利用循環(huán)求階乘值,由于局部靜態(tài)變量會保留上一次運行的口,故求20以內正整數(shù)的階乘只能調用一次 factorial函數(shù),求19的口乘然后利用循環(huán)從 19口下輸出直到 1的階乘。實驗代碼及注釋:#include<stdio.h>longlongfactorial(intnumber);//函數(shù)聲明intmain(){inti=19;longlongx;//數(shù)據極大必須用 longlong數(shù)據類型x二factorial(i);//僅調用一次函數(shù)//printf("%ld",x);for(i=19;i>0;i--){printf("%d!是%lld\n",i,x);//longlong用%lld輸出x/=i;//除掉之后多余的數(shù)的到當前 i的階乘}return0;}longlongfactorial(intnumber)//求任意整數(shù)階乘函數(shù){staticlonglongy=1;//靜態(tài)變量只賦一次初值以后函數(shù)調用會保留上一次的值inti;for(i=1;i<number;i++){y=y*(i+1);//用循環(huán)求階乘}returny;//返回階乘值

驗證與結論:口人匚諾WH目 驗證與結論:口人匚諾WH目 in^Debug\fcq^.exej.y^7f12164510040333200013!£6402373705723000J.7!§35563742309600016!§209227393S3000■,5!§130767436300014!§3717829120013!^622702080012!^479001600il!^3991680010!^3628300:9!;^362S808!逕4。的。7!^50408!走72。5!是12。4!最243!£62!£21!是1jJj7dcessreturnedQ(0x0Jexecutiontiine:0-542sjJj7essanykeytoebntinue.總結與心得體會:局部靜態(tài)變量會保留上一次運行的口 ,故在此題中只調用了一次函數(shù) .另外由于10以上階乘數(shù)極大 ,聲明類型時用了longlongDOD實驗題目 7:編程實現(xiàn)兩個整形變量內容互換。用帶參數(shù)的宏實現(xiàn)變量內容的交換。設計思想:直接用帶參數(shù)的宏充當函數(shù)來對兩個整型變量交換。實驗代碼及注釋:#include<stdio.h>#definechange(x,y)mid=x;\x二y;\y=mid〃宏定義兩個整形變量內容互換intmain(){intx,y,mid;printf(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論