C 語言是一種高級程序設(shè)計語言,具有簡潔、緊湊、高效等特點。它既可以用于編寫應(yīng)用軟件,也可 以用于編寫系統(tǒng)軟件。自 1973 年問世以來,C語言迅速發(fā)展并成為最受歡迎的編程語言之一,下面針對 C 語言的發(fā)展史和 C 語言標準分別進行講解。
早期的系統(tǒng)軟件設(shè)計均采用匯編語言,例如,大家熟知的 UNIX 操作系統(tǒng)。盡管匯編語言在可移植性、 可維護性等方面遠遠不及高級語言,但是一般的高級語言有時難以實現(xiàn)匯編語言的某些功能。那么,能否 設(shè)計出一種集匯編語言和高級語言優(yōu)點于一身的語言呢?于是,C 語言就應(yīng)運而生了。
1970 年,美國貝爾實驗室的肯·湯普森(Ken Thompson)將 BCPL 進行了修改,并為它起了一個有趣 的名字“B 語言”,其含義是將 CPL 語言煮干,提煉出它的精華,并且他用 B 語言寫了第一個 UNIX 操 作系統(tǒng)。
1973 年,美國貝爾實驗室的丹尼斯·里奇(Dennis M.Ritchie)在 B 語言的基礎(chǔ)上設(shè)計出了一種新的語 言,他取了 BCPL 的第二個字母作為這種語言的名字,即 C 語言。
1978 年,布賴恩?凱尼漢(Brian W.Kernighan)和丹尼斯·里奇(Dennis M.Ritchie)出版了名著《The C Programming Language》,從而使 C 語言成為目前世界上流行最廣泛的高級程序設(shè)計語言。
隨著微型計算機的日益普及,出現(xiàn)了許多 C 語言版本。由于沒有統(tǒng)一的標準,使得這些 C 語言之間出 現(xiàn)了一些不一致的地方。為了改變這種情況,美國國家標準學(xué)會(ANSI)為 C 語言制定了一套 ANSI 標準, 即 C 語言標準。
在 1989 年美國國家標準學(xué)會(ANSI)通過的 C 語言標準 ANSI X3.159-1989 被稱為 C89。之后在 1990 年,國際標準化組織 ISO 也接受了同樣的標準ISO9899-1990,該標準被稱為 C90。這兩個標準只有細微的 差別,因此,通常來講 C89 和 C90 指的是同一個版本。
后來隨著時代的發(fā)展,1999 年 ANSI 又通過了 C99 標準。C99 標準相對 C89 做了很多修改,例如變量 聲明可以不放在函數(shù)開頭,支持變長數(shù)組等。但由于很多編譯器仍然沒有對 C99 提供完整的支持,因此本 書將按照 C89 標準來進行講解,在適當(dāng)時會補充 C99 標準的規(guī)定和用法。
從 20 世紀 70 年代起,C 語言通過 UNIX 操作系統(tǒng)迅速發(fā)展起來,逐漸占據(jù)了大、中、小以及微型機, 成為風(fēng)靡世界的計算機語言。大多數(shù)軟件開發(fā)商都優(yōu)先選擇 C 語言來開發(fā)系統(tǒng)軟件、應(yīng)用程序、編譯器和 其他產(chǎn)品。
這樣的現(xiàn)象一直保持了 20 年,直到 20 世紀 90 年代,一種代表著先進思想的語言問世,也就是 C 語 言的超集 C++,由于 C++解決了 C 語言不能解決的諸多難題,所以許多開發(fā)商開始使用 C++來開發(fā)一些復(fù) 雜的、規(guī)模較大的項目,因此,C 語言進入一個冷落時期。
這個冷落時期并沒有持續(xù)太長時間,隨著嵌入式產(chǎn)品的增多,C 語言簡潔高效的特點又被重視起來, 被廣泛地應(yīng)用于手機、游戲機、機頂盒、平板電腦、高清電視、VDC/DVD/MP3 播放器、電子字典、可視 電話等現(xiàn)代化設(shè)備的微處理器編程。隨著信息化、智能化、網(wǎng)絡(luò)化的發(fā)展,嵌入式系統(tǒng)技術(shù)的發(fā)展空間還會逐漸加大,而 C 語言的地位也會越來越高。因此,學(xué)習(xí)好 C 語言是很有必要的,掌握好 C 語言的編程
知識,也是求職拿高薪的敲門磚。
1.2開發(fā)環(huán)境搭建
在使用 C 語言開發(fā)程序之前,首先要在系統(tǒng)中搭建開發(fā)環(huán)境。現(xiàn)在主流開發(fā)工具有很多種,接下來本 節(jié)將針對常見的開發(fā)工具進行簡單介紹,并重點講解如何搭建 C 語言開發(fā)環(huán)境。
1.2.1 主流開發(fā)工具介紹
C 語言程序有多種開發(fā)工具,選擇合適的開發(fā)工具,可以讓讀者更加快速的進行程序編寫,接下來將 針對幾種主流的開發(fā)工具進行介紹,具體如下:
1、VisualStudio工具
Visual Studio(簡稱 VS)是由微軟公司發(fā)布的集成開發(fā)環(huán)境。它包括了整個軟件生命周期中所需要的 大部分工具,如 UML 工具、代碼管控工具、集成開發(fā)環(huán)境(IDE)等。
Visual Studio 支持 C/C++、C#、F#、VB 等多種程序語言的開發(fā)和測試,功能十分強大。常用的版本 有 Visual Studio 2010、Visual Studio 2012 等,目前最新版本為 Visual Studio 2013。
2、Code::Block工具
Code::Block 是一個免費的跨平臺 IDE,它支持 C、C++和 Fortan 程序的開發(fā)。Code::Block 的最大特點 是它支持通過插件的方式對 IDE 自身功能進行擴展,這使得 Code::Block 具有很強的靈活性,方便用戶使 用。
Code::Block 本身并不包含編譯器和調(diào)試器,它僅僅提供了一些基本的工具,用來幫助編程人員從命令 行中解放出來,使編程人員享受更友好的代碼編輯界面。不過,在后期 Code::Block 的發(fā)行版本中已經(jīng)以 插件的形式提供了編譯和調(diào)試的功能。
3、Eclipse工具
Eclipse 是一種被廣泛使用的免費跨平臺 IDE,最初由 IBM 公司開發(fā),目前由開源社區(qū)的 Eclipse 基金 會負責(zé) Eclipse 的管理和維護。一開始 Eclipse 被設(shè)計為專門用于 Java 語言開發(fā)的 IDE,現(xiàn)在 Eclipse 已經(jīng) 可以用來開發(fā) C、C++、Python 和 PHP 等眾多語言。
Eclipse 本身是一個輕量級的 IDE,在此之上,用戶可以根據(jù)需要安裝多種不同的插件來擴展 Eclipse
的功能。除了利用插件支持其他語言的開發(fā)之外,Eclipse 還可以利用插件實現(xiàn)項目的版本控制等功能。
4、Vim工具
和其他 IDE 不同的是,Vim 本身并不是一個用于開發(fā)計算機程序的 IDE,而是一款功能非常強大的文 本編輯器,它是 UNIX 系統(tǒng)上 Vi 編輯器的升級版。和 Code::Block 以及 Eclipse 類似,Vim 也支持通過插 件擴展自己的功能。Vim 不僅適用于編寫程序,而且還適用于幾乎所有需要文本編輯的場合,Vim還因為 其強大的插件功能,以及高效方便的編輯特性而被稱為是程序員的編輯器。
由于 Vim 配置多種插件可以實現(xiàn)幾乎和 IDE 同樣的功能,因此,Vim 有時也被編程人員直接當(dāng)作 IDE來使用。
1.2.2 VisualStudio 安裝
開發(fā) C 語言程序最常用的工具是 Visual Studio,目前最新版本為 Visual Studio 2013,該版本的開發(fā)工 具有功能全面、界面友好等特點。Visual Studio 2013 開發(fā)工具還分為多個版本,大家可以針對不同的需求 選擇不同的版本。本書選擇的開發(fā)工具是 Visual Studio Express 2013 for Windows Desktop,它是Visual Studio 產(chǎn)品的輕量版本,具備易學(xué)、易用、易上手等特點,更加適合讀者使用。
接下來通過具體的步驟來演示如何在 Windows7 系統(tǒng)上安裝 Visual Studio Express 2013 for Windows
Desktop 開發(fā)工具。
1、 開始安裝

