第01章C語言概述_第1頁
第01章C語言概述_第2頁
第01章C語言概述_第3頁
第01章C語言概述_第4頁
第01章C語言概述_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1.1 程程序設(shè)計語序設(shè)計語言簡介言簡介1.2 C語言發(fā)展過程語言發(fā)展過程1.3 C語言的特點語言的特點1.4 初識簡單的初識簡單的C程序程序1.5 C程序語法概述程序語法概述1.6 如何運(yùn)行如何運(yùn)行C程序程序1.7 本章小結(jié)本章小結(jié)1.8 習(xí)題習(xí)題實驗實驗1 初識運(yùn)行環(huán)境和運(yùn)行過程初識運(yùn)行環(huán)境和運(yùn)行過程語言?程序?程序設(shè)計?語言?程序?程序設(shè)計? 自從第一臺計算機(jī)誕生以來,程序設(shè)計語自從第一臺計算機(jī)誕生以來,程序設(shè)計語言和程序設(shè)計方法不斷發(fā)展。言和程序設(shè)計方法不斷發(fā)展。 語言是思維的載體語言是思維的載體。人和計算機(jī)打交道,。人和計算機(jī)打交道,必須要解決一個必須要解決一個“語言語言”溝通的問題

2、。計算機(jī)溝通的問題。計算機(jī)并不能理解和執(zhí)行人們使用的自然語言,而只并不能理解和執(zhí)行人們使用的自然語言,而只能接受和執(zhí)行二進(jìn)制的指令。能接受和執(zhí)行二進(jìn)制的指令。 計算機(jī)能夠直接識別和執(zhí)行的這種指令,計算機(jī)能夠直接識別和執(zhí)行的這種指令,稱為稱為機(jī)器指令機(jī)器指令,這種機(jī)器指令的集合就是機(jī)器,這種機(jī)器指令的集合就是機(jī)器語言指令系統(tǒng),簡稱為機(jī)器語言。為了解決某語言指令系統(tǒng),簡稱為機(jī)器語言。為了解決某一特定問題,需要選用指令系統(tǒng)中的某一些指一特定問題,需要選用指令系統(tǒng)中的某一些指令,這些令,這些指令按要求選取并組織起來就組成一指令按要求選取并組織起來就組成一個個“程序程序”。書上有。書上有8086指令系統(tǒng)

3、對應(yīng)的二進(jìn)指令系統(tǒng)對應(yīng)的二進(jìn)制代碼程序,能完成兩個十六進(jìn)制數(shù)相加的功制代碼程序,能完成兩個十六進(jìn)制數(shù)相加的功能。能。 一個程序是完成某一特定任務(wù)的一一個程序是完成某一特定任務(wù)的一組指令序列,或者說,為實現(xiàn)某一算法組指令序列,或者說,為實現(xiàn)某一算法的指令序列稱為的指令序列稱為“程序程序”,機(jī)器世界中機(jī)器世界中真正存在的就是這樣的二進(jìn)制程序真正存在的就是這樣的二進(jìn)制程序。 用機(jī)器語言編制的程序雖然能夠直接用機(jī)器語言編制的程序雖然能夠直接被計算機(jī)識別、直接執(zhí)行,但是機(jī)器語被計算機(jī)識別、直接執(zhí)行,但是機(jī)器語言本身是隨不同類型的機(jī)器而異,所以言本身是隨不同類型的機(jī)器而異,所以可移植性差,而且機(jī)器語言本身

4、難學(xué)、可移植性差,而且機(jī)器語言本身難學(xué)、難記、難懂、難修改,給使用者帶來極難記、難懂、難修改,給使用者帶來極大的不便。大的不便。 為了繞開機(jī)器指令,克服機(jī)器指令程為了繞開機(jī)器指令,克服機(jī)器指令程序的缺陷,人們提出了程序設(shè)計語言的構(gòu)序的缺陷,人們提出了程序設(shè)計語言的構(gòu)想,即使用人們熟悉、習(xí)慣的語言符號來想,即使用人們熟悉、習(xí)慣的語言符號來編寫程序,編寫程序,最好是直接使用人們間交流的最好是直接使用人們間交流的自然語言來編程自然語言來編程。這是程序設(shè)計語言的努力方向之一 在過去的幾十年中,人們創(chuàng)造了許多在過去的幾十年中,人們創(chuàng)造了許多介于自然語言和機(jī)器指令之間的各種程序介于自然語言和機(jī)器指令之間的

5、各種程序設(shè)計語言。按語言的級別來分,則大致可設(shè)計語言。按語言的級別來分,則大致可分為:分為:匯編語言匯編語言(低級低級)和和高級語言高級語言(第三代第三代、第四代、第四代、)。 匯編語言匯編語言的特點是使用一些的特點是使用一些“助記符號助記符號”來來替代那些難懂難記的二進(jìn)制代碼,所以匯編語言替代那些難懂難記的二進(jìn)制代碼,所以匯編語言相對于機(jī)器指令便于理解和記憶,但它和機(jī)器語相對于機(jī)器指令便于理解和記憶,但它和機(jī)器語言的指令基本上是一一對應(yīng),兩者都是針對特定言的指令基本上是一一對應(yīng),兩者都是針對特定的計算機(jī)硬件系統(tǒng)的,可移植性差,因此稱它們的計算機(jī)硬件系統(tǒng)的,可移植性差,因此稱它們都是都是“面向

6、機(jī)器的低級語言面向機(jī)器的低級語言”。 為了直觀地了解匯編語言程序,如為了直觀地了解匯編語言程序,如下給出一段實現(xiàn)下給出一段實現(xiàn)X、Y兩個兩個16位二進(jìn)制數(shù)位二進(jìn)制數(shù)相加的相加的8086匯編程序:匯編程序: 高級語言類似自然語言高級語言類似自然語言(主要是英語主要是英語),由專,由專門的符號根據(jù)詞匯規(guī)則構(gòu)成單詞,由單詞根據(jù)句門的符號根據(jù)詞匯規(guī)則構(gòu)成單詞,由單詞根據(jù)句法規(guī)則構(gòu)成語句,每種語句有確切的語義并能由法規(guī)則構(gòu)成語句,每種語句有確切的語義并能由計算機(jī)解釋。高級語言包含許多英語單詞,有計算機(jī)解釋。高級語言包含許多英語單詞,有“自然化自然化”的特點;高級語言書寫計算式子接近于的特點;高級語言書寫

7、計算式子接近于熟知的數(shù)學(xué)公式的規(guī)則。熟知的數(shù)學(xué)公式的規(guī)則。 高級語言與機(jī)器指令完全分離,具有通用高級語言與機(jī)器指令完全分離,具有通用性,一條高級語言語句常常相當(dāng)于幾條或幾十性,一條高級語言語句常常相當(dāng)于幾條或幾十條機(jī)器指令。所以高級語言的出現(xiàn),給程序設(shè)條機(jī)器指令。所以高級語言的出現(xiàn),給程序設(shè)計從形式和內(nèi)容上都帶來了重大的變革,大大計從形式和內(nèi)容上都帶來了重大的變革,大大方便了程序的編寫,提高了可讀性。方便了程序的編寫,提高了可讀性。 BASIC、C、Visual Basic(簡稱簡稱VB)、Visual C+(簡稱簡稱VC+)、VB.NET、C#.NET、Java等都是高級語等都是高級語言。高

