實(shí)驗(yàn)報(bào)告樣本(驗(yàn)證性實(shí)驗(yàn)).doc_第1頁(yè)
實(shí)驗(yàn)報(bào)告樣本(驗(yàn)證性實(shí)驗(yàn)).doc_第2頁(yè)
實(shí)驗(yàn)報(bào)告樣本(驗(yàn)證性實(shí)驗(yàn)).doc_第3頁(yè)
實(shí)驗(yàn)報(bào)告樣本(驗(yàn)證性實(shí)驗(yàn)).doc_第4頁(yè)
實(shí)驗(yàn)報(bào)告樣本(驗(yàn)證性實(shí)驗(yàn)).doc_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一、實(shí)驗(yàn)?zāi)康暮鸵?掌握C語(yǔ)言中定義函數(shù)的方法。2掌握函數(shù)傳值調(diào)用的方法。3掌握遞歸函數(shù)的設(shè)計(jì)方法。4掌握幾個(gè)函數(shù)放在一個(gè)文件中以及分別放在幾個(gè)文件中的編譯、連接方法。二、實(shí)驗(yàn)內(nèi)容1上機(jī)調(diào)試下面的程序。#includeint sum(int a,int b)/*定義一個(gè)求和函數(shù)*/ return(a+b);/*返回a+b的值*/void main()int x,y;printf(%dn,sum(x,y);/*調(diào)用sum函數(shù)并顯示結(jié)果*/程序運(yùn)行過(guò)程:37814751。2編寫程序,在主函數(shù)中輸出1!2!3!.10!的值。要求將計(jì)算階乘的運(yùn)算寫成函數(shù)。#include void main()int i,sum=0; long fac(int i);for(i=1;i=10;i+)sum+=fac(i);printf(sum=%ldn,sum);long fac(int i)int r;if(i=1) r=1;else r=i*fac(i-1);return r;程序運(yùn)行過(guò)程:sun=4037913.3編寫函數(shù),將輸入的十進(jìn)制正整數(shù)n轉(zhuǎn)換為二進(jìn)制數(shù),并將轉(zhuǎn)換結(jié)果輸出。#include void main()int n;void Dec2Bin(int m); /*自定義函數(shù)的函數(shù)聲明*/ printf(Input decimal number:n);scanf(%d,&n); Dec2Bin(n);void Dec2Bin(int m) int bin32,j; for(j=0;m!=0;j+) binj= m%2; /*除2取余,余數(shù)放入到數(shù)組中*/ m=m/2; printf(Output binary number:n); for(;j!=0;j-) /*數(shù)組內(nèi)的值反序輸出*/ printf(%d, binj-1 );程序運(yùn)行過(guò)程:Input decimal number:8Output binary number:1000。4求方程的根,用3個(gè)函數(shù)分別求當(dāng)大于0、等于0和小于0時(shí)的根,并輸出結(jié)果。從主函數(shù)輸入a、b、c的值。#include #include double x1,x2;void root1(double a,double b,double d)x1=(-b+sqrt(d)/2/a;x2=(-b-sqrt(d)/2/a;printf(x1=%.2lf,x2=%.2lfn,x1,x2);void root2(double a,double b)x1=x2=-b/2/a;printf(x1=%.2lf,x2=%.2lfn,x1,x2);void root3(double a,double b,double d)x1=-b/2/a; x2=sqrt(-d)/2/a;printf(x1=%.2lf+%.2lfinx2=%.2lf-%.2lfi,x1,x2,x1,x2);void main ()double a,b,c,d;printf(please input a,b,c:n);scanf(%lf,%lf,%lf,&a,&b,&c);d=b*b-4*a*c;if(d0)root1(a,b,d); else if(d=0) root2(a,b);elseroot3(a,b,d);程序運(yùn)行結(jié)果:please input a,b,c:2,3,4x1=-0.75+1.20ix2=-0.75-1.20i 5.寫一函數(shù),使給定的一個(gè)二維數(shù)組(3 3)轉(zhuǎn)置,即行列互換。#include#define N 3int arrayNN;void convert(int array33) /*定義轉(zhuǎn)置數(shù)組的函數(shù)*/int i,j,t;for (i=0;iN;i+) /*對(duì)所有的行*/for (j=i+1;jN;j+) /*對(duì)主對(duì)角線以上的元素*/t=arrayij; /*與對(duì)應(yīng)位置元素相交換*/arrayij=arrayji;arrayji=t;void main( )int i,j;printf(Input array:n);for (i=0;iN;i+) /*此雙重循環(huán)讀入數(shù)組元素*/for(j=0;jN;j+)scanf(%d,&arrayij);printf(noriginal array :n);for (i=0;iN;i+) /*此雙重循環(huán)以矩陣形式輸出數(shù)組元素*/ for (j=0;jN;j+)printf(%5d,arrayij);printf(n);convert(array); /*調(diào)用函數(shù),對(duì)實(shí)參數(shù)組array轉(zhuǎn)置*/printf(convert array:n);for (i=0;iN;i+) /*輸出轉(zhuǎn)置后的結(jié)果*/ for(j=0;jN;j+)printf(%5d,arrayij);printf(n);程序運(yùn)行過(guò)程:Input array:1 2 34 5 67 8 9Original array:123456789Convert array:1472583696.寫一函數(shù),輸入一行字符,將此字符串中最長(zhǎng)的單詞輸出。#include#includeint alphabetic(char c) /* 判斷當(dāng)前字符是否字母,是返回1,否則返回0 */if (c=a& c=A&c=Z)return(1);elsereturn(0);int longest(char string) /* 尋找最長(zhǎng)單詞的起始位置 */ int len=0,i,length=0,flag=1,place=0,point;for(i=0;i=length) /*以point位置開始的詞如為當(dāng)前最長(zhǎng)的,記住其位置*/ length=len; place=point; len=0;return(place); /*返回最長(zhǎng)單詞的起始位置*/void main( )int i;char line100;printf(Input one line:n);gets(line); /*讀入一行文本*/printf(nThe longest word is :);for(i=longest(line);alphabetic(linei);i+) /*輸出最長(zhǎng)的單詞*/printf(%c,linei);printf(n);運(yùn)行情況:Input one line:I am a teacherThe longest word is:teacher7.m個(gè)人的成績(jī)存放在整型數(shù)組score中,請(qǐng)編寫函數(shù)fun,它的功能是:將低于平均分的人數(shù)作為函數(shù)值返回主函數(shù),并將低于平均分的分?jǐn)?shù)存放在主函數(shù)定義的數(shù)組below中。#include stdio.hint fun(int score,int m,int below)/*計(jì)算score數(shù)組中m個(gè)元素的均值,并把小于平均值的元素逐個(gè)存放在below數(shù)組中*/int i,k=0,aver=0;for(i=0;im;i+)aver+=scorei; /* 計(jì)算總分 */aver/=m; /* 計(jì)算平均分 */for(i=0;im;i+) /* 逐個(gè)判斷分?jǐn)?shù)值 */if(scoreiaver) /* 如低于平均分 */belowk=scorei; /* 存放到以below為首地址的數(shù)組中 */k+; /* 統(tǒng)計(jì)低于平均分的人數(shù) */return k; /* 返回人數(shù) */void main( )int i,n,below9;int score9=10,20,30,40,50,60,70,80,90;n=fun(score,9,below); /* 調(diào)用函數(shù),低于平均分的人數(shù)賦給n */printf(nbelow the average are:);for(i=0;in;i+) printf(%4d,belowi); /* 輸出below數(shù)組中n個(gè)值 */程序運(yùn)行結(jié)果:Below the average are:10203040。8.編寫函數(shù)fun,功能是計(jì)算下列級(jí)數(shù)的和,返回值為計(jì)算結(jié)果。在主函數(shù)中作相應(yīng)調(diào)用并輸出結(jié)果。#include stdio.h#include math.hdouble fun(double x,int n) /* 計(jì)算級(jí)數(shù)的和并返回計(jì)算結(jié)果 */ double s=1,p=1,t=1;int i;for(i=1;i=n;i+) t*=i; /* 求分母 */ p*=x; /* 求分子 */s+=p/t; /* 本項(xiàng)累加到和變量 */return s;void main( ) printf(n%fn,fun(0.3,10); /* 將函數(shù)的返回值輸出 */ 程序運(yùn)行結(jié)果: 1.349859三、討論、心得思考:主函數(shù)中sum(x,y)是如何得到實(shí)參?答:通過(guò)return語(yǔ)句返回的。思考:如果函數(shù)fac()寫成非遞歸形式,應(yīng)如何修改源程序?答:將long fac(int i)int r;if(i=1) r=1;else r=i*fac(i-1);return r;改為long fac(int i)int r,s;for(r=1;0i;i-)r=r*i;return r;思考:如何修改算法將十進(jìn)制正整數(shù)轉(zhuǎn)換成k進(jìn)制數(shù),并按位輸出?答:將for(j=0;m!=0;j+) binj= m%2; /*除2取余,余數(shù)放入到數(shù)組中*/ m=

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論