999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言函數的教學方法探析

2019-12-16 02:57:56巨同升
電腦知識與技術 2019年30期
關鍵詞:定義程序

巨同升

摘要:采用傳統的“解釋法”講解c語言函數的編寫方法,不利于學習者的理解和掌握。采用“分解法”和“改寫法”,則可以比較好地解決傳統方法的不足,收到良好的教學效果。

關鍵詞:解釋法;分解法改寫法

中圖分類號:G642 文獻標識碼:A

文章編號:1009-3044(2019)30-0110-03

1概述

在c語言中函數是程序的基本構成要素,是編程時頻繁使用的程序單位,其重要性是不言而喻的。但是從教學效果方面來看,多數學生對于函數的理解掌握并不理想。有的學生雖然能夠用單獨的main函數完成程序,但是要分解為幾個函數,就會感覺無從下手。

這其中有C語言自身特點的客觀原因,比如C語言的函數同時包含了大多數編程語言中子程序和函數這兩種程序單位的功能,在一定程度上提高了編寫函數的難度。另一方面也有來自教材和教學方法方面的原因。綜觀絕大多數C語言程序設計教材,在講述如何定義一個函數時,往往都是采用“解釋法”。也就是直接將函數寫出來,然后再做分析解釋。至于這個函數是如何寫出來的、為什么這么寫,則鮮有分析說明。從而給學習者造成一種神秘、無章可循的感覺。

從講授者的角度,或許覺得這樣編寫函數是理所當然的,無需更多的解釋,或者只可意會,不可言傳。其實如何定義一個函數也是有其內在規律的,甚至可以像數學公式那樣一步一步地推導出來。這就要求講授者能夠發現并歸納出其中的內在規律并傳授給學生。學生一旦有了編寫函數的依據,再來編寫函數也就不再感覺神秘、無章可循了。

下面就來介紹兩種行之有效的編寫函數的方法:分解法和改寫法。

2分解法

所謂分解法,就是首先將整個程序的功能用一個獨立main函數實現,然后再將這個main函數分解為主調函數和被調函數。

為了便于理解,我們將無參函數和有參函數的定義和調用的方法分開來介紹。

2.1無參函數的定義和調用

例1.編寫程序,打印出如下圖形。

首先,我們編寫一個只有main函數的程序來實現上述功能。

我們發現,在這個程序中打印三角形的程序段重復了兩次,但是也不方便將這兩段合并為一個新的循環。因此,為了提高編程效率,避免重復,在本程序中可以將打印三角形的程序段單獨拿出來,定義為一個函數,然后在主函數中調用它。

如何寫出打印三角形的函數呢?只需要用對應的程序段,添加上return語句作為函數體,然后再添加函數頭就可以了。

此處的printstar是自定義函數的名字。函數名之前的void是函數的類型,void也稱為空值類型,表示該函數沒有返回值。當函數體中的return之后直接跟分號時,函數類型就應該定義為void類型。return語句的功能,是返回到主調函數中繼續執行。

由于這個函數運行時,不需要從主調函數中傳遞數據,因此它是一個無參函數,也就是函數名之后有一對空括號。

一旦定義好了用戶函數,就可以像調用庫函數那樣調用它了。因為前面已經定義好了打印一個三角形的被調函數,故可以在主函數中直接調用它。由于函數printstar沒有返回值,因此不能在表達式中調用它;而只能在函數調用之后添加分號,使其成為一條語句,即printstar()。

在該程序中,求階乘的程序段重復了三次,但是觀察這三段程序,發現并不能簡單地將它們合并為一個新的循環。

為了提高編程效率,避免重復,在該程序中可以將求k的階乘的程序段單獨拿出來,定義為一個被調函數,然后在主函數中調用它。

根據在例1中獲得的經驗,構造被調函數的方法是以相應的程序段添加return語句作為函數體,然后再添加函數頭即可。按照這個方法,可以得到如下被調函數。

當我們運行該程序時可以發現,主函數中變量k的值并不能傳遞給被調函數中的變量k,被調函數中變量p的值也不能傳遞給主函數中的變量p。這是因為凡是在函數內部定義的變量都是局部變量,而局部變量只有在定義它的函數中才是有效的。因此,這兩個函數中的變量k是兩個相互獨立、互不相關的變量;變量p也一樣。

