c語言程式設計(電腦程式設計語言)

c語言程式設計(電腦程式設計語言)

本詞條是多義詞,共53個義項
更多義項 ▼ 收起列表 ▲

C語言是一種電腦程式設計語言。它既有高級語言的特點,又具有彙編語言的特點。它可以作為系統設計語言,編寫工作系統應用程式,也可以作為套用程式設計語言,編寫不依賴計算機硬體的應用程式。

基本介紹

  • 中文名:C語言程式設計
  • 外文名:C language programming
  • 原型:ALGOL 60語言
  • 語言類型:高級語言
  • 特點:結構化設計
簡介,發展歷程,特點,優點,缺點,常用編譯器,C語言的結構化設計,自頂向下逐步細化,模組化設計,結構化編碼,C語言程式設計中遇到的障礙,時間中斷,漢字顯示及數組輸入,混合編程,

簡介

隨著科技的發展和人工智慧時代的來臨,計算機中程式設計具有越來越重要的地位。C語言程式設計是程式設計者的入門語言,它使學習者更能容易理解。當然它也能設計出一些高級的套用軟體和系統軟體。C語言程式設計還能幫助我們學習其它計算機語言如我們熟悉的java語言vb語 言的設計,因此C語言是初學者必備的語言。
馮.諾依曼在1945年提出了現代計算機的若干思想,被後人稱為馮.諾依曼思想,這是計算機發展史上的里程碑。自1945 年至今大多採用其結構,因此馮.諾依曼被稱為計算機之父。他的體系結構計算機由運算器,控制器,存儲器,輸入設備,輸出設備五大部件構成。C語言擁有一套完整的理論體系經過了漫長的發展歷史,在程式語言中具有舉足輕重的地位。
C 語言是一種十分強大的語言,可以進行多種方式進行程式的設計,它是一種很有特色的高級語言通過若干個函式組成,它具備構成程式設計的 3 種基本結構順序,選擇和循環結構。C語言編輯簡潔明了,運算符豐富且功能強大還有編譯預處理功能。此語言的移植性好不同的處理器用不同的編譯器編譯指令達到移植的效果。

發展歷程

C語言的原型ALGOL 60語言(也稱為A語言) 。
1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。
1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。
1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,並為它起了一個有趣的名字“B語言”。意思是將CPL語言煮乾,提煉出它的精華。並且他用B語言寫了第一個UNIX作業系統
而在1973年,B語言也給人“煮”了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,從而使C語言成為目前世界上流行最廣泛的高級程式設計語言。
1987年,隨著微型計算機的日益普及,出現了許多C語言版本。由於沒有統一的標準,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標準研究所(ANSI)為C語言制定了一套ANSI標準,成為現行的C語言標準。C語言的主要特點,即經典的87 ANSIC。C語言發展迅速,而且成為最受歡迎的語言之一,主要因為它具有強大的功能。許多著名的系統軟體,如DBASE III PLUS、DBASE IV 都是由C語言編寫的。用C語言加上一些彙編語言子程式,就更能顯示C語言的優勢了。
1990年,國際化標準組織ISO(Intrernational StandardOrganization)接受了87 ANSI C為ISO C的標準(ISO9899-1990)。1994年,ISO修訂了C語言的標準。目前流行的C語言編譯系統大多是以ANSI C為基礎進行開發的,但不同版本的C編譯系統所實現的語言功能和語法規則略有差別。

特點

1. C語言是高級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像彙編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。
2.C語言是結構式語言。結構式語言的顯著特點是代碼及數據的分隔化,即程式的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程式層次清晰,便於使用、維護以及調試。C語言是以函式形式提供給用戶的,這些函式可方便的調用,並具有多種循環、條件語句控制程式流向,從而使程式完全結構化。
3.C語言功能齊全。具有各種各樣的數據類型,並引入了指針概念,可使程式效率更高。而且計算功能、邏輯判斷功能也比較強大。
4. C語言適用範圍大。適合於多種作業系統,如Windows、DOS、UNIXLINUX等;也適用於多種機型。C語言對編寫需要硬體進行操作的場合,明顯優於其它高級語言,有一些大型套用軟體也是用C語言編寫的。

優點

