C語言程序設(shè)計(第二版)97871132585590000_第1頁
C語言程序設(shè)計(第二版)97871132585590000_第2頁
C語言程序設(shè)計(第二版)97871132585590000_第3頁
C語言程序設(shè)計(第二版)97871132585590000_第4頁
C語言程序設(shè)計(第二版)97871132585590000_第5頁
已閱讀5頁,還剩278頁未讀, 繼續(xù)免費閱讀

付費閱讀全文

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

全國高等院校計算機基礎(chǔ)課程“十三五”規(guī)劃教材

C語言程序設(shè)計

(第二版)

易曉梅趙蕓主編

許鳳亞崔坤鵬樓吉林副主編

內(nèi)容簡介

本書主要內(nèi)容包括C語言概述,基本數(shù)據(jù)類型、運算符及表達式,程序的控制結(jié)構(gòu),

數(shù)組,函數(shù),變量的作用域及存儲類別,編譯預處理,指針,結(jié)構(gòu)體、共用體與枚舉,

文件等。附錄部分提供了字符、C語言中的關(guān)鍵字、運算符的優(yōu)先級與結(jié)合性、常用標

準庫函數(shù)等內(nèi)容,以方便讀者查閱。本書結(jié)構(gòu)合理,內(nèi)容翔實,重點突出,實例典型豐

富,循序漸進、由淺入深地講解C語言。

本書適合作為高等院校計算機與非計算機專業(yè)教材,也可作為計算機等級考試二級C

語言程序設(shè)計考試的自學教材或參考用書,還可作為廣大計算機愛好者學習C語言程序

設(shè)計的參考用書。

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

C語言程序設(shè)計/易曉梅,趙蕓主編.—2版.—北京:中國

鐵道出版社,2019.8(2019.12重?。?/p>

全國高等院校計算機基礎(chǔ)課程“十三五”規(guī)劃教材

ISBN978-7-113-25855-9

Ⅰ.①C…Ⅱ.①易…②趙…Ⅲ.①C語言-程序設(shè)計-高等

學校-教材Ⅳ.①TP312.8

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

書名:C語言程序設(shè)計(第二版)

作者:易曉梅趙蕓

策劃:周海燕編輯部電話2019

責任編輯:周海燕李學敏

封面設(shè)計:付巍

封面制作:劉穎

責任校對:張玉華

責任印制:郭向偉

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

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

印刷:北京柏力行彩印有限公司

版次:2011年1月第1版2019年8月第2版2019年12月第2次印刷

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

書號:ISBN978-7-113-25855-9

定價:45.00元

版權(quán)所有侵權(quán)必究

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

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

第二版前言

經(jīng)過多年教學工作經(jīng)驗的積累,我們在第一版的基礎(chǔ)上精心修訂了這本書。《C

語言程序設(shè)計》(第二版)改進了部分敘述方式和例題的編程算法,將main()函數(shù)的

返回值類型修改為int類型,并兼顧當今高校應用型人才的培養(yǎng)要求。

本書在強調(diào)掌握C語言基本語法和功能的同時,著重培養(yǎng)學生逐步掌握程序設(shè)計

的思想和方法,以及問題的求解能力和探索創(chuàng)新能力。針對無程序設(shè)計基礎(chǔ)的初學者

的學習特點和認識規(guī)律,本書分散難點,深入淺出,并提供大量的例題,得到真實有

效的運行結(jié)果,配備精練的程序說明,使讀者能夠全面地理解程序設(shè)計語言。

本書共10章,具體內(nèi)容如下:

第1章C語言概述,主要內(nèi)容包括C語言簡介、C程序初體驗、C程序的執(zhí)行

等。介紹程序設(shè)計語言的種類、C語言的發(fā)展歷史、特點及其開發(fā)步驟,引導讀者快

速入門。

第2章基本數(shù)據(jù)類型、運算符及表達式,主要內(nèi)容包括字符集與關(guān)鍵字、標識

符,數(shù)據(jù)與數(shù)據(jù)類型,基本數(shù)據(jù)類型,運算符與表達式等。介紹數(shù)據(jù)類型的定義和使

用方法,以及C語言中的運算符與表達式的概念,為讀者學好C語言做鋪墊。

第3章程序的控制結(jié)構(gòu),主要內(nèi)容包括算法和程序的控制結(jié)構(gòu)、順序結(jié)構(gòu)、選

擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)等。詳述算法的概念、程序的3種基本結(jié)構(gòu),以及簡單的數(shù)據(jù)輸入

