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
主站蜘蛛池模板: 欧美特黄一级大黄录像| 欧美中文一区| 国产精品美乳| 日本黄网在线观看| 精品亚洲国产成人AV| 伊人天堂网| 亚洲中文无码h在线观看| 国产成人毛片| 亚洲一区二区成人| 国产免费好大好硬视频| 青青草久久伊人| 青青操国产| 国产精品美女网站| 亚洲中文字幕精品| 99人妻碰碰碰久久久久禁片| 国产成人8x视频一区二区| 亚洲精品第一在线观看视频| 天堂在线www网亚洲| 久久精品人人做人人爽| 国产亚洲精久久久久久无码AV| 久久精品视频一| 午夜视频日本| 美女裸体18禁网站| www.狠狠| 欧美日本一区二区三区免费| 亚洲性视频网站| 亚洲五月激情网| 久久精品日日躁夜夜躁欧美| 欧美成人精品在线| 中文字幕自拍偷拍| 91成人免费观看在线观看| 国产成人综合网| 又黄又湿又爽的视频| 久久黄色免费电影| 大陆精大陆国产国语精品1024| 91亚洲精选| 99视频国产精品| 国产人碰人摸人爱免费视频| 免费不卡视频| 国产99在线| 啦啦啦网站在线观看a毛片| 麻豆精品久久久久久久99蜜桃| 日本欧美成人免费| 最新国产网站| 国产精品福利导航| 直接黄91麻豆网站| 亚洲精品午夜无码电影网| 国产女主播一区| 日韩成人高清无码| 午夜电影在线观看国产1区| 中文字幕在线日韩91| 激情六月丁香婷婷| 国产精品视屏| 无码高潮喷水专区久久| 国产又粗又猛又爽视频| 欧美视频在线观看第一页| 国产美女一级毛片| 成年看免费观看视频拍拍| 在线观看的黄网| 日韩高清一区 | 在线观看热码亚洲av每日更新| 国产成人免费| 免费国产无遮挡又黄又爽| P尤物久久99国产综合精品| 国产亚洲视频播放9000| 91精品情国产情侣高潮对白蜜| 国产美女在线免费观看| 成人日韩精品| 久久超级碰| 久久久久无码精品| 1024国产在线| 亚洲天堂.com| 亚洲成人网在线观看| 国产在线第二页| 夜夜操国产| 国产激情无码一区二区免费 | 波多野结衣无码中文字幕在线观看一区二区 | 99热这里只有精品久久免费| 国产精品55夜色66夜色| 久久久精品无码一二三区| 国产精品尹人在线观看| 伊人久久久久久久|