一、什么是計算機程序?
所謂程序就是一組計算機能識別和執行的指令。計算機的一切操作都是由程序控制的,本質是程序的機器,程序和指令是計算機系統最基本的概念。
二、什么是計算機語言?
人和計算機交流信息要解決語言問題,需要創造一種計算機和人都能識別的語言,這就是計算機語言。
1、計算機發展的階段
機器語言:
計算機只能識別和接收由0和1組成的指令。如:0100001
計算機能直接識別和接受的二進制代碼稱為機器指令。
機器指令的集合就是該計算機的機器語言。
符號語言:
即匯編語言。把符號語言的指令轉換為機器指令,轉換過程稱為代真或匯編,因此,符號語言又稱為符號匯編語言或匯編語言。
由於它“貼近”計算機,離計算機“很近”稱為計算機低級語言。
高級語言:
第一個高級語言——FORTRAN語言,這種語言功能很強,而且不依賴於具體機器,用它寫出的程序對任何型號的計算機都適用(或只須做很少的該公),它與具體
機器距離較遠,故稱為計算機高級語言。
用一種稱為編譯程序的軟件把高級語言寫的程序稱為源程序。轉換為機器指令的程序稱為目標程序,然后讓計算機執行機器指令程序,最后得到結果。
三、C語言的發展及其特點
C語言是國際上廣泛流行的計算機高級語言。
1、C語言的由來
CPL——>BCPL——>B語言——>C語言
BCPL:1967年英國劍橋大學的Martin Richards推出沒有類型的BCPL語言;
B語言:1970年美國AT&T貝爾實驗室Ken Thompson設計出B語言取BCPL第一個字母;
C語言:1972--1973年間,美國AT&T貝爾實驗室的D.M.Ritchie在B語言基礎上設計出C語言取BCPL第二個字母。
2、C語言的特點
(1)語言簡潔,緊湊,使用方便靈活;
(2)運算符豐富;
(3)數據類型豐富;
(4)具有結構化的控制語句;
(5)語法限制不太嚴格,程序設計自由度大;
(6)C語言允許直接訪問物理地址,能進行bit操作,能實現匯編語言大部分功能,可以直接對硬件進行控制;
(7)用C語言編寫的程序可移植性好;
(8)生成目標代碼質量高,程序執行效率高。
四、最簡單的C語言程序
#include<stdio.h> //這是編譯預處理指令 int main() //定義主函數 { //函數開始的標志 printf("Hello World"); //輸出所指定的信息 return 0; //函數執行完畢時返回函數值0 } //函數結束的標志
int main():C語言的一種聲明方式,表示主函數,是C語言約定的程序入口,main前面的int表示函數的返回值類型是int型(基本整型);
printf:輸出函數;
{}:函數體;
return 0:返回的函數值是給調用main函數的操作系統用的,用來檢測函數是否正常執行,對應main函數的返回值類型;
stdio:standard input 和 output;
.h:頭文件,header file;
stdio.h:系統提供的文件名。輸入輸出函數的相關信息事先放在stdio.h文件中;
#include:把這些信息調入供使用;
#include<stdio.h>:只要用到標准庫中的輸入輸出函數,應該在文件開頭寫上;
//:單行注釋;
/**/:塊注釋。
1、C語言的應用場景
(1)系統軟件;
(2)驅動;
(3)操作系統內核;
(4)嵌入式(單片機)開發;
(5)小程序。
2、C語言程序結構
(1)一個程序由一個或多個源程序文件組成。
預處理指令:如#include<stdio.h>。先由一個“預處理器”對預處理指令進行預處理。
對於#include<stdio.h>來說就是將stdio.h頭文件的內容讀進來放在#include指令行,取代了#include<stdio.h>。
全局聲明:在函數之外進行的數據聲明。
放在函數外面聲明的變量稱為全局變量反之局部變量。
函數定義:每個函數用來實現一定的功能。在調用這些函數時,會完成函數定義中指定的功能。
(2)函數是C程序的主要組成部分
程序幾乎全部的工作都是由各個函數分別完成的,函數是C程序的基本單位。編寫C程序的工作主要就是編寫一個個函數。
一個C語言程序是由一個或多個函數組成的,其中必須包含一個main函數(且只能有一個main函數)。
一個小程序只包含一個源程序文件,在一個源程序文件中包含若干個函數(其中有一個main函數)。
在進行編譯時是以源程序文件為對象進行的。在分別對各源程序文件(程序模塊)進行編譯並得到相應的目標程序后,再將這些目標程序連接成為一個統一的二進制的可執行程序。
(3)一個函數包括兩個部分
函數首部:例max函數首部:int函數類型 ,max函數名,(int函數參數類型 x函數參數名)
函數體:即函數首部下面的花括號內的部分。最外層花括號是函數體范圍。
函數體包括兩個部分:
聲明部分:定義在本函數中所用到的變量;int a,b,c;,對本函數所調用函數進行聲明,如:int max(int x,int y);
執行部分:由若干個語句組成,指定在函數中進行的操作。
(4)程序總是從main函數開始執行的
main函數可以放在程序最前頭,也可以放在程序最后,或在一些函數之前、另一些函數之后。
(5)程序中對計算機的操作是由函數中的C語句完成的
賦值、輸入輸出數據的操作都是由相應的C語句實現的。C程序書寫格式比較自由,一行可寫多個語句,一個語句可在多行寫。
(6)在每個數據聲明和語句的最后必須有一個分號
分號是C語句的必要組成部分。
(7)C語言本身不提供輸入輸出語句
輸入輸出語句是由庫函數來完成的。使程序具有可移植性。
(8)程序應當包含注釋
加上注釋,增加程序的可讀性
總結:
(1)C語言本身不提供輸入輸出語句,輸入輸出操作是由C標准函數庫中的函數實現的;
(2)C語言的算法可以有0個或多個輸入,但必須要有1個或多個輸出(必須要有輸出);
(3)C源文件(編譯)obj目標文件(連接)exe可執行文件
(4)一條語句 多行寫;多條語句,一行寫。