C語言入門系列之1.C語言概述和上機運行簡單C程序

一、C語言的發展過程

C語言是在70年代初問世的。
一九七八年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言,同時由B.W.Kernighan和D.M.Ritchit合著了著名的《THE C PROGRAMMING LANGUAGE》一書 ,通常簡稱爲《K&R》,也有人稱之爲 《K&R》標準
但是,在《K&R》中並沒有定義一個完整的C語言標準,後來由美國國家標準協會(American National Standards Institute)在此基礎上制定了一個C語言標準,於1983年發表,通常稱之爲ANSI C

二、當代最優秀的程序設計語言

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

三、C語言的特點

  • C語言簡潔、緊湊,使用方便、靈活。
    ANSIC一共只有32個關鍵字:

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

  • 9種控制語句,程序書寫自由,主要用小寫字母表示(C語言大小寫敏感),壓縮了一切不必要的成分。

  • 運算符豐富。
    共有34種運算符。C把括號、賦值、逗號等都作爲運算符處理,從而使C的運算類型很豐富,使用極爲靈活,可以實現其他高級語言難以實現的運算。

  • 數據結構類型豐富。

  • 具有結構化的控制語句。

  • 語法限制不太嚴格,程序設計自由度大。

  • C語言允許直接訪問物理地址,能進行位(bit)操作,可以嵌入彙編語言、實現彙編語言的大部分功能,還可以直接對硬件進行操作。因此有人把它稱爲中級語言。

  • 生成目標代碼質量高,程序執行效率高。

  • 與彙編語言相比,用C語言寫的程序可移植性好。
    但是,C語言對程序員要求也高,程序員用C寫程序會感到限制少、靈活性大,功能強,但較其他高級語言在學習上要困難一些。

四、面對過程和麪向對象的程序設計思想

  • 面向過程
    “面向過程”是一種以事件爲中心的編程思想。就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。
  • 面向對象
    “面向對象”(Object Oriented,簡稱OO)是一種以事物爲中心的編程思想。

面向對象的底層基礎還是面向過程

這個動作舉例來說明面向對象和麪向過程:
面向過程會將走這個動作分成幾個步驟:擡腿、向前邁出指定角度、向下放腿、身體前移、邁出另一隻腳…通過一系列的過程,進而實現整個功能;
而面向對象會將走封裝進一個對象,這個對象的一個實例裏有很多方法,包括擡腿、邁出、放腿等,通過調用方法來實現功能。

五、簡單的C程序

學習一門語言首先就是要向世界發出問候hello world,第一個C程序如下:

#include <stdio.h>

void main()
{
    printf("hello world!\n");
}

打印:

hello world!

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

再舉一個例子:

#include <math.h>
#include <stdio.h>

main()
{
    double x, s;
    printf("input a number:\n");
    scanf("%lf", &x);
    s = sin(x);
    printf("sin of %lf is %lf\n", x, s);
}

打印:

input a number:
1
sin of 1.000000 is 0.841471

程序執行說明:
include稱爲文件包含命令;
擴展名爲.h的文件稱爲頭文件;
定義兩個實數變量,以被後面程序使用打印顯示提示信息;
從鍵盤獲得一個實數x,求x的正弦,並把它賦給變量s;
顯示程序運算結果;
main函數結束。

再看一個稍複雜的例子:

#include <stdio.h>

int max(int a, int b);              /* 函數說明 */

main()  /* 主函數 */
{
    int x, y, z;            /* 變量說明 */
    int max(int a, int b);              /* 函數說明 */
    printf("input two numbers:\n"); 
    scanf("%d%d", &x, &y);          /* 輸入x、y值 */
    z = max(x, y);          /* 調用max函數 */
    printf("max num = %d", z);      /* 輸出 */
}

int max(int a, int b)       /* 定義max函數 */
{
    if(a > b) return a; else return b;             /* 把結果返回主調函數 */
}

打印:

input two numbers:
10 20
max num = 20

這個簡單的程序實現了比較兩個數的大小並返回較大的數的功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章