/輸出方法。

第4章數(shù)組,主要內(nèi)容包括一維數(shù)組、二維數(shù)組、字符數(shù)組等。介紹一維數(shù)組、

二維數(shù)組和字符數(shù)組的定義、引用、初始化及輸入/輸出等操作。

第5章函數(shù),主要內(nèi)容包括函數(shù)與C語言的結(jié)構(gòu)、庫函數(shù)、自定義函數(shù)、函數(shù)

的嵌套與遞歸調(diào)用、內(nèi)部函數(shù)與外部函數(shù)等。重點介紹C語言中庫函數(shù)的使用方法、

自定義函數(shù)的定義方法、調(diào)用方法等。

第6章變量的作用域及存儲類別,主要內(nèi)容包括變量的作用范圍、變量的存儲

類別等,使讀者對變量的使用范圍和生存周期有透徹的理解。

第7章編譯預處理,主要內(nèi)容包括宏定義、文件包含、條件編譯等。介紹C語

言特有的預編譯功能,以及編譯預處理改進程序設(shè)計環(huán)境、提高編程效率的方法。

第8章指針,主要內(nèi)容包括指針的基本知識、指針與一維數(shù)組、指針與二維數(shù)

組、指針與字符串、指針與函數(shù)、指針數(shù)組、多級指針等。指針是C語言的精髓部分,

也是C語言的重要特色,本章從指針的基本概念出發(fā),結(jié)合具體實例對指針的定義和

使用進行了分析。

第9章結(jié)構(gòu)體、共用體與枚舉,主要內(nèi)容包括定義結(jié)構(gòu)體類型、定義和使用結(jié)

構(gòu)體變量、結(jié)構(gòu)體數(shù)組、結(jié)構(gòu)體和指針、單向鏈表、共用體、枚舉類型等。介紹C語

言中的幾種自定義數(shù)據(jù)類型,包括結(jié)構(gòu)體與共用體類型。對于用戶自定義數(shù)據(jù)類型的

I

使用步驟:類型的聲明,新數(shù)據(jù)類型變量的定義,新數(shù)據(jù)類型變量的初始化,新數(shù)據(jù)

類型變量的引用進行了詳述。

第10章文件,主要內(nèi)容包括文件的打開與關(guān)閉、讀/寫文件、文件的定位等。

使讀者對文件的概念、類型有所了解,能熟練地進行文件的打開、讀/寫、關(guān)閉等基

本操作。

本書由易曉梅、趙蕓任主編,許鳳亞、崔坤鵬、樓吉林任副主編。本書具體編寫

分工如下:第1章由易曉梅編寫,第2章由崔坤鵬編寫,第3章由樓吉林、易曉梅編

寫,第4章由吳鵬、于芹芬編寫,第5章由樓吉林、王國省編寫,第6章由趙蕓編寫,

第7章由樓吉林編寫,第8章由崔坤鵬編寫,第9章由許鳳亞編寫,第10章由易曉梅

編寫,全書由易曉梅、趙蕓、許鳳亞提出編寫思路并完成統(tǒng)稿。

本書在編寫的過程中,得到了浙江農(nóng)林大學信息工程學院多位老師的幫助,在此

表示感謝。由于編者水平有限、時間倉促,不當之處在所難免,敬請讀者指正。

編者

2019年5月

II

目錄

第1章C語言概述..............................................................................................1

1.1C語言簡介.................................................................................................1

1.1.1程序設(shè)計語言...................................................................................1

1.1.2C語言的起源...................................................................................2

1.1.3C語言的特點...................................................................................3

1.2C程序初體驗..............................................................................................4

1.2.1簡單C程序?qū)嵗?.............................................................................4

1.2.2C程序的組成...................................................................................6

1.2.3C程序的基本語法知識....................................................................7

1.3C程序的執(zhí)行..............................................................................................7

1.3.1C程序的開發(fā)步驟............................................................................7

1.3.2C程序的上機步驟............................................................................8

本章小結(jié)........................................................................................................10

習題................................................................................................................10

第2章基本數(shù)據(jù)類型、運算符及表達式.............................................................13

2.1字符集與關(guān)鍵字、標識符..........................................................................13

2.2數(shù)據(jù)與數(shù)據(jù)類型.........................................................................................14

2.2.1常量與變量.....................................................................................14

