• /  34
  • 下載費用: 9.90積分  

C語言程序設計 第2版烏云高娃源程序及習題答案C語言教學內容PPT第6章.ppt

'C語言程序設計 第2版烏云高娃源程序及習題答案C語言教學內容PPT第6章.ppt'
第6章 函數學習目標? 用函數處理簡單模塊化問題。? 用函數處理數組中的模塊化問題。? 函數的嵌套和遞歸調用。? 變量的作用域和生存期。學一學函數的使用步驟為:先聲明、再定義,然后才能調用。學一學函數聲明的一般格式: 類型標識符 函數名( 形式參數列表 );函數定義的一般格式:類型標識符 函數名( 形式參數列表 ) { 聲明部分 語句部分 }學一學① 調用沒有返回值的函數: 函數名 (實參列表);其中,“實參列表”中的參數稱為實際參數,簡稱為實參。② 調用有返回值的函數時,有以下3種方式:? 把函數返回值賦給調用函數中的某個變量,即 變量=函數名(實參列表);? 函數出現在一個表達式中參與運算,這種表達式稱為函數表達式。? 函數調用作為一個函數的實參,實質上也是函數表達式調用的一種,因為函數的參數本來就要求是表達式形式。試一試問題6.1 請在屏幕上輸出二行15個“*”的圖案,如下所示: *************** ***************試一試問題6.2 拓展問題6.1,輸出3行“*”,第一行3個,以后每增加1行增加3個“*”,輸出圖形如下: *** ****** *********試一試問題6.3 請編寫一個求和函數,從鍵盤上輸入兩個數據,輸出兩數之和。試一試問題6.4 從鍵盤上輸入三個同學的身高,通過調用函數,輸出最高的同學的身高。練一練① 拓展問題6.3,分別編寫函數,求2個數的加、減、乘、除及余數。試一試問題6.5 大運會期間,在班級挑選了10名志愿者并對其進行了培訓,其中4名志愿者用于場館服務,請問要從10名志愿者中選出4名,有多少種方式?練一練① 編寫一個函數,求x的y次方,在主函數中輸入x,y的值,輸出結果。②編寫一個函數,判斷一個數是否為素數,如果是,返回值為1,否則返回值為0。在主函數中調用自定義函數,輸出2-100間所有的素數。相關知識點1.函數使用的步驟① 函數聲明:被調用的函數需先聲明后調用。但若定義位于調用前面,可省掉聲明。為統一或標準化起見,一般將自定義的所有函數都在程序前面予以聲明。② 函數定義:用C語句或調用其他函數實現它的功能。③ 函數調用。相關知識點2.函數的形參與實參① 在函數定義時說明的參數叫做形參,在函數調用時使用的參數叫做實參。② 在函數調用時,將實參的值復制一份,傳遞給形參,這種參數的傳遞方式稱為值傳遞。值傳遞是單向的,只能從實參向形參傳遞,而不能由形參傳回實參。③ 實參與形參占用不同的內存單元,即使同名也互不影響。相關知識點3、函數返回值用return語句實現,格式為: return ();return語句的執行過程是先計算表達式的值,再將計算的結果返回給主調函數。學一學數組元素做函數的實參:數組元素做函數的實參,與其他同類型普通變量做實參并沒有區別,在發生函數調用時,把數組元素的值傳送給形參,實現單向值傳遞。其調用方式同普通變量一樣。試一試問題6.6 從鍵盤輸入一串字符,編寫一個函數,統計字符串中小寫字母的個數。練一練學院舉行數據庫大賽,有10名同學參賽,從鍵盤上輸入每個同學的比賽成績(百分制),編寫函數,輸出對應的1、2、3等獎(假定:90分以上為1等獎,80~90分之間為2等獎,60~80分之間為3等獎)。提示:將每個同學的參賽成績作為函數的實參。在函數中構造一個形參,對每個形參進行判斷,如果大于90分,返回值1;如果大于等于80分且小于90分,返回值2;如果大于等于60分且小于80分,返回值3。在主函數中,調用函數根據返回值分別輸出1、2、3等獎。學一學1.數組名做函數的實參與形參數組名做函數參數時,既可以是形參,也可以做實參,要求形參和對應的實參都必須是類型相同的數組(或指向同類型數組的指針變量),并且都必須有明確的數組定義。2.地址傳遞數組名不但代表數組元素的共同名字,而且代表數組的首地址,即數組中第一個元素的地址,所以數組名做參數傳遞時,傳遞給形參的是實參數組的首地址。換句話說,采用的不是“值傳遞”而是“地址傳遞”,即把實參的地址傳遞給形參。試一試問題6.7 學校舉行知識競賽,有10個學生參賽,請編寫一個函數,求平均分。試一試問題6.8 某系要選拔身高較高的同學,有N名同學參加選拔,請你將身高輸入電腦,編寫函數將身高按從低到高進行排序,并且輸出排序后的結果。練一練① 拓展問題6.6,使用數組名做函數的實參和形參,實現問題6.6中求字符串中字符的 個數。② 拓展問題6.7,分別編寫兩個函數,求10個參賽學生中最高分和最低分,在主函數中調用兩個最高分和最低分函數,并輸出。③ 編寫函數實現從鍵盤上輸入兩個字符串。試一試問題6.9 拓展問題6.8,參加選拔的學生中有一人退出了。請輸入這個學生的身高,將這個同學的身高從排好序的數組中刪除。想一想 ①拓展問題6.8,修改fnDelete函數,加入判斷功能,當要刪除的數在數組中不存在時,返回0,否則,從數組中刪除該數后返回1。②拓展問題6.8,后來又來了一個同學參加身高選拔,請將這個同學的身高插入到已經排好序的隊伍當中,編寫函數實現這一過程(可參考第5章的問題5.6)。③編寫一個綜合的程序,使之能夠具有增加、刪除、排序、查找等功能,并可選擇性地多次操作?相關知識點1.數組做函數的參數的兩種方式① 數組元素做函數的實參。② 數組名做函數的實參和形參。2.值傳遞與地址傳遞學一學1.函數的嵌套 就函數定義而言,C語言不支持函數的嵌套定義,即在定義一個函數時不能在函數體內再定義另一個函數,因此,所有的函數定義都是平行的。但就函數調用來說,C語言支持嵌套的函數調用。 函數的嵌套調用是指,在執行被調用函數時,被調用函數又調用了其他函數。2.函數的遞歸 函數的遞歸調用是指,一個函數在它的函數體內,直接或間接地調用該函數本身,能夠遞歸調用的函數是一種遞歸函數。顯然,遞歸調用是嵌套調用的特例。試一試問題6.10 輸入兩個數,編寫函數,分別求該兩數的最大公約數和最小公倍數,在主函數中輸入兩個數,調用函數,輸出公倍數和公約數。試一試問題6.11 有5個人坐在一起,問第5個人多少歲,他說比第4個人大2歲。問第4個人多少歲,他說比第3個人大2歲。問第3個人多少歲,他說比第2個人大2歲。問第2個人多少歲,他說比第1個人大2歲。問第1個人多少歲,他說是10歲。請問第5個人多少歲。練一練 ① 3個同學進行踢毽子比賽,編寫一個函數,求出踢的個數最多和最少的差。提示:分別編寫2個函數求3個數的最大和最小值。然后再編寫一個函數,調用最大值和最小值函數求差,將求差的結果返回。② 利用遞歸求n!。提示:n!可以寫成遞歸公式。學一學1.內部變量與外部變量 變量必須先定義后使用。變量的定義可以在函數內部、函數外部及復合語句的內部。如果變量定義在某函數或復合語句內部,則稱該變量為內部變量(也稱為局部變量);如果變量的定義在所有函數外部,則稱該變量為外部變量(也稱為全局變量)。局部變量只在本函數范圍內有效,即局部變量的作用域僅僅局限于定義它的函數內;全局變量的作用域是從它定義的位置開始到本源文件的結束,即位于全局變量的定義后面的所有函數都可以使用此變量。學一學2.動態存儲變量、靜態存儲變量及寄存器變量① 動態存儲變量(也稱自動類型變量)是指那些當程序的流程轉到函數時才開辟內存單元,執行結束后又立即被釋放的變量。定義方式為: auto 數據類型 變量名② 靜態存儲變量則是指在整個程序運行期間分配固定存儲空間的變量。定義方式為: static 數據類型 變量名③ 寄存器變量只能出現在函數內部,寄存器變量的值存放在寄存器中(寄存器被認為是一種超高速的存儲器),對這種變量的存取速度很快,因此寄存器變量主要用來存放循環變量,以提高程序的執行速度。定義方式為: register 數據類型 變量名試一試問題6.12 分析以下程序,指明哪些是內部變量,哪些是外部變量?#include "stdio.h"int iA=100,iB=10; /*定義外部變量*/void fnSum(){ int iC; /*定義內部變量*/ iC=iA+iB; printf("%d,",iC);}void main(){ int iA=1,iC; /*定義內部變量*/ iC=iA+iB; printf("%d,",iC); fnSum();}試一試問題6.13 輸入長方體的長(L),寬(W),高(H),寫一個函數求長方體體積及正、側、頂三個面的面積,并在主函數中輸出。 練一練使用靜態變量,編寫一個函數,計算n!(n從鍵盤上輸入)。提示:n!=(n–1)!n,因此,可以定義一個靜態變量,用來保存(n–1)!的值。
關 鍵 詞:
c語言 習題 答案 源程序 教學 烏云 內容 程序設計 ppt
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:C語言程序設計 第2版烏云高娃源程序及習題答案C語言教學內容PPT第6章.ppt
鏈接地址: http://www.476824.live/p-51617260.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 上证指数今日收盘点位 黑龙江福彩20选8开奖结 陕西福彩快乐十分玩法 北京赛车 广东11选五5开奖 牛牛 江西11选五5任务最大遗漏 哪个股票软件看股票好用 青海快3第70期开奖号码 10元以下股票推荐 上海时时乐走势图彩经网络