圖書在版編目CIP數據()語言程序設計案例教程高璐張娟主編南C/,.京南京大學出版社:,2016.8高等院校十三五規劃教材“”ISBN9787305174827高張語言程序設Ⅰ.①C…Ⅱ.①…②…Ⅲ.①C-計高等學校教材--Ⅳ.①TP312.8中國版本圖書館數據核字第號CIP(2016)196841出版發行南京大學出版社社址南京市漢口路號郵編22210093出版人金鑫榮叢書名高等院校十三五規劃教材“”書名語言程序設計案例教程C主編高璐張娟責任編輯王秉華吳汀編輯熱線02583595860照排南京理工大學資產經營有限公司印刷丹陽市興華印刷廠開本印張字數千787×10921/1617415版次年月第版年月第次印刷201681201681ISBN9787305174827定價元36.00網址:http://www.njupco.com微信服務號:njuyuexue微信服務號:njuyuexue銷售谘詢熱線:(025)83594756版權所有侵權必究?,凡購買南大版圖書如有印裝質量問題請與所購?,,圖書銷售部門聯係調換前言語言是目前國際上廣泛流行的一種結構化程序設計語言它以其功能豐富表達能力C,、強使用靈活方便應用麵廣目標程序效率高等優點深受廣大程序開發人員青睞不僅適合、、、,於開發係統軟件而且也是開發應用軟件和進行大規模科學計算的常用程序設計語言因此,,成為程序設計語言的常青樹。
本書第章介紹了語言的發展及特點和語言的基本數據類型第章介紹了1、2CC;3~5結構化程序設計的三種基本結構順序結構選擇結構和循環結構第章介紹了函數的(、);7定義和使用第章介紹了數據的構造類型包括數組字符串結構體和共同體等;6、9、10(、、)和指針類型第章介紹了編譯預處理和文件的概念及文件的基本操作第章介紹了;8、11;12位運算的基本知識本書的目標是讓讀者深刻理解和掌握語言的語法規則及編程特點。C,克服懂語言但不會做題不會編程序的通病“C,,”。
本教材具有如下特色:作為一門專業基礎課教材主線上必須保留或沿襲理工科課程以學科體係為線索1?,“”的指導思想即在教材內容的知識結構上依然以概念定律定理為線索的編寫體係有別,,、、,於專業技能課教材。
為了滿足以能力為中心的培養目標要求本教材改變傳統基礎課教材的編寫方2?“”,法在掌握必須的理論知識的基礎上突破技術的綜合應用能力培養加強實踐操作和技能,,,訓練每章都設計了一個小型案例充分考慮到學生特點和教學規律精心設計經典有趣案,。,例使學生的學習重心從學會知識擴展到學會學習掌握方法和培養能力上,“”“、”。
算法是程序設計的靈魂是程序設計方法的核心內容本教材突破傳統的知識內3?“”,。
容歸屬問題將算法設計始終貫穿滲透到教材的每一個案例中從而培養程序設計能,“”、,力掌握程序設計方法,。
作者根據課程要求結合語言程序設計的教學經驗並參考了大量相關同類教材對,C,,多年來的講稿進行了精心的總結修改和整理編成本書在編寫過程中哈爾濱信息工程、,。,學院軟件學院的全體教師提出了許多寶貴意見和建議本書的出版得到了編者所在學校的,大力支持在此一並向他們表示衷心的感謝,。
本書可作為高等院校語言程序設計課程的教材也可供準備參加計算機等級考試和C,考研的讀者閱讀參考同時也可作為工程技術人員和計算機愛好者的參考用書,。
盡管我們在本教材的編寫方麵做了很多努力但由於作者水平所限不當之處在所難,,免懇請各位讀者批評指正,。
第1章C語言概述語言是一種結構化語言它層次清晰便於按模塊化方式組織程序易於調試和維C。,,護語言的表現能力和處理能力極強它不僅具有豐富的運算符和數據類型便於實現。C。,各類複雜的數據結構它還可以直接訪問內存的物理地址進行位一級的操作由於;,(bit)。
語言實現了對硬件的編程操作因此語言集高級語言和低級語言的功能於一體既可用C,C:於係統軟件的開發也適合於應用軟件的開發此外語言還具有效率高可移植性強等,。,C、特點因此廣泛地移植到了各種類型的計算機上從而形成了多種版本的語言,,C。
1?1C語言的發展及特點語言的發展1?1?1C語言的發展頗為有趣它的原型是語言C。ALGOL60。
年劍橋大學將語言發展成為1963,ALGOL60CPL(CombinedProgrammingLanguage)語言。
年劍橋大學的對語言進行了簡化於是產生了語言1967,MatinRichardsCPL,BCPL。
年美國貝爾實驗室的將進行了修改並為它起了一個有趣1970,KenThompsonBCPL,的名字語言意思是將語言煮幹提煉出它的精華並且他用語言寫了第“B”。CPL“”,。B一個操作係統UNIX。
年語言也被人煮了一下美國貝爾實驗室的在語言的基1973,B“”,DennisM.RitchieB礎上最終設計出了一種新的語言他取了的第二個字母作為這種語言的名字這就是,BCPL,語言C。
為了使操作係統推廣年發表了不依賴於具體機器係統UNIX,1977,DennisM.Ritchie的語言編譯文本可移植的語言編譯程序C《C》。
年和出版了名著1978,BrianW.KernighianDennisM.Ritchie《TheCProgrammingLan?
從而使語言成為目前世界上最流行的高級程序設計語言guage》,C。
年隨著微型計算機的日益普及出現了許多語言版本由於沒有統一的標1988,,C。
準使得這些語言之間出現了一些不一致的地方為了改變這種情況美國國家標準,C。,研究所為語言製定了一套標準成為現行的語言標準語言發展迅(ANSI)CANSI,C。C速而且成為最受歡迎的語言之一主要是因為它具有強大的功能許多著名的係統軟,,。
件如都是由語言編寫的用語言加上一些彙編語言子DBASEⅢPLUS、DBASEⅣC。C程序就更能顯出語言的優勢了如等就是用這種方法編寫的,C,PCDOS、WORDSTAR。
語言的特點1?1?2C語言程序設計案例教程2C1?簡潔緊湊靈活方便、語言一共隻有個關鍵字種控製語句程序書寫自由主要用小寫字母表示它C32,9,,。
把高級語言的基本結構和語句與低級語言的實用性結合了起來。
2?運算符豐富語言的運算符包含的範圍很廣泛共有個運算符語言把括號賦值強製類型C,34。C、、轉換等都作為運算符處理從而使語言的運算類型極其豐富表達式類型多樣化靈活,C,。
使用各種運算符可以實現在其他高級語言中難以實現的運算,。
3?數據結構豐富語言的數據類型有整型實型字符型數組類型指針類型結構體類型共用體類型C、、、、、、等能用來實現各種複雜的數據類型的運算並引入了指針的概念使程序效率更高另外,,,。,語言具有強大的圖形功能支持多種顯示器和驅動器且計算功能邏輯判斷功能強大C,,、。
4?C語言是結構式語言結構式語言的顯著特點是代碼及數據的分隔化即程序的各個部分除了必要的信息交,流外彼此獨立這種結構化方式可使程序層次清晰便於使用維護以及調試語言是以。,、。C函數形式提供給用戶的這些函數可方便地調用並具有多種循環條件語句控製程序流向,,、,從而使程序完全結構化。
5?C語言語法限製不太嚴格程序設計自由度大,一般的高級語言語法檢查比較嚴能夠檢查出幾乎所有的語法錯誤而語言允許程,。C序編寫者有較大的自由度。
6?C語言允許直接訪問物理地址可以直接對硬件進行操作,語言既具有高級語言的功能又具有低級語言的許多功能能夠像彙編語言一樣對C,,位字節和地址進行操作而這三者是計算機最基本的工作單元可以用來寫係統軟件、,,。
7?C語言程序生成代碼質量高程序執行效率高,語言程序生成的代碼一般隻比彙編程序生成的目標代碼效率低C10%~20%。
8?C語言適用範圍大可移植性好,語言有一個突出的優點就是適合於多種操作係統如也適用於多種C,DOS、UNIX,機型。
1?2初步認識C語言程序為了幫助同學們對語言程序形成完整的認識這裏準備了一個較為完整的程序下C,。
麵的程序用來演示在語言程序設計中使用的一般程序設計方法和基本要素編寫程序C。,用來從文件中讀取所有的數據並輸出所讀取的數的平方,。
/?
程序執行時在D盤的根目錄下創建一個文件取名為a.dat文件中輸入10個數"13245678910"第章語言概述1C3程序運行時輸入Demo01.exed\\a.dat/?#include<stdio.h>/包含stdio.hmalloc.hstdlib.h三個頭文件/??
#include<malloc.h>#include<stdlib.h>#defineN10/定義一個不帶參數的宏N/??#definefxxx/定義一個帶參數的宏fx/???intaNb/定義全局變量數組a和指針變量b/???intinput/對函數input作聲明/??voidmainintargccharargv/主函數/???/下麵是主函數的函數體/??voidoutput/聲明output函數/??intni/定義局部變量ni/??ifargc=2/如果程序運行攜帶了參數不攜帶參數時隻有文件名?
demo01.exe/?printf"語法Demo01<filename>\n"/輸出提示信息/??
return/程序運行錯誤直接退出程序/??
n=inputargv1a/調用函數input/??
b=intmallocsizeofintn/為指針變量b申請內存空???
間/?fori=0i<ni++/循環n-1次/??
bi=fai/把數組a中每個元素都求出平方值送到數?
組b中對應位置/?outputbn/調用函數output輸出所有b中元素/??/下麵函數的功能是把文件中的數據逐個讀出存放到數組a中/??intinputcharfilenameinta/input函數的首部/???FILEfp/定義指向文件的指針fp/???inti=0/定義整型變量i用來存放讀取出來的整數的個數/??fp=fopenfilename"r"/調用係統函數fopen打開文件filename?/?語言程序設計案例教程4Ciffp==NULL/如果打開文件失敗提示出錯並退出程序/??
printf"\n無法打開文件%s"filename/提示錯誤信息/??exit0/調用係統函數exit退出程序/??whilefeoffp&&i<N/當文件讀取未結束時繼續讀取/??fscanffp"%d"&ai++/讀取文件fp中的一個整數放入數組/??fclosefp//關閉文件??
returni/返回讀取到的數據的個數/??/下麵函數的功能是輸出數組c中的n個元素/??voidoutputintcintn/函數output的首部/??
inti/定義循環用的整型變量i/??fori=0i<ni++/循環n次/??printf"%8d"ci/輸出數組元素ci的值保留8位寬度/??ifi%10==0/每輸出10個數據換一行/??printf"\n"程序輸出結果為:Demo01.exed\\a.dat<回車>194162536496481100語言程序的格式1?2?1C語言中格式書寫比較自由一行可以寫多條語句一條語句也可以書寫在多行上C,,。C語言識別大小寫字母如和是兩個不同的字母語言語句後必須有分號隻有分,“A”“a”。C,號的語句為空語句為了增強程序的可讀性應該避免在一行中書寫多條語句並使用鋸齒。,,形書寫程序代碼還可以通過空行來增強可讀性,。
語言程序的構成1?2?2C程序的基本結構是函數一個或多個函數組成一個程序若幹個語句構成C,CC,CC第章語言概述1C5語言函數若幹個基本單詞形成語句語言中使用的函數有兩類一類是係統定義的函,C。C,數如和等稱為標準庫函數可以直接在程序中使用另一類是用戶自己定義,printffclose,,。
的函數如中的函數必須由用戶自己編寫源程序代碼,demo01.coutput(),。