從微軟的官網(wǎng)下載 VS2013_RTM_DskExp_CHS.iso 鏡像文件,在本地可以直接解壓或者通過虛擬光驅(qū) 來進行安裝,解壓后以管理員身份運行安裝程序,此時顯示 Visual Studio 界面,如圖 1-1 所示。
圖1-1 Visual Studio
圖 1-1 所示的開始安裝界面會暫停片刻,然后便會進入路徑選擇界面,如圖 1-2 所示。
圖1-2 路徑選擇界面
從圖 1-2 可以看出,程序的安裝路徑默認為 C:\Program Files(x86)\Microsoft Visual Studio 12.0,單擊安 裝路徑后的瀏覽按鈕,可以把 Visual Studio 開發(fā)工具安裝到指定的路徑,本書使用默認路徑進行安裝。
選中【我同意許可條款和隱私策略】選項,取消對【加入 Visual Studio 體驗改善計劃及幫助改善 Visual
Studio 的質(zhì)量可靠性和性能(可選)】選項的勾選,如圖 1-3 所示。
圖1-3 路徑選擇界面
點擊圖 1-3 路徑選擇界面中的“安裝(N)”,此時便會出現(xiàn)安裝界面,如圖 1-4 所示。
圖1-4 安裝界面
圖 1-4 所示的安裝界面正在加載 Visual Studio 安裝所需的組件,這個過程會持續(xù)較長的時間,需要耐 心等待。
2、 安裝完成
Visual Studio 安裝成功后,會看到安裝成功界面,如圖 1-5 所示。
至此,Visual Studio 便安裝完成了。
3、 啟動 VisualStudio
圖1-5 安裝成功界面
點擊圖 1-5 中的“啟動(L)”,啟動 Visual Studio 開發(fā)工具,界面如圖 1-6 所示。
圖1-6 啟動起始界面
程序啟動后會在圖 1-6 所示的界面停留片刻,便會自動進入歡迎界面,如圖 1-7 所示。
圖1-7 歡迎界面
在圖 1-7 的歡迎界面中,可以看到【登錄(I)】按鈕,如果注冊了微軟賬號的用戶可以選擇這種方式 進行登錄。為了方便起見,在此選擇“以后再說”選項,進入準備階段,如圖 1-8 所示。
圖1-8 準備階段
由于是第一次啟動 Visual Studio 開發(fā)工具,因此需要一段時間進行準備。準備完成后會顯示起始頁面, 如圖 1-9 所示。
圖1-9 起始頁
至此,如果看到了圖 1-9 所示的起始界面,便說明 Visual Studio 啟動成功了。
1.2.3 VisualStudio 主界面
使用 Visual Studio 工具進行程序開發(fā),主要是在 Visual Studio 的主界面中進行的。主界面由標題欄、 菜單欄、工具欄、代碼編輯窗口、解決方案資源管理器、輸出窗口、屬性窗口等組成,具體如圖 1-10 所示。
圖1-10 主界面 在程序開發(fā)時,主要會用到主界面中的 4 個部分,每個部分功能都不相同,具體說明如下:
? 代碼編輯窗口:用于顯示和編寫代碼。
? 解決方案資源管理器:用來顯示項目文件的組成結(jié)構(gòu),如 Program01 項目中包含頭文件、外部依 賴項、源文件(HelloWorld.c)、資源文件。
? 輸出窗口:用于顯示項目中的一些警告和錯誤。
? 屬性窗口:用于顯示當(dāng)前操作文件的相關(guān)信息,如項目文件名稱、文件類型等。
1.3編寫 HelloWorld程序
通過上一小節(jié)的學(xué)習(xí),讀者對 Visual Studio 開發(fā)工具有了一個基本的認識。為了快速熟悉工具的使用 以及了解 C 語言程序的編寫,本節(jié)將通過一個向控制臺輸出“Hello, world”的程序為讀者演示如何在 Visual Studio 工具中開發(fā)一個 C 語言應(yīng)用程序,具體實現(xiàn)步驟如下:
1、 新建項目
啟動 Visual Studio 開發(fā)工具,在菜單欄中選擇【文件】?【新建項目】,如圖 1-11 所示。
圖1-11 創(chuàng)建項目

