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
主站蜘蛛池模板: 国产微拍一区二区三区四区| 国产手机在线小视频免费观看| 精品无码人妻一区二区| 久草视频精品| 99热在线只有精品| 中国国产A一级毛片| 中文字幕1区2区| 亚洲福利视频网址| 亚洲色偷偷偷鲁综合| 亚洲日本www| 99伊人精品| 日韩一区精品视频一区二区| 99爱在线| 亚洲精品卡2卡3卡4卡5卡区| 亚洲精品无码AⅤ片青青在线观看| 国产亚洲精| 伊人AV天堂| 欧美午夜在线播放| 日日拍夜夜操| 亚洲国产精品人久久电影| 999国内精品久久免费视频| 91国内视频在线观看| 国产又黄又硬又粗| 日韩免费无码人妻系列| 欧美精品一二三区| 91无码网站| 欧美亚洲国产精品第一页| 中文字幕色站| 亚洲欧美另类日本| 97免费在线观看视频| 精品视频91| 香蕉eeww99国产在线观看| 国产日韩欧美成人| 毛片网站在线播放| 欧美成人免费一区在线播放| 宅男噜噜噜66国产在线观看| 高清久久精品亚洲日韩Av| 国产精品亚洲一区二区在线观看| 伊人网址在线| 亚洲国产在一区二区三区| 国产最新无码专区在线| 2021国产v亚洲v天堂无码| 国产免费精彩视频| 经典三级久久| 久久人体视频| 67194亚洲无码| 国产成人精品一区二区秒拍1o| 日韩在线成年视频人网站观看| 国产精品视频猛进猛出| 成人久久18免费网站| 国产精品亚洲一区二区三区z | 亚洲无线视频| 国产成人成人一区二区| 不卡色老大久久综合网| 亚洲色图欧美激情| 88av在线看| 亚洲福利视频一区二区| 91视频首页| 久久精品无码一区二区日韩免费| 欧美精品成人一区二区视频一| 特级毛片免费视频| 台湾AV国片精品女同性| 亚洲无限乱码| 国产香蕉一区二区在线网站| 视频在线观看一区二区| 日韩av电影一区二区三区四区| 国产毛片不卡| 国产AV无码专区亚洲精品网站| 91精品国产情侣高潮露脸| 欧美亚洲一二三区| 精品久久香蕉国产线看观看gif| a毛片在线播放| 国产成人精品午夜视频'| 视频一区亚洲| 久久久久九九精品影院 | 国产人前露出系列视频| 欧美亚洲另类在线观看| 日韩精品无码免费专网站| 亚洲女人在线| 极品尤物av美乳在线观看| 毛片在线看网站| 亚洲精品视频免费看|