




已閱讀5頁(yè),還剩11頁(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) 報(bào) 告課程名稱程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言)實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)五 函數(shù)的簡(jiǎn)單應(yīng)用學(xué)院 系別 班級(jí)/學(xué)號(hào) 學(xué)生姓名 實(shí)驗(yàn)日期 成績(jī) 指導(dǎo)教師 一、實(shí)驗(yàn)?zāi)康?1掌握函數(shù)的定義、函數(shù)的說(shuō)明和調(diào)用。 2掌握函數(shù)的參數(shù)及其傳遞方式,函數(shù)值的正確返回。 二、實(shí)驗(yàn)內(nèi)容 題目 1:編寫(xiě)一個(gè)自動(dòng)出題程序,該程序可以給出任意兩個(gè)數(shù)的、/運(yùn)算式子,當(dāng)用戶輸入運(yùn)算結(jié)果時(shí),程序可以判斷正誤。當(dāng)用戶做完十道題目之后,程序給出最終的統(tǒng)計(jì)結(jié)果。 提示: 1 系統(tǒng)函數(shù) srand,是隨機(jī)數(shù)發(fā)生器的初始化函數(shù),這個(gè)函數(shù)在頭文件 stdlib.h 中。 原型:void srand(unsigned seed) 2 系統(tǒng)函數(shù) rand,產(chǎn)生隨機(jī)數(shù)的函數(shù), 原型:int rand(void) 3 系統(tǒng)函數(shù) time,可以獲取系統(tǒng)時(shí)間,這個(gè)函數(shù)在 time.h 中。 大家可以試用下面的程序體會(huì)隨機(jī)數(shù)的生成。 #include #include #include void main() int i,j; srand(unsigned) time(NULL); for(i=0;i10;i+) j=(int)(10*rand()/(RAND_MAX+1.0); printf(%5d,j); getchar(); 說(shuō)明: 1 srand 和 rand 配合使用產(chǎn)生偽隨機(jī)數(shù)序列。 2 rand 函數(shù)在產(chǎn)生隨機(jī)數(shù)前,需要系統(tǒng)提供生成偽隨機(jī)數(shù)序列的種子,rand 根據(jù)這個(gè)種子的值產(chǎn)生一系列隨機(jī)數(shù)。如果系統(tǒng)提供的種子沒(méi)有變化,每次調(diào)用 rand 函數(shù)生成的偽隨機(jī)數(shù)序列都是一樣的。 3 srand(unsigned seed)通過(guò)參數(shù)seed 改變系統(tǒng)提供的種子值,從而可以使得每次調(diào)用 rand 函數(shù)生成的偽隨機(jī)數(shù)序列不同,從而實(shí)現(xiàn)真正意義上的“隨機(jī)”。 4 通??梢岳孟到y(tǒng)時(shí)間來(lái)改變系統(tǒng)的種子值,即srand(time(NULL),可以為 rand 函數(shù)提供不同的種子值,進(jìn)而產(chǎn)生不同的隨機(jī)數(shù)序列 5 “j=(int)(10*rand()/(RAND_MAX+1.0);”rand()函數(shù)前的10 控制了 j 的范圍,使其只能是 0 到 10 之間的數(shù);如果將其改成 100,則 j 即是 0 到 100 之間的隨機(jī)數(shù)。 我們可以利用上面的方法產(chǎn)生運(yùn)算式中的兩個(gè)操作數(shù)。 4 如何產(chǎn)生操作符? 我們將隨機(jī)產(chǎn)生四個(gè)操作符:、/。 可以定義一個(gè)變量:int op;并利用上述生成隨機(jī)數(shù)的方法,用程序控制 op 的值為 1 到 4 的隨機(jī)數(shù)。 然后: switch(op) case 1: /*做加法*/ printf(nNO%d: %d+%d=,i,a,b); scanf(%d,&ans); if(ans=add(a,b) printf(Right!n); else printf(Error!n); break; case 2: /*做減法*/ break; case 3: /*做乘法*/ break; case 4: /*做除法*/ break; = 上面的程序片段中 add 為用戶自定義函數(shù),實(shí)現(xiàn)兩個(gè)數(shù)的加法計(jì)算,并返回結(jié)果。 類似的還需要編寫(xiě)減法、乘法、除法三個(gè)自定義函數(shù)。不過(guò)這幾個(gè)自定義函數(shù)的 內(nèi)部實(shí)現(xiàn)都特別簡(jiǎn)單。大家請(qǐng)將注意力放在高層的函數(shù)定義、聲明、調(diào)用三個(gè)環(huán)節(jié)上。流程圖:代碼:#include#include #include int add(int x,int y) int z; z=x+y; return(z); int jian(int x,int y) int z; z=x-y; return(z); int cheng(int x,int y) int z; z=x*y; return(z); int chu(int x,int y) int z; z=x/y; return(z); int main() int i,j,x; int op; int res; int z=0; srand(unsigned)(time(NULL); for(x=0;x10;x+) j=rand()%101; i=rand()%101; op=rand()%5; switch(op) case 1: printf(nNO%d:%d+%d=,x,i,j); scanf(%d,&res); if(res=add(i,j) printf(RIGHT!n); z+=1; else printf(ERROR!n); break; case 2: printf(nNO%d:%d-%d=,x,i,j); scanf(%d,&res); if(res=jian(i,j) printf(RIGHT!n); z+=1; else printf(ERROR!n); break; case 3: printf(nNO%d:%d*%d=,x,i,j); scanf(%d,&res); if(res=cheng(i,j) printf(RIGHT!n); z+=1; else printf(ERROR!n); break; case 4: printf(nNO%d:%d/%d=,x,i,j); scanf(%d,&res); if(res=chu(i,j) printf(RIGHT!n); z+=1; else printf(ERROR!n); break; printf(你答對(duì)了%d道題n,z); return 0; 運(yùn)行結(jié)果: 題目 2:自定義一個(gè)求 n 的階乘的函數(shù)。在主函數(shù)中調(diào)用該函數(shù),當(dāng)用戶輸入非負(fù)數(shù)的時(shí)候,程序輸出該數(shù)的階乘;當(dāng)用戶輸入負(fù)數(shù)的時(shí)候,程序退出。 流程圖:代碼:#includeint main()int a,s;int jiecheng(int b);printf(please input a number: );scanf(%d,&a);if(a=0)s=jiecheng(a);printf(%d!=%ldn,a,s);elseprintf(Input error!n);int jiecheng(int b)int i,s=1;if(b=0) s=0;elsefor(i=1;i=b;i+)s*=i;return s;實(shí)驗(yàn)結(jié)果:題目 3:自定義一個(gè)函數(shù),判斷字符是數(shù)字、小寫(xiě)字母、大寫(xiě)字母還是其他,返回值為 0 時(shí),表示數(shù)字;為 1 時(shí),表示小寫(xiě)字母;為 2 時(shí),表示大寫(xiě)字母;為 3 時(shí)表示其他。在主函數(shù)中調(diào)用該函數(shù),判斷用戶輸入的字符是哪一種,并輸入“是數(shù)字”、 “是小寫(xiě)字母”、“是大寫(xiě)字母”、“其他”;當(dāng)用戶輸入“#”的時(shí)候,程序退出流程圖:代碼:#includeint main()int fun(char a);char a;doprintf(please input a char: );scanf(%c,&a);getchar();if(fun(a)=0)printf(是數(shù)字n);else if(fun(a)=1)printf(是小寫(xiě)字母n);else if(fun(a)=2)printf(是大寫(xiě)字母n);else i
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年保險(xiǎn)行業(yè)數(shù)字化理賠服務(wù)與移動(dòng)支付融合創(chuàng)新報(bào)告
- 2025年保險(xiǎn)數(shù)字化理賠服務(wù)理賠服務(wù)與保險(xiǎn)業(yè)保險(xiǎn)服務(wù)創(chuàng)新模式研究報(bào)告
- 法律科技驅(qū)動(dòng)的法律服務(wù)交付模式研究-洞察闡釋
- 《績(jī)效管理》課件項(xiàng)目五 績(jī)效改進(jìn)與結(jié)果應(yīng)用
- DB13T 2954-2019 畜禽飼料中脫氧雪腐鐮刀菌烯醇的測(cè)定 高效液相色譜法
- 鄭州七中考試試題及答案
- 教學(xué)設(shè)備AI應(yīng)用行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書(shū)
- 浙江音樂(lè)教師面試題庫(kù)及答案
- 浙江建筑安全員證考試試題及答案
- 2024年中考二模 模擬卷 語(yǔ)文(天津卷)(參考答案)
- 土木工程施工設(shè)計(jì)報(bào)告
- 2023年山東省夏季普通高中學(xué)業(yè)水平合格考試會(huì)考生物試題及參考答案
- 四川省瀘州市2024年中考物理試題(含答案)
- 第13課 立足專業(yè) 謀劃發(fā)展 第一框
- 2024屆浙江省臺(tái)州市天臺(tái)縣英語(yǔ)八年級(jí)第二學(xué)期期末達(dá)標(biāo)檢測(cè)模擬試題含答案
- 銀行保安服務(wù) 投標(biāo)方案(技術(shù)標(biāo))
- 工學(xué)云周報(bào)范文200字
- 廣東省湛江市2023-2024學(xué)年高一下學(xué)期期末調(diào)研考試語(yǔ)文試題及答案解析
- 國(guó)開(kāi)(河北)2024年《法律工作者職業(yè)道德》形考任務(wù)1-4答案
- 山東省濟(jì)南市高新區(qū)2023-2024學(xué)年八年級(jí)下學(xué)期期末物理試題
- 2024年遂寧市中考理科綜合真題試卷(含答案解析)
評(píng)論
0/150
提交評(píng)論