




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、實 驗 報 告課程名稱程序設(shè)計基礎(chǔ)(C語言)實驗項目實驗五 函數(shù)的簡單應(yīng)用學(xué)院 系別 班級/學(xué)號 學(xué)生姓名 實驗日期 成績 指導(dǎo)教師 一、實驗?zāi)康?1掌握函數(shù)的定義、函數(shù)的說明和調(diào)用。 2掌握函數(shù)的參數(shù)及其傳遞方式,函數(shù)值的正確返回。 二、實驗內(nèi)容 題目 1:編寫一個自動出題程序,該程序可以給出任意兩個數(shù)的、×、/運算式子,當(dāng)用戶輸入運算結(jié)果時,程序可以判斷正誤。當(dāng)用戶做完十道題目之后,程序給出最終的統(tǒng)計結(jié)果。 提示: 1 系統(tǒng)函數(shù) srand,是隨機數(shù)發(fā)生器的初始化函數(shù),這個函數(shù)在頭文件 stdlib.h 中。 原型:void srand(unsigned seed) 2 系統(tǒng)函數(shù)
2、 rand,產(chǎn)生隨機數(shù)的函數(shù), 原型:int rand(void) 3 系統(tǒng)函數(shù) time,可以獲取系統(tǒng)時間,這個函數(shù)在 time.h 中。 大家可以試用下面的程序體會隨機數(shù)的生成。 #include <stdio.h> #include <stdlib.h> #include <time.h> void main() int i,j; srand(unsigned) time(NULL); for(i=0;i<10;i+) j=(int)(10*rand()/(RAND_MAX+1.0); printf("%5d",j); get
3、char(); 說明: 1 srand 和 rand 配合使用產(chǎn)生偽隨機數(shù)序列。 2 rand 函數(shù)在產(chǎn)生隨機數(shù)前,需要系統(tǒng)提供生成偽隨機數(shù)序列的種子,rand 根據(jù)這個種子的值產(chǎn)生一系列隨機數(shù)。如果系統(tǒng)提供的種子沒有變化,每次調(diào)用 rand 函數(shù)生成的偽隨機數(shù)序列都是一樣的。 3 srand(unsigned seed)通過參數(shù)seed 改變系統(tǒng)提供的種子值,從而可以使得每次調(diào)用 rand 函數(shù)生成的偽隨機數(shù)序列不同,從而實現(xiàn)真正意義上的“隨機”。 4 通??梢岳孟到y(tǒng)時間來改變系統(tǒng)的種子值,即srand(time(NULL),可以為 rand 函數(shù)提供不同的種子值,進而產(chǎn)生不同的隨機數(shù)序列
4、 5 “j=(int)(10*rand()/(RAND_MAX+1.0);”rand()函數(shù)前的10 控制了 j 的范圍,使其只能是 0 到 10 之間的數(shù);如果將其改成 100,則 j 即是 0 到 100 之間的隨機數(shù)。 我們可以利用上面的方法產(chǎn)生運算式中的兩個操作數(shù)。 4 如何產(chǎn)生操作符? 我們將隨機產(chǎn)生四個操作符:、×、/。 可以定義一個變量:int op;并利用上述生成隨機數(shù)的方法,用程序控制 op 的值為 1 到 4 的隨機數(shù)。 然后: switch(op) case 1: /*做加法*/ printf("nNO%d: %d+%d=",i,a,b);
5、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ù),實現(xiàn)兩個數(shù)的加法計算,并返回結(jié)果。 類似的還需要編寫減法、乘法、除法三個自定義函數(shù)。不過這幾個自定義函數(shù)的 內(nèi)部實現(xiàn)都特別簡單。大家請將注意力放在高層的函數(shù)定義、聲明、調(diào)用三個環(huán)
6、節(jié)上。流程圖:代碼:#include<stdio.h>#include<stdlib.h> #include<time.h> 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; in
7、t res; int z=0; srand(unsigned)(time(NULL); for(x=0;x<10;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: prin
8、tf("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 p
9、rintf("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("你答對了%d道題n",z); return 0; 運行結(jié)果: 題目 2:自定義一個求 n 的階乘的函數(shù)。在主函數(shù)中調(diào)用該函數(shù),當(dāng)用戶輸入非負數(shù)的時候,
10、程序輸出該數(shù)的階乘;當(dāng)用戶輸入負數(shù)的時候,程序退出。 流程圖:代碼:#include<stdio.h>int 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)
11、 s=0;elsefor(i=1;i<=b;i+)s*=i;return s;實驗結(jié)果:題目 3:自定義一個函數(shù),判斷字符是數(shù)字、小寫字母、大寫字母還是其他,返回值為 0 時,表示數(shù)字;為 1 時,表示小寫字母;為 2 時,表示大寫字母;為 3 時表示其他。在主函數(shù)中調(diào)用該函數(shù),判斷用戶輸入的字符是哪一種,并輸入“是數(shù)字”、 “是小寫字母”、“是大寫字母”、“其他”;當(dāng)用戶輸入“#”的時候,程序退出流程圖:代碼:#include<stdio.h>int 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("是小寫字母n");else if(fun(a)=2)printf("是大寫字母n");else if(fun(a)=3)printf("其他n");while(a!='#');int fun(char a)if(a>='0'&&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 等級測評項目實施監(jiān)督補充合同(公共安全)
- 婚姻忠誠協(xié)議中家庭醫(yī)療決策權(quán)重約定書
- 商務(wù)樓宇外立面清洗維護與節(jié)能減排服務(wù)協(xié)議
- 環(huán)保文化節(jié)策劃與執(zhí)行合作協(xié)議
- 汽車共享平臺新能源汽車調(diào)度租賃專項協(xié)議
- 離職人員保密協(xié)議與競業(yè)禁止合同(物流配送業(yè))
- 治療案例臨床解析與經(jīng)驗分享
- 護理術(shù)后宣教事件案例
- 酒店大堂照明設(shè)施合同(2篇)
- 新噪聲管理條例解讀
- GB/T 24218.1-2009紡織品非織造布試驗方法第1部分:單位面積質(zhì)量的測定
- GB/T 16895.6-2014低壓電氣裝置第5-52部分:電氣設(shè)備的選擇和安裝布線系統(tǒng)
- GB/T 11032-2020交流無間隙金屬氧化物避雷器
- 初三中考古詩文理解性默寫題
- 三年級數(shù)學(xué)《認(rèn)識分?jǐn)?shù)》
- 深度解剖華為虛擬股權(quán)激勵方案最全版含持股比例
- 醫(yī)學(xué)康復(fù)治療技術(shù)作業(yè)治療課件
- 兒科品管圈成果匯報提高手腕帶佩戴率課件
- 住院患者健康教育計劃執(zhí)行單
- 中考歷史 (世界現(xiàn)代史)
- 容重器測量結(jié)果的不確定度評定
評論
0/150
提交評論