8、級語言一般能細(xì)分為言。高級語言一般能細(xì)分為第三代高級語言第三代高級語言、第、第四代高級語言、四代高級語言、,分類依據(jù)是高級語言的邏輯,分類依據(jù)是高級語言的邏輯級別、表達(dá)能力、接近自然語言的程度等。級別、表達(dá)能力、接近自然語言的程度等。 如如Turbo C 2.0(簡稱簡稱TC)為第三代高級語言,為第三代高級語言,而而VB6.0、VC+6.0、C#、VB.NET、Java等可認(rèn)為等可認(rèn)為是第四代高級語言。是第四代高級語言。第四代高級語言一般是具有第四代高級語言一般是具有面向?qū)ο筇匦?、具有快速或自動生成部分?yīng)用程面向?qū)ο筇匦浴⒕哂锌焖倩蜃詣由刹糠謶?yīng)用程序能力的高級語言,它表達(dá)能力強(qiáng),編寫程序效序

9、能力的高級語言,它表達(dá)能力強(qiáng),編寫程序效率高,更接近人的使用語言率高,更接近人的使用語言,高一級別的語言一,高一級別的語言一般具有低一級別語言的語言表達(dá)能力。般具有低一級別語言的語言表達(dá)能力。 如下是輸入兩個整數(shù)并隨即顯示兩整數(shù)之和的如下是輸入兩個整數(shù)并隨即顯示兩整數(shù)之和的Turbo C 2.0語言程序語言程序: #include /* Turbo C2.0一般運(yùn)行一般運(yùn)行于于DOS環(huán)境環(huán)境 */ main() int num1,num2; printf(Input two numbers: ); /* 屏幕上顯示輸入提示屏幕上顯示輸入提示 */ scanf(“%d %d”,&num1

10、,&num2); /* 通過鍵盤讀兩個整數(shù)通過鍵盤讀兩個整數(shù) */ printf(The sum is %dn,num1+num2); /* 屏幕上顯示兩整數(shù)之和屏幕上顯示兩整數(shù)之和 */ 顯然,高級語言程序要比面向機(jī)器的低級語言要顯然,高級語言程序要比面向機(jī)器的低級語言要易懂易懂、明了、簡短明了、簡短得多。得多。 應(yīng)該看到的是:高級語言是不斷發(fā)展變化的,應(yīng)該看到的是:高級語言是不斷發(fā)展變化的,不斷有新的更好的語言產(chǎn)生,同時也有舊且功能差不斷有新的更好的語言產(chǎn)生,同時也有舊且功能差而不再實用的語言消亡。而而不再實用的語言消亡。而C語言語言自產(chǎn)生以來,已自產(chǎn)生以來,已歷經(jīng)歷經(jīng)40余年,依

11、然具有強(qiáng)大的生命力與活力,該語余年,依然具有強(qiáng)大的生命力與活力,該語言依然言依然是當(dāng)今最熱門、最實用的高級語言之一是當(dāng)今最熱門、最實用的高級語言之一。 在學(xué)習(xí)在學(xué)習(xí)C語言之前,先來簡單了解一下語言之前,先來簡單了解一下C語言的發(fā)展歷史。語言的發(fā)展歷史。 C語言是一門通用的、模塊化、程序化的語言是一門通用的、模塊化、程序化的編程語言,被廣泛應(yīng)用于操作系統(tǒng)和應(yīng)用軟編程語言,被廣泛應(yīng)用于操作系統(tǒng)和應(yīng)用軟件的開發(fā)。由于其高效和可移植性,適應(yīng)于件的開發(fā)。由于其高效和可移植性,適應(yīng)于不同硬件和軟件平臺,深受開發(fā)員的青睞。不同硬件和軟件平臺,深受開發(fā)員的青睞。1、C語言早期發(fā)展語言早期發(fā)展 1969 - 1

12、973年在年在 AT&T 貝爾實驗室開始了貝爾實驗室開始了 C語言語言的最初研發(fā)。根據(jù)的最初研發(fā)。根據(jù) C語言的發(fā)明者丹尼斯語言的發(fā)明者丹尼斯.里奇里奇(Dennis Ritchie)說,說,C 語言最重要的研發(fā)時期是在語言最重要的研發(fā)時期是在 1972 年。年。 C語言的誕生是和語言的誕生是和UNIX操作系統(tǒng)的開發(fā)密不可分操作系統(tǒng)的開發(fā)密不可分的,原先的的,原先的 UNIX操作系統(tǒng)都是用匯編語言寫的,操作系統(tǒng)都是用匯編語言寫的,1973年年UNIX操作系統(tǒng)的核心用操作系統(tǒng)的核心用C語言改寫,從此以語言改寫,從此以后,后,C語言成為編寫操作系統(tǒng)的主要語言。語言成為編寫操作系統(tǒng)的主要語言

13、。2、ANSI C標(biāo)準(zhǔn)標(biāo)準(zhǔn) 1970到到80年代,年代,C語言被廣泛應(yīng)用,從大型主語言被廣泛應(yīng)用,從大型主機(jī)到小型微機(jī),也衍生了機(jī)到小型微機(jī),也衍生了C語言的很多不同版本。語言的很多不同版本。 為統(tǒng)一為統(tǒng)一C語言版本,語言版本,1983年美國國家標(biāo)準(zhǔn)局年美國國家標(biāo)準(zhǔn)局(American National Standards Institute,簡稱,簡稱ANSI)成立了一個委員會,來制定成立了一個委員會,來制定 C語言標(biāo)準(zhǔn)。語言標(biāo)準(zhǔn)。1989年年 C語言標(biāo)準(zhǔn)被批準(zhǔn),被稱為語言標(biāo)準(zhǔn)被批準(zhǔn),被稱為 ANSI X3.159-1989 “Programming Language C”。這個版本的。這個

14、版本的C語言標(biāo)準(zhǔn)語言標(biāo)準(zhǔn)通常被稱為通常被稱為ANSI C(C89)。)。3、C99標(biāo)準(zhǔn)標(biāo)準(zhǔn) 在在ANSI C 標(biāo)準(zhǔn)確立之后,標(biāo)準(zhǔn)確立之后,C語言的規(guī)范在很長一語言的規(guī)范在很長一段時間內(nèi)都沒有大的變動。段時間內(nèi)都沒有大的變動。1995年年 WG14小組對小組對 C語語言進(jìn)行了一些修改,成為后來的言進(jìn)行了一些修改,成為后來的 1999年發(fā)布的年發(fā)布的 ISO/IEC 9899:1999標(biāo)準(zhǔn),通常被標(biāo)準(zhǔn),通常被稱為稱為 C99。但是各個。但是各個公司對公司對 C99的支持所表現(xiàn)出來的興趣不同。當(dāng)?shù)闹С炙憩F(xiàn)出來的興趣不同。當(dāng)GCC和和其他一些商業(yè)編譯器支持其他一些商業(yè)編譯器支持C99的大部分特性的時

