當前位置:才華齋>計算機>C語言>

C語言的發展歷程

C語言 閱讀(2.47W)

C語言是在70年代初問世的。一九七八年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。同時由ighan和hit合著了著名的“THE C PROGRAMMING LANGUAGE”一書。通常簡稱為《K&R》,也有人稱之為《K&R》標準。但是,在《K&R》中並沒有定義一個完整的標準C語言,後來由美國國家標準學會在此基礎上制定了一個C 語言標準,於一九八三年發表。通常稱之為ANSI C。以下是小編為大家搜尋整理的C語言的發展歷程,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!

C語言的發展歷程

  當代最優秀的程式設計語言

早期的C語言主要是用於UNIX系統。由於C語言的強大功能和各方面的優點逐漸為人們認識,到了八十年代,C開始進入其它作業系統,並很快在各類大、中、小和微型計算機上得到了廣泛的使用。成為當代最優秀的程式設計語言之一。

  C語言的特點

C語言是一種結構化語言。它層次清晰,便於按模組化方式組織程式,易於除錯和維護。C語言的表現能力和處理能力極強。它不僅具有豐富的運算子和資料型別,便於實現各類複雜的資料結構。它還可以直接訪問記憶體的實體地址,進行位(bit)一級的操作。由於C語言實現了對硬體的程式設計操作,因此C語言集高階語言和低階語言的功能於一體。既可用於系統軟體的開發,也適合於應用軟體的開發。此外,C語言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類各型計算機上,從而形成了多種版本的C語言。

  C語言版本

目前最流行的C語言有以下幾種:

·Microsoft C 或稱 MS C

·Borland Turbo C 或稱 Turbo C

·AT&T C

這些C語言版本不僅實現了ANSI C標準,而且在此基礎上各自作了一些擴充,使之更加方便、完美。

面向物件的程式設計語言

在C的基礎上,一九八三年又由貝爾實驗室的Bjarne Strou-strup推出了C++。 C++進一步擴充和完善了C語言,成為一種面向 物件的程式設計語言。C++目前流行的最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2.0。C++提出了一些更為深入的概念,它所支援的這些面向物件的概念容易將問題空間直接地對映到程式空間,為程式設計師提供了一種與傳統結構程式設計不同的思維方式和程式設計方法。因而也增加了整個語言的複雜性,掌握起來有一定難度。

C和C++

但是,C是C++的基礎,C++語言和C語言在很多方面是相容的。因此,掌握了C語言,再進一步學習C++就能以一種熟悉的語法來學習面向物件的語言,從而達到事半功倍的目的。

C源程式的結構特點

為了說明C語言源程式結構的特點,先看以下幾個程式。這幾個程 序由簡到難,表現了C語言源程式在組成結構上的特點。雖然有關內容還未介紹,但可從這些例子中瞭解到組成一個C源程式的基本部分和書寫格式

main()

{

printf("c語言世界,您好!n");

}

main是主函式的函式名,表示這是一個主函式。每一個C源程式都必須有,且只能有一個主函式(main函式)。函式呼叫語句,printf函式的功能是把要輸出的內容送到顯示器去顯示。printf函式是一個由系統定義的標準函式,可在程式中直接呼叫。

#include "stdio.h"

#include "math.h"

main()

{

double x,s;

printf("input number:n");

scanf("%lf",&x);

s=sin(x);

printf("sine of %lf is %lfn",x,s);

}

每行註釋

include稱為檔案包含命令副檔名為.h的檔案也稱為標頭檔案或首部檔案

定義兩個實數變數,以被後面程式使用

顯示提示資訊

從鍵盤獲得一個實數x

求x的正弦,並把它賦給變數s

顯示程式運算結果

main函式結束

程式的功能是從鍵盤輸入一個數x,求x的正弦值,然後輸出結果。在main()之前的兩行稱為預處理命令(詳見後面)。預處理命令還有其它幾種,這裡的include 稱為檔案包含命令,其意義是把尖括號""或引號<>內指定的檔案包含到本程式來,成為本程式的一部分。被包含的檔案通常是由系統提供的,其副檔名為.h。因此也稱為標頭檔案或首部檔案。C語言的標頭檔案中包括了各個標準庫函式的函式原型。因此,凡是在程式中呼叫一個庫函式時,都必須包含該函式原型所在的標頭檔案。在本例中,使用了三個庫函式:輸入函式scanf,正弦函式sin,輸出函式printf。sin函式是數學函式,其標頭檔案為math.h檔案,因此在程式的主函式前用include命令包含了math.h。scanf和printf是標準輸入輸出函式,其標頭檔案為stdio.h,在主函式前也用include命令包含了stdio.h檔案。

需要說明的是,C語言規定對scanf和printf這兩個函式可以省去對其標頭檔案的包含命令。所以在本例中也可以刪去第二行的包含命令#include。同樣,在例1.1中使用了printf函式,也省略了包含命令。

