freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

實(shí)用c語言程序設(shè)計(jì)教程4 函數(shù)模塊化編程ppt-文庫吧

2025-11-08 18:51 本頁面


【正文】 制流程返回到調(diào)用環(huán)境( Calling Environment) 。 表達(dá)式的值被傳回到調(diào)用者。返回值會(huì)被轉(zhuǎn)換為函數(shù)定義中的返回值類型。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 ( 3) 函數(shù)形參。 形參表用逗號(hào)分隔,每個(gè)形參變量類型必須獨(dú)立說明。 ( 4) 函數(shù)體。 函數(shù)體是函數(shù)實(shí)現(xiàn)的細(xì)節(jié)。 函數(shù)體中的說明語句用于定義函數(shù)中所用的變量,函數(shù)體內(nèi)定義的變量不能與形參同名。執(zhí)行語句用于實(shí)現(xiàn)函數(shù)所需完成的功能。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 int pare(int a,int b) /*函數(shù)首部 */ { if(ab) return a。 /*函數(shù)體 */ else return b。 } 形式參數(shù) 函數(shù)返值回類型 函數(shù)名 類型省略時(shí)默認(rèn)為 int類型 沒有形式參數(shù)為無參函數(shù) 函數(shù)的定義舉例: int max(x,y) int x,y。 { int z。 z = x y ? x : y。 return( z )。 } int max(x,y) { int x,y。 …… } 或 int max(int x,y) { …… } 或 int max(x,y) int x,y,z。 { z = x y ? x : y。 return( z )。 } 函數(shù)體也可以為空,這種函數(shù)叫 空函數(shù) 。 不能在函數(shù)體內(nèi)定義其他函數(shù),即 函數(shù)不能嵌套定義 。 形參也可以這樣定義 如下定義都是錯(cuò)誤的 ? ? √ C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 例,編寫求任意數(shù)階乘的自定義函數(shù)。 int factorial(int n) /*head*/ { /*body starts here*/ int i,product=1。 for(i=2。i=n。++i) product*=i。 return product。 /*返回語句 */ } 用戶自定義函數(shù)義 include void main() { int x,p。 int factorial(int n)。 printf(請(qǐng)輸入數(shù)據(jù): \n)。 scanf(%d,amp。x)。 p= factorial(x)。 printf(%d的階乘為 %d.\n,x,p)。 } 函數(shù)聲明語句 函數(shù)調(diào)用語句 以上源程序存儲(chǔ)在一個(gè)文件 include void main() {…… } int fa torial(int n) { …… return product。 } C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 函數(shù)原型的一般形式為: 函數(shù)返回類型 函數(shù)名(形參類型列表) ; 說明: ?“形參類型列表”是用逗號(hào)分開的數(shù)據(jù)類型表。形參名可選,不影響函數(shù)原型。 若主調(diào)函數(shù)和被調(diào)函數(shù)在同一個(gè)源文件中,且函數(shù)定義在主調(diào)函數(shù)之后,函數(shù)需經(jīng)聲明才能使用。 函數(shù)的原型 (Prototype)或聲明( Declaration)、頭文件和函數(shù)庫 ?函數(shù)必須先定義,后使用。 ?C編譯器根據(jù)函數(shù)原型判斷函數(shù)調(diào)用是否正確,該機(jī)制即函數(shù)原型。 函數(shù)原型也稱為函數(shù)聲明,以語句的形式出現(xiàn)。 ( 1)函數(shù)原型 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 ? 若主調(diào)函數(shù)和被調(diào)函數(shù)不在同一個(gè)源文件中,函數(shù)需經(jīng)聲明才能使用。 ? 所有標(biāo)準(zhǔn)庫函數(shù)的函數(shù)原型在頭文件中提供,用 include命令包含頭文件。 ? 用戶自定義函數(shù),程序員必須在源代碼中說明自定義函數(shù)的函數(shù)原型。 例,下面的函數(shù)原型聲明是合法的。 int Area(int, int)。 等價(jià)于 == int Area( int length, int width )。 sqrt函數(shù)的原型是: double sqrt(double)。 等價(jià)于 == double sqrt( double x )。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 ( 2)頭文件。 也稱包含文件,文件擴(kuò)展名是 “ .h”。頭文件聲明了函數(shù)庫中包含了哪些函數(shù)及調(diào)用接口,包括庫函數(shù)與用戶程序進(jìn)行信息通信時(shí)要使用的數(shù)據(jù)、變量等。使用某庫函數(shù)時(shí),要在程序中嵌入 (include)該函數(shù)對(duì)應(yīng)的頭文件。 例,標(biāo)準(zhǔn)輸入輸出頭文件 : …… _CRTIMP int __cdecl printf(const char *, ...)。 _CRTIMP int __cdecl putc(int, FILE *)。 _CRTIMP int __cdecl putchar(int)。 _CRTIMP int __cdecl puts(const char *)。 _CRTIMP int __cdecl _putw(int, FILE *)。 …… C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 VC++ c常用的幾個(gè)頭文件。 ? ? ?字符串、內(nèi)存和字符函數(shù) ?時(shí)間、日期和與系統(tǒng)有關(guān)的函數(shù) ?動(dòng)態(tài)存儲(chǔ)分配 ?目錄管理 ?過程控制 等其它函數(shù) 使用庫函數(shù)時(shí)應(yīng)清楚地了解以下內(nèi)容: ?函數(shù)的功能及所能完成的操作 ?參數(shù)的數(shù)目和順序,以及每個(gè)參數(shù)的意義及類型 ?返回值的意義及類型 ?需要使用的包含文件 這是要正確使用庫函數(shù)的必要條件。 提供了標(biāo)準(zhǔn)輸入輸出函數(shù)所用的常量、結(jié)構(gòu)、宏定義、函數(shù)的類型、參數(shù)的個(gè)數(shù)與類型的描述 數(shù)學(xué)函數(shù) (The mathematical function),包括各種常用的三角函數(shù)、雙曲線函數(shù)、指數(shù)和對(duì)數(shù)函數(shù)等。 包括對(duì)字符串進(jìn)行各種操作和對(duì)字符進(jìn)行操作的函數(shù)。相關(guān)的頭文件有:、 、 。 其中 。 了與字符檢查函數(shù)有關(guān)的常量、宏定義以及相應(yīng)字符轉(zhuǎn)換函數(shù)的類型和參數(shù)描述。常用的宏定義有 isalpha、isdigit、 isspace、 istrl、isspace等。 對(duì)時(shí)間、日期的操作和設(shè)置計(jì)算機(jī)系統(tǒng)狀態(tài)等。需要的包含文件: 包括 “ 申請(qǐng)分配 ” 和 “ 釋放 ” 內(nèi)存空間的函數(shù)。需要的包含文件: 、 。 st 、轉(zhuǎn)換、隨機(jī)數(shù)產(chǎn)生等有關(guān)的常量、結(jié)構(gòu)以及相應(yīng)函數(shù)的類型描述和參數(shù)描述。常用的函數(shù)有 calloc、 malloc、 free、 realloc、rand和 srand等。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 ?函數(shù)庫: 函數(shù)庫是由系統(tǒng)建立的具有一定功能的函數(shù)的集合。庫中存放函數(shù)的名稱和對(duì)應(yīng)的目標(biāo)代碼,以及連接過程中所需的重定位信息。用戶也可以根據(jù)自己的需要建立自己的用戶函數(shù)庫。 ?庫函數(shù): 存放在函數(shù)庫中的函數(shù)。庫函數(shù)具有明確的功能、入口調(diào)用參數(shù)和返回值。 關(guān)于庫函數(shù)( Library Functions ) C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 【 例 42】 判斷鍵盤輸入的字符是否為可打印字符,若從鍵盤輸入的字符多于一個(gè)則退出程序系統(tǒng)。 分析: 程序中需要判斷字符的類型 。 (1) isprint() 和 isspace() 函數(shù)原型 : int isprint(int c)。 功能 :判斷字符 c是否為可打印字符 ( 含空格 ) 。 當(dāng) c為可打印字符 ( 0x200x7e) 時(shí) , 返回非零值 , 否則返回零 。 函數(shù)原型 : int isspace(int c)。 功能 :判斷字符 c是否為空白符 。 當(dāng) c為空白符時(shí) , 返回非零值 , 否則返回零 。 空白符指空格 、 水平制表 、 垂直制表、 換頁 、 回車和換行符 。 (2)設(shè)計(jì)鍵盤輸入字符用變量 c表示 ,為 char c。 判斷鍵盤輸入的一行字符是否只有一個(gè)的表達(dá)式為 : c!=10amp。amp。getchar()==10 先判斷 “ c!=10”意味著第一個(gè)輸入字符不是回車 。 再判斷 getchar()==10意味著第二個(gè)輸入字符是回車 。 3 判斷輸入的每行字符是否符合條件是循環(huán)的條件 。 退出循環(huán)的表達(dá)式: 這是不定數(shù)循環(huán) 。 選擇 while語句實(shí)現(xiàn) 。 在循環(huán)語句之前 , 輸入第一個(gè)字符 , 形成初始條件 。 char c。 用 getchar函數(shù)等待從鍵盤輸入字符; /*形成初始條件 */ while(若輸入的字符不是回車符 ) { if(是可打印字符 ? ) if(是空格符 ? ) 輸出是空格符; else 輸出是可打印字符; else 輸出是不可打印字符; 輸入下一個(gè)字符; } ( 4)用偽代碼表示算法如下: ? 編碼如下: include include void main() { char c。 printf(直接輸入回車符退出程序。 \n請(qǐng)輸入字符 \n)。 c=getchar()。 while(c!=10amp。amp。getchar()==10) /*注意邏輯表達(dá)式的順序 */ { if(isprint(c)) { if(isspace(c)) printf(這是空格符 \n)。 else printf(這是可打印字符 %c\n,c)。 } else printf(這是不可打印字符 %c\n,c)。 printf(請(qǐng)輸入字符 :\n)。 c=getchar()。 } } C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 【 例 43】 猜數(shù)游戲。由程序產(chǎn)生一個(gè) 1~ 100間的隨機(jī)整數(shù),請(qǐng)用戶猜想此數(shù)并從鍵盤上輸入,程序?qū)⒏嬖V用戶是猜大了還是小了, 10次以內(nèi)猜對(duì),用戶獲勝。否則,告訴用戶該數(shù)是多少,并繼續(xù)下一輪猜數(shù)游戲。 分析: (1) 隨機(jī)函數(shù)原型為: int rand(void)。 rand()函數(shù)會(huì)返回一隨機(jī)數(shù)值 , 范圍在 0至 RAND_MAX 間 。 RAND_MAX是在 頭文件中定義的一個(gè)符號(hào)常量 。 RAND_MAX的范圍最少是在 0至 32767之間 ( int) , 即雙字節(jié) ( 16位數(shù) ) 。 若用 unsigned int 雙字節(jié)是 65535, 四字節(jié)是 4294967295的整數(shù)范圍 。 分析:2 設(shè)置隨機(jī)數(shù)種子函數(shù) 。 函數(shù)原型為: void srand (unsigned int seed)。 srand()用來設(shè)置 rand()產(chǎn)生隨機(jī)數(shù)時(shí)的隨機(jī)數(shù)種子 。 參數(shù)seed必須是個(gè)整數(shù) , 如果每次 seed都設(shè)相同值 , rand()所產(chǎn)生的隨機(jī)數(shù)值每次就會(huì)一樣 。 通??梢岳?time(0)的返回值來當(dāng)做 seed。 例: srand((int)time(0))。 分析:3 產(chǎn)生介于整數(shù) M到 N間的隨機(jī)數(shù)值 。 例 [10, 100]。 rand()%M可以得到 [0, M1]的隨即數(shù)。 1+rand()%M產(chǎn)生 [1, M]的隨即數(shù)。 1+rand()%90產(chǎn)生 [1, 90]的隨即數(shù)。 10+rand()%90產(chǎn)生 [10, 100]的隨即數(shù)。 M+rand()%(NM+1)產(chǎn)生 [M, N]的隨即數(shù)。 (4)可以連續(xù)猜不同的數(shù)是循環(huán)操作過程 。 而猜一個(gè)數(shù)直到正確也是一個(gè)循環(huán)操作過程 。 所以這是一個(gè)雙循環(huán)嵌套 。 可以設(shè)置一個(gè)結(jié)束標(biāo)記 , 如輸入 數(shù)據(jù) 1,則游戲結(jié)束 。 算法如下: do{ 產(chǎn)生 [10, 100]的隨機(jī)數(shù) num。 for(i=1。i=10。i++){ 輸入所猜想的數(shù) x; if(數(shù)據(jù) ==1) exit(0)。 if(數(shù)據(jù)在正確范圍內(nèi) ) if(x==num) {printf(“對(duì)了 。 請(qǐng)繼續(xù) ...\n)。break。} else if(xnum) printf(“大了 , 再猜 ” ) 。 else if(xnum) printf(“小了 , 再猜 ” ) 。 } } while(1)。 include
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1