15、候,的大部分特性的時候,微軟和微軟和 Borland卻似乎對此不感興趣。卻似乎對此不感興趣。4、ISO發(fā)布發(fā)布C語言標(biāo)準(zhǔn)新版本語言標(biāo)準(zhǔn)新版本 ISO(International Organization for Standardization)于)于2011年年4月正式公布月正式公布C語言新語言新的國際標(biāo)準(zhǔn)草案。之前被命名為的國際標(biāo)準(zhǔn)草案。之前被命名為C1X的新標(biāo)準(zhǔn)將的新標(biāo)準(zhǔn)將被稱為被稱為ISO/IEC 9899:2011(C11版版)。新的標(biāo)準(zhǔn)修)。新的標(biāo)準(zhǔn)修訂了訂了C11版本,提高了對版本,提高了對C+的兼容性,并將新的的兼容性,并將新的特性增加到特性增加到C語言中。語言中。5、C 語言對

16、其他語言的影響語言對其他語言的影響 很多編程語言都深受很多編程語言都深受 C語言的影響,比如語言的影響,比如C+(原先是原先是C語言的一個擴(kuò)展語言的一個擴(kuò)展),C#,Java,PHP,Javascript,Perl,LPC 和和 UNIX 的的C Shell。也正因為。也正因為 C語言的影響力,掌握語言的影響力,掌握 C語言的人,再學(xué)其他編程語言的人,再學(xué)其他編程語言,大多能很快上手,觸類旁通。語言,大多能很快上手,觸類旁通。6、目前、目前 C語言的商用版本語言的商用版本 目 前 最 流 行 的 語 言 有 以 下 幾 種 :目 前 最 流 行 的 語 言 有 以 下 幾 種 : 1 )Mic

17、rosoft C 或稱或稱 MS C;2)Borland C(簡稱簡稱BC) 或或 Turbo C;3)Win-TC;4)AT&T C;5)Objective-C。這些語言版本不僅實現(xiàn)了。這些語言版本不僅實現(xiàn)了ANSI C標(biāo)準(zhǔn)(標(biāo)準(zhǔn)(C89版),而且在此基礎(chǔ)上各自作了一些擴(kuò)充,使之版),而且在此基礎(chǔ)上各自作了一些擴(kuò)充,使之更加方便與實用。更加方便與實用。1.3.1 C語言是優(yōu)秀的程序語言語言是優(yōu)秀的程序語言1.3.2 C語言與語言與C+的關(guān)系的關(guān)系 早期的早期的C 語言語言主要是用于主要是用于UNIX系統(tǒng)系統(tǒng)。由于語言的強(qiáng)大功能和各方面的優(yōu)點由于語言的強(qiáng)大功能和各方面的優(yōu)點逐漸為人們認(rèn)

18、識,到了八十年代,逐漸為人們認(rèn)識,到了八十年代,C開始開始進(jìn)入其他操作系統(tǒng),并很快在各類大、進(jìn)入其他操作系統(tǒng),并很快在各類大、中、小和微型計算機(jī)上得到了廣泛的使中、小和微型計算機(jī)上得到了廣泛的使用,用,成為當(dāng)代最優(yōu)秀的程序設(shè)計語言之成為當(dāng)代最優(yōu)秀的程序設(shè)計語言之一。一。 1、C語言的優(yōu)秀之處語言的優(yōu)秀之處(1)語言簡潔,使用方便靈活)語言簡潔,使用方便靈活(2)可移植性好)可移植性好(3)數(shù)據(jù)結(jié)構(gòu)類型豐富,表達(dá)能力強(qiáng))數(shù)據(jù)結(jié)構(gòu)類型豐富,表達(dá)能力強(qiáng)(4)運(yùn)算符多,表達(dá)方式靈活)運(yùn)算符多,表達(dá)方式靈活(5)可進(jìn)行結(jié)構(gòu)化程序設(shè)計)可進(jìn)行結(jié)構(gòu)化程序設(shè)計(6)可以直接操作計算機(jī)硬件)可以直接操作計算機(jī)硬

19、件(7)生成的目標(biāo)代碼質(zhì)量高)生成的目標(biāo)代碼質(zhì)量高2、C語言的不足語言的不足 C語言具有很多的優(yōu)點,但和其他任何一種程語言具有很多的優(yōu)點,但和其他任何一種程序設(shè)計語言一樣也有其自身的缺點,如不能自動檢序設(shè)計語言一樣也有其自身的缺點,如不能自動檢查數(shù)組的邊界,各種運(yùn)算符的優(yōu)先級別太多,某些查數(shù)組的邊界,各種運(yùn)算符的優(yōu)先級別太多,某些運(yùn)算符具有多種用途,較其他高級語言運(yùn)算符具有多種用途,較其他高級語言C語言在學(xué)語言在學(xué)習(xí)上要困難一些等。習(xí)上要困難一些等。 但總的來說,但總的來說,C語言的優(yōu)點遠(yuǎn)遠(yuǎn)超過了它的缺語言的優(yōu)點遠(yuǎn)遠(yuǎn)超過了它的缺點。點。經(jīng)驗表明,程序設(shè)計人員一旦學(xué)會使用經(jīng)驗表明,程序設(shè)計人員一

20、旦學(xué)會使用C語言語言之后,就會對它愛不釋手。之后,就會對它愛不釋手。2、C語言的不足語言的不足 C語言具有很多的優(yōu)點,但和其他任何一種程語言具有很多的優(yōu)點,但和其他任何一種程序設(shè)計語言一樣也有其自身的缺點,如不能自動序設(shè)計語言一樣也有其自身的缺點,如不能自動檢查數(shù)組的邊界,各種運(yùn)算符的優(yōu)先級別太多,檢查數(shù)組的邊界,各種運(yùn)算符的優(yōu)先級別太多,某些運(yùn)算符具有多種用途,較其他高級語言某些運(yùn)算符具有多種用途,較其他高級語言C語語言在學(xué)習(xí)上要困難一些等。言在學(xué)習(xí)上要困難一些等。 但總的來說,但總的來說,C語言的優(yōu)點遠(yuǎn)遠(yuǎn)超過了它的缺語言的優(yōu)點遠(yuǎn)遠(yuǎn)超過了它的缺點點。經(jīng)驗表明,程序設(shè)計人員一旦學(xué)會使用。經(jīng)驗表

21、明,程序設(shè)計人員一旦學(xué)會使用C語語言之后,就會對它愛不釋手。言之后,就會對它愛不釋手。3、C語言的應(yīng)用領(lǐng)域語言的應(yīng)用領(lǐng)域(1)應(yīng)用軟件。)應(yīng)用軟件。Linux操作系統(tǒng)中的應(yīng)用軟件都是使用操作系統(tǒng)中的應(yīng)用軟件都是使用C語言編寫的,因此這樣的應(yīng)用軟件安全性非常高。語言編寫的,因此這樣的應(yīng)用軟件安全性非常高。(2)對性能要求嚴(yán)格的領(lǐng)域。一般對性能有嚴(yán)格要求)對性能要求嚴(yán)格的領(lǐng)域。一般對性能有嚴(yán)格要求的地方都是用的地方都是用C語言編寫的,比如網(wǎng)絡(luò)程序的底層和網(wǎng)語言編寫的,比如網(wǎng)絡(luò)程序的底層和網(wǎng)絡(luò)服務(wù)器端底層、地圖查詢等。絡(luò)服務(wù)器端底層、地圖查詢等。(3)系統(tǒng)軟件和圖形處理。)系統(tǒng)軟件和圖形處理。C語言

