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
這個簡單的程序實現了比較兩個數的大小並返回較大的數的功能。
自學C/C++不易,此路應攜手前行。
如果你想跟着小編一起學編程的話!
可以來我的C語言/C++編程學習交流俱樂部,【點擊進入】!
還有(源碼,零基礎教程,項目實戰教學視頻),歡迎初學者和正在進階中的小夥伴們!