c語言程序設計

c語言程序設計

計算機程序設計語言
C語言是一種計算機程序設計語言。它既有高級語言的特點,又具有彙編語言的特點[1]。它可以作為系統設計語言,編寫工作系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。C語言是一種十分強大的語言,可以進行多種方式進行程序的設計,它是一種很有特色的高級語言通過若幹個函數組成,它具備構成程序設計的3種基本結構順序,選擇和循環結構。C語言編輯簡潔明了,運算符豐富且功能強大還有編譯預處理功能。此語言的移植性好不同的處理器用不同的編譯器編譯指令達到移植的效果。
  • 中文名:C語言程序設計
  • 外文名:C language programming
  • 所屬學科:
  • 原型:ALGOL 60語言
  • 語言類型:高級語言
  • 特 點:結構化設計

簡介

随着科技的發展和人工智能時代的來臨,計算機中程序設計具有越來越重要的地位。C語言程序設計是程序設計者的入門語言,它使學習者更能容易理解。當然它也能設計出一些高級的應用軟件和系統軟件。C語言程序設計還能幫助我們學習其它計算機語言如我們熟悉的java語言vb語言的設計,因此C語言是初學者必備的語言。

馮.諾依曼在1945年提出了現代計算機的若幹思想,被後人稱為馮.諾依曼思想,這是計算機發展史上的裡程碑。自1945年至今大多采用其結構,因此馮.諾依曼被稱為計算機之父。他的體系結構計算機由運算器,控制器,存儲器,輸入設備,輸出設備五大部件構成。C語言擁有一套完整的理論體系經過了漫長的發展曆史,在編程語言中具有舉足輕重的地位。

C語言是一種十分強大的語言,可以進行多種方式進行程序的設計,它是一種很有特色的高級語言通過若幹個函數組成,它具備構成程序設計的3種基本結構順序,選擇和循環結構。C語言編輯簡潔明了,運算符豐富且功能強大還有編譯預處理功能。此語言的移植性好不同的處理器用不同的編譯器編譯指令達到移植的效果。

發展曆程

C語言的原型ALGOL60語言(也稱為A語言)。

1963年,劍橋大學将ALGOL60語言發展成為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編譯系統所實現的語言功能和語法規則略有差别。

特點

C語言普适性最強的一種計算機程序編輯語言,它不僅可以發揮出高級編程語言的功用,還具有彙編語言的優點,因此相對于其它編程語言,它具有自己獨特的特點。具體體現在以下三個方面:

其一,廣泛性。C語言的運算範圍的大小直接決定了其優劣性。C語言中包含了34種運算符,因此運算範圍要超出許多其它語言,此外其運算結果的表達形式也十分豐富。此外,C語言包含了字符型、指針型等多種數據結構形式,因此,更為龐大的數據結構運算它也可以應付。

其二,簡潔性。9類控制語句和32個KEYWORDS是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語言有一個突出的優點就是适合于多種操作系統,如DOS、UNIX、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-Free,win-tc等等......

結構化

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

自頂向下逐步細化

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

模塊化設計

它把一個複雜的問題進行了模塊化,使每個模塊的功能更簡潔,更單一,模塊在語言中可通過函數實現。例如貪吃蛇遊戲的設計可分為六個模塊。遊戲開始時,固定蛇身的長度,其位置任意。

(1) 蛇頭撞到自身和周圍邊框時遊戲結束,重新開始時撞到食物蛇身長度增加一個單位。

(2) 吃到一定長度或時間停止為通關。

(3) 可以通過設置蛇的運動速度加快遊戲的進度。

(4) 可以使用外部設備如鍵盤及手柄控制蛇的運動方向如果不控制蛇則按當前方向運動。

(5) 設置顯示遊戲的級别及分數。

這些模塊可以通過C語言程序設計中的函數及代碼完成。

結構化編碼

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

障礙

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

時間中斷

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

漢字顯示及數組輸入

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

混合編程

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

相關詞條

相關搜索

其它詞條