那么,如何才能實現主調函數與被調函數之間的數據傳遞呢?為了解決這個問題,在C語言中提供了參數傳遞和返回值的機制。

一方面,將被調函數中用于接受數據的變量的定義,移到函數首部的括號中,稱為被調函數的形式參數(形參)。這種函數運行時,將通過形參從主調函數中傳遞數據,故稱為有參函數。

另一方面,將被調函數中用來向主調函數傳遞數據的變量(或表達式)置于return之后,稱為被調函數的返回值。

函數名前邊的類型說明符,稱為函數的類型,通常與return之后變量(或表達式)的類型相一致。

一旦定義好了求階乘的被調函數,就可以像調用庫函數那樣來調用它了。因此,我們很容易編寫出調用該函數求組合值的主函數。

3改寫法

除了采用上面的分解法編寫函數之外,也可以采用改寫法。所謂改寫法,就是首先編寫一個能夠實現被調函數基本功能的main函數,然后再將這個main函數改寫為被調函數。

例3.已知一個圓環的內外半徑,要求編寫一個求圓面積的被調函數,然后調用該函數求出圓環的面積。

然后再將上述主函數改寫為被調函數。改寫的方法就是將原程序中需要輸入的變量改為形參,將原程序中需要輸出的變量(或表達式)改為函數的返回值。從而得到如下被調函數。

猜你喜歡
定義程序
永遠不要用“起點”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
定義“風格”
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 91在线中文| 影音先锋丝袜制服| 日韩人妻无码制服丝袜视频| 69免费在线视频| 97青草最新免费精品视频| 国产xx在线观看| 黄色网址免费在线| 欧美日韩免费观看| 日本免费新一区视频| 免费在线a视频| 蜜桃视频一区二区| 久草热视频在线| 欧美亚洲国产精品久久蜜芽 | 欧美午夜在线播放| 日韩欧美中文在线| 亚洲国产午夜精华无码福利| 欧美成人手机在线观看网址| 亚洲天堂2014| 四虎成人免费毛片| 午夜视频免费试看| 亚洲v日韩v欧美在线观看| 国产女人综合久久精品视| 亚洲一区二区三区在线视频| 欧美全免费aaaaaa特黄在线| 午夜国产理论| 欧美区一区二区三| 一级毛片中文字幕| 婷婷丁香在线观看| 免费一级毛片在线观看| 日韩无码视频播放| 91精品日韩人妻无码久久| 亚洲欧美综合在线观看| 综合网久久| 久久天天躁狠狠躁夜夜躁| 久久久久久久久18禁秘| 中文字幕佐山爱一区二区免费| 国产亚洲欧美日韩在线观看一区二区 | 九九这里只有精品视频| 久久久噜噜噜| 久久午夜影院| 亚洲日韩久久综合中文字幕| 国产精品久线在线观看| 日本三区视频| 久久人搡人人玩人妻精品一| 欧美国产日韩一区二区三区精品影视| 欧美精品1区2区| 尤物特级无码毛片免费| 91在线视频福利| 在线精品自拍| 亚洲高清在线播放| 无码精品国产VA在线观看DVD | 色婷婷电影网| 成人免费网站久久久| 欧美精品另类| 日韩在线1| 欧美劲爆第一页| 欧美人与动牲交a欧美精品| 综合久久五月天| 欧美高清视频一区二区三区| 久热中文字幕在线| 国产夜色视频| 亚洲AV无码一区二区三区牲色| 制服丝袜亚洲| 日韩无码视频网站| 91在线国内在线播放老师| 国产精品专区第1页| 午夜国产在线观看| 亚洲一区波多野结衣二区三区| 亚洲精品老司机| 欧美精品一区在线看| 喷潮白浆直流在线播放| 国产午夜一级毛片| 88国产经典欧美一区二区三区| 国产网友愉拍精品| 精品综合久久久久久97| 久久综合国产乱子免费| 无码人妻热线精品视频| 欧美日韩精品在线播放| 香蕉eeww99国产在线观看| 999精品视频在线| 欧美黄网在线| 香蕉伊思人视频|