點擊圖 1-11 中所示的【新建項目】菜單,此時會彈出新建項目窗口,在新建項目窗口中可以選擇創(chuàng)建 的項目類型,設(shè)置項目名稱、位置、解決方案名稱等,如圖 1-12 所示。
圖1-12 新建項目窗口
從圖 1-12 中可以看出,項目窗口大致可分為 3 個部分,其中模板區(qū)域可以選擇要開發(fā)項目的模板,項
目區(qū)域可以選擇要創(chuàng)建項目的類型。在項目區(qū)域的下方,可以設(shè)置項目名稱、位置(項目的保存位置)以 及解決方案名稱,解決方案名稱默認與項目名相同。
模板區(qū)域包含了項目開發(fā)中的多個模板,如 Visual Basic、Visual C#、Visual C++等模板。由于本書是 針對 C 語言進行講解的,因此只會用到 C++中的模板,接下來將針對 C++模板下的項目類型進行介紹,具 體如下:
? Win32 控制臺應(yīng)用程序:用于創(chuàng)建 Win32 控制臺應(yīng)用程序的項目。
? Win32 項目:用于創(chuàng)建 Win32 應(yīng)用程序、控制臺應(yīng)用程序、DLL 或其他靜態(tài)庫項目。
? 空項目:用于創(chuàng)建本地應(yīng)用程序的空項目。
? 生成文件項目:用于使用外部生成系統(tǒng)的項目。
在此,選擇 C++模板中的 Win32 控制臺應(yīng)用程序(運行結(jié)果會顯示在命令行窗口中),然后將項目名 稱設(shè)置為 Program01,項目的位置為“D:\itcast\”,并將解決方案的名稱設(shè)置為 chapter01,這樣創(chuàng)建的程
序文件就會生成在“D:\itcast\chapter01”目錄中。最后點擊【確定】按鈕,彈出一個 Win32 應(yīng)用程序向?qū)?窗口,如圖 1-13 所示。
圖1-13 Win32 應(yīng)用程序向?qū)Т翱?/font>
在圖 1-13 所示的窗口中,系統(tǒng)默認選擇控制臺應(yīng)用程序,然后點擊【下一步】按鈕,此時出現(xiàn) Win32
應(yīng)用程序向?qū)У牡诙䝼窗口,如圖 1-14 所示。
圖1-14 Win32 應(yīng)用程序向?qū)Т翱?/font>
在圖 1-14 中,勾選【空項目】選項,然后點擊【完成】按鈕,至此便完成了 Program01 項目的創(chuàng)建。
2、 添加源文件

