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

主函數與函數互變編程方法的實現

2012-01-12 04:01:40景建國
長治學院學報 2012年2期
關鍵詞:排序調試程序

景建國

(長治職業技術學院,山西 長治 046011)

主函數與函數互變編程方法的實現

景建國

(長治職業技術學院,山西 長治 046011)

文章介紹了C語言程序中如何將主函數變為函數、函數變為主函數的程序設計方法,為擴充程序的使用、程序調試和分析提供了方便。

函數;主函數;程序;模塊化

1 引言

C語言是一種結構化的程序設計語言,除了提供順序、選擇、循環三種基本結構外,還提供了定義“函數”的功能,允許對函數單獨進行編譯。通過文件包含實現對單獨編譯的函數進行調用,為模塊化程序設計提供了方便。由于C語言這種函數式的結構,難怪有人說:C語言程序設計就是編寫函數。這一點不假,因為一個C語言程序中至少要編寫一個主函數,且只能有一個主函數,沒有主函數的程序是不能直接執行的,因為C語言程序的執行總是從主函數開始的。

2 主函數變為函數

在程序設計學習初期,一般編寫的程序只有主函數,主函數中包括了數據輸入、數據處理、數據輸出等程序段。這種情況下,源程序的程序行會很多,為程序的調試和程序的分析帶來許多不便;還有源程序中的某些程序段,具有一定的功能或作用,在以后的編程中也可被利用。如果能把這些程序段變為函數,不但為程序的調試和程序的分析帶來方便,也可以作為一個獨立的函數單獨編譯,通過頭文件的包含,被其它程序調用,擴展程序的應用范圍。

2.1 排序程序段變為函數

排序是數據處理的重要內容,排序的方法也很多,對應的排序段也很多。如果把該程序段變為函數,就可單獨分析該程序段的執行過程和結果,通過單獨編譯,其它的程序中就可以調用。下面以常用的冒泡排序程序進行介紹。

以上程序對數組a中的10個元素按從小到大排序,源程序中的主要程序是排序程序段,變為函數如下:

變為函數的關鍵是如何把要處理的數據傳遞給函數的形式參數,傳遞給形式參數的數據中哪些是可以變化的。這些變化的參數,就形成了函數中處理數據的可變化的內容,增加了函數的通用性。

以上的bubble函數中,第一個形式參數是主函數中所排序的數組,第二個形式參數是參加排序數的個數,由于這兩個變化的形式參數,在調用此函數時,只需用不同數組名的不同排序數的個數所具有實在參數去替換它,即可實現不同數組、不同個數的數組排序。在bubble函數的基礎上,可以實現數組元素的從大到小排序、只對奇數下標的元素進行排序、只對偶數下標的元素進行排序、把排序的數據個數一分為二,前半部分按從小到大排序,后半部分按從大到小排序。因此,變為函數后它的靈活性就增加了。

2.2 求階乘程序段變為函數

求解累加和階乘(累乘)的問題,也是程序設計中的主要內容,特別是在用級數進行近似求解用時的最多,有的問題中累加和階乘求方式都用才能解決。如果能把這兩種求解的程序段變為函數,也可起到與冒泡排序函數同樣的作用。下面以階乘段為例進行介紹:

以上程序對輸入的整型數n計算階乘。變為函數時,函數的形參只接收一個整型數,在調用該函數時只需用不同的實在參數替換就可求出該數的階乘。變為函數如下:

在此函數的基礎上,通過改變函數循環語句的步長,可以變為求偶數的階乘、求奇數階乘、求分子為1的分數的階乘,重復調用可用于求組合數。需要注意的是,以上程序的返回值是整型,當求階乘的數較大時,階乘值就超出了整型數規定的范圍,此時只需改變函數的返回值類型和存放階乘變量的類型即可。

3 函數變為主函數

函數變為主函數的作用在于,由于C語言的程序執行是從主函數開始的,當編好函數后,如果想知道函數功能與具體解決的問題是否一致,需執行和調試后才能確定。由于函數需要調用才能執行,就得與主函數在同一編譯單位才能實現。這時如果把函數變為主函數,便可以單獨對函數的程序段進行調試并執行,確定函數的執行結果。

在全國計算等級考試上機考試中,不論是二級機試還是三級機試,都要求考生根據題目的要求,編寫一個函數,除了函數以外其它的程序部分都不要管。自己想編寫函數去練習時,除了自己編寫函數外,為了使函數能調試執行,還需輸入函數以外的程序段,比較復雜。如果直接把題目中要求處理的問題編寫成主函數,便可調試和執行。

3.1 求字符串數組中最長字符串函數變為主函數

編寫一個函數,從傳入的num個字符串中找出最長的一個字符串,并通過函數值返回該串地址的完整程序如下:

以上程序中的函數 fun(char(*a)[81],int num)變為主函數如下:

變為主函數時,保留主函數中的定義和輸入數據程序段;要把函數中處理的形參變為主函數調用函數時的實參;把函數中處理形參的程序段變為主函數中的處理程序段;函數返回的值,用輸出函數直接輸出。這時就可編譯、調試和運行主函數來確定函數的輸出結果。

