C語言程序設計教程_第1頁
C語言程序設計教程_第2頁
C語言程序設計教程_第3頁
C語言程序設計教程_第4頁
C語言程序設計教程_第5頁
已閱讀5頁,還剩274頁未讀, 繼續(xù)免費閱讀

付費閱讀全文

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

普通高等院校計算機基礎教育“十四五”系列教材

C語言程序設計教程

郭一晶薛春艷◎主編

高鳳強邱義陳炳飛張思民◎副主編

內容簡介

C語言是應用較廣泛的一門程序設計語言。本書注重可讀性和實用性,配備了大量經(jīng)過精

心篩選的例題,既能幫助學生理解知識,又具有啟發(fā)性。

本書在寫作上注重簡明易懂,并通過大量短小的例題對知識點進行分析解釋,突出C語言

的編程思想和編程能力的培養(yǎng)。本書共分8章,分別介紹基本數(shù)據(jù)類型、程序控制語句、數(shù)組、

函數(shù)、指針、結構體、共用體和枚舉類型、文件讀/寫操作等內容。本書配有輔導教材《C語言

程序設計習題解析》。

本書適合作為高等院校C語言程序設計課程的教材,也可以作為從事軟件開發(fā)的工程技術

人員自學使用的參考書。

圖書在版編目(CIP)數(shù)據(jù)

C語言程序設計教程/郭一晶,薛春艷主編.—北京:

中國鐵道出版社有限公司,2022.6

普通高等院校計算機基礎教育“十四五”系列教材

ISBN978-7-113-29102-0

Ⅰ.①C…Ⅱ.①郭…②薛…Ⅲ.①C語言-程序設計-

高等學校-教材Ⅳ.①TP312.8

中國版本圖書館CIP數(shù)據(jù)核字(2022)第076489號

書名:C語言程序設計教程

作者:郭一晶薛春艷

策劃:賈星編輯部電話:(010)63549501

責任編輯:賈星賈淑媛

封面制作:劉穎

責任校對:孫玫

責任印制:樊啟鵬

出版發(fā)行:中國鐵道出版社有限公司(100054,北京市西城區(qū)右安門西街8號)

網(wǎng)址:/51eds/

印刷:三河市國英印務有限公司

版次:2022年6月第1版2022年6月第1次印刷

開本:787mm×1092mm1/16印張:17.25字數(shù):451千

書號:ISBN978-7-113-29102-0

定價:49.00元

版權所有侵權必究

凡購買鐵道版圖書,如有印制質量問題,請與本社教材圖書營銷部聯(lián)系調換。電話:(010)63550836

打擊盜版舉報電話:(010)63549461

前言

C語言是目前應用較廣泛的一門程序設計語言,長期以來,一直受到編程人員的喜愛。學

生如何學好這門語言是廣大教師一直都在思考的問題。

本書具有以下特點:

(1)簡明易懂。本書在敘述方式上盡可能淺顯易懂,用人們日常生活中的例子或圖示來

加以說明,并用大量短小的例題進行分析解釋。

(2)框架完整,知識細節(jié)不要求必須記憶,但要求掌握如何探索知識細節(jié)。

(3)對每一個例題均進行了詳細分析和解釋,既可以幫助讀者學習理解知識和概念,大

大降低學習難度,又具有啟發(fā)性,觸類旁通。

(4)按照問題解決的需要分多個層次逐步講解C語言編程,依次為:能夠由解決問題的

想法到算法再到最終的代碼,能夠寫出高質量的代碼,能夠進行應用領域編程,能夠進行簡單

實用工具的開發(fā)。實際應用中大多數(shù)的編程屬于簡單編程,也就是說,只要學會想法到代碼的

映射,就能夠解決大多數(shù)的實際應用問題。

(5)注意與其他課程的銜接。在書中對學生以后學習的數(shù)據(jù)結構、面向對象程序設計、

單片機設計、嵌入式開發(fā)編程、軟件工程等課程進行了鋪墊和延伸,有助于學生過渡到后續(xù)課

程的學習。

C語言的教學應該強調教學實施過程、知識積累的過程、能力培養(yǎng)的過程,使學生能快樂