22、具有很強(qiáng)的繪圖能語言具有很強(qiáng)的繪圖能力和可移植性,并且具備很強(qiáng)的數(shù)據(jù)處理能力,可以力和可移植性,并且具備很強(qiáng)的數(shù)據(jù)處理能力,可以用來編寫系統(tǒng)軟件、制作動畫、繪制二維圖形和三維用來編寫系統(tǒng)軟件、制作動畫、繪制二維圖形和三維圖形等。圖形等。3、C語言的應(yīng)用領(lǐng)域語言的應(yīng)用領(lǐng)域(4)數(shù)字計算。相對于其他編程語言,)數(shù)字計算。相對于其他編程語言,C語言是數(shù)字語言是數(shù)字計算能力超強(qiáng)的高級語言。計算能力超強(qiáng)的高級語言。(5)嵌入式設(shè)備開發(fā)。手機(jī)、)嵌入式設(shè)備開發(fā)。手機(jī)、PDA等時尚消費(fèi)類電子等時尚消費(fèi)類電子產(chǎn)品相信大家都不陌生,其內(nèi)部的應(yīng)用軟件、游戲等產(chǎn)品相信大家都不陌生,其內(nèi)部的應(yīng)用軟件、游戲等很多都是采

23、用很多都是采用C語言進(jìn)行嵌入式開發(fā)的。語言進(jìn)行嵌入式開發(fā)的。(6)游戲軟件開發(fā)。游戲大家更不陌生,很多人就)游戲軟件開發(fā)。游戲大家更不陌生,很多人就是由玩游戲而熟悉了計算機(jī)。利用是由玩游戲而熟悉了計算機(jī)。利用C語言可以開發(fā)很語言可以開發(fā)很多游戲,比如推箱子、貪吃蛇等。多游戲,比如推箱子、貪吃蛇等。 C語言是語言是C+語言的基礎(chǔ)語言的基礎(chǔ),C+和在很多方和在很多方面是兼容的。因此,掌握了語言,再進(jìn)一步面是兼容的。因此,掌握了語言,再進(jìn)一步學(xué)習(xí)學(xué)習(xí)C+就能以一種熟悉的語法來學(xué)習(xí)面向?qū)ο缶湍芤砸环N熟悉的語法來學(xué)習(xí)面向?qū)ο蟮恼Z言,從而達(dá)到事半功倍的效果。的語言,從而達(dá)到事半功倍的效果。 兩者間差不多是

24、兩者間差不多是Win98跟跟WinXP的關(guān)系。的關(guān)系。C+是在是在C的基礎(chǔ)上增加了新的面向?qū)ο罄碚摰幕A(chǔ)上增加了新的面向?qū)ο罄碚摚娉?,玩出了新的花樣,所以叫做了新的花樣,所以叫做C加加。加加。 C是一種結(jié)構(gòu)化語言,是一種結(jié)構(gòu)化語言,它的重點在于算法和數(shù)它的重點在于算法和數(shù)據(jù)結(jié)構(gòu)。據(jù)結(jié)構(gòu)。C程序的設(shè)計首要考慮的是如何通過一程序的設(shè)計首要考慮的是如何通過一個過程,對輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得個過程,對輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)。到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)。 C+,首要考慮的是如何構(gòu)造一個對象模型首要考慮的是如何構(gòu)造一個對象模型,讓這個模型能夠契合

25、與之對應(yīng)的問題域,這樣就讓這個模型能夠契合與之對應(yīng)的問題域,這樣就可以通過獲取對象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過可以通過獲取對象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。程(事務(wù))控制。 C與與C+的最大區(qū)別在于它們的用于解決的最大區(qū)別在于它們的用于解決問題的思想方法不一樣。之所以說問題的思想方法不一樣。之所以說C+比比C更先進(jìn),是因為更先進(jìn),是因為“設(shè)計這個概念已經(jīng)被融設(shè)計這個概念已經(jīng)被融入到入到C+之中之中”。 C語言與語言與C的區(qū)別有很多:的區(qū)別有很多: 1)全新的程序程序思維,)全新的程序程序思維,C語言是面向過程語言是面向過程的,而的,而C是面向?qū)ο蟮摹J敲嫦驅(qū)ο蟮摹?2)C語言有標(biāo)準(zhǔn)的

26、函數(shù)庫,它們松散的,而語言有標(biāo)準(zhǔn)的函數(shù)庫,它們松散的,而C+對于大多數(shù)的函數(shù)都是集成得很緊密的。對于大多數(shù)的函數(shù)都是集成得很緊密的。 其它其它3)7)不同點見書本。)不同點見書本。 C+功能雖強(qiáng),但它是以功能雖強(qiáng),但它是以C語言為基礎(chǔ)的,也語言為基礎(chǔ)的,也就是說學(xué)習(xí)掌握就是說學(xué)習(xí)掌握C語言是首要的。語言是首要的。 為了說明語言源程序結(jié)構(gòu)的特點為了說明語言源程序結(jié)構(gòu)的特點,先看以下幾個程序。這幾個程序由簡到難先看以下幾個程序。這幾個程序由簡到難,表現(xiàn)了語言源程序在組成結(jié)構(gòu)上的特,表現(xiàn)了語言源程序在組成結(jié)構(gòu)上的特點。雖然有關(guān)內(nèi)容還未介紹,但可從這些點。雖然有關(guān)內(nèi)容還未介紹,但可從這些例子例子直觀地

27、了解到組成一個直觀地了解到組成一個C源程序的基源程序的基本部分和書寫格式本部分和書寫格式等。等。 【例例1-1】 比較著名的最簡單程序,顯示比較著名的最簡單程序,顯示“Hello, World!”。#include /* include稱為文件包含命令,稱為文件包含命令, 擴(kuò)展名為擴(kuò)展名為.h的文件稱為頭文件的文件稱為頭文件*/main() printf(Hello, World !n); /顯示顯示Hello, World !信息信息函數(shù)的名字,表示函數(shù)的名字,表示主函數(shù)主函數(shù)C程序程序有且僅有有且僅有一個一個 main主主 函數(shù)函數(shù) 【例例1-1】 比較著名的最簡單程序,顯示比較著名的最簡

28、單程序,顯示“Hello, World!”。 注意:程序的每行后用注意:程序的每行后用“/* */”或或“/”引出的引出的內(nèi)容為注釋部分,起到說明語句或程序的作用,程序內(nèi)容為注釋部分,起到說明語句或程序的作用,程序不執(zhí)行注釋部分不執(zhí)行注釋部分。程序說明:程序說明: main是主函數(shù)的函數(shù)名,表示這是一個主函是主函數(shù)的函數(shù)名,表示這是一個主函數(shù)。每一個數(shù)。每一個C源程序都必須源程序都必須有且只能有一個主函數(shù)有且只能有一個主函數(shù)(main函數(shù)函數(shù))。函數(shù)調(diào)用語句。函數(shù)調(diào)用語句printf函數(shù)的功能是把要函數(shù)的功能是把要輸出的內(nèi)容送到顯示器去顯示。輸出的內(nèi)容送到顯示器去顯示。printf函數(shù)是一個函

