【回顧】C程序設(shè)計(jì)第一章筆記
C程序設(shè)計(jì)(譚浩強(qiáng)第五版)第一章筆記

1.計(jì)算機(jī)程序
指令:可以被計(jì)算機(jī)理解并執(zhí)行的基本操作命令。
程序:一組計(jì)算機(jī)能識(shí)別和執(zhí)行的指令。一個(gè)特定的指令序列用來完成一定的功能。
軟件:與計(jì)算機(jī)系統(tǒng)操作有關(guān)的計(jì)算機(jī)程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù)。
2.計(jì)算機(jī)語言
機(jī)器語言:計(jì)算機(jī)能直接識(shí)別和接受的二進(jìn)制0,1代碼稱為機(jī)器指令。機(jī)器指令的集合就是該計(jì)算機(jī)的機(jī)器語言。特點(diǎn):難學(xué),難記,難檢查,難修改,難以推廣使用。依賴具體機(jī)器難以移植。
匯編語言:機(jī)器語言的符號(hào)化。用英文字母和數(shù)字表示指令的符號(hào)語言。特點(diǎn):相比機(jī)器語言簡單好記,但仍然難以普及。移植麻煩:匯編指令需通過匯編程序轉(zhuǎn)換為機(jī)器指令才能被計(jì)算機(jī)執(zhí)行。依賴具體機(jī)器難以移植。
高級(jí)語言:高級(jí)語言更接近于人們習(xí)慣使用的自然語言和數(shù)學(xué)語言。特點(diǎn):功能強(qiáng)大,不依賴于具體機(jī)器。用高級(jí)語言編寫的源程序需要通過編譯程序轉(zhuǎn)換為機(jī)器指令的目標(biāo)程序。
3.高級(jí)語言的發(fā)展 ??
》非結(jié)構(gòu)化的語言,比如fortran
》結(jié)構(gòu)化語言,比如c
》面向?qū)ο蟮恼Z言,比如java,c#,c++
4.C語言的發(fā)展
在B語言的基礎(chǔ)上設(shè)計(jì)出了C語言。
1972年——2004年發(fā)展歷程具體見書中。
5.C語言的8大特點(diǎn)
(1). 語言簡潔、緊湊,使用方便、靈活
(2).運(yùn)算符豐富
(3). 數(shù)據(jù)類型豐富
(4).具有結(jié)構(gòu)化的控制語句,用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化。C語言是完全模塊化和結(jié)構(gòu)化的語言
(5).語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大
(6).允許直接訪問物理地址。能進(jìn)行位(bit)操作,能實(shí)現(xiàn)匯編語言的大部分功能,可以直接對(duì)硬件進(jìn)行操作
(7).程序可移植性好
(8).生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高
回顧我們第一章學(xué)習(xí)的三個(gè)C語言程序
【例1.1】要求在屏幕上輸出:This is a C program.
#include <stdio.h> //這是編譯預(yù)處理指令
int main() //定義主函數(shù)?
{ //函數(shù)開始的標(biāo)志?
? ? printf("This is a C program.\n"); //輸出所指定的一行信息?
? ? return 0; //函數(shù)執(zhí)行完畢時(shí)返回函數(shù)值0
} //函數(shù)結(jié)束的標(biāo)志
【例1.2】求兩個(gè)整數(shù)之和
#include <stdio.h> //這是編譯預(yù)處理指令?
int main( ) //定義主函數(shù)
{ //函數(shù)開始?
? ? int a,b,sum; //本行是程序的聲明部分,定義a,b,sum為整型變量
? ? a=123; //對(duì)變量a賦值
? ? b=456; //對(duì)變量b賦值?
? ? sum=a+b; //進(jìn)行a+b的運(yùn)算,并把結(jié)果存放在變量sum中
? ? printf("sum is %d\n",sum); //輸出結(jié)果?
? ? return 0; //使函數(shù)返回值為0
} //函數(shù)結(jié)束
【例1.3】求兩個(gè)整數(shù)中的較大者
#include <stdio.h> ? ? ? ? ? ? ? ? ? ? ? ? ? ?//主函數(shù)
int main() //定義主函數(shù)
{ //主函數(shù)體開始
int max(int x,int y); //對(duì)被調(diào)用函數(shù)max的聲明
int a,b,c; //定義變量a,b,c
scanf("%d,%d",&a,&b); //輸入變量a和b的值
c=max(a,b); //調(diào)用max函數(shù),將得到的值賦給c
printf("max=%d\n",c); //輸出c的值
return 0; //返回函數(shù)值為0
} //主函數(shù)體結(jié)束
//求兩個(gè)整數(shù)中的較大者的max函數(shù)
int max(int x,int y) //定義max函數(shù),函數(shù)值為整型, 形式參數(shù)x和y為整型?
{
int z; //max函數(shù)中的聲明部分,定義本函數(shù)中用到的變量z為整型
if(x>y) z=x; //若x>y成立,將x的值賦給變量z
else z=y; //否則(即x>y不成立),將y的值賦給變量z
return(z); //將z的值作為max函數(shù)值,返回到調(diào)用max函數(shù)的位置
}
第一章完!