第一篇:實驗七函數(shù)實驗報告范文
實驗七 函數(shù)
一、實驗目的
1.掌握定義函數(shù)的方法。
2.掌握函數(shù)實參及形參的對應關系以及“值傳遞”方式。3.掌握函數(shù)的嵌套調用和遞歸調用的方法。
4.掌握全局變量和局部變量,動態(tài)變量、靜態(tài)變量的概念和使用方法。5.學會對多文件程序的編譯和運行。
二、實驗內容
1.寫出一個判別素數(shù)的函數(shù),在主函數(shù)輸入一個整數(shù),輸出是否素數(shù)的信息。本程序應準備以下測試數(shù)據(jù):17,34,2,1,0,分別輸入數(shù)據(jù),運行程序并檢查結果是否正確。其程序為:
#include
int prime(int(n)){int flag=1,i;for(i=2;i 2.用一個函數(shù)來實現(xiàn)將一行字符串中最長的單詞輸出。此行字符從主函數(shù)傳遞給該函數(shù)。(1)把兩個函數(shù)放在同一個程序文件中。 (2)將兩個函數(shù)分別放在兩個程序文件中,作為兩個文件進行編譯、連接和運行。其程序為: #include int alphabetic(char c){if((c>='a'&&c<='z')||(c>='A'&&c<='z'))return(1);else return 0;} int longest(char string[]){int len=0,i,length=0,flag=1,place=0,point;for(i=0;i<=strlen(string);i++)if(alphabetic(string[i]))if(flag){point=i;flag=0;} else len++;else {flag=1;if(len>=length){len=len;place=point;len=0; } } return(place);} 其運行結果為: 3.用遞歸法將一個整數(shù)n轉換成字符串。例如輸入483.應輸出字符串“483”。n的位數(shù)不確定,可以是任意的整數(shù)。其程序為: #include void convert(int n){int i;if((i=n/10)!=0)convert(i);putchar(n%10+'0');putchar(32);} 其運行結果為: 4.求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)。用一個函數(shù)求最大公約數(shù)用另一個函數(shù)根據(jù)求出的最大公約數(shù)求最小公倍數(shù)。分別用下面的兩種方法編程。(1)不用全局變量,在主函數(shù)中輸入兩個數(shù)和輸出結果。(2)用全部變量的方法,數(shù)據(jù)的傳遞通過全部變量的方法。 不用全局變量其程序為: #include int hcf(int u,int v){int t,r;if(v>u){t=u;u=v;v=t;} while((r=u%v)!=0){u=v;v=r;} return(v);} int lcd(int u,int v,int h){ return(u*v/h);} 其運行結果為: 使用全局變量,其程序為: #include printf(“H.C.F=%dn”,Hcf);printf(“L.C.D=%dn”,Lcd);return 0;} void hcf(int u,int v){int t,r;if(v>u){t=u;u=v;v=t;} while((r=u%v)!=0){u=v;v=r;} Hcf=v;} void lcd(int u,int v){ Lcd=u*v/Hcf;} 其運行結果為: 5.寫一個函數(shù),輸入一個十六進制數(shù),輸出相應的十進制數(shù)。其程序為: #include