29、數(shù)是一個由系統(tǒng)定義的標(biāo)準(zhǔn)函數(shù)(即庫函數(shù))由系統(tǒng)定義的標(biāo)準(zhǔn)函數(shù)(即庫函數(shù)),可在程序中,可在程序中直接調(diào)用。直接調(diào)用。不是不是C語言語句語言語句,而是庫函數(shù)。而是庫函數(shù)。 【例例1-2】 輸入數(shù)輸入數(shù)x,計算,計算sin(x)的值。程序的每個的值。程序的每個語句功能由注釋可知。語句功能由注釋可知。#include /*程序要使用到數(shù)學(xué)庫函數(shù)(程序要使用到數(shù)學(xué)庫函數(shù)(sin函數(shù))函數(shù))*/#include int main() /*main函數(shù)首部函數(shù)首部*/ /*main函數(shù)體開始函數(shù)體開始*/ double x,s; /定義兩個實數(shù)變量,以被后面程序使用定義兩個實數(shù)變量,以被后面程序使用 pr

30、intf(input number:n); /顯示提示信息顯示提示信息 scanf(%lf,&x); /*從鍵盤獲得一個實數(shù)從鍵盤獲得一個實數(shù)x*/ s=sin(x); /*求求x的正弦,并把它賦給變量的正弦,并把它賦給變量s*/ printf(sine(%lf) = %lfn,x,s); /*顯示程序運(yùn)算結(jié)果顯示程序運(yùn)算結(jié)果*/ return 0; /*main函數(shù)體結(jié)束函數(shù)體結(jié)束*/主函數(shù)主函數(shù)類型類型函數(shù)體函數(shù)體 說明:程序的功能是從鍵盤輸入一個數(shù)說明:程序的功能是從鍵盤輸入一個數(shù)x,求,求x的正的正弦值,然后輸出結(jié)果。弦值,然后輸出結(jié)果。 在在main()之前的兩行命令稱為預(yù)處

31、理命令。之前的兩行命令稱為預(yù)處理命令。include稱為文件包含命令,其意義是把尖括號稱為文件包含命令,其意義是把尖括號或引號或引號“”內(nèi)指內(nèi)指定的文件包含到本程序來,成為程序的一部分。被包含定的文件包含到本程序來,成為程序的一部分。被包含的文件通常是由系統(tǒng)提供的,其擴(kuò)展名為的文件通常是由系統(tǒng)提供的,其擴(kuò)展名為.h。 .h文件稱文件稱為頭文件或首部文件為頭文件或首部文件。語言的頭文件中包括了各個標(biāo)。語言的頭文件中包括了各個標(biāo)準(zhǔn)庫函數(shù)的函數(shù)原型。因此,準(zhǔn)庫函數(shù)的函數(shù)原型。因此,凡是在程序中調(diào)用一個庫凡是在程序中調(diào)用一個庫函數(shù)時,一般都要包含該函數(shù)原型所在的頭文件函數(shù)時,一般都要包含該函數(shù)原型所在

32、的頭文件。限于篇幅限于篇幅“#include ”#include ”常省略常省略 在本例中,使用了三個庫函數(shù):輸入函數(shù)在本例中,使用了三個庫函數(shù):輸入函數(shù)scanf,正弦函數(shù),正弦函數(shù)sin,輸出函數(shù),輸出函數(shù)printf。 sin函數(shù)是數(shù)學(xué)函數(shù),其頭文件為函數(shù)是數(shù)學(xué)函數(shù),其頭文件為math.h文件文件,因此在程序的主函數(shù)前用,因此在程序的主函數(shù)前用include命令包含了命令包含了math.h。 scanf和和printf是標(biāo)準(zhǔn)輸入輸出函數(shù),其頭文件是標(biāo)準(zhǔn)輸入輸出函數(shù),其頭文件為為stdio.h,在主函數(shù)前也用,在主函數(shù)前也用include命令包含了命令包含了stdio.h文件。文件。 需要

33、說明的是,需要說明的是,C語言規(guī)定對語言規(guī)定對scanf和和printf這兩個函數(shù)可以這兩個函數(shù)可以省省去對其頭文件的包去對其頭文件的包含命令。含命令。 為此,在本例中也可以省略為此,在本例中也可以省略 “#include ”。 主函數(shù)體可分為兩部分,一部分為說明部分(主函數(shù)體可分為兩部分,一部分為說明部分(可選),另一部分為執(zhí)行部分可選),另一部分為執(zhí)行部分。說明是指變量的。說明是指變量的類型定義或函數(shù)聲明等。類型定義或函數(shù)聲明等。 語言規(guī)定,源程序中所有用到的變量都必須語言規(guī)定,源程序中所有用到的變量都必須先說明,后使用先說明,后使用,否則將會出錯。這一點是編譯,否則將會出錯。這一點是編譯

34、型高級程序設(shè)計語言的一個特點,與解釋型的型高級程序設(shè)計語言的一個特點,與解釋型的BASIC語言是不同的。說明部分是語言是不同的。說明部分是C源程序結(jié)構(gòu)中源程序結(jié)構(gòu)中很重要的組成部分。很重要的組成部分。 執(zhí)行部分的第一行是輸出語句,調(diào)用執(zhí)行部分的第一行是輸出語句,調(diào)用printf函數(shù)函數(shù)在顯示器上輸出提示字符串,提示操作人員輸入自在顯示器上輸出提示字符串,提示操作人員輸入自變量變量x的值。的值。 第二行為輸入語句,調(diào)用第二行為輸入語句,調(diào)用scanf函數(shù),接受鍵盤函數(shù),接受鍵盤上輸入的數(shù)并存入變量上輸入的數(shù)并存入變量x中。中。 第三行是調(diào)用第三行是調(diào)用sin函數(shù)并把函數(shù)值送到變量函數(shù)并把函數(shù)值送

35、到變量s中。中。 第四行是用第四行是用printf 函數(shù)輸出變量函數(shù)輸出變量s的值,即的值,即x的正的正弦值。程序結(jié)束。弦值。程序結(jié)束。printf(input number:n);scanf(%lf,&x);s=sin(x);printf(sin (%lf) = %lfn,x,s); scanf和和printf這這兩個函數(shù)兩個函數(shù)分別稱為格式輸分別稱為格式輸入函數(shù)和格式輸出函數(shù)。其意義是按指定的入函數(shù)和格式輸出函數(shù)。其意義是按指定的格式輸入輸出值。因此,這兩個函數(shù)在括號格式輸入輸出值。因此,這兩個函數(shù)在括號中的參數(shù)表都由以下兩部分組成:中的參數(shù)表都由以下兩部分組成:(“格式控格式控制

36、串制串”, 參數(shù)表參數(shù)表)。 【例例1-3】 從文件從文件infile.txt或鍵盤輸入或鍵盤輸入x,y兩整數(shù)兩整數(shù),經(jīng)處理后,輸出兩數(shù)、其最大值與最小值到顯示,經(jīng)處理后,輸出兩數(shù)、其最大值與最小值到顯示屏及輸出文件屏及輸出文件outfile.txt中。中。 注意:一個注意:一個C語言程序可由一個、兩個或多個語言程序可由一個、兩個或多個C源程序文件組成,如下程序設(shè)計分成兩個源程序文源程序文件組成,如下程序設(shè)計分成兩個源程序文件(若運(yùn)行包含多文件的程序有困難,可以先作為件(若運(yùn)行包含多文件的程序有困難,可以先作為一個文件運(yùn)行)。一個文件運(yùn)行)。/ file1.cC源程序文件源程序文件1,含,含m

