1. 程式人生 > >第1章C語言概述

第1章C語言概述

變量名 整數 輸出 一個 正整數 ray poi 形式 描述

 1 #include<stdio.h>  //編譯預處理命令 
 2 int factorial (int n);  //函數聲明 
 3 int main(void)  //主函數 
 4 {     
 5     int n;    //變量定義     
 6  scanf("%d",&n);  //輸入一個整數 
 7  printf("%d\n",factorial(n));    //調用函數計算階乘 
 8  return 0; 
 9 } 
10 int factorial (int n)  //定義計算n!的函數
11 {     
12     int i,fact=1
; 13 for(i=1;i<=n;i++) //註意i<n與i<=n 14 fact=fact*i; 15 return fact; 16 }
#include<stdio.h>  //編譯預處理命令 
int factorial (int n);  //函數聲明 
int main(void)  //主函數 
{     
    int n;    //變量定義     
 scanf("%d",&n);  //輸入一個整數 
 printf("%d\n",factorial(n));    //
調用函數計算階乘 return 0; } int factorial (int n) //定義計算n!的函數 { int i,fact=1; for(i=1;i<=n;i++) //註意i<n與i<=n fact=fact*i; return fact; }

第1章C語言概述

1.1一個C語言程序

【例1-1】求階乘問題。輸入一個正整數n,輸出n!

 #include<stdio.h>  //編譯預處理命令 
int factorial (int n); //函數聲明
int main(void) //主函數
{
int n; //變量定義
scanf("%d",&n); //輸入一個整數
printf("%d\n",factorial(n)); //調用函數計算階乘
return 0;
}
int factorial (int n) //定義計算n!的函數
{
int i,fact=1;
for(i=1;i<=n;i++) //註意i<n與i<=n
fact=fact*i;
return fact;
}

1.2程序與程序設計語言

程序設計語言提供表示數據與處理數據的功能,要按照語法規則來編寫程序;

1.2.1程序與指令

程序是0、1組成的序列,該指令碼序列能夠被計算機所識別;

1.2.2程序設計語言的功能

1.數據表達

數據類型就是對某些具有共同特點的數據集合的總稱,包括數據類型的定義域及運算操作;

程序設計語言提供基本數據類型以及構造復雜類型(數組、結構等);

基本數據類型:整型、實型、字符型等,兩種主要形式:常量(Constant)和變量(Variable);

可以構造新的具體數據類型:數組(Array)、結構(Structure)、文件(File)、指針(Pointer)等;

2.流程控制(語句級控制)

在結構化程序設計方法中,將復雜程序劃分為若幹個相互獨立的模塊(語句、段程序、函數);

三種基本控制結構:順序、分支(選擇結構)和循環

(1)順序控制結構:按照自然順序執行各個模塊;

(2)分支控制結構:判斷條件是否滿足,選擇執行相應的模塊;

(3)循環控制結構:檢測是否符合條件,重復執行相應的模塊;

3.單位級控制

函數的定義與調用控制:將程序劃分為子程序,由函數實現各個功能,直接調用函數,可以傳遞零個或多個參數,函數被調用的結果將返回給調用函數;

1.2.3程序設計語言的語法

1."單詞"(字符序列組合)

(1)標識符:由字母、數字和下劃線組成,其中第一個字符必須是字母或下劃線;

系統預定義標識符(保留字、關鍵字),主要與數據類型和語句有關;

用戶自定義標識符,包括程序中定義的變量名、數據類型名、函數名和符號常量名;

(2)常量:也有數據類型,如整型常量、實型常量;

(3)運算符:表示對各種數據類型數據對象的運算,有運算優先級;

(4)分隔符:如#、[、]、;、(、)等;

2.C語言的主要語法單位

(1)表達式:由運算符與運算對象的組合,可含多種數據類型的運算符;

(2)變量定義:類型名 變量名; 如 int i;

(3)語句:程序最基本的執行單位,主要有表達式語句、分支語句、循環語句、復合語句四類;

(4)函數定義與調用

a.函數定義:編寫一系列語句來規定其所完成的功能,主要有函數頭和函數體。其中,函數頭包括函數名、函數返回值類型、參數類型,函數體則是一個程序模塊,規定了函數所具有的功能;

b.函數調用:通過傳遞函數的參數並執行函數定義所規定的程序過程,以實現相應功能;

例如:函數max求兩個整數(作為參數)的較大值(作為返回值)

 int max(int a,int b)  //函數頭:函數類型 函數名(函數參數列表)
{ //函數體開始
int x; //函數中要用到的臨時變量
if(a>b) x=a; //判斷a、b的大小,將x賦值為較大者
else x=b;
return x; //結束函數調用並返回x
} //函數體結束`

(5)輸入與輸出:調用系統庫函數printf()和scanf();

1.2.4程序的編譯與編程環境

1.程序的編譯

由編譯程序(編譯器)對原程序進行詞法分析,然後進行語法與語義分析,最後生成可執行的代碼;

2.編程環境

集成開發環境(IDE)是用於提供程序開發環境的應用程序,包括代碼編輯器、編譯器、調試器和圖形用戶界面等工具,集成了代碼編寫功能、分析功能、編譯功能、調試功能等一體化的開發軟件服務套。

1.3C語言的發展歷史與特點

(1)C語言是一種結構化語言

函數是C語言程序的基本模塊,程序的許多操作可有不同功能的函數組裝而成;以及完整的控制語句和構造數據類型,使程序流程與數據描述也結構化;

(2)C語言語句簡潔緊湊,使用方便靈活

只有32個保留字和9種控制語句,可用宏定義和文件包含等預處理語句;

(3)C語言程序易於移植

C語言將與硬件有關的因素從語言主體中分離出來,通過庫函數或其他實用程序來實現;

(4)C語言具有強大的處理能力

結構、指針、地址、位運算等功能,具有匯編語言的特點;

(5)生成的目標代碼質量高,運行效率高

1.4實現問題求解的過程

問題:求1~100間所有偶數的和。

1.問題分析與算法設計

求累加和的基本方法:設置一個變量並初始化為0,在指定範圍內尋找滿足條件的數做累加 sum=sum+i;

這個累加過程要反復做,用循環控制語句來實現,在循環過程中:

a.需要判斷 i 是否滿足問題要求的條件(偶數):分支控制語句;

b.需要對循環次數做控制,通過 i 值的變化進行控制:將 i 初始化為1,每循環一次加1,直到100結束;

2.編輯源程序sum.c

 #include<stdio.h>
int main(void)
{
int i,sum=0; //變量定義並初始化
for(i=1;i<=100;i++) //累加1~100的偶數
if(i%2==0) sum=sum+i; //判斷是否為偶數
printf("%d",sum); //按十進制整數輸出
return 0;
}

3.編譯生成目標程序sum.obj

通過編程環境提供的庫函數進行連接,形成可執行程序sum.exe

4.運行與調試:設置斷點並觀察變量;

第1章C語言概述