項目創(chuàng)建完成后,就可以在 Program01 項目中添加 C 語言源文件。在 Program01 項目中的源文件夾上 點擊鼠標右鍵,在彈出的菜單中依次選擇【添加】?【新建項】,如圖 1-15 所示。
圖1-15 添加新建項
點擊圖 1-15 中的新建項,隨后在彈出的添加新項窗口里選擇【C++ 文件(.cpp)】,并在名稱輸入框中 填寫“HelloWorld.c”,如圖 1-16 所示。
3、編寫代碼
圖1-16 添加源文件

點擊圖 1-16 中的【添加】按鈕,HelloWorld.c 源文件便創(chuàng)建成功,此時,在解決方案資源管理器的源 文件夾中便可以看到 HelloWorld.c 文件,如圖 1-17 所示。
圖1-17 HelloWorld.c 文件
為了讓讀者對 C 語言編程有一個簡單了解,接下來在圖 1-17 的編輯區(qū)中編寫 HelloWorld.c 程序,具體 代碼如例 1-1 所示。
例1-1
1 #include <stdio.h>
2 int main()
3 {
4 printf("Hello, world\n");
5 return 0;
6 }
例 1-1 就是一個完整的 C 語言程序,接下來針對該程序中的語法細節(jié)進行詳細地講解,具體如下:
? 第 1 行代碼的作用是進行相關(guān)的預(yù)處理操作。其中字符“#”是預(yù)處理標志,用來對文本進行預(yù) 處理操作,include 是預(yù)處理指令,它后面跟著一對尖括號,表示頭文件在尖括號內(nèi)讀入。stdio.h 就是標準輸入輸出頭文件,由于在第 4 行用到了 printf()輸出函數(shù),所以需加此頭文件。
? 第 2 行代碼聲明了一個 main()函數(shù),該函數(shù)是程序的主入口,程序總是從 main()函數(shù)開始執(zhí)行。 main()函數(shù)前面的 int 表示該函數(shù)的返回值類型是整型。代碼第 3~6 行“{}”中的內(nèi)容是函數(shù)體, 程序的相關(guān)操作都要寫在函數(shù)體中。
? 第 4 行代碼聲明了一個用于格式化輸出的函數(shù) printf(),該函數(shù)用于輸出一行信息,可以簡單理解 為向控制臺輸出文字或符號等。printf()括號中的內(nèi)容稱為函數(shù)的參數(shù),括號內(nèi)可以看到輸出的字 符串“Hello, world\n”,其中“\n”表示換行操作,它不會輸出到控制臺。
? 第 5 行代碼中 return 語句的作用是將函數(shù)的執(zhí)行結(jié)果返回,后面緊跟著函數(shù)的返回值,返回值一 般用 0 或-1 表示,0 表示正常,-1 表示異常。
值得一提的是,在 C 語言程序中,以分號(;)作為結(jié)束標記的代碼都可稱為語句,如例 1-1 中的第 4
行、第 5 行代碼都是語句,被“{}”括起來的語句被稱為語句塊。
4、運行程序
HelloWorld 程序編寫完成并保存后,就可以對 HelloWorld 程序進行編譯和運行操作。選擇【調(diào)試】?
【開始執(zhí)行(不調(diào)試)】選項,或者直接使用快捷鍵 Ctrl+F5 來運行程序,如圖 1-18 所示。
圖1-18 運行程序 程序運行后,會彈出命令行窗口并在該窗口中輸出運行結(jié)果,如圖1-19 所示。

