




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、.哈爾濱工程大學程序設計基礎實驗報告基礎實踐一姓 名: 麥豆 班 級: 學 號: 實驗時間: 2018 年 5 月 3 日精品.成績哈爾濱工程大學計算機基礎課程教學中心實驗題目1:寫一個函數(shù),sn=a+aa+aaa+aaa求多項式的前n項和,其中a是一個數(shù)字。n由鍵盤輸入。設計思想:聲明函數(shù)sum,利用循環(huán)求得sum最終值并返回sum值實驗代碼及注釋:#include int sum(int a,int n);/sum函數(shù)聲明int main()精品. int n; int a; printf( 請輸入a,n:n); scanf(%d%d,&a,&n); printf(前%d項和為%dn,n,
2、sum(a,n);/調(diào)用函數(shù)sum return 0;int sum(int a,int n) int sum=0; int i; int count; count=0; for(i=1;i=n;i+) count=count*10+a;/每次乘10加a精品. sum=sum+count; return sum;驗證與結(jié)論:總結(jié)與心得體會:聲明函數(shù)時后面一定要有分號,但寫函數(shù)時不需要。實驗題目2:編程實現(xiàn)求10000以內(nèi)的回文數(shù)。其中,函數(shù)實現(xiàn)判斷任一正整數(shù)是否為回文數(shù)。所謂回文數(shù)就是將一個數(shù)從左向右讀與從右向左讀是一樣的,例如121和1331都是回文數(shù)。精品.設計思想:聲明judje函數(shù),判
3、斷number是否為回文數(shù)。在函數(shù)內(nèi)部先判斷數(shù)字number位數(shù),由于回文數(shù)為對稱結(jié)構(gòu),故通過位數(shù)來確定判斷次數(shù),每次判斷數(shù)字首位與個位然后去掉首位與個位再次判斷直至循環(huán)結(jié)束。另外需要對個位數(shù)另行判斷,個位數(shù)一定為回文數(shù)。如果為回文數(shù)返回1,否則返回0。實驗代碼及注釋:#include #include int judje(int number);/聲明judje函數(shù)int main() int i;精品. for(i=0;i10000;i+) if(judje(i)=1)/judje為1的數(shù)輸出 printf(%dt,i); return 0;int judje(int number)/判斷
4、number是否為回文數(shù) int judje,i=0,middle_number,parity,j;/回文數(shù)判斷變量,數(shù)字位數(shù),數(shù)字位數(shù)中間變量,數(shù)字位數(shù)奇偶 int middle_number2;/取掉首位個位剩余數(shù) int shouwei,gewei;/首位,個位 middle_number2=number;/全部賦初值 middle_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;
5、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為真 精品. else if(shouwei!=gewei) judje=0; break; if(parity=0)/如果
6、為個位數(shù)一定為回文數(shù) judje=1; return judje;精品.驗證與結(jié)論:總結(jié)與心得體會:通過函數(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.00417)=302.507,以此類推。寫一個函數(shù),根據(jù)用戶輸入的每月的存款數(shù)、年利率和月份數(shù),計算給定月份后賬戶上的錢
7、數(shù)。精品.設計思想:聲明final_money,由題意可知每個月錢數(shù)為上個月錢數(shù)加每月存的錢數(shù)乘以每月利率,在函數(shù)內(nèi)部由循環(huán)得到錢數(shù),返回final_money。實驗代碼及注釋:#include double final_money(double money,double lilv,int n);/函數(shù)聲明精品.int main() double money,lilv;/每月存款數(shù),年利率 int n;/月份 printf(請輸入每月存款數(shù)、年利率和存款月份數(shù)(以空格隔開):n); scanf(%lf%lf%d,&money,&lilv,&n); printf(賬戶上的剩余錢數(shù)為%.3lf,f
8、inal_money(money,lilv,n); return 0;double final_money(double money,double lilv,int n)/存款數(shù)、年利率和月份數(shù) double final_money=0;/賦初值 int i;/循環(huán)變量 for(i=1;i=n;i+)精品. final_money=(final_money+money)*(1+lilv/12);/表達式 return final_money;/ 返回錢數(shù)驗證與結(jié)論:精品.總結(jié)與心得體會:函數(shù)參數(shù)可以是多個但返回值只有一個。實驗題目4:用遞歸法將一個整數(shù)n轉(zhuǎn)換成字符串。例如,輸入483,應輸出的
9、字符串“483”,n的位數(shù)不確定,可以是任意位數(shù)的整數(shù)。精品.設計思想:聲明函數(shù),在函數(shù)將數(shù)每次除以10反復遞歸調(diào)用直到為0,而余數(shù)加上0可以產(chǎn)生相應的字符。實驗代碼及注釋:#include void change(int n);int main() int n; printf(請輸入整數(shù)n:); scanf(%d,&n); printf(輸出相應字符串:); if (n0) putchar(-); /先輸出一個-號 n=-n;/轉(zhuǎn)化為正值 精品. change(n); printf(n); return 0;void change(int n) int i; i=n/10; if (i!=0
10、) change(i);/對n每次除以10反復遞歸調(diào)用直到為0 putchar(n%10+0);/余數(shù)加上0可以產(chǎn)生相應的字符驗證與結(jié)論:精品.總結(jié)與心得體會:余數(shù)可以加上48來得到相應的字符但加0會更加簡單。函數(shù)遞歸必須要有限制條件,轉(zhuǎn)換字符串函數(shù)限制條件就是i為0。實驗題目5:用遞歸方法求n階勒讓德多項式的值。設計思想:直接利用函數(shù)遞歸,當階數(shù)值為o返回1,階數(shù)值為1返回輸入的數(shù)。另外階數(shù)值在遞歸時需要強制轉(zhuǎn)換為float類型,否則式子計算為整型數(shù)。精品.實驗代碼及注釋:#include float number(float x,int n);/函數(shù)聲明int main() int n;/
11、 階數(shù) float x;/循環(huán)變量充當輸入的數(shù) printf(請輸入x值和階數(shù):n); scanf(%f%d,&x,&n); printf(%.2fn,number(x,n); return 0;float number(float x,int n) if(n=0) return 1;精品. else if(n=1) return x; return (2*n-1)*x*number(x,n-1)/(float)n-(n-1)*number(x,n-2)/(float)n;/遞歸求n階勒讓德多項式注意n為整數(shù)需要強制轉(zhuǎn)換 驗證與結(jié)論:總結(jié)與心得體會:遞歸是c語言中最基礎也是極為重要的算法,核心
12、是函數(shù)自身對自身的調(diào)用。注意整型除以整型仍為整型,故需要對階數(shù)值強制轉(zhuǎn)換。精品.實驗題目6:編程求20以內(nèi)正整數(shù)的階乘。要求:寫一函數(shù)求任一整數(shù)的階乘,在函數(shù)內(nèi)部通過定義靜態(tài)局部變量求階乘。設計思想:聲明一個factorial函數(shù),在函數(shù)內(nèi)部定義靜態(tài)變量,利用循環(huán)求階乘值,由于局部靜態(tài)變量會保留上一次運行的值,故求20以內(nèi)正整數(shù)的階乘只能調(diào)用一次factorial函數(shù),求19的階乘然后利用循環(huán)從19往下輸出直到1的階乘。實驗代碼及注釋:#include long long factorial(int number);/函數(shù)聲明int main() int i=19; long long x;/
13、數(shù)據(jù)極大必須用longlong數(shù)據(jù)類型 x=factorial(i);/僅調(diào)用一次函數(shù)精品. /printf(%ld,x); for(i=19;i0;i-) printf(%d!是%lldn,i,x);/longlong用%lld輸出 x/=i;/除掉之后多余的數(shù)的到當前i的階乘 return 0;long long factorial(int number)/求任意整數(shù)階乘函數(shù) static long long y=1;/靜態(tài)變量只賦一次初值以后函數(shù)調(diào)用會保留上一次的值 int i; for (i=1;inumber;i+) y=y*(i+1);/用循環(huán)求階乘 精品. return y;/返回階乘值驗證與結(jié)論:精品.總結(jié)與心得體會:局部靜態(tài)變量會保留上一次運行的值,故在此題中只調(diào)用了一次函數(shù).另外由于10以上階乘數(shù)極大,聲明類型時用了long long類型。實驗題目7:編程實現(xiàn)兩個整形變量內(nèi)容互換。用帶參數(shù)的宏實現(xiàn)變量內(nèi)容的交換。設計思想:直接用帶參數(shù)的宏充當函數(shù)來對兩個整型變量交換。精品.實驗代碼及注釋:#include #define change(x,y) mid=x; x=y; y=mid /宏定義兩個整形變
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務用工廚師合同范本
- 東京美甲店轉(zhuǎn)租合同范本
- 分期售房合同范本
- 出售轉(zhuǎn)讓地板合同范本
- 包裝袋購銷合同范本版
- 中介買賣房屋合同范本
- 個人入股投資合同范本
- 包裝承攬合同范本
- 勞務派遣三方協(xié)議合同范本
- 勞務合同范本罰款
- 《勞動法常識(第3版)》中職全套教學課件
- 2025年勞動合同延期補充協(xié)議模板
- 2025年日歷表(含農(nóng)歷、節(jié)假日、記事、A4打印版)
- 北京體育職業(yè)學院《機器人操作系統(tǒng)》2023-2024學年第二學期期末試卷
- 2025安徽雙鶴藥業(yè)限責任公司招聘30人易考易錯模擬試題(共500題)試卷后附參考答案
- 《反家庭暴力》課件
- 提高鋁合金外窗防滲漏施工一次合格率
- 2024春蘇教版《亮點給力大試卷》 數(shù)學四年級下冊(全冊有答案)
- 樸素貝葉斯分類器完整
- 教育系統(tǒng)績效工資分配方案(共6頁)
- 人教版數(shù)學三年級下冊第一單元《位置與方向(一)》單元測試卷[附答案]
評論
0/150
提交評論