- 相關(guān)推薦
C語(yǔ)言的發(fā)展歷程
C語(yǔ)言是在70年代初問(wèn)世的。一九七八年由美國電話(huà)電報公司(AT&T)貝爾實(shí)驗室正式發(fā)表了C語(yǔ)言。同時(shí)由B.W.Kernighan和D.M.Ritchit合著(zhù)了著(zhù)名的“THE C PROGRAMMING LANGUAGE”一書(shū)。通常簡(jiǎn)稱(chēng)為《K&R》,也有人稱(chēng)之為《K&R》標準。但是,在《K&R》中并沒(méi)有定義一個(gè)完整的標準C語(yǔ)言,后來(lái)由美國國家標準學(xué)會(huì )在此基礎上制定了一個(gè)C 語(yǔ)言標準,于一九八三年發(fā)表。通常稱(chēng)之為ANSIC。以下是小編為大家搜索整理的C語(yǔ)言的發(fā)展歷程,希望能給大家帶來(lái)幫助!
當代最優(yōu)秀的程序設計語(yǔ)言
早期的C語(yǔ)言主要是用于UNIX系統。由于C語(yǔ)言的強大功能和各方面的優(yōu)點(diǎn)逐漸為人們認識,到了八十年代,C開(kāi)始進(jìn)入其它操作系統,并很快在各類(lèi)大、中、小和微型計算機上得到了廣泛的使用。成為當代最優(yōu)秀的程序設計語(yǔ)言之一。
C語(yǔ)言的特點(diǎn)
C語(yǔ)言是一種結構化語(yǔ)言。它層次清晰,便于按模塊化方式組織程序,易于調試和維護。C語(yǔ)言的表現能力和處理能力極強。它不僅具有豐富的運算符和數據類(lèi)型,便于實(shí)現各類(lèi)復雜的數據結構。它還可以直接訪(fǎng)問(wèn)內存的物理地址,進(jìn)行位(bit)一級的操作。由于C語(yǔ)言實(shí)現了對硬件的編程操作,因此C語(yǔ)言集高級語(yǔ)言和低級語(yǔ)言的功能于一體。既可用于系統軟件的開(kāi)發(fā),也適合于應用軟件的開(kāi)發(fā)。此外,C語(yǔ)言還具有效率高,可移植性強等特點(diǎn)。因此廣泛地移植到了各類(lèi)各型計算機上,從而形成了多種版本的C語(yǔ)言。
C語(yǔ)言版本
目前最流行的C語(yǔ)言有以下幾種:
·Microsoft C 或稱(chēng) MS C
·Borland Turbo C 或稱(chēng) Turbo C
·AT&T C
這些C語(yǔ)言版本不僅實(shí)現了ANSI C標準,而且在此基礎上各自作了一些擴充,使之更加方便、完美。
面向對象的程序設計語(yǔ)言:
在C的基礎上,一九八三年又由貝爾實(shí)驗室的Bjarne Strou-strup推出了C++。 C++進(jìn)一步擴充和完善了C語(yǔ)言,成為一種面向 對象的程序設計語(yǔ)言。C++目前流行的最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2.0。C++提出了一些更為深入的概念,它所支持的這些面向對象的概念容易將問(wèn)題空間直接地映射到程序空間,為程序員提供了一種與傳統結構程序設計不同的思維方式和編程方法。因而也增加了整個(gè)語(yǔ)言的復雜性,掌握起來(lái)有一定難度。
C和C++
但是,C是C++的基礎,C++語(yǔ)言和C語(yǔ)言在很多方面是兼容的。因此,掌握了C語(yǔ)言,再進(jìn)一步學(xué)習C++就能以一種熟悉的語(yǔ)法來(lái)學(xué)習面向對象的語(yǔ)言,從而達到事半功倍的目的。
C源程序的結構特點(diǎn)
為了說(shuō)明C語(yǔ)言源程序結構的特點(diǎn),先看以下幾個(gè)程序。這幾個(gè)程 序由簡(jiǎn)到難,表現了C語(yǔ)言源程序在組成結構上的特點(diǎn)。雖然有關(guān)內容還未介紹,但可從這些例子中了解到組成一個(gè)C源程序的基本部分和書(shū)寫(xiě)格式。
main()
{
printf("c語(yǔ)言世界www.vcok.com,您好! "
}
main是主函數的函數名,表示這是一個(gè)主函數。每一個(gè)C源程序都必須有,且只能有一個(gè)主函數(main函數)。函數調用語(yǔ)句,printf函數的功能是把要輸出的內容送到顯示器去顯示。printf函數是一個(gè)由系統定義的標準函數,可在程序中直接調用。
#include "stdio.h"
#include "math.h"
main()
{
double x,s;
printf("input number: ");
scanf("%lf",&x);
s=sin(x);
printf("sine of %lf is %lf ",x,s);
}
每行注釋
include稱(chēng)為文件包含命令擴展名為.h的文件也稱(chēng)為頭文件或首部文件。定義兩個(gè)實(shí)數變量,以被后面程序使用。顯示提示信息。從鍵盤(pán)獲得一個(gè)實(shí)數x,求x的正弦,并把它賦給變量s,顯示程序運算結果。
main函數結束
程序的功能是從鍵盤(pán)輸入一個(gè)數x,求x的正弦值,然后輸出結果。在main()之前的兩行稱(chēng)為預處理命令(詳見(jiàn)后面)。預處理命令還有其它幾種,這里的include 稱(chēng)為文件包含命令,其意義是把尖括號""或引號<>內指定的文件包含到本程序來(lái),成為本程序的一部分。被包含的文件通常是由系統提供的,其擴展名為.h。因此也稱(chēng)為頭文件或首部文件。C語(yǔ)言的頭文件中包括了各個(gè)標準庫函數的函數原型。因此,凡是在程序中調用一個(gè)庫函數時(shí),都必須包含該函數原型所在的頭文件。在本例中,使用了三個(gè)庫函數:輸入函數scanf,正弦函數sin,輸出函數printf。sin函數是數學(xué)函數,其頭文件為math.h的文件,因此在程序的主函數前用include命令包含了math.h。scanf和printf是標準輸入輸出函數,其頭文件為stdio.h,在主函數前也用include命令包含了stdio.h的文件。
需要說(shuō)明的是,C語(yǔ)言規定對scanf和printf這兩個(gè)函數可以省去對其頭文件的包含命令。所以在本例中也可以刪去第二行的包含命令#include。同樣,在例1.1中使用了printf函數,也省略了包含命令。
在例題中的主函數體中又分為兩部分,一部分為說(shuō)明部分,另一部分執行部分。說(shuō)明是指變量的類(lèi)型說(shuō)明。例題中未使用任何變量,因此無(wú)說(shuō)明部分。C語(yǔ)言規定,源程序中所有用到的變量都必須先說(shuō)明,后使用,否則將會(huì )出錯。這一點(diǎn)是編譯型高級程序設計語(yǔ)言的一個(gè)特點(diǎn),與解釋型的BASIC語(yǔ)言是不同的。說(shuō)明部分是C源程序結構中很重要的組成部分。本例中使用了兩個(gè)變量x,s,用來(lái)表示輸入的自變量和sin函數值。由于sin函數要求這兩個(gè)量必須是雙精度浮點(diǎn)型,故用類(lèi)型說(shuō)明符double來(lái)說(shuō)明這兩個(gè)變量。說(shuō)明部分后的四行為執行部分或稱(chēng)為執行語(yǔ)句部分,用以完成程序的功能。執行部分的第一行是輸出語(yǔ)句,調用printf函數在顯示器上輸出提示字符串,請操作人員輸入自變量x的值。第二行為輸入語(yǔ)句,調用scanf函數,接受鍵盤(pán)上輸入的數并存入變量x中。第三行是調用sin函數并把函數值送到變量s中。第四行是用printf 函數輸出變量s的值,即x的正弦值。程序結束。
printf("input number: ");
scanf("%lf",’C10F10&x);
s=sin(x);
printf("sine of %lf is %lf ",’C10F10x,s);
運行本程序時(shí),首先在顯示器屏幕上給出提示串input number,這是由執行部分的第一行完成的。用戶(hù)在提示下從鍵盤(pán)上鍵入某一數,如5,按下回車(chē)鍵,接著(zhù)在屏幕上給出計算結果。
輸入和輸出函數
在前兩個(gè)例子中用到了輸入和輸出函數scanf和 printf,在第三章中我們要詳細介紹。這里我們先簡(jiǎn)單介紹一下它們的格式,以便下面使用。scanf和 printf這兩個(gè)函數分別稱(chēng)為格式輸入函數和格式輸出函數。其意義是按指定的格式輸入輸出值。因此,這兩個(gè)函數在括號中的參數表都由以下兩部分組成: “格式控制串”,參數表 格式控制串是一個(gè)字符串,必須用雙引號括起來(lái),它表示了輸入輸出量的數據類(lèi)型。各種類(lèi)型的格式表示法可參閱第三章。在printf函數中還可以在格式控制串內出現非格式控制字符,這時(shí)在顯示屏幕上將原文照印。參數表中給出了輸入或輸出的量。當有多個(gè)量時(shí),用逗號間隔。例如:
printf("sine of %lf is %lf ",x,s);
其中%lf為格式字符,表示按雙精度浮點(diǎn)數處理。它在格式串中兩次現,對應了x和s兩個(gè)變量。其余字符為非格式字符則照原樣輸出在屏幕上。
int max(int a,int b);
main()
{
int x,y,z;
printf("input two numbers: ");
scanf("%d%d",&x,&y);
z=max(x,y);
printf("maxmum=%d",z);
}
int max(int a,int b)
{
if(a>b)return a;
else return b;
}
此函數的功能是輸入兩個(gè)整數,輸出其中的大數。
/*函數說(shuō)明*/
/*主函數*/
/*變量說(shuō)明*/
/*輸入x,y值*/
/*調用max函數*/
/*輸出*/
/*定義max函數*/
/*把結果返回主調函數*/
上面例中程序的功能是由用戶(hù)輸入兩個(gè)整數,程序執行后輸出其中較大的數。本程序由兩個(gè)函數組成,主函數和max 函數。函數之間是并列關(guān)系?蓮闹骱瘮抵姓{用其它函數。max 函數的功能是比較兩個(gè)數,然后把較大的數返回給主函數。max 函數是一個(gè)用戶(hù)自定義函數。因此在主函數中要給出說(shuō)明(程序第三行)?梢(jiàn),在程序的說(shuō)明部分中,不僅可以有變量說(shuō)明,還可以有函數說(shuō)明。關(guān)于函數的詳細內容將在第五章介紹。在程序的每行后用/*和*/括起來(lái)的內容為注釋部分,程序不執行注釋部分。
上例中程序的執行過(guò)程是,首先在屏幕上顯示提示串,請用戶(hù)輸入兩個(gè)數,回車(chē)后由scanf函數語(yǔ)句接收這兩個(gè)數送入變量x,y中,然后調用max函數,并把x,y 的值傳送給max函數的參數a,b。在max函數中比較a,b的大小,把大者返回給主函數的變量z,最后在屏幕上輸出z的值。
C源程序的結構特點(diǎn)
1.一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成。
2.每個(gè)源文件可由一個(gè)或多個(gè)函數組成。
3.一個(gè)源程序不論由多少個(gè)文件組成,都有一個(gè)且只能有一個(gè)main函數,即主函數。
4.源程序中可以有預處理命令(include 命令僅為其中的一種),預處理命令通常應放在源文件或源程序的最前面。
5.每一個(gè)說(shuō)明,每一個(gè)語(yǔ)句都必須以分號結尾。但預處理命令,函數頭和花括號“}”之后不能加分號。
6.標識符,關(guān)鍵字之間必須至少加一個(gè)空格以示間隔。若已有明顯的間隔符,也可不再加空格來(lái)間隔。
書(shū)寫(xiě)程序時(shí)應遵循的規則
從書(shū)寫(xiě)清晰,便于閱讀,理解,維護的角度出發(fā),在書(shū)寫(xiě)程序時(shí) 應遵循以下規則:
1.一個(gè)說(shuō)明或一個(gè)語(yǔ)句占一行。
2.用{} 括起來(lái)的部分,通常表示了程序的某一層次結構。{}一般與該結構語(yǔ)句的第一個(gè)字母對齊,并單獨占一行。
3.低一層次的語(yǔ)句或說(shuō)明可比高一層次的語(yǔ)句或說(shuō)明縮進(jìn)若干格后書(shū)寫(xiě)。以便看起來(lái)更加清晰,增加程序的可讀性。在編程時(shí)應力求遵循這些規則,以養成良好的編程風(fēng)格。
C語(yǔ)言的字符集
字符是組成語(yǔ)言的最基本的元素。C語(yǔ)言字符集由字母,數字,空格,標點(diǎn)和特殊字符組成。在字符常量,字符串常量和注釋中還可以使用漢字或其它可表示的圖形符號。
1.字母 小寫(xiě)字母a~z共26個(gè),大寫(xiě)字母A~Z共26個(gè)
2.數字 0~9共10個(gè)
3.空白符 空格符、制表符、換行符等統稱(chēng)為空白符?瞻追辉谧址A亢妥址A恐衅鹱饔。在其它地方出現時(shí),只起間隔作用, 編譯程序對它們忽略。因此在程序中使用空白符與否,對程序的編譯不發(fā)生影響,但在程序中適當的地方使用空白符將增加程序的清晰性和可讀性。
4.標點(diǎn)和特殊字符
C語(yǔ)言詞匯
在C語(yǔ)言中使用的詞匯分為六類(lèi):標識符,關(guān)鍵字,運算符,分隔符,常量,注釋符等。
【C語(yǔ)言的發(fā)展歷程】相關(guān)文章:
PHP語(yǔ)言發(fā)展歷程08-29
Java語(yǔ)言發(fā)展歷程07-05
C語(yǔ)言現在的發(fā)展07-14
php的發(fā)展歷程03-21
Photoshop的發(fā)展歷程03-10
PHP技術(shù)發(fā)展歷程04-01