37、ain()與與max()函數(shù)函數(shù)/ file1.cC源程序文件源程序文件1, 含含main()與與max()函數(shù)函數(shù) 【例例1-3】 從文件從文件infile.txt或鍵盤輸入或鍵盤輸入x,y兩整數(shù)兩整數(shù),經(jīng)處理后,輸出兩數(shù)、其最大值與最小值到顯示,經(jīng)處理后,輸出兩數(shù)、其最大值與最小值到顯示屏及輸出文件屏及輸出文件outfile.txt中。中。 /* file2.cC源程序文件源程序文件2,含,含min()函數(shù)函數(shù) */ int min(int a,int b) /*定義定義min函數(shù)函數(shù)*/ int result; result= ab?a:b; /*使用使用?:條件運(yùn)算符得到條件運(yùn)算符得到

38、最小數(shù)最小數(shù)*/ return result; /*返回最小值返回最小值*/ 說明:說明:本本程序由三個函數(shù)組成程序由三個函數(shù)組成,main主函數(shù)主函數(shù)、max函數(shù)和函數(shù)和min 函數(shù)。函數(shù)。函數(shù)之間是并列關(guān)系函數(shù)之間是并列關(guān)系。可從主函數(shù)中調(diào)用其他函數(shù)。可從主函數(shù)中調(diào)用其他函數(shù)。max 函數(shù)的功能是函數(shù)的功能是比較兩個數(shù),然后把較大的數(shù)返回給主函數(shù),相比較兩個數(shù),然后把較大的數(shù)返回給主函數(shù),相應(yīng)的應(yīng)的min 函數(shù)把較小的數(shù)返回給主函數(shù)。函數(shù)把較小的數(shù)返回給主函數(shù)。max函函數(shù)和數(shù)和min函數(shù)是用戶自定義函數(shù)。因此在主函數(shù)函數(shù)是用戶自定義函數(shù)。因此在主函數(shù)中要給出函數(shù)聲明中要給出函數(shù)聲明(程序

39、第程序第7、8行行),其中,其中min函數(shù)函數(shù)還來自另一個源文件,為此是外部函數(shù)聲明。還來自另一個源文件,為此是外部函數(shù)聲明。請理解請理解C C函數(shù)間的并列、平等性函數(shù)間的并列、平等性1.5.1 C程序的結(jié)構(gòu)特點程序的結(jié)構(gòu)特點1.5.2 C程序的書寫規(guī)則程序的書寫規(guī)則1.5.3 C語言字符集與詞匯語言字符集與詞匯程序的完整結(jié)構(gòu)可以用圖程序的完整結(jié)構(gòu)可以用圖1.1來表示。來表示。圖圖1.1 程序的完整結(jié)構(gòu)程序的完整結(jié)構(gòu)對對C語言的結(jié)構(gòu)特點再說明如下:語言的結(jié)構(gòu)特點再說明如下: 1)一個語言源程序可以由)一個語言源程序可以由一個或多個源程一個或多個源程序文件組成序文件組成。 2)每個源程序文件可)

40、每個源程序文件可由預(yù)處理命令由預(yù)處理命令(include 命命令僅為其中的一種令僅為其中的一種)、全局變量定義、變量或函數(shù)、全局變量定義、變量或函數(shù)聲明、一個或多個函數(shù)等組成聲明、一個或多個函數(shù)等組成。預(yù)處理命令等通。預(yù)處理命令等通常應(yīng)放在源文件或源程序的最前面。常應(yīng)放在源文件或源程序的最前面。 3)一個)一個C程序不論由多少個文件組成,都程序不論由多少個文件組成,都有且僅有有且僅有一個一個main函數(shù),即主函數(shù)函數(shù),即主函數(shù)。程序從程序從main函數(shù)開始執(zhí)行函數(shù)開始執(zhí)行,到,到main函數(shù)執(zhí)行完成而結(jié)束。函數(shù)執(zhí)行完成而結(jié)束。 4)每個)每個C語言語言函數(shù)通常由函數(shù)首部(如函數(shù)通常由函數(shù)首部(

41、如int max(int a,int b))、函數(shù)體組成)、函數(shù)體組成。函數(shù)體一般又由局部變量定義。函數(shù)體一般又由局部變量定義與函數(shù)聲明等組成的定義與聲明部分、程序執(zhí)行語句等與函數(shù)聲明等組成的定義與聲明部分、程序執(zhí)行語句等組成的執(zhí)行部分這兩部分組成的(如組成的執(zhí)行部分這兩部分組成的(如min函數(shù)所示)。函數(shù)所示)。 5)C程序的程序的每一個語句都必須以分號每一個語句都必須以分號(;)結(jié)尾結(jié)尾。但預(yù)。但預(yù)處理命令,函數(shù)頭和花括號處理命令,函數(shù)頭和花括號“”之后不能加分號。之后不能加分號。 6)標(biāo)識符、關(guān)鍵字之間必須)標(biāo)識符、關(guān)鍵字之間必須至少加一個空格以至少加一個空格以示間隔示間隔。若已有明顯的

42、間隔符,也可不再加空格來。若已有明顯的間隔符,也可不再加空格來間隔。間隔。 由上可知,由上可知,C程序的基本組成單位是函數(shù)程序的基本組成單位是函數(shù),函數(shù),函數(shù)可分為可分為main主函數(shù)、庫函數(shù)主函數(shù)、庫函數(shù)(編譯系統(tǒng)提供的編譯系統(tǒng)提供的)、自、自定義函數(shù)定義函數(shù)(用戶自己定義的用戶自己定義的)等等3類。類。 從書寫清晰、便于閱讀、理解、維護(hù)的角度出發(fā),在書寫程從書寫清晰、便于閱讀、理解、維護(hù)的角度出發(fā),在書寫程序時應(yīng)遵循以下規(guī)則:序時應(yīng)遵循以下規(guī)則: 1)一般一個語句(包括說明語句)占一行。)一般一個語句(包括說明語句)占一行。 2)用)用 括起來的部分,通常表示了程序的某一層次結(jié)構(gòu)。括起來的

43、部分,通常表示了程序的某一層次結(jié)構(gòu)。一般與該結(jié)構(gòu)語句的第一個字母對齊,并且一般與該結(jié)構(gòu)語句的第一個字母對齊,并且與與括號符一般分括號符一般分別單獨(dú)占一行。別單獨(dú)占一行。 3)低一層次的語句或說明可比高一層次的語句或說明)低一層次的語句或說明可比高一層次的語句或說明縮進(jìn)縮進(jìn)若干空格后書寫若干空格后書寫。以便看起來更加清晰,增加程序的可讀性。以便看起來更加清晰,增加程序的可讀性。 4)程序中應(yīng)添加必要的注釋程序中應(yīng)添加必要的注釋,來增強(qiáng)程序的閱讀與理解。,來增強(qiáng)程序的閱讀與理解。 if(fpi=fopen(infile.txt,r)=NULL) /*打開打開infile.txt輸入文件輸入文件*/

