『壹』 什麼是c語言!
C語言是國際上廣泛流行的、很有發展前途的計算機高級語言。它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體。
早期的操作系統等系統軟體主要是用匯編語言編寫的(包括 UNIX操作系統在內)。由於匯編語言依賴於計算機硬體,程序的可讀性和可移植性都比較差。為了提高可讀性和可移植性,最好改用高級語言,但一般的高級語言難以實現匯編語言的某些功能(匯編語言可以直接對硬體進行操作),例如:對內存地址的操作、位操作等)。人們設想能否找到一種既具有一般高級語言特性,又具有低級語言特性的語言,集它們的優點於一身。於是,C語言就在這種情況下應運而生了。
C語言是在B語言的基礎上發展起來的,它的根源可以追溯到ALGOL 60。 1960年出現的ALGOL 60是一種面向問題的高級語言,它離硬體比較遠,不宜用來編寫系統程序。1963年英國的劍橋大學推出了CPL(CombinedProgram- ming Language)語言。CPL語言在ALGOL 60的基礎上接近了硬體一些,但規模比較大,難以實現。1967年英國劍橋大學的Matin Richards對 CPL語言作了簡化,推出了BCPL(Basic Combined Programming Language)語言。1970年美國貝爾實驗室的 Ken Thompson以 BCPL語言為基礎,又作了進一步簡化,設計出了很簡單的而且很接近硬體的 B語言( 取 BCPL的第一個字母),並用 B語言寫第一個UNIX操作系統,在PDP-7上實現。 1971年在PDP-11/20上實現了B語言,並寫了UNIX操作系統。但B語言過於簡單,功能有限。1972年至 1973年間,貝爾實驗室的 D.M.Ritchie在B語言的基礎上設計出了C語言(取 BCPL的第二個字母)。C語言既保持了BCPL和B語言的優點(精練、接近硬體),又克服了它們的缺點(過於簡單、數據無類型等)。 最初的C語言只是為描述和實現UNIX操作系統提供一種工作語言而設計的。1973年,K.Thom- pson和D.M.ritchie兩人合作把UNIX的90%以上用 C改寫(UNIX第5版。原來的 UNIX操作系統是1969年由美國的貝爾實驗室的 K.Thompson和D.M.Ritchie開發成功的,是用匯編語言寫的)。
後來,C語言多次作了改進,但主要還是在貝爾實驗室內部使用。直到1- 975年UNIX第6版公布後 ,C語言的突出優點才引起人們普遍注意。1977年出現了不依賴於具體機器的C語言編譯文本《可移植C語言編譯程序》,使C移植到其它機器時所做的工作大大簡化了,這也推動了UNIX操作系統迅速地在各種機器上實現。例如,VAX,AT&T等計算機系統都相繼開發了UNIX。隨著 UNIX的日益廣泛使用,C語言也迅速得到推廣。C語言和UNIX可以說是一對孿生兄弟,在發展過程中相輔相成。1978年以後,C語言已先後移植到大、中、小、微型機上,已獨立於UNIX和PDP了。現在C語言已風靡全世界,成為世界上應用最廣泛的幾種計算機語言之一。
以1978年發表的UNIX第7版中的C編譯程序為基礎,Brian W.Kernighan和 Dennis M.Ritchie(合稱K&R)合著了影響深遠了名著《The C Programming Lan- guage》,這本書中介紹的C語言成為後來廣泛使用的C語言版本的基礎,它被稱為標准C。1983年,美國國家標准化協會(ANSI)根據C語言問世以來各種版本對C的發展和擴充 ,制定了新的標准,稱為ANSI C。ANSI C比原來的標准C有了很大的發展。K&R在1988年修改了他們的經典著作《The C Progra- mming Language》 ,按照ANSI C的標准重新寫了該書。1987年,ANSI C又公布了新標准--87 ANSI C 。目前流行的C編譯系統都是以它為基礎的。
『貳』 為什麼C語言能進行對位(bit)操作 對位操作有什麼效果
當然可以對位進行操作。
一般來說,用位運算就是對位操作。位運算包括
^ 異或
| 位或
& 位與
~ 位求反
>> 右移位
<< 左移位
對位操作的好處是快,並且基本上和匯編一一對應,可以直接算出運算時間,計算速度。
很多要表達硬體計算,或者提高運算速度的時候,都會直接用位運算。
比如乘16,位運算就是左移4位等等。
另外一種是位域。
就是定義一種特殊的結構體,裡面的成員只有規定的幾位。
比如
struct instruction{
unsigned short sr:5;
unsigned short tr:5;
unsigned short op:6;
};
就定義了一個16bit指令的結構,其中
sr : tr : op
1-5 : 6-10 :11-16
然後就可以這樣操作
struct instruction mov_r1_r3 = {0x01, 0x03, 0x01};
那麼mov_r1_r3實際上等於0x0461
這樣編代碼一般是為了和硬體介面容易,完全的底層操作
實際代碼中極少出現,一般出現於與硬體的介面當中.
『叄』 c語言程序設計怎樣分析數據
你的問題問的太籠統了。
程序的靈魂—演算法
一個程序應包括:
對數據的描述:在程序中要指定數據的類型和數據的組織形式,即數據結構(data structure)。
對操作的描述:即操作步驟,也就是演算法(algorithm)。
Nikiklaus Wirth提出的公式:
數據結構+演算法=程序
教材認為:
程序=演算法+數據結構+程序設計方法+語言工具和環境
這4個方面是一個程序涉及人員所應具備的知識。
演算法的概念
做任何事情都有一定的步驟。為解決一個問題而採取的方法和步驟,就稱為演算法。
計算機演算法:計算機能夠執行指握的演算法。
計算機演算法可分為兩大類:
數值運算演算法:求解數值;
非數值運算演算法:事務管理領域。
簡單演算法蠢源舉例
【例】求1×2×3×4×5。
最原始方法:
步驟1:先求1×2,得到結果2。
步驟2:將步驟1得到的乘積2乘以3,得到結果6。
步驟3:將6再乘以4,得24。
步驟4:將24再乘以5,得120。
這樣的演算法雖然正確,但太繁。
改進的演算法:
S1: 使t=1
S2: 使i=2
S3: 使t×i, 乘積仍然放在在變數t中,可表示為t×i→t
S4: 使i的值+1,即i+1→i
S5: 如果i≤5, 返回重新執行步驟S3以及其後的S4和S5;否則,演算法結束。
如果計算100!只需將S5:若i≤5改成i≤100即可。
如果該求1×3×5×7×9×11,演算法也只需做很少的改動:
S1: 1→t
S2: 3→i
S3: t×i→t
S4: i+2→t
S5:若i≤11, 返回S3,否則,結束。
該演算法不僅正確,而且是計算機較好的演算法,因為計算機是高速運算的自動機器,實唯檔慶現循環輕而易舉。
思考:若將 S5寫成:S5:若i<11, 返回S3;否則,結束。
『肆』 編程——C語言與演算法
#請回答,你的年度知識點#
C語言是國際上廣泛使用的一種計算機語言,它適合作為系統描述語言,既可以用來編寫系統軟體,又可以用來編寫應用軟體。C語言從發布之日起就得到了廣泛傳播,為大多數程序員所接受,C語言使用率也一直在編程語言排行榜中穩居前三位,因此學習C語言前景也是非常可觀的。
一個程序通常包含演算法、數據結構、程序設計方法及語言工具和環境4個方面,其中,演算法是核心,演算法就是解決「做什麼」和「如何做」的問題。演算法與程序設計以及數據結構密切相關,是解決一個問題的完整的步驟描述,是解決問題的策略型雀、規則、方法,是求解特定問題的一組有限的操作序列。比如建造一棟樓之前,要先在圖紙上繪出其構造圖,演算法就是在編寫程序前先整理出基本思路。演算法的描述形式有很多種,如傳統流程圖、結構化流程圖及計算機程序語言等。
一個程序應該包括對數據的描述和對數據的操作。其中,對數據的描述是指在程序中要指定數據結構,即數據的類型和數據的組織形式;對數據的操作也就是對數據進行操作的步驟,即演算法。 著名的計算機科學家沃思(Nikiklaus Wirth)曾經提出過一個公式: 演算法+數據結構=程序 隨著時代的發展以及計算機技術的進步,這個公式已經不夠准確了。
實際上,一個程序還應該包括採用一種程序設計方法進行程序設計並用計算機語言描述,經常採用的是結構化的程序設計方法。
演算法一般可以分為兩大類,一類是解決科學與工程計算方面的演算法,如求解數值積分、微分方程、線性方程組和代數方程等,這卜並早類演算法稱為數值運算演算法;另一類是解決數據處理方面問題的演算法,稱為非數值運算演算法,如各種各樣的查找演算法、排序演算法以及遍歷演算法等。目前,計算機在非數值運算方面的應用遠遠超過了在數值運算方面的應用蔽譽。
『伍』 C語言是什麼
C語言是一種計算機程序設計語言。它既有高級語言的特點,又具有匯編語言的特點。它可以作為系統設計語言,編寫工作系統應用程序,也可以作為應用程序設計語言,編寫不
依賴計鋒蠢算機硬體的應用程序。因此,它的應用范圍廣泛。
C是結構式耐凳語言.結構式語言的顯著特點是代碼及數據的分隔化,
即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,
便於使用、維護以及調試。C
語言是以函數形式提供給用戶的,
這些函數可方便的調用,
並具有多種循環、條件語句控製程序流向,
從而使程序完全結構化。
C語言功能齊全C
語言具有各種各樣的數據類型,
並引入了指針概念,
可使程序效率更高。另外C
語言也具有強大的圖形功能,
支持多種顯示器和驅動器。而且計算功能、邏輯判斷功能也比較強大,
可以實現決策目的編游戲,編3D游戲,做資料庫,做聯眾世界,做聊天室,做PHOTOSHOP做FLASH,做3DMAX。
C語言適用范圍大C
語言還有一個突出的優點就是適合於多種操作系統,
如DOS、UNIX,也適用於多種機型。
C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它解釋型高級語言,有一些大型應用軟體也是用C語言編寫的。
C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維昌基旅,二維圖形和動畫。它是數值計算的高級語言。
常用的C語言IDE(集成開發環境)有Microsoft
Visual
C++,Borland
C++,Watcom
C++
,Borland
C++
,Borland
C++
Builder,Borland
C++
3.1
for
DOS,Watcom
C++
11.0
for
DOS,GNU
DJGPP
C++
,Lccwin32
C
Compiler
3.1,Microsoft
C,High
C,Turbo
C,Dev-C++,C-Free等等......
『陸』 什麼是c語言最基本成分,用它可以描述程序的流程式控制制對數據進行處理
一般來說,C語言不直接運用於軟體開發當中。
C語言是Combined Language(組合語言)的中英混合簡稱。是一種計算機程序設計語言。它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統設計語言,
編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。因此,它的應用范圍廣泛,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,具體應用比如單片機以及嵌入式系統開發。C語言是一種成功的系統描述語言,用C語言開發的UNIX操作系統就是一個成功的範例;同時C語言又是一種通用的程序設計語言,在國際上廣泛流行。世界上很多著名的計算公司都成功的開發了不同版本的C語言,很多優秀的應用程序也都使用C語言開發的,它是一種很有發展前途的高級程序設計語言。
1、 C是中級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C
語言可以像匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。
2、C是結構式語言。結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
3、C語言功能齊全。具有各種各樣的數據類型,並引入了指針概念,可使程序效率更高。另外C語言也具有強大的圖形功能,支持多種顯示器和驅動器。而且計算
功能、邏輯判斷功能也比較強大,可以實現決策目的的游戲。
4、 C語言適用范圍大。適合於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。 C語言對編寫需要硬體進行操作的場合,明顯優於其它解釋型高級語言,有一些大型應用軟體也是用C語言編寫的。 C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫。它是數值計算的高級語言。
5、C語言文件由數據序列組成,可以構成二進制文件或文本文件 常用的C語言IDE(集成開發環境)有Microsoft Visual C++,DevC++,Code::Blocks,Borland C++,Watcom C++ ,Borland C++ Builder,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc 等。