2.2.2數(shù)據(jù)類型.........................................................................................15

2.3基本數(shù)據(jù)類型............................................................................................16

2.3.1整型數(shù)據(jù).........................................................................................16

2.3.2實型數(shù)據(jù).........................................................................................20

2.3.3字符型數(shù)據(jù).....................................................................................21

2.4運算符與表達式.........................................................................................24

2.4.1算術(shù)運算符與算術(shù)表達式...............................................................25

2.4.2賦值運算符與賦值表達式...............................................................27

2.4.3關(guān)系運算符與關(guān)系表達式...............................................................29

2.4.4邏輯運算符與邏輯表達式...............................................................29

2.4.5逗號運算符與逗號表達式...............................................................30

2.4.6條件運算符與條件表達式...............................................................31

2.4.7運算符的優(yōu)先級和結(jié)合性...............................................................31

2.4.8位運算符.........................................................................................32

本章小結(jié)........................................................................................................35

習題................................................................................................................35

I

C語言程序設(shè)計(第二版)

第3章程序的控制結(jié)構(gòu).....................................................................................38

3.1算法和程序的控制結(jié)構(gòu)..............................................................................38

3.2順序結(jié)構(gòu)....................................................................................................39

3.2.1引例................................................................................................40

3.2.2數(shù)據(jù)的輸入/輸出.............................................................................40

3.3選擇結(jié)構(gòu)....................................................................................................45

3.3.1引例................................................................................................45

3.3.2if語句.............................................................................................46

3.3.3switch語句......................................................................................49

3.4循環(huán)結(jié)構(gòu)....................................................................................................53

3.4.1引例................................................................................................53

3.4.2while語句.......................................................................................54

3.4.3do...while語句................................................................................56

3.4.4for語句...........................................................................................59

3.4.5goto語句.........................................................................................62

3.4.6循環(huán)語句中的break語句與continue語句......................................62

3.5綜合實例....................................................................................................69

本章小結(jié)........................................................................................................73

習題................................................................................................................73

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

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

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

4.1.2一維數(shù)組的初始化..........................................................................85

4.1.3一維數(shù)組元素的引用.......................................................................86

4.1.4一維數(shù)組的輸入/輸出.....................................................................86

4.1.5實例剖析.........................................................................................87

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

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

4.2.2二維數(shù)組的初始化..........................................................................96

4.2.3二維數(shù)組的引用..............................................................................97

4.2.4二維數(shù)組的輸入/輸出.....................................................................97

4.2.5實例剖析.........................................................................................98

4.3字符數(shù)組....................................................................................................99

4.3.1字符數(shù)組的定義與引用...................................................................99

4.3.2字符數(shù)組與字符串........................................................................100

4.3.3字符數(shù)組的初始化........................................................................100

4.3.4字符數(shù)組的輸入/輸出...................................................................101

4.3.5常用的字符串函數(shù)........................................................................102

4.3.6實例剖析.......................................................................................105

本章小結(jié)......................................................................................................107

II

目錄

習題..............................................................................................................107

第5章函數(shù).....................................................................................................113

5.1函數(shù)與C語言的結(jié)構(gòu)...............................................................................113

5.2庫函數(shù).....................................................................................................114

5.3自定義函數(shù)..............................................................................................115

5.3.1函數(shù)定義的一般形式.....................................................................115

5.3.2函數(shù)參數(shù)和函數(shù)的值.....................................................................117

5.3.3函數(shù)的調(diào)用...................................................................................120

5.4函數(shù)的嵌套與遞歸調(diào)用............................................................................122

5.5內(nèi)部函數(shù)與外部函數(shù)...............................................................................125

5.6綜合實例..................................................................................................125

本章小結(jié)......................................................................................................129

習題..............................................................................................................129

第6章變量的作用域及存儲類別.....................................................................134

6.1變量的作用范圍.......................................................................................134

6.1.1局部變量.......................................................................................135

6.1.2全局變量.......................................................................................136

6.2變量的存儲類別.......................................................................................137

6.2.1自動變量auto................................................................................137

6.2.2靜態(tài)變量static..............................................................................138

6.2.3寄存器變量register.......................................................................139

6.2.4外部變量extern.............................................................................140

6.3綜合實例..................................................................................................140

本章小結(jié)......................................................................................................143

習題..............................................................................................................143

第7章編譯預處理..........................................................................................148

7.1宏定義.....................................................................................................148