地學習,使每一個學生喜歡本課程,掌握程序設計的思想和方法,讓學生在學習本課程過程中

享受到程序設計的樂趣,培養(yǎng)學生在各專業(yè)領域中應用計算機解決問題的意識和能力。應該說,

學習任何一種編程語言都有一定難度。因此,要強調動手實踐,多編寫、多練習,熟能生巧,

從學習中體驗到程序設計的樂趣和成功的喜悅,增強學習信心。

本書共分8章,其各章內容簡介如下:

第1章主要介紹C語言的發(fā)展歷史和特點,并對C語言的基本結構和調試方式做簡要的介紹。

第2章主要介紹C語言的基本數(shù)據(jù)類型(整型、字符型和浮點型)、常用的運算符(算術

運算符、賦值運算符、逗號運算符、位運算符、關系運算符和邏輯運算符)及常用的表達式等。

第3章主要介紹程序控制結構中的順序結構、選擇結構和循環(huán)結構及其應用。

第4章主要介紹數(shù)組的定義、使用,從一維數(shù)組擴展到二維數(shù)組,并介紹字符數(shù)組的相關

應用。

2C語言程序設計教程

第5章主要介紹指針的概念及指針的應用。

第6章主要介紹函數(shù)定義和調用、函數(shù)的嵌套、變量的作用域與存儲類型等。

第7章主要介紹結構體、共用體和枚舉類型及這些構造類型的應用。

第8章主要介紹輸入/輸出流及文件的讀/寫操作等內容。

本書例題源程序可以在中國鐵道出版社有限公司網(wǎng)站(/51eds/)下載。

下載文件還提供了習題解答及電子課件以幫助讀者學習。本書配有輔導教材《C語言程序設計

習題解析》(薛春艷,郭一晶),與主教材相呼應,以更好地達到教學效果。本套教材的編者均

為多年從事大學程序設計課程教學的教師,具有豐富的教學及程序設計的實踐經(jīng)驗。

本書由郭一晶、薛春艷任主編,高鳳強、邱義、陳炳飛、張思民任副主編。具體編寫分工

如下:第1、8章由高鳳強編寫,第2章由陳炳飛編寫,第3章由張思民編寫,第4章由郭一

晶編寫,第5、7章由邱義編寫,第6章由薛春艷編寫。

由于時間倉促,編者水平有限,書中不妥和疏漏之處在所難免,懇請專家和讀者不吝賜教。

編者

2022年1月

目錄

第1章C語言基礎知識......................................................................................................1

1.1C語言概述............................................................................................................................1

1.1.1C語言的發(fā)展簡史.....................................................................................................1

1.1.2C語言的特點............................................................................................................1

1.1.3C語言編譯器和IDE的選擇....................................................................................2

1.1.4C程序的基本結構.....................................................................................................3

1.2C語言程序的開發(fā)................................................................................................................5

1.2.1C語言程序的編寫和運行.........................................................................................5

1.2.2C-Free環(huán)境下的程序建立與運行...........................................................................7

1.2.3C-Free環(huán)境下的程序調試.....................................................................................15

小結..............................................................................................................................................22

習題1...........................................................................................................................................22

第2章C語言程序設計基礎.............................................................................................23

2.1C語言的基本數(shù)據(jù)類型......................................................................................................23

2.1.1標識符......................................................................................................................23

2.1.2常量..........................................................................................................................24

2.1.3變量..........................................................................................................................24

2.2基本輸入/輸出函數(shù)............................................................................................................30

2.2.1格式化輸出函數(shù)......................................................................................................30

2.2.2格式化輸入函數(shù)......................................................................................................33

2.2.3字符輸入/輸出函數(shù).................................................................................................36

2.3運算符和表達式.................................................................................................................37

2.3.1算術運算符和算術表達式......................................................................................37

2.3.2賦值運算符和賦值表達式......................................................................................39

2.3.3逗號運算符和逗號表達式......................................................................................41

2.3.4運算符的優(yōu)先級......................................................................................................42

2.4位運算符與位運算.............................................................................................................44

2.5關系表達式與邏輯表達式.................................................................................................49

2.5.1關系運算符和關系表達式......................................................................................49

