C程序設計課件5.1-5.4_第1頁
C程序設計課件5.1-5.4_第2頁
C程序設計課件5.1-5.4_第3頁
C程序設計課件5.1-5.4_第4頁
C程序設計課件5.1-5.4_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

熟練掌握函數(shù)的定義。熟練掌握函數(shù)的調用和參數(shù)傳遞規(guī)則。熟練掌握變量的作用域與存儲類別。了解主函數(shù)與命令行參數(shù)。了解函數(shù)與帶參數(shù)的宏的區(qū)別。教學目標重點難點重點:函數(shù)的定義和調用,調用函數(shù)時數(shù)據(jù)傳遞方法,變量的作用域和存儲類別。難點:函數(shù)參數(shù)值傳遞和地址傳遞的區(qū)別,遞歸函數(shù)設計。函數(shù)概述1.C程序構成一個C源程序由一個或多個源程序文件組成。一個源程序文件由一個或多個功能函數(shù)構成。一個函數(shù)由若干行程序語句組成。源程序文件1說明部分執(zhí)行部分函數(shù)j源程序文件i源程序文件nC源程序函數(shù)m………函數(shù)1……………一個C程序有且只有一個主函數(shù)(main)所有函數(shù)之間的關系是平等的

讀者信息管理借書圖書管理系統(tǒng)圖書信息管理圖書借閱管理還書繳款添加查詢刪除修改添加查詢刪除修改圖書管理系統(tǒng)功能模塊簡圖#include"stdio.h"voidprintstar(){printf("***********\n");}voidprintmessage(){printf("*Welcome*\n");}voidmain()/*主函數(shù)*/{printstar();printmessage();printstar();}2.簡單C程序示例【例1】顯示下列界面。************Welcom************程序1?運行結果Enterr:s=314.159#include"stdio.h"floatarea(floatx)/*求面積函數(shù)*/{floats;s=3.14159*x*x;return(s);}voidmain()/*主函數(shù)*/{floatr,s;printf("Enterr:");scanf("%f",&r);s=area(r);printf("s=%.3f\n",s);}10↙程序2?【例2】輸入半徑值,計算圓的面積。(1)從用戶使用角度①標準函數(shù)(庫函數(shù)或系統(tǒng)函數(shù))②用戶自定義函數(shù)(3)從函數(shù)之間關系①調用函數(shù)②被調函數(shù)(2)從函數(shù)形式①有參函數(shù)②無參函數(shù)

3.函數(shù)分類【例2】輸入半徑值,計算圓的面積#include"stdio.h"floatarea(floatx)/*求面積函數(shù)*/{floats;s=3.14159*x*x;return(s);}voidmain()/*主函數(shù)*/{floatr,s;printf("Enterr:");scanf("%f",&r);s=area(r);printf("s=%.3f\n",s);}如:printf()

如:area()如:area()如:getchar()如:area()如:main()函數(shù)定義函數(shù)定義的一般形式[存儲類別][返回值類型]函數(shù)名([形式參數(shù)表]){說明部分功能語句序列}如:floatarea(floatx){floats;s=3.14159*x*x;return(s);}如:voidprintmessage(){printf("*Welcome*\n");}說明部分功能語句功能語句(2)返回值類型:表明調用該函數(shù)將帶回一個何種類型的值若省略,則系統(tǒng)默認為int若返回值類型為void,則函數(shù)沒有返回值(3)函數(shù)名:合法的標識符(1)存儲類別:extern或staticextern:表明函數(shù)是外部函數(shù)static:表明函數(shù)是內部函數(shù)若省略,則系統(tǒng)默認為extern

說明floatarea(floatx){floats;s=3.14159*x*x;return(s);}函數(shù)名代表此函數(shù)在內存中的起始地址,是地址常量如:intmax(intx,inty){return(x>y?x:y);}與下面函數(shù)定義等價intmax(x,y)intx,y;{return(x>y?x:y);}(5)說明部分:定義、說明實現(xiàn)函數(shù)功能的變量、類型等(6)功能語句序列:實現(xiàn)函數(shù)功能的語句序列(4)形式參數(shù)表(簡稱形參列表)說明格式類型1形參1,類型2形參2,…,類型n形參nfloatarea(floatx){floats;

s=3.14159*x*x;returns;}每個形參的類型必須單獨說明無形參時,可在()內寫void或什么都不寫,但()不能少功能語句說明部分函數(shù)調用1.函數(shù)調用的一般形式

函數(shù)名([實際參數(shù)表])

如:intmax(inta,intb)/*函數(shù)定義*/{return(a>b?a:b);}

intx=3,y=4;/*變量定義*/

max(3,4)/*函數(shù)調用*/max(x,y)/*函數(shù)調用*/max(x-1,y+3)/*函數(shù)調用*/

①實際參數(shù)可是常量、變量和表達式②實參與形參的個數(shù)相等,類型一致③實參前面不能加數(shù)據(jù)類型說明2.函數(shù)調用的三種方式(1)函數(shù)語句

函數(shù)調用作為一個語句

如:printf("*Welcom*");/*函數(shù)調用*/

(2)函數(shù)表達式函數(shù)調用出現(xiàn)在一個表達式中