7.1.1不帶參數(shù)的宏定義........................................................................148

7.1.2帶參數(shù)的宏定義............................................................................150

7.2文件包含..................................................................................................152

7.3條件編譯..................................................................................................153

本章小結(jié)......................................................................................................154

習題..............................................................................................................155

第8章指針.....................................................................................................156

8.1指針的基本知識.......................................................................................156

III

C語言程序設(shè)計(第二版)

8.1.1地址與指針概念............................................................................156

8.1.2指針變量的定義............................................................................157

8.1.3指針變量的賦值與引用.................................................................158

8.1.4指針變量的運算............................................................................161

8.1.5指針變量作為函數(shù)的參數(shù).............................................................163

8.2指針與一維數(shù)組.......................................................................................165

8.2.1指針與一維數(shù)組的關(guān)系.................................................................165

8.2.2數(shù)組名作為函數(shù)的參數(shù).................................................................171

8.3指針與二維數(shù)組.......................................................................................176

8.3.1指針與二維數(shù)組的關(guān)系.................................................................176

8.3.2二維數(shù)組的行指針作為函數(shù)的參數(shù)..............................................183

8.4指針與字符串..........................................................................................183

8.4.1字符串與字符指針........................................................................183

8.4.2字符指針作為函數(shù)的參數(shù).............................................................187

8.4.3使用字符串指針變量與字符數(shù)組的區(qū)別.......................................188

8.5指針與函數(shù)..............................................................................................189

8.5.1指向函數(shù)的指針............................................................................189

8.5.2返回指針值的函數(shù)........................................................................193

8.5.3main()函數(shù)的參數(shù).........................................................................195

8.6指針數(shù)組..................................................................................................196

8.6.1指針數(shù)組的定義............................................................................196

8.6.2指針數(shù)組的初始化........................................................................197

8.6.3指針數(shù)組作函數(shù)的參數(shù).................................................................198

8.6.4指針數(shù)組的應用............................................................................198

8.7多級指針..................................................................................................201

8.7.1多級指針的定義............................................................................202

8.7.2多級指針的初始化........................................................................202

8.7.3多級指針的應用舉例.....................................................................203

8.8綜合實例..................................................................................................204

本章小結(jié)......................................................................................................208

習題..............................................................................................................209

第9章結(jié)構(gòu)體、共用體與枚舉.........................................................................214

9.1定義結(jié)構(gòu)體類型.......................................................................................214

9.2定義和使用結(jié)構(gòu)體變量............................................................................216

9.2.1結(jié)構(gòu)體變量的定義........................................................................216

9.2.2結(jié)構(gòu)體變量的初始化.....................................................................218

9.2.3結(jié)構(gòu)體變量的引用........................................................................219

9.3結(jié)構(gòu)體數(shù)組..............................................................................................221

9.3.1結(jié)構(gòu)體數(shù)組的定義........................................................................221

9.3.2結(jié)構(gòu)體數(shù)組的初始化.....................................................................221

9.3.3結(jié)構(gòu)體數(shù)組的引用........................................................................222

IV

目錄

9.4結(jié)構(gòu)體和指針..........................................................................................224

9.4.1指向結(jié)構(gòu)體變量的指針.................................................................224

9.4.2指向結(jié)構(gòu)體數(shù)組的指針.................................................................226

9.5單向鏈表..................................................................................................227

9.5.1鏈表概述.......................................................................................228

9.5.2鏈表的特點及操作原理.................................................................229

9.5.3鏈表的建立...................................................................................230

9.5.4鏈表的刪除...................................................................................232

9.5.5鏈表的插入...................................................................................234

9.6共用體.....................................................................................................235

9.7枚舉類型..................................................................................................238

9.7.1枚舉類型的定義和枚舉變量的說明..............................................238

9.7.2枚舉類型變量的賦值和使用.........................................................238

本章小結(jié)......................................................................................................240

習題..............................................................................................................240

第10章文件...................................................................................................243

10.1文件概述................................................................................................243

10.2文件的打開與關(guān)閉.................................................................................246

10.2.1打開文件.....................................................................................246

10.2.2關(guān)閉文件.....................................................................................248

10.3讀/寫文件...............................................................................................249

10.3.1以字符為單位讀/寫.....................................................................249

10.3.2以字符串為單位讀/寫..................................................................250

10.3.3格式化方式讀/寫.........................................................................251

10.3.4以數(shù)據(jù)塊為單位讀/寫..................................................................251