在例題中的主函式體中又分為兩部分,一部分為說明部分,另一部分執行部分。說明是指變數的型別說明。例題中未使用任何變數,因此無說明部分。C語言規定,源程式中所有用到的變數都必須先說明,後使用,否則將會出錯。這一點是編譯型高階程式設計語言的一個特點,與解釋型的BASIC語言是不同的。說明部分是C源程式結構中很重要的組成部分。本例中使用了兩個變數x,s,用來表示輸入的自變數和sin函式值。由於sin函式要求這兩個量必須是雙精度浮點型,故用型別說明符double來說明這兩個變數。說明部分後的四行為執行部分或稱為執行語句部分,用以完成程式的功能。執行部分的第一行是輸出語句,呼叫printf函式在顯示器上輸出提示字串,請操作人員輸入自變數x的值。第二行為輸入語句,呼叫scanf函式,接受鍵盤上輸入的數並存入變數x中。第三行是呼叫sin函式並把函式值送到變數s中。第四行是用printf 函式輸出變數s的.值,即x的正弦值。程式結束。

printf("input number:n");

scanf("%lf",’C10F10&x);

s=sin(x);

printf("sine of %lf is %lfn",’C10F10x,s);

執行本程式時,首先在顯示器螢幕上給出提示串input number,這是由執行部分的第一行完成的。使用者在提示下從鍵盤上鍵入某一數,如5,按下回車鍵,接著在螢幕上給出計算結果。

輸入和輸出函式

在前兩個例子中用到了輸入和輸出函式scanf和 printf,在第三章中我們要詳細介紹。這裡我們先簡單介紹一下它們的格式,以便下面使用。scanf和 printf這兩個函式分別稱為格式輸入函式和格式輸出函式。其意義是按指定的格式輸入輸出值。因此,這兩個函式在括號中的引數表都由以下兩部分組成: “格式控制串”,引數表  格式控制串是一個字串,必須用雙引號括起來,它表示了輸入輸出量的資料型別。各種型別的格式表示法可參閱第三章。在printf函式中還可以在格式控制串內出現非格式控制字元,這時在顯示螢幕上將原文照印。引數表中給出了輸入或輸出的量。當有多個量時,用逗號間隔。例如:

printf("sine of %lf is %lfn",x,s);

其中%lf為格式字元,表示按雙精度浮點數處理。它在格式串中兩次現,對應了x和s兩個變數。其餘字元為非格式字元則照原樣輸出在螢幕上

int max(int a,int b);

main()

{

int x,y,z;

printf("input two numbers:n");

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;

}

此函式的功能是輸入兩個整數,輸出其中的大數。

/*函式說明*/

/*主函式*/

/*變數說明*/

/*輸入x,y值*/

/*呼叫max函式*/

/*輸出*/

/*定義max函式*/

/*把結果返回主調函式*/

上面例中程式的功能是由使用者輸入兩個整數,程式執行後輸出其中較大的數。本程式由兩個函式組成,主函式和max 函式。函式之間是並列關係。可從主函式中呼叫其它函式。max 函式的功能是比較兩個數,然後把較大的數返回給主函式。max 函式是一個使用者自定義函式。因此在主函式中要給出說明(程式第三行)。可見,在程式的說明部分中,不僅可以有變數說明,還可以有函式說明。關於函式的詳細內容將在第五章介紹。在程式的每行後用/*和*/括起來的內容為註釋部分,程式不執行註釋部分。

上例中程式的執行過程是,首先在螢幕上顯示提示串,請使用者輸入兩個數,回車後由scanf函式語句接收這兩個數送入變數x,y中,然後呼叫max函式,並把x,y 的值傳送給max函式的引數a,b。在max函式中比較a,b的大小,把大者返回給主函式的變數z,最後在螢幕上輸出z的值。

C源程式的結構特點

1.一個C語言源程式可以由一個或多個原始檔組成。

2.每個原始檔可由一個或多個函式組成。

3.一個源程式不論由多少個檔案組成,都有一個且只能有一個main函式,即主函式。

4.源程式中可以有預處理命令(include 命令僅為其中的一種),預處理命令通常應放在原始檔或源程式的最前面。

5.每一個說明,每一個語句都必須以分號結尾。但預處理命令,函式頭和花括號“}”之後不能加分號。

6.識別符號,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。

書寫程式時應遵循的規則

從書寫清晰,便於閱讀,理解,維護的角度出發,在書寫程式時 應遵循以下規則:

1.一個說明或一個語句佔一行。

2.用{} 括起來的部分,通常表示了程式的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。

3.低一層次的語句或說明可比高一層次的語句或說明縮排若干格後書寫。以便看起來更加清晰,增加程式的可讀性。在程式設計時應力求遵循這些規則,以養成良好的程式設計風格。

C語言的字符集

字元是組成語言的最基本的元素。C語言字符集由字母,數字,空格,標點和特殊字元組成。在字元常量,字串常量和註釋中還可以使用漢字或其它可表示的圖形符號。

1.字母  小寫字母a~z共26個,大寫字母A~Z共26個

2.數字  0~9共10個

3.空白符 空格符、製表符、換行符等統稱為空白符。空白符只在字元常量和字串常量中起作用。在其它地方出現時,只起間隔作用, 編譯程式對它們忽略。因此在程式中使用空白符與否,對程式的編譯不發生影響,但在程式中適當的地方使用空白符將增加程式的清晰性和可讀性。

4.標點和特殊字元

C語言詞彙

在C語言中使用的詞彙分為六類:識別符號,關鍵字,運算子,分隔符,常量,註釋符等。