在模塊化程序設計時,函數變為主函數,可以對各個模塊對應的程序直接編譯、調試和運行,及時發現模塊中的問題,為各模塊聯合調試打下基礎。

4 結束語

主函數與函數互變的編程方法,還需要經過大量的編程實踐,才能熟練地掌握,并用于以后的程序設計中。程序編寫過程中,通過主函數與函數互變,可以加深對C語言程序設計中函數式程序結構的認識。在C語言程序設計中,函數與被調用函數通過形參與實參進行數據傳遞時,被調用函數中形參的變化,與調用函數中實參的變化有著一定的關系,這體現在函數形參變量定義的類型和函數對這些形參變量的處理,這就涉及到C語言中較難的數據類型“指針”,如果不斷的在編程中使用主函數與函數互變的編程方法,對這些內容的掌握也變得容易些了。

[1]田淑清.全國計算機等級考試二級教程C語言程序設計(2010年版)[M].北京:高等教育出版社,2009.09.

[2]譚浩強,張基溫.C語言程序設計教程[M](第三版),北京:高等教育出版社,2007.07.

[3]陳萍等.全國計算機等級考試上機考試題庫三級網絡技術[M].北京:清華同方光盤電子出版社,2009.10.

[4]柳寒冰.全國計算機等級考試上機考試新版題庫二級C[M].成都:電子科技大學出版社,2009.10.

The Main Function of Each Function and Implementation of Programming Changes

Jing Jian-guo
(Changzhi Vocational and Technical Collgeg,Changzhi Shanxi 046011)

This article describes how to program in C language function to change the main function,the function becomes the main function of the programming method used for the expansion of the program,the program provides a convenient debugging and analysis.

function;main function;program;modular

TP312

A

1673-2014(2012)02-0056-03

2012—02—08

景建國(1976—),男,晉城沁水人,助教,碩士,主要從事計算機的開發與應用研究。

(責任編輯 趙巨濤)

猜你喜歡
排序調試程序
排序不等式
恐怖排序
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
節日排序
基于航拍無人機的設計與調試
電子制作(2018年12期)2018-08-01 00:47:44
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
FOCAS功能在機床調試中的開發與應用
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
無線通信中頻線路窄帶臨界調試法及其應用
電子制作(2017年19期)2017-02-02 07:08:38
主站蜘蛛池模板: 日韩毛片视频| 九九热免费在线视频| 亚洲精品天堂自在久久77| 日本伊人色综合网| 91久久夜色精品| 国产乱子伦精品视频| 狠狠色综合久久狠狠色综合| 四虎精品黑人视频| 日韩无码黄色| 亚洲最大看欧美片网站地址| 99久久性生片| 亚洲国产系列| 99精品高清在线播放| 中文字幕亚洲乱码熟女1区2区| 久久综合五月| 亚洲a级在线观看| 亚洲国产日韩视频观看| 亚洲欧美日韩综合二区三区| 香蕉99国内自产自拍视频| 久久a毛片| 在线观看精品自拍视频| 亚洲精品视频在线观看视频| www.91中文字幕| 亚洲嫩模喷白浆| 一级片免费网站| 免费网站成人亚洲| 国产三级毛片| 国产麻豆91网在线看| 国产真实乱子伦精品视手机观看 | 精品国产三级在线观看| 3p叠罗汉国产精品久久| 真实国产乱子伦高清| 亚洲Aⅴ无码专区在线观看q| 欧美精品一区二区三区中文字幕| 国产在线一二三区| 国产在线观看91精品| 午夜毛片福利| 成人免费视频一区二区三区 | 动漫精品啪啪一区二区三区| 日韩精品一区二区深田咏美| 国产黄在线免费观看| 亚洲视频欧美不卡| 国产熟睡乱子伦视频网站| 999精品免费视频| 99尹人香蕉国产免费天天拍| 浮力影院国产第一页| 久久精品无码专区免费| 免费va国产在线观看| 国产在线91在线电影| 四虎国产精品永久在线网址| 国产成人凹凸视频在线| 成人国产精品视频频| 欧美色视频网站| 丰满的熟女一区二区三区l| 54pao国产成人免费视频| 久久特级毛片| 色偷偷男人的天堂亚洲av| 婷婷五月在线| 欧美高清三区| 亚洲日本韩在线观看| 亚洲国产精品不卡在线| 99久久国产自偷自偷免费一区| 无码专区国产精品第一页| 亚洲色图欧美在线| 精品99在线观看| 亚洲人成网站在线播放2019| 久久国产亚洲欧美日韩精品| 国产精品免费福利久久播放| 亚洲 欧美 日韩综合一区| 国产精品美女免费视频大全 | 欧美亚洲日韩中文| 国产成人喷潮在线观看| 亚洲男人天堂2018| 国产欧美日韩综合在线第一| 国产视频一区二区在线观看| 精品91在线| 91精品专区| 波多野吉衣一区二区三区av| 99ri精品视频在线观看播放| 91精品网站| 国产日韩精品欧美一区灰| AV熟女乱|