10.4文件的定位............................................................................................252

10.5綜合實例................................................................................................253

本章小結(jié)......................................................................................................258

習題..............................................................................................................259

附錄A字符.....................................................................................................262

附錄BC語言中的關(guān)鍵字................................................................................264

附錄C運算符的優(yōu)先級與結(jié)合性.....................................................................265

附錄D常用標準庫函數(shù)...................................................................................267

參考文獻............................................................................................................270

V

第1章

C語言概述

本章要點

C語言簡介

C語言的組成及基本語法

C語言的執(zhí)行步驟

本章學習目標

了解C語言的起源及特點

了解C語言的組成及基本語法

熟悉C語言的開發(fā)步驟與上機步驟

C語言在各種程序設(shè)計語言中是首選語言,本章將對C語言的起源和發(fā)展、執(zhí)行

步驟做簡單的介紹,并通過簡單的例題說明C程序的組成和代碼格式,為讀者學習和

使用這門語言做準備。

1.1C語言簡介

C語言是目前國際上流行、使用非常廣泛的高級程序設(shè)計語言,在程序員中備受

青睞。下面將介紹程序設(shè)計語言的分類、C語言的起源及其特點。

1.1.1程序設(shè)計語言

程序設(shè)計語言又稱編程語言,能被計算機系統(tǒng)所接受、理解和執(zhí)行,是一組用來定

義計算機程序的語法規(guī)則,以便向計算機發(fā)出指令。程序設(shè)計語言主要分為以下幾類:

1.機器語言

機器語言是第一代程序設(shè)計語言,它是由“0”和“1”組成的指令序列。例如:

字長為16位的計算機指令為1011011000000000,表示讓計算機執(zhí)行一次加法操作;

而指令1011010100000000則表示執(zhí)行一次減法操作,它們的前8位表示操作碼,而

后8位表示地址碼。

機器語言能被計算機直接識別并執(zhí)行,不需要進行任何翻譯,所以具有靈活、直

接執(zhí)行和速度快等特點。

每臺機器指令格式和代碼所代表的含義都是硬件規(guī)定的,從而在某臺計算機上開

1

C語言程序設(shè)計(第二版)

發(fā)且能正確執(zhí)行的程序移植到另一臺計算機執(zhí)行時必須重新編寫程序,因此機器語言

可移植性差、重用性差。另外,由于機器語言由“0”和“1”組成,編程人員要首先

熟記計算機的全部指令和代碼含義才能進行程序編寫,因此用機器語言編寫程序是一

項極其煩瑣的工作。

2.匯編語言

為克服機器語言中“0”和“1”給程序員所帶來的不便,匯編語言用助記符代替

操作碼,用地址符或標號代替地址碼。例如:數(shù)據(jù)傳輸指令中的MOV表示傳送字或

字節(jié),算術(shù)運算指令中的ADD表示加法、SUB表示減法、MUL表示無符號乘法、DIV

表示無符號除法,邏輯運算指令中的AND表示與運算,等等。

匯編語言編寫的程序不能由機器直接識別,要由一種特定程序?qū)R編語言翻譯成

機器語言,才能由機器執(zhí)行,匯編語言編譯器把匯編程序翻譯成機器語言的過程稱為

匯編。匯編語言的執(zhí)行效率仍然很高,針對某種機器特定硬件而編制的匯編語言程序

能準確地發(fā)揮計算機硬件功能和特長。

相對于機器語言,匯編語言用簡潔的英文字母或符號串來替代特定指令的二進制

串,使得程序員容易讀、寫、調(diào)試和修改程序。盡管如此,相對高級語言來說,匯編

語言在編寫復雜程序時代碼量較大,另外,由于它與處理器密切相關(guān),每種處理器都

有自己的指令系統(tǒng),相應的匯編語言各不相同,所以,匯編語言程序的通用性、可移

植性較差。

3.高級語言

為解決匯編語言通用性差、需大量助記符的缺陷,人們開發(fā)了高級語言,這種語

言不依賴于計算機硬件、通用性好,接近于數(shù)學語言或人的自然語言,單個語句就能

實現(xiàn)基本功能。從1954年第一個完全脫離機器硬件的高級語言——Fortran問世到現(xiàn)

在已有了幾百種高級語言,其中最常用的有Fortran語言、C語言、BASIC語言、COBOL

語言、Pa

溫馨提示

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

評論

0/150

提交評論