2.5.2邏輯運算符和邏輯表達式......................................................................................49

小結..............................................................................................................................................51

習題2...........................................................................................................................................51

第3章C語言程序的控制結構..........................................................................................55

3.1順序結構.............................................................................................................................55

3.1.1C語言的語句..........................................................................................................55

2C語言程序設計教程

3.1.2順序控制語句..........................................................................................................55

3.2選擇結構.............................................................................................................................57

3.2.1選擇結構語句..........................................................................................................57

3.2.2條件表達式..............................................................................................................62

3.2.3switch語句...............................................................................................................63

3.2.4條件編譯..................................................................................................................68

3.3循環(huán)結構.............................................................................................................................70

3.3.1while語句.................................................................................................................70

3.3.2for循環(huán)語句.............................................................................................................72

3.3.3break語句和continue語句.....................................................................................74

3.3.4循環(huán)的嵌套..............................................................................................................76

3.4綜合應用.............................................................................................................................78

小結..............................................................................................................................................83

習題3...........................................................................................................................................84

第4章數(shù)組......................................................................................................................88

4.1一維數(shù)組.............................................................................................................................88

4.1.1一維數(shù)組的定義......................................................................................................88

4.1.2一維數(shù)組元素的引用..............................................................................................89

4.1.3一維數(shù)組的初始化..................................................................................................90

4.1.4一維數(shù)組應用..........................................................................................................91

4.2二維數(shù)組.............................................................................................................................97

4.2.1二維數(shù)組的定義......................................................................................................97

4.2.2二維數(shù)組元素的引用..............................................................................................98

4.2.3二維數(shù)組的初始化................................................................................................100

4.3字符數(shù)組與字符串...........................................................................................................103

4.3.1字符數(shù)組................................................................................................................103

4.3.2字符串....................................................................................................................105

4.3.3字符串運算函數(shù)....................................................................................................107

4.4綜合應用...........................................................................................................................112

小結............................................................................................................................................119

習題4.........................................................................................................................................119

第5章指針.....................................................................................................................125

5.1地址和指針.......................................................................................................................125

5.1.1指針概述................................................................................................................125

5.1.2指針變量................................................................................................................126

5.2指針與數(shù)組.......................................................................................................................131

5.2.1指針與一維數(shù)組....................................................................................................131

5.2.2通過指針引用一維數(shù)組元素................................................................................131

5.3指針與字符串及指針數(shù)組...............................................................................................136

5.3.1指針與字符串........................................................................................................136

目錄3

5.3.2指針數(shù)組................................................................................................................143

5.4動態(tài)內存分配...................................................................................................................145

小結............................................................................................................................................148

習題5.........................................................................................................................................148

第6章函數(shù).....................................................................................................................152

6.1函數(shù)概述...........................................................................................................................152

6.2函數(shù)的定義、調用及分類...............................................................................................153

6.2.1函數(shù)的定義............................................................................................................154

6.2.2函數(shù)的調用............................................................................................................157

6.2.3函數(shù)的聲明............................................................................................................161

6.3函數(shù)參數(shù)及其傳遞方式...................................................................................................162

6.3.1形參和實參............................................................................................................162

6.3.2參數(shù)的傳遞方式....................................................................................................164

6.3.3數(shù)組作為函數(shù)參數(shù)................................................................................................167

6.4函數(shù)的嵌套調用...............................................................................................................171

6.5變量的作用域與存儲類型...............................................................................................174

6.5.1全局變量與局部變量............................................................................................174

6.5.2變量的存儲類別....................................................................................................176

6.6標準函數(shù)簡介...................................................................................................................179

6.7綜合應用...........................................................................................................................185

小結............................................................................................................................................188

習題6.........................................................................................................................................189

第7章結構體與共用體...................................................................................................198

7.1結構體類型.......................................................................................................................198

7.1.1結構體類型的定義................................................................................................198

7.1.2結構體變量的定義與引用....................................................................................199

7.1.3結構體數(shù)組的定義與使用....................................................................................203

7.1.4結構體類型指針....................................................................................................210

7.1.5結構體與函數(shù)........................................................................................................213

7.2共用體與枚舉類型...........................................................................................................217