1、簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程式書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像彙編語言一樣對位元組和地址進行操作,而這三者是計算機最基本的工作單元。
2、運算符豐富
C語言的運算符包含的範圍很廣泛,共有34種運算符。C語言把括弧、賦值強制類型轉換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3、數據類型豐富
C語言的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型共用體類型等。能用來實現各種複雜的數據結構的運算。並引入了指針概念,使程式效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
4、是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化,即程式的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程式層次清晰,便於使用、維護以及調試。C語言是以函式形式提供給用戶的,這些函式可方便的調用,並具有多種循環、條件語句控制程式流向,從而使程式完全結構化。
5、語法限制不太嚴格,程式設計自由度大
雖然C語言也是強類型語言,但它的語法比較靈活,允許程式編寫者有較大的自由度。
6、允許直接訪問物理地址,對硬體進行操作
由於C語言允許直接訪問物理地址,可以直接對硬體進行操作,因此它既具有高級語言的功能,又具有低級語言的許多功能,能夠像彙編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可用來寫系統軟體。
7、生成目標代碼質量高,程式執行效率高
一般只比彙編程式生成的目標代碼效率低10%~20%。
8、適用範圍大,可移植性好
C語言有一個突出的優點就是適合於多種作業系統,如DOSUNIX、windows 98.windows NT;也適用於多種機型。C語言具有強大的繪圖能力,可移植性好,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫,它也是數值計算的高級語言。

缺點

1.C語言的缺點主要表現在數據的封裝性上,這一點使得C在數據的安全性上有很大缺陷,這也是C和C++的一大區別。
2.C語言的語法限制不太嚴格,對變數的類型約束不嚴格,影響程式的安全性,對數組下標越界不作檢查等。從套用的角度,C語言比其他高級語言較難掌握。

常用編譯器

有Microsoft Visual C++Borland C++,WatcomC++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,WatcomC++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,Turbo C,Dev-C++,C-Freewin-tc 等等......

C語言的結構化設計

C語言每個階段的處理都比較容易使人理解。它採用自頂向下, 逐步細化,模組化設計,結構化編碼的方法來保證完成程式。

自頂向下逐步細化

通過自頂向下逐步細化可以使C語言代碼的出錯率降低,更能提高C語言程式的執行效率,它能使一個具體的問題抽象化再加以注釋方便人們的理解。

模組化設計

它把一個複雜的問題進行了模組化,使每個模組的功能更簡潔,更單一,模組在語言中可通過函式實現。 例如貪吃蛇遊戲的設計可分為六個模組。遊戲開始時,固定蛇身的長度,其位置任意。
(1) 蛇頭撞到自身和周圍框線時遊戲結束,重新開始時撞到食物蛇身長度增加一個單位。
(2) 吃到一定長度或時間停止為通關。
(3) 可以通過設定蛇的運動速度加快遊戲的進度。
(4) 可以使用外部設備如鍵盤及手柄控制蛇的運動方向如果不控 制蛇則按當前方向運動。
(5) 設定顯示遊戲的級別及分數。
這些模組可以通過C語言程式設計中的函式及代碼完成。

結構化編碼

設計好結構化算法之後,還要進行結構化編碼,將其用設計好的算法用具體的程式設計語言來表示,得到結構化程式。

C語言程式設計中遇到的障礙

C語言的套用範圍很廣,也很方便,能夠適應大多數的程式設計,也為學習者學習其他軟體提供了很大的幫助作用,但是在具體套用過程中還是出現了很多問題。

時間中斷

計算機控制系統是一個精密的控制系統,尤其注重時效性,必須要在規定時間之內完成多項規定任務,這就對計時有了很嚴格的要求。所以傳統的時鐘法難以滿足需要,在C語言程式設計過程中我們一般都用ICH進行計時,準確而且能適應編程過程中的各種突髮狀況。在實際操作過程中,計算機控制系統很有可能會出現信號中斷的現象,或者由於工作人員失誤指令可能會出現錯誤,一旦操作失誤或者出現各種突發情況都有可能會導致計算機的當機,影響整個程式設計的進程。在這個時候,C語言就可以很好地應對和解決,可以通過仿真對計算機進行浮點運算處理,通俗意思也就是說時間中斷會受到圖形、浮點運算的影響,而且一定程度上會受到很大的限制。

漢字顯示及數組輸入

計算機控制系統在一定程度上對C語言程式設計有輔助作用,一般都是通過構建函式的形式來輔助C語言完成漢字處理的,但是並不能完全實現自動化,還是需要我們自己 來設定起始點、顏色、漢字型檔以及背景色等基本內容,有了這些,函式才能成功將數據進行轉換,也才能對字元進行漢字識別。但是函式畢竟是一個固定的公式或者程式,不可能對所有字元串都能進行轉換和識別,如果語言比較複雜或者表達不直接就很難識別出來,另一方面,程式的固定記憶體本身也是有限的,一旦字元串比較大就難以存儲,也給C語言程式設計帶來了很多問題。

混合編程

在計算機控制系統的運行過程中,很多時候後台可利用的時間是有限的要受到控制的,所以程式設計師經常會用C語言來進行混合編程,這樣能夠很好的縮短設計時間,也能更好地提高工作效率。但是,一旦涉及到混合編程,問題就比較複雜,需要程式設計師設計出更多、更複雜、更能適應程式設計的函式模型,這對程式設計師的 工作無疑增加了很大的難度。

相關詞條

熱門詞條

聯絡我們