圖1-19 運行結(jié)果
至此,便完成了 HelloWorld 程序的創(chuàng)建、編寫以及運行過程。讀者在此只需有個大致印象即可,后面 將會繼續(xù)講解如何使用 Visual Studio 開發(fā)工具編寫 C 語言程序。
1.4注釋
在編寫程序時,為了使代碼易于閱讀,通常會在實現(xiàn)功能的同時為代碼加一些注釋。注釋是對程序的 某個功能或者某行代碼的解釋說明,它只在 C 語言源文件中有效,在編譯時會被編譯器忽略。
C 語言中的注釋有兩種類型,具體如下:
1、 單行注釋
單行注釋通常用于對程序中的某一行代碼進行解釋,用“//”符號表示,“//”后面為被注釋的內(nèi)容, 具體示例如下:
printf("Hello, world\n"); //輸出 Hello,world
2、 多行注釋
顧名思義,多行注釋就是在注釋中的內(nèi)容可以為多行,它以符號“/*”開頭,以符號“*/”結(jié)尾,具 體示例如下:
/* printf("Hello, world\n");
return 0; */
腳下留心:
在 C 語言中,有的注釋可以嵌套使用,有的則不可以,下面列出兩種具體的情況。
1、多行注釋“/*…*/”中可以嵌套單行注釋“//”,例如:
/* printf("Hello, world\n"); //輸出 Hello,world
return 0; */
2、多行注釋“/*…*/”中不能嵌套多行注釋“/*…*/”,例如:
/*
/* printf("Hello, world\n");
return 0; */
*/
上面的代碼無法通過編譯,原因在于第一個“/*”會和第一個“*/”進行配對,而第二個“*/”則找不 到匹配。
1.5本章小結(jié)
本章首先講解了 C 語言的基礎(chǔ)知識,然后講解了 Visual Studio 開發(fā)環(huán)境的搭建以及如何開發(fā)一個 HelloWorld 程序,最后講解了 C 語言程序中的注釋。通過本章的學(xué)習(xí),大家會對 C 語言有一個概念上的認 識,并了解如何開發(fā)一個 C 語言程序,為后面的程序開發(fā)奠定基礎(chǔ)。
1.6習(xí)題
一、填空題
1、計算機語言總的來說可分為機器語言、、三大類。
2、C 語言中源文件的后綴名為。
3、在程序中,如果使用 printf()函數(shù),應(yīng)該包含頭文件。
4、在 main()函數(shù)中,用于返回函數(shù)執(zhí)行結(jié)果的是語句。
5、C 語言程序在運行時,必須經(jīng)過和兩個階段。
二、判斷題
1、C 語言并不屬于高級語言。
2、計算機語言(Computer Language)是人與計算機之間通訊的語言。
3、C 語言并不能實現(xiàn)匯編語言的大部分功能。
4、Eclipse 工具和 Visual Studio 工具都可以開發(fā) C 語言。
5、C 語言中的 main()函數(shù)是程序的主入口。 三、選擇題
1、下面選項中表示主函數(shù)的是?
A、main() B、int C、printf() D、return
2、C 語言屬于下列哪類計算機語言?
A、匯編語言 B、 高級語言 C、機器語言 D、以上均不屬于
3、下列關(guān)于主函數(shù)說法錯誤的是?(多選) A、一個 C 程序中只能包含一個主函數(shù) B、主函數(shù)是 C 程序的入口
C、C 程序中可以包含多個主函數(shù)
D、主函數(shù)只能包含輸出語句
4、下列選項中,不屬于 C 語言優(yōu)點的是?
A、不依賴計算機硬件 B、簡潔、高效 C、可移植 D、面向?qū)ο?/div>
5、下列選項中,哪一個是多行注釋?
A、// B、/**/ C、\\ D、以上均不屬于 四、簡答題
1、請簡述 printf()函數(shù)的作用。
2、請簡述 C 語言中注釋的作用。 五、編程題
1、使用 Visual Studio 開發(fā)工具編寫一個控制臺程序,要求在控制臺上輸出一句話:“我喜歡 C 語言!”。
完整的pdf格式文檔51黑下載地址(內(nèi)含清晰大圖):
01_第1章 初識C語言.pdf
(838.79 KB, 下載次數(shù): 7)
2018-9-19 17:37 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
02_c語言32個關(guān)鍵字.pdf
(207.46 KB, 下載次數(shù): 5)
2018-9-19 17:37 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
03_vs2013快捷鍵.pdf
(169.72 KB, 下載次數(shù): 9)
2018-9-19 17:37 上傳
點擊文件名下載附件
下載積分: 黑幣 -5