7.2.1共用體....................................................................................................................217

7.2.2枚舉類型................................................................................................................221

7.3用typedef定義類型..........................................................................................................223

7.4鏈表...................................................................................................................................224

7.4.1鏈表的建立和輸出................................................................................................225

7.4.2鏈表結點的查找....................................................................................................228

7.4.3鏈表結點的添加....................................................................................................230

7.4.4鏈表結點的刪除....................................................................................................235

小結............................................................................................................................................238

習題7.........................................................................................................................................239

4C語言程序設計教程

第8章文件操作..............................................................................................................245

8.1文件概述...........................................................................................................................245

8.1.1數(shù)據(jù)流與文件的概念............................................................................................245

8.1.2文件類型指針........................................................................................................246

8.1.3文件的操作............................................................................................................247

8.2文件的打開和關閉...........................................................................................................247

8.2.1文件打開函數(shù)fopen()............................................................................................247

8.2.2文件關閉函數(shù)fclose()............................................................................................248

8.3文件的順序讀/寫..............................................................................................................249

8.3.1字符讀/寫函數(shù).......................................................................................................249

8.3.2字符串讀/寫函數(shù)...................................................................................................251

8.3.3格式化讀/寫函數(shù)...................................................................................................253

8.3.4二進制文件讀/寫函數(shù)...........................................................................................255

8.3.5文件的隨機讀寫....................................................................................................257

8.3.6文件狀態(tài)檢查函數(shù)................................................................................................260

8.4模塊化編程.......................................................................................................................262

8.4.1模塊化編程概念....................................................................................................262

8.4.2模塊化編程實例....................................................................................................263

小結............................................................................................................................................266

習題8.........................................................................................................................................267

第1章C語言基礎知識

C語言是一種目前比較流行的高級編程語言,它具有較強的生命力,有著不同于其他語言

的特點。本章主要介紹C語言的發(fā)展歷史和特點,并對C語言的基本結構和調試方式做簡要的

介紹。

1.1C語言概述

1.1.1C語言的發(fā)展簡史

1972年至1973年貝爾實驗室的D.M.Ritchie在B語言的基礎上設計出了C語言,并用該

語言改寫了原來用匯編語言編寫的UNIX。1978年,美國電話電報公司(AT&T)貝爾實驗室正式

發(fā)布了C語言。同年,由B.W.Kernighan和D.M.Ritchie合著了著名的TheCProgrammingLanguage

一書。該書中介紹的C語言成為后來廣泛使用的C語言版本的基礎,被稱為標準C。1983年,

美國國家標準化協(xié)會(ANSI)根據(jù)C語言各種版本對C的發(fā)展和擴充,制定了新的標準ANSI,

比標準C有了很大的發(fā)展。1987年,ANSI公布了新標準——87ANSIC。1989年,ANSI又公布

了一個新的C語言標準——C89。C語言編譯系統(tǒng)大多是以C89為基礎進行開發(fā)的,C語言開發(fā)

環(huán)境有TurboC、BorlandC、MicrosoftC、QiuckC等。

1.1.2C語言的特點

1.豐富的運算符

計算是計算機的基本功能,因此一門程序設計語言對計算能力的運用是非常重要的。C語

言提供了34種運算符,計算類型極其豐富,其中包括了最基本的加減乘除運算。

2.豐富的數(shù)據(jù)類型

擁有豐富的數(shù)據(jù)類型是C語言生命力強大的一個重要原因。C語言的數(shù)據(jù)類型有整型(int)、

實型(float)、字符型(char)、數(shù)組類型(int[])、指針類型(void*)、結構體類型(struct)、

共用體類型(union)等。正因為C語言數(shù)據(jù)類型豐富,運算能力極強,因此很多數(shù)據(jù)庫都是用

C語言編寫的,如DB2、Oracle等。

3.允許直接訪問物理地址,對硬件進行操作

由于C語言可以使用指針直接訪問物理地址和對硬件進行操作,因此它既具有高級語言的功能,

又具有低級語言的許多功能,能夠像匯編語言一樣對位(bit)、字節(jié)(Byte)和地址進行操作。

4.高效率的目標代碼