44、 printf(Input two numbers:n); /*若打開失敗,則提示從鍵盤輸入若打開失敗,則提示從鍵盤輸入*/ scanf(%d%d,&x,&y); /*從鍵盤輸入從鍵盤輸入x,y值值*/ else fscanf(fpi,%d%d,&x,&y); /*從文件輸入從文件輸入x,y值值*/ fclose(fpi); /*關(guān)閉文件指針關(guān)閉文件指針fpi*/ 1、C語言的字符集語言的字符集 字符是組成語言的最基本的元素。字符是組成語言的最基本的元素。語言語言字符集由字母、數(shù)字、空格、標(biāo)點和特殊字符字符集由字母、數(shù)字、空格、標(biāo)點和特殊字符組成。組成。在字符常

45、量、字符串常量和注釋中還可在字符常量、字符串常量和注釋中還可以使用漢字或其他可表示的圖形符號。以使用漢字或其他可表示的圖形符號。 1)字母:小寫字母)字母:小寫字母az共共26個;大寫字母個;大寫字母AZ共共26個個 2)數(shù)字:)數(shù)字:09共共10個個1、C語言的字符集語言的字符集 3)空白符:)空白符:空格符、制表符、換行符等統(tǒng)空格符、制表符、換行符等統(tǒng)稱為空白符稱為空白符??瞻追辉谧址A亢妥址???瞻追辉谧址A亢妥址A恐衅鹱饔?。在其他地方出現(xiàn)時,只起間隔作量中起作用。在其他地方出現(xiàn)時,只起間隔作用,編譯程序?qū)λ鼈兒雎圆挥?。因此在程序中用,編譯程序?qū)λ鼈兒雎圆挥?。因此在程序中?/p>

46、用空白符與否,對程序的編譯不發(fā)生影響,使用空白符與否,對程序的編譯不發(fā)生影響,但在程序中適當(dāng)?shù)牡胤绞褂每瞻追麑⒃黾映绦虻诔绦蛑羞m當(dāng)?shù)牡胤绞褂每瞻追麑⒃黾映绦虻那逦院涂勺x性。的清晰性和可讀性。1、C語言的字符集語言的字符集 4)標(biāo)點和特殊字符)標(biāo)點和特殊字符算術(shù)算術(shù)運(yùn)算符:運(yùn)算符:+ - * / % + -關(guān)系關(guān)系運(yùn)算符:運(yùn)算符: = 條件條件運(yùn)算符:運(yùn)算符:? :其他其他運(yùn)算符:運(yùn)算符:() . , ; 另外,另外,C語言可使用語言可使用轉(zhuǎn)義字符轉(zhuǎn)義字符,具體見表,具體見表1-1。 表表1-1 C語言轉(zhuǎn)義字符表語言轉(zhuǎn)義字符表2、C語言的詞匯語言的詞匯 在語言中使用的詞匯分為六類:在語言中使

47、用的詞匯分為六類:標(biāo)識符,標(biāo)識符,關(guān)鍵字,運(yùn)算符,分隔符,常量,注釋符關(guān)鍵字,運(yùn)算符,分隔符,常量,注釋符等。等。 (1)標(biāo)識符)標(biāo)識符 在程序中使用的在程序中使用的變量名、函數(shù)名、標(biāo)號等統(tǒng)變量名、函數(shù)名、標(biāo)號等統(tǒng)稱為標(biāo)識符稱為標(biāo)識符。除庫函數(shù)的函數(shù)名由系統(tǒng)定義外,。除庫函數(shù)的函數(shù)名由系統(tǒng)定義外,其余都由用戶自定義。其余都由用戶自定義。C 規(guī)定,規(guī)定,標(biāo)識符標(biāo)識符只能是字只能是字母母(AZ,az)、數(shù)字、數(shù)字(09)、下劃線、下劃線(_)組成的字組成的字符串,并且其第一個字符必須是字母或下劃線符串,并且其第一個字符必須是字母或下劃線。2、C語言的詞匯語言的詞匯 (1)標(biāo)識符)標(biāo)識符 以下標(biāo)識符

48、是合法的:以下標(biāo)識符是合法的:a, x, x3, BOOK_1, sum5 以下標(biāo)識符是非法的:以下標(biāo)識符是非法的:3s (以數(shù)字開頭以數(shù)字開頭););s*T (出現(xiàn)非法字符出現(xiàn)非法字符*););-3x (以減號開頭以減號開頭););bowy-1 (出現(xiàn)非法減號字符出現(xiàn)非法減號字符-)。)。(1)標(biāo)識符)標(biāo)識符 在使用標(biāo)識符時還必須注意以下幾點:在使用標(biāo)識符時還必須注意以下幾點: 1)標(biāo)準(zhǔn))標(biāo)準(zhǔn)C不限制標(biāo)識符的長度,但它受各種不限制標(biāo)識符的長度,但它受各種版本的版本的C 語言編譯系統(tǒng)限制,同時也受到具體機(jī)語言編譯系統(tǒng)限制,同時也受到具體機(jī)器的限制。例如在器的限制。例如在某版本某版本C 中規(guī)定標(biāo)

49、識符前八位中規(guī)定標(biāo)識符前八位有效有效,當(dāng)兩個標(biāo)識符前八位相同時,則被認(rèn)為是,當(dāng)兩個標(biāo)識符前八位相同時,則被認(rèn)為是同一個標(biāo)識符。同一個標(biāo)識符。 2)在標(biāo)識符中,大小寫是有區(qū)別的。例如)在標(biāo)識符中,大小寫是有區(qū)別的。例如Book和和book 是兩個不同的標(biāo)識符。是兩個不同的標(biāo)識符。大小寫字母大小寫字母不同形成不同形成不同的不同的標(biāo)識符標(biāo)識符(1)標(biāo)識符)標(biāo)識符 在使用標(biāo)識符時還必須注意以下幾點:在使用標(biāo)識符時還必須注意以下幾點: 3)標(biāo)識符雖然可由程序員隨意定義,但標(biāo)識符)標(biāo)識符雖然可由程序員隨意定義,但標(biāo)識符是用于標(biāo)識某個量的符號。因此,命名應(yīng)盡量有相是用于標(biāo)識某個量的符號。因此,命名應(yīng)盡量有相

50、應(yīng)的意義,以便于閱讀理解,做到應(yīng)的意義,以便于閱讀理解,做到“顧名思義顧名思義”。 4)用戶定義的標(biāo)識符不應(yīng)與如下系統(tǒng)關(guān)鍵字相)用戶定義的標(biāo)識符不應(yīng)與如下系統(tǒng)關(guān)鍵字相同,同,用戶定義的標(biāo)識符也不應(yīng)與系統(tǒng)已定義使用的用戶定義的標(biāo)識符也不應(yīng)與系統(tǒng)已定義使用的一些標(biāo)識符相同一些標(biāo)識符相同(盡管可能沒有語法錯而可以使用盡管可能沒有語法錯而可以使用),系統(tǒng)已使用標(biāo)識符如:),系統(tǒng)已使用標(biāo)識符如:main,define,printf(庫函庫函數(shù)名數(shù)名),stdio等等。等等。(2)關(guān)鍵字)關(guān)鍵字 關(guān)鍵字是由語言規(guī)定的具有特定意義的字符關(guān)鍵字是由語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。語言的關(guān)鍵字

