• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      主函數(shù)與函數(shù)互變編程方法的實現(xiàn)

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

      景建國

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

      主函數(shù)與函數(shù)互變編程方法的實現(xiàn)

      景建國

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

      文章介紹了C語言程序中如何將主函數(shù)變?yōu)楹瘮?shù)、函數(shù)變?yōu)橹骱瘮?shù)的程序設計方法,為擴充程序的使用、程序調試和分析提供了方便。

      函數(shù);主函數(shù);程序;模塊化

      1 引言

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

      2 主函數(shù)變?yōu)楹瘮?shù)

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

      2.1 排序程序段變?yōu)楹瘮?shù)

      排序是數(shù)據(jù)處理的重要內容,排序的方法也很多,對應的排序段也很多。如果把該程序段變?yōu)楹瘮?shù),就可單獨分析該程序段的執(zhí)行過程和結果,通過單獨編譯,其它的程序中就可以調用。下面以常用的冒泡排序程序進行介紹。

      以上程序對數(shù)組a中的10個元素按從小到大排序,源程序中的主要程序是排序程序段,變?yōu)楹瘮?shù)如下:

      變?yōu)楹瘮?shù)的關鍵是如何把要處理的數(shù)據(jù)傳遞給函數(shù)的形式參數(shù),傳遞給形式參數(shù)的數(shù)據(jù)中哪些是可以變化的。這些變化的參數(shù),就形成了函數(shù)中處理數(shù)據(jù)的可變化的內容,增加了函數(shù)的通用性。

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

      2.2 求階乘程序段變?yōu)楹瘮?shù)

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

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

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

      3 函數(shù)變?yōu)橹骱瘮?shù)

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

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

      3.1 求字符串數(shù)組中最長字符串函數(shù)變?yōu)橹骱瘮?shù)

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

      以上程序中的函數(shù) fun(char(*a)[81],int num)變?yōu)橹骱瘮?shù)如下:

      變?yōu)橹骱瘮?shù)時,保留主函數(shù)中的定義和輸入數(shù)據(jù)程序段;要把函數(shù)中處理的形參變?yōu)橹骱瘮?shù)調用函數(shù)時的實參;把函數(shù)中處理形參的程序段變?yōu)橹骱瘮?shù)中的處理程序段;函數(shù)返回的值,用輸出函數(shù)直接輸出。這時就可編譯、調試和運行主函數(shù)來確定函數(shù)的輸出結果。

      在模塊化程序設計時,函數(shù)變?yōu)橹骱瘮?shù),可以對各個模塊對應的程序直接編譯、調試和運行,及時發(fā)現(xiàn)模塊中的問題,為各模塊聯(lián)合調試打下基礎。

      4 結束語

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

      [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—),男,晉城沁水人,助教,碩士,主要從事計算機的開發(fā)與應用研究。

      (責任編輯 趙巨濤)

      猜你喜歡
      程序段調用程序設計
      基于WinCC的物料小車控制系統(tǒng)設計與仿真
      電動工具(2022年2期)2022-05-18 08:40:38
      基于Visual Studio Code的C語言程序設計實踐教學探索
      計算機教育(2020年5期)2020-07-24 08:52:56
      核電項目物項調用管理的應用研究
      數(shù)控系統(tǒng)手輪回退功能的研究與實現(xiàn)*
      從細節(jié)入手,談PLC程序設計技巧
      電子制作(2019年9期)2019-05-30 09:42:04
      LabWindows/CVI下基于ActiveX技術的Excel調用
      測控技術(2018年5期)2018-12-09 09:04:46
      基于NC程序段的提高數(shù)控加工監(jiān)控閾值與信號同步的方法*
      基于系統(tǒng)調用的惡意軟件檢測技術研究
      高職高專院校C語言程序設計教學改革探索
      PLC梯形圖程序設計技巧及應用
      扶绥县| 左权县| 城固县| 阿拉善盟| 贵南县| 延川县| 安义县| 英德市| 加查县| 嵊泗县| 田阳县| 鄂尔多斯市| 加查县| 湖南省| 佛山市| 泌阳县| 民县| 宁德市| 崇左市| 平陆县| 平潭县| 澄城县| 哈巴河县| 葫芦岛市| 嘉祥县| 泰来县| 宿州市| 信阳市| 巴彦县| 双辽市| 盖州市| 苍南县| 肥城市| 温泉县| 万山特区| 大方县| 安仁县| 涞源县| 城固县| 台南市| 宜宾市|