對比匯編語言,C語言可讀性好,易于調試、修改和移植,代碼質量與匯編語言相當。

2C語言程序設計教程

5.可移植性好

在一個運行環(huán)境中用C語言編寫的程序,不改動或稍加改動就可移植到另一個完全不同的

環(huán)境中運行。

1.1.3C語言編譯器和IDE的選擇

1.C語言編譯器

C語言代碼由固定的詞匯按照固定的格式組織起來,程序員容易識別和理解。但是對于CPU

而言,C語言代碼不能直接識別,其只能直接識別二進制形式的機器指令。這時候就需要一個

工具,將C語言代碼轉換成CPU能夠識別的二進制機器指令,也就是將代碼加工成.exe程序。

這個工具是一個特殊的軟件,稱為C語言編譯器(Compiler)。

C語言編譯器可以保證C語言代碼的語法正確性。編譯過后,編譯器會給出錯誤或者警告

提示,方便程序員修改C語言代碼。C語言編譯器有很多種,Windows下常用的是微軟開發(fā)的

cl.exe,Linux下常用的是GUN組織開發(fā)的GCC。

2.選擇合適的IDE

實際開發(fā)中,除了編譯器等必需的工具,程序員往往還需要很多其他輔助軟件,如編輯器、

調試器、文件管理等,這些工具通常被打包在一起,統(tǒng)一發(fā)布和安裝,例如,VisualC++6.0、

VisualStudio、DevC++、Code::Blocks、C-Free等。它們統(tǒng)稱為IDE(IntegratedDevelopment

Environment,集成開發(fā)環(huán)境)。

(1)在Linux下通常使用GCC(GNUCompilerCollection,GNU編譯器套件)。GCC是GUN

組織開發(fā)的自由軟件,除了支持C,還支持C++、Java、Objective-C等,它是Linux平臺編譯器

的事實標準。

(2)在MacOSX下使用Xcode。Xcode是由Apple官方開發(fā)的IDE,支持C、C++、

Objective-C、Java等,可以用來開發(fā)OSX和iOS上的應用程序。Xcode最初使用GCC作為編

譯器,后來由于GCC的兼容問題,改用LLVM。

(3)在Windows下,可以使用的IDE比較多,比如BorlandC++、VisualC++6.0、VisualStudio

2013、C-Free、DevC++、Code::Blocks等。

VisualC++6.0(簡稱VC6.0)是微軟開發(fā)的一款經(jīng)典的IDE,很多高校都以VC6.0為教

學工具來講解C和C++。

VisualStudio(簡稱VS)是VisualC++6.0的升級版,增加了很多特性,支持了更多的語

言,非常龐大,安裝包有2~3GB,下載不便,而且會安裝很多暫時用不到的工具。另外,VS

安裝的組件眾多,不容易卸載干凈。如果計算機配置低,運行VisualStudio還會很吃力。目前

常用的版本有VS2010和VS2013,目前最新的版本為VS2021。

C-Free、DevC++、Code::Blocks默認使用MinGW(GCC編譯器的Windows版本)或者Cygwin

(Windows平臺上運行的Linux模擬環(huán)境),不是真實的Windows開發(fā)環(huán)境,但它們小巧,容易

安裝和卸載。

在Windows下的大部分程序員都使用VS,不過考慮到初學者下載、安裝和運行VS的成本,

本書約定:在Windows下使用C-Free來運行C語言。另外,C語言的絕大部分內容是通用的,

不針對具體的編譯器,讀者也可以用DevC++、Code::Blocks等其他編譯器運行程序。

第1章C語言基礎知識3

1.1.4C程序的基本結構

任何一種程序設計語言都具有特定的語法規(guī)則和規(guī)定的表達方法。一個程序只有嚴格按照

語言規(guī)定的語法和表達方式編寫,才能保證編寫的程序在計算機中能正確地執(zhí)行,同時也便于

閱讀和理解。

為了方便讀者了解C語言程序的形式和結構,下面介紹兩個簡單的C語言程序。

【例1-1】編寫程序,在屏幕上輸出字符串“Hello,World!”。

1/*輸出Hello,World!*/

2#include<stdio.h>包含庫文件“stdio.h”

3intmain()

4{

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論