51、分為以下串,通常也稱為保留字。語言的關(guān)鍵字分為以下幾類:幾類: 1)類型說明符:用于定義或說明變量、函數(shù)或)類型說明符:用于定義或說明變量、函數(shù)或其他數(shù)據(jù)結(jié)構(gòu)的類型。如前面例題中用到的其他數(shù)據(jù)結(jié)構(gòu)的類型。如前面例題中用到的int,double等等 2)語句定義符:用于表示一個語句的功能。如)語句定義符:用于表示一個語句的功能。如例例1-3中用到的中用到的if else就是條件語句的語句定義符。就是條件語句的語句定義符。(2)關(guān)鍵字)關(guān)鍵字 關(guān)鍵字是由語言規(guī)定的具有特定意義的字符串關(guān)鍵字是由語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。語言的關(guān)鍵字分為以下幾,通常也稱為保留字。語言的關(guān)鍵字分

52、為以下幾類:類: 3)其他(如:)其他(如:const,sizeof等)等) 最新最新ANSI C標(biāo)準(zhǔn)關(guān)鍵字一共只有標(biāo)準(zhǔn)關(guān)鍵字一共只有37個關(guān)鍵字(詳個關(guān)鍵字(詳見附錄見附錄B)。)。 注意:預(yù)處理命令字注意:預(yù)處理命令字include,define,ifdef,ifndef等等,庫函數(shù)名,庫函數(shù)名printf,scanf等均不是系統(tǒng)關(guān)鍵字,而是等均不是系統(tǒng)關(guān)鍵字,而是系統(tǒng)已定義標(biāo)識符。系統(tǒng)已定義標(biāo)識符。(3)運(yùn)算符)運(yùn)算符 語言中含有相當(dāng)豐富的運(yùn)算符。語言中含有相當(dāng)豐富的運(yùn)算符。運(yùn)算符與變量運(yùn)算符與變量、函數(shù)一起組成表達(dá)式,表示各種運(yùn)算功能、函數(shù)一起組成表達(dá)式,表示各種運(yùn)算功能。運(yùn)算符。運(yùn)算

53、符由一個或多個字符組成。由一個或多個字符組成。(4)分隔符)分隔符 在語言中采用的分隔符有逗號和空格兩種。逗在語言中采用的分隔符有逗號和空格兩種。逗號主要用在類型說明和函數(shù)參數(shù)表中,分隔各個變量號主要用在類型說明和函數(shù)參數(shù)表中,分隔各個變量??崭穸嘤糜谡Z句各單詞之間,作間隔符。在關(guān)鍵字??崭穸嘤糜谡Z句各單詞之間,作間隔符。在關(guān)鍵字與標(biāo)識符之間必須要有一個以上的空格符作間隔,否與標(biāo)識符之間必須要有一個以上的空格符作間隔,否則將會出現(xiàn)語法錯誤,例如把則將會出現(xiàn)語法錯誤,例如把int a;寫成寫成 inta;C編譯器編譯器會把會把inta當(dāng)成一個標(biāo)識符處理,其結(jié)果必然出錯。當(dāng)成一個標(biāo)識符處理,其結(jié)果

54、必然出錯。(5)常量)常量 C 語言中使用的常量可分為數(shù)字常量、字符常量語言中使用的常量可分為數(shù)字常量、字符常量、字符串常量、符號常量、轉(zhuǎn)義字符等多種。在后面、字符串常量、符號常量、轉(zhuǎn)義字符等多種。在后面章節(jié)中將專門給予介紹。章節(jié)中將專門給予介紹。(6)注釋符)注釋符 C 語言的一種注釋符是以語言的一種注釋符是以“/*”開頭并以開頭并以“*/”結(jié)結(jié)尾的串,尾的串,在在“/*”和和“*/”之間的即為注釋,注釋內(nèi)容之間的即為注釋,注釋內(nèi)容可以跨行??梢钥缧??!?*/”注釋能出現(xiàn)在程序的各個位置,注釋能出現(xiàn)在程序的各個位置,能滿足各種注釋的要求。具體可參見上面例能滿足各種注釋的要求。具體可參見上面例

55、1-3。 運(yùn)行運(yùn)行C程序必須經(jīng)過編輯(程序必須經(jīng)過編輯(.c或或.cpp文文件)、編譯(件)、編譯(.obj文件)、連接(文件)、連接(.exe文文件)、運(yùn)行等過程,連接得到可執(zhí)行的程件)、運(yùn)行等過程,連接得到可執(zhí)行的程序文件后,運(yùn)行程序得到運(yùn)行結(jié)果。序文件后,運(yùn)行程序得到運(yùn)行結(jié)果。1、上機(jī)實踐的重要性、上機(jī)實踐的重要性 C語言程序設(shè)計是一門實踐性很強(qiáng)的課程,該課程的語言程序設(shè)計是一門實踐性很強(qiáng)的課程,該課程的學(xué)習(xí)有其自身的特點,學(xué)習(xí)者必須通過大量的編程訓(xùn)練學(xué)習(xí)有其自身的特點,學(xué)習(xí)者必須通過大量的編程訓(xùn)練,在實踐中掌握程序設(shè)計語言,培養(yǎng)程序設(shè)計的基本能,在實踐中掌握程序設(shè)計語言,培養(yǎng)程序設(shè)計的

56、基本能力,并逐步理解和掌握程序設(shè)計的思想和方法。具體地力,并逐步理解和掌握程序設(shè)計的思想和方法。具體地說,通過上機(jī)實踐,應(yīng)該達(dá)到以下幾點要求:說,通過上機(jī)實踐,應(yīng)該達(dá)到以下幾點要求: 1)使學(xué)習(xí)者能很好地掌握一種程序設(shè)計開發(fā)環(huán)境的)使學(xué)習(xí)者能很好地掌握一種程序設(shè)計開發(fā)環(huán)境的基本操作方法(例如:基本操作方法(例如:Visual C+6.0(簡稱簡稱VC+6.0)、Turbo C 2.0、Win-TC等),掌握應(yīng)用程序開發(fā)的一般步等),掌握應(yīng)用程序開發(fā)的一般步驟。驟。1、上機(jī)實踐的重要性、上機(jī)實踐的重要性 2)在程序設(shè)計和調(diào)試程序的過程中,可以幫助學(xué)習(xí))在程序設(shè)計和調(diào)試程序的過程中,可以幫助學(xué)習(xí)者進(jìn)一步理解教材中各章節(jié)的主要知識點,特別是一些者進(jìn)一步理解教材中各章節(jié)的主要知識點,特別是一些語法規(guī)則的理解和運(yùn)用,程序設(shè)計中的常用算法與構(gòu)造語法規(guī)則的理解和運(yùn)用,程序設(shè)計中的常用算法與構(gòu)造及其應(yīng)用,也就是所謂及其應(yīng)用,也就是所謂“在編程中學(xué)習(xí)編程在編程中學(xué)習(xí)編程”。 3)通過上機(jī)實踐,提高程序分析、程序設(shè)計和程序)通過上機(jī)實踐,提高程序分析、程序設(shè)計和程序調(diào)試的能力。程序調(diào)試是一個程序員最基本的技能,不調(diào)試的能力。程序調(diào)試是一個程序員

溫馨提示

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

評論

0/150

提交評論