天天看點

C語言簡介與第一個C語言程式

一、C語言産生的背景

C語言的出現與作業系統Unix是分不開的。Unix是1969年由美國貝爾實驗室的K. Thompson和D. M. Ritchie兩人用彙編語言編寫,它存在許多不足,是以,需要一種新的語言重新編寫Unix。

A(Algol)語言 出現于1960年,是一種面向問題的進階語言,它離硬體比較遠,不宜用來編寫系統程式。---》CPL語言 1963年由劍橋大學推出,它比A語言更接近硬體,但規模較大,難以實作。---》BCPL語言 1967年由劍橋大學推出,它對CPL語言做了較大的簡化。---》B語言 1970年由美國貝爾實驗室對BCPL進一步簡化,其特點是簡單且非常接近硬體。---》

C語言 1972年至1973,貝爾實驗室的D. M. Ritchie在B語言的基礎上設計出了C語言。C語言既保持了BCPL語言和B語言的優點(精練,接近硬體),又克服了它們的缺點(過于簡單,無資料類型等)。

1973,K. Thompson和D. M. Ritchie兩人再次合作,将Unix系統的90%内容用C語言改寫。 1977年出現了不依賴于具體機器的C語言編譯文本,使C移植到其他機器更容易,進而推動了Unix在各種機器上的實作;而Unix的日益廣泛使用也推動了C語言的發展。

二、C語言标準及常用的版本

(1)、1978年Brian W.Kernighan和Dnnis M.Ritchie合著了《The C Programming Language》一書,成為後來廣泛使用的C語言基礎,成為标準C。

(2)、1983年美國國家标準協會(ANSI)制定了C語言的新标準,稱為ANSI C。

(3)、1987年ANSI又公布了新标準,并于1990年被國際标準化組織ISO接受成為ISO C的标準。 常用的C語言版本:TURBO C ,BORLAND C,QUICK C,MICROSOFT C等。

三、C語言的特點

(1)、語言簡潔、緊湊、靈活; 運算符豐富; 資料類型豐富;

(2)、具有結構化控制語句,便于實作程式的子產品化; 文法限制不太嚴格,程式設計***度大;

(3)、能夠直接通路實體部件,能實作彙編語言的大部分功能。既有進階語言的特點,又有低級語言的許多功能;

(4)、生成的目标代碼品質高,程式執行速度快 ;

(5)、可移植性好。

四、C語言的關鍵字

auto   break   case   char   const   continue   default   do   double   else   enum   extern   float   for   goto   if   int   long   register   return   short   signed   sizeof   static   struct   switch   typedef   unsigned   union   void   volatile   while

五、C語言的控制語句

 if( )~else~  for( )~   while( )~   do~while( )   continue   break   switch   goto   return

六、C語言的運算符

算術運算符:+ - * / % ++ --   關系運算符:< <= == > >= !=   邏輯運算符:! && ||   位運算符 :<< >> ~ | ^ &   指派運算符:=   及其擴充 條件運算符:?:

逗号運算符:,   指針運算符:* &   求位元組數 :sizeof   強制類型轉換:(類型)   分量運算符:. ->   下标運算符:[]   其它 :( ) -

七、C語言資料類型

C語言簡介與第一個C語言程式

八、第一個C程式

1 #include <stdio.h>//頭檔案
2 int main()//主函數
3 {
4   printf("Hello World!\n"); //輸出函數 
5   return 0;      
6 }      

(1)、C語言由一系列函數組成,這些函數中必須有一個且隻能有一個以main為名的函數,這個函數稱為主函數,整個程式從主函數開始執行。此程式隻有一個主函數而無其它函數。 (2)、程式第一行中的main為主函數的函數名,main後的一對小括号是函數的标志,不能省略。

(3)、第4行中的printf是c語言的格式輸出函數,它在螢幕上顯示出括号内雙引号之間的字元串,其中“\n”代表換行符。注意第4行末尾的分号,它是一個語句結束的标志。

(4)、第3行和第6行是一對大括弧,在這裡表示函數體的開始和結束,一個函數的所有執行語句都寫在函數體中。

 九、示例

(一)、求兩數之和。

#include <stdio.h>
int main()
{
  int i,j,sun;//定義了三個整形變量
  i = 10;//給變量i指派為10
  j = 20;/*給變量j指派為20*/
  sum = i + j;//将i+ j的和指派給sum
  printf("i + j = %d\n",sum);//列印sum的結果             
  return 0;  
}      

(1)、這個程式隻有一個主函數組成。

(2)、函數體包括多條語句,每條語句都以分号(;)作結束标志。

(3)、“=”是指派運算符,“%d”是格式字元串,說明變量sum的按十進制整數的形式輸出。

(4)、由“/*”與“*/”之間的内容構成C語言程式的注釋部分,//後面的内容也是注釋部分,注釋是寫給人看的而不是計算機看的;

(5)、用預處理指令#include可以包含有關檔案的資訊。

(二)、示例

1 #include <stdio.h>//頭檔案,預處理指令
 2 int fun(int i,int j)//自定義函數
 3 {   int  sum;
 4     sum=i+j;
 5     return(sum);
 6 }
 7 int main()//主函數
 8 {   
 9   int a,b,sum;
10   a=10;
11   b=24;
12   sum=fun(a,b);
13   printf(”sum= %d\n",sum);
14   return 0;        
15 }      

運作結果為34。

結構特點 程式由一個或多個函數組成;

每個函數完成特定的操作,每個程式必須有且隻能有一個主函數main();

一個函數有兩個部分 1、函數說明:包括函數名、函數類型、函數的參數數類型。 2、函數體:包括變量定義部分和執行部分;

程式執行從main開始,在main中結束,其它函數通過嵌套調用得以執行;

C程式由語句組成 語句的書寫格式很***,一行内可以寫多個語句,一個語句也可以分寫在多行上;

用“;”作為語句終止符 C語言本身沒有輸入輸出語句 用輸入庫函數scanf()和輸出庫函數printf()實作輸入輸出;

注釋 //,/* */為注釋,注釋不産生編譯代碼。

十、C語言程式開發步驟

編輯 ---》 編譯 ---》 連接配接 ---》 執行

程式代碼的錄入, 生成源程式*.c

文法分析查錯,翻譯 生成目标程式*.obj

與其它目标程式或庫 連結裝配,生成可執行 程式*.exe

源程式 目标程式 可執行程式
内容 程式設計語言 機器語言 機器語言
可執行 不可以 不可以 可以
檔案名字尾 .c .obj .exe

繼續閱讀