如:m=2*max(3,4);/*函數(shù)調用*/

(3)函數(shù)參數(shù)

函數(shù)調用作為一個函數(shù)的參數(shù)

如:m=max(x,max(3,y));/*函數(shù)調用*/【例】函數(shù)調用舉例(求兩個整型數(shù)的最大值)。#include"stdio.h"

intmax(inta,intb){return(a>b?a:b);}voidmain(){intx,y,m;m=max(3,4);printf("%d",m);scanf("%d,%d",&x,&y);m=max(x,y);printf("%d",m);m=2*max(x-1,y+3);

printf("%d",m);m=max(x,max(3,y));

printf("%d",m);}程序3?/*函數(shù)定義*//*函數(shù)調用(函數(shù)表達式)*//*函數(shù)調用(函數(shù)語句)*//*函數(shù)調用(函數(shù)語句)*//*函數(shù)調用(函數(shù)表達式)*//*函數(shù)調用(函數(shù)語句)*//*函數(shù)調用(函數(shù)表達式)*//*函數(shù)調用(函數(shù)語句)*//*函數(shù)調用(函數(shù)參數(shù))*//*函數(shù)調用(函數(shù)語句)*/函數(shù)引用說明1.函數(shù)調用條件①被調函數(shù)必須存在。②若被調用函數(shù)是系統(tǒng)函數(shù),應在源程序文件開頭用#include命令,將被調用庫函數(shù)所在頭文件(擴展名為.h)包含到本文件中來;若被調函數(shù)是用戶自定義函數(shù),應對被調用函數(shù)作引用說明。2.函數(shù)引用說明即對函數(shù)的存儲類別、返回值類型、函數(shù)名、形參的類型及順序作以說明。3.函數(shù)引用說明的作用在編譯階段,對被調函數(shù)的合法性進行全面檢查。4.函數(shù)引用說明的格式①[存儲類別][返回值類型]函數(shù)名(類型1形參1,類型2形參2,…);②[存儲類別][返回值類型]函數(shù)名(類型1,類型2,…);③當形參類型都為int或char時,形參列表可省略,即:

[存儲類別][返回值類型]函數(shù)名();

函數(shù)引用說明中的存儲類別、返回值類型、函數(shù)名、形參個數(shù)和類型要與函數(shù)定義處一致。如:intmax(inta,intb)/*函數(shù)定義*/{return(a>b?a:b);}intmax(inta,intb);/*形參名與函數(shù)定義時相同*/intmax(intx,inty);/*形參名與函數(shù)定義時不同*/intmax(int,int);/*省略形參名*/intmax();/*形參類型都為int,省略形參表*/思考題:函數(shù)定義和函數(shù)引用說明的區(qū)別是什么?#include"stdio.h"voidmain(){floatr,s;

floatarea(floatx);

printf("Enterr:");scanf("%f",&r);

s=area(r);

printf("s=%f\n",s);}

floatarea(floatx){floats;s=3.14159*x*x;return(s);}/*函數(shù)引用說明*//*函數(shù)調用*//*函數(shù)定義*/【例】函數(shù)引用說明舉例(計算以r為半徑的圓的面積)。5.調用函數(shù)中可以省略函數(shù)引用說明的3種情況

①函數(shù)定義在調用函數(shù)之前【例】計算以r為半徑的圓的面積。voidmain(){floatr,s;floatarea(floatx);/*函數(shù)引用說明*/printf("Enterr:");scanf("%f",&r);

s=area(r);

/*函數(shù)調用*/printf("s=%f\n",s);}floatarea(floatx)/*函數(shù)定義*/

{floats;s=3.14159*x*x;return(s);}#include"stdio.h"#include"stdio.h”voidmain(){floatr,s;

printf("Enterr:");scanf("%f",&r);

s=area(r);

/*函數(shù)調用*/printf("s=%f\n",s);}floatarea(floatx)/*函數(shù)定義*/

{floats;s=3.14159*x*x;return(s);}floatarea(floatx);/*函數(shù)引用說明*/②在所有函數(shù)定義之前已有函數(shù)引用說明【例】計算以r為半徑的圓的面積。floatarea(floatx);/*函數(shù)引用說明*/③函數(shù)的返回值類型為int或char(省略默認為int)#include"stdio.h"voidmain(){intx,y,m;

scanf("%d,%d",&x,&y);m=max(x,y);/*函數(shù)調用*/printf("%d",m);}intmax(inta,intb)/*函數(shù)定義*/{return(a>b?a:b);}intmax(inta,

intb);/*函數(shù)引用說明*/【例】計算兩個整型數(shù)的最大值。4.C語言中,如果對函數(shù)返回值類型未加說明,則隱含的返回值類型為()。①duoble ②void ③int ④char1.構成C程序的基本單位是()。

①函數(shù)②過程 ③子程序 ④子例程2.以下關于函數(shù)調用的敘述中錯誤的是()。

①函數(shù)調用可以作為獨立的語句存在

②函數(shù)調用可以作為一個函數(shù)的實參

③函數(shù)調用可以出現(xiàn)在表達式中

④函數(shù)調用可以作為一個函數(shù)的形參3.在一個C程序中()。

①main函數(shù)必須出現(xiàn)在固定位置

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論