C程序設(shè)計(jì)教程課件第1章_第1頁
C程序設(shè)計(jì)教程課件第1章_第2頁
C程序設(shè)計(jì)教程課件第1章_第3頁
C程序設(shè)計(jì)教程課件第1章_第4頁
C程序設(shè)計(jì)教程課件第1章_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1程序設(shè)計(jì)和C語言第章計(jì)算機(jī)程序可以被計(jì)算機(jī)理解并執(zhí)行的基本操作命令。指令與計(jì)算機(jī)系統(tǒng)操作有關(guān)的計(jì)算機(jī)程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù)。軟件一組計(jì)算機(jī)能識(shí)別和執(zhí)行的指令。一個(gè)特定的指令序列用來完成一定的功能。程序計(jì)算機(jī)語言機(jī)器語言計(jì)算機(jī)能直接識(shí)別和接受的二進(jìn)制代碼稱為機(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)程序。B87F01BB210203D8B81F042BC3MOVAX383MOVBX545ADDBXAXMOVAX1055SUBAXBXS=1055-(383+545)高級(jí)語言的發(fā)展010203非結(jié)構(gòu)化的語言規(guī)定:程序必須由具有良好特性的基本結(jié)構(gòu)(順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu))構(gòu)成,程序中的流程不允許隨意跳轉(zhuǎn),程序總是由上而下順序執(zhí)行各個(gè)基本結(jié)構(gòu)。特點(diǎn):程序結(jié)構(gòu)清晰,易于編寫、閱讀和維護(hù)。面向?qū)ο蟮恼Z言結(jié)構(gòu)化語言C語言的發(fā)展D.M.Ritchie1972—1973年間,美國貝爾實(shí)驗(yàn)室的D.M.Ritchie在B語言的基礎(chǔ)上設(shè)計(jì)出了C語言。最初的C語言只是為描述和實(shí)現(xiàn)UNIX操作系統(tǒng)提供一種工作語言而設(shè)計(jì)的。隨著UNIX的日益廣泛使用,C語言也迅速得到推廣。1978年以后,C語言先后移植到大、中、小和微型計(jì)算機(jī)上。C語言便很快風(fēng)靡全世界,成為世界上應(yīng)用最廣泛的程序設(shè)計(jì)高級(jí)語言。以UNIX第7版中的C語言編譯程序?yàn)榛A(chǔ),1978年,BrianW.Kernighan和DennisM.Ritchie合著了影響深遠(yuǎn)的名著TheCProgrammingLanguage,這本書中介紹的C語言成為后來廣泛使用的C語言版本的基礎(chǔ),它是實(shí)際上第一個(gè)C語言標(biāo)準(zhǔn)。1983年,美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI),根據(jù)C語言問世以來各種版本對(duì)C語言的發(fā)展和擴(kuò)充,制定了第一個(gè)C語言標(biāo)準(zhǔn)草案(’83ANSIC)。1989年,ANSI公布了一個(gè)完整的C語言標(biāo)準(zhǔn)——ANSIX3.159—1989(常稱為ANSIC或C89)。1990年,國際標(biāo)準(zhǔn)化組織ISO(InternationalStandardOrganization)接受C89作為國際標(biāo)準(zhǔn)ISO/IEC9899:1990,它和ANSI的C89基本上是相同的。1999年,ISO又對(duì)C語言標(biāo)準(zhǔn)進(jìn)行了修訂,在基本保留原來的C語言特征的基礎(chǔ)上,針對(duì)應(yīng)用的需要,增加了一些功能,尤其是C++中的一些功能,并在2001年和2004年先后進(jìn)行了兩次技術(shù)修正,它被稱為C99,C99是C89的擴(kuò)充。目前由不同軟件公司所提供的一些C語言編譯系統(tǒng)并未完全實(shí)現(xiàn)C99建議的功能,它們多以C89為基礎(chǔ)開發(fā)。C語言的特點(diǎn)語言簡潔、緊湊,使用方便、靈活0102030405060708C語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大運(yùn)算符豐富數(shù)據(jù)類型豐富具有結(jié)構(gòu)化的控制語句用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化C語言是完全模塊化和結(jié)構(gòu)化的語言生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高程序可移植性好允許直接訪問物理地址能進(jìn)行位(bit)操作能實(shí)現(xiàn)匯編語言的大部分功能可以直接對(duì)硬件進(jìn)行操作因此C語言既具有高級(jí)語言的功能,又具有低級(jí)語言的許多功能,可用來編寫系統(tǒng)軟件最簡單的C語言程序【例1.1】要求在屏幕上輸出:ThisisaCprogram.解題思路:在主函數(shù)中用printf函數(shù)原樣輸出以上文字。#include<stdio.h>

//這是編譯預(yù)處理指令intmain()

//定義主函數(shù){

//函數(shù)開始的標(biāo)志

printf("ThisisaCprogram.\n"); //輸出所指定的一行信息

return0; //函數(shù)執(zhí)行完畢時(shí)返回函數(shù)值0}

//函數(shù)結(jié)束的標(biāo)志最簡單的C語言程序#include<stdio.h>

//這是編譯預(yù)處理指令intmain()

//定義主函數(shù){

//函數(shù)開始的標(biāo)志

printf("ThisisaCprogram.\n"); //輸出所指定的一行信息

return0; //函數(shù)執(zhí)行完畢時(shí)返回函數(shù)值0}

//函數(shù)結(jié)束的標(biāo)志程序分析main是函數(shù)的名字,表示“主函數(shù)”;每一個(gè)C語言程序都必須有一個(gè)main函數(shù)。main前面的int表示此函數(shù)的類型是int類型(整型),即在執(zhí)行主函數(shù)后會(huì)得到一個(gè)值(即函數(shù)值),其值為整型。return0;的作用是當(dāng)main函數(shù)執(zhí)行結(jié)束前將整數(shù)0作為函數(shù)值,返回到調(diào)用函數(shù)處。函數(shù)體由花括號(hào){}括起來。最簡單的C語言程序#include<stdio.h>

//這是編譯預(yù)處理指令intmain()

//定義主函數(shù){

//函數(shù)開始的標(biāo)志

printf("ThisisaCprogram.\n"); //輸出所指定的一行信息

return0; //函數(shù)執(zhí)行完畢時(shí)返回函數(shù)值0}

//函數(shù)結(jié)束的標(biāo)志程序分析printf是C編譯系統(tǒng)提供的函數(shù)庫中的輸出函數(shù)(詳見第4章)。printf函數(shù)中雙引號(hào)內(nèi)的字符串″ThisisaCprogram.″按原樣輸出。\n是換行符,即在輸出″ThisisaCprogram.″后,顯示屏上的光標(biāo)位置移到下一行的開頭。每個(gè)語句最后都有一個(gè)分號(hào),表示語句結(jié)束。最簡單的C語言程序#include<stdio.h>

//這是編譯預(yù)處理指令intmain()

//定義主函數(shù){

//函數(shù)開始的標(biāo)志

printf("ThisisaCprogram.\n"); //輸出所指定的一行信息

return0; //函數(shù)執(zhí)行完畢時(shí)返回函數(shù)值0}

//函數(shù)結(jié)束的標(biāo)志程序分析在使用函數(shù)庫中的輸入輸出函數(shù)時(shí),編譯系統(tǒng)要求程序提供有關(guān)此函數(shù)的信息,程序第1行“#include<stdio.h>”的作用就是用來提供這些信息的。stdio.h是系統(tǒng)提供的一個(gè)文件名,stdio是standardinput&output的縮寫,文件后綴.h的意思是頭文件(headerfile),因?yàn)檫@些文件都是放在程序各文件模塊的開頭的。輸入輸出函數(shù)的相關(guān)信息已事先放在stdio.h文件中。最簡單的C語言程序#include<stdio.h>

//這是編譯預(yù)處理指令intmain()

//定義主函數(shù){

//函數(shù)開始的標(biāo)志

printf("ThisisaCprogram.\n"); //輸出所指定的一行信息

return0; //函數(shù)執(zhí)行完畢時(shí)返回函數(shù)值0}

//函數(shù)結(jié)束的標(biāo)志程序分析//表示從此處到本行結(jié)束是“注釋”,用來對(duì)程序有關(guān)部分進(jìn)行必要的說明。在寫C程序時(shí)應(yīng)當(dāng)多用注釋,以方便自己和別人理解程序各部分的作用。在程序進(jìn)行預(yù)編譯處理時(shí)將每個(gè)注釋替換為一個(gè)空格,因此在編譯時(shí)注釋部分不產(chǎn)生目標(biāo)代碼,注釋對(duì)運(yùn)行不起作用。注釋只是給人看的,而不是讓計(jì)算機(jī)執(zhí)行的。注釋這種注釋可以單獨(dú)占一行,也可以出現(xiàn)在一行中其他內(nèi)容的右側(cè)。此種注釋的范圍從//開始,以換行符結(jié)束。如果注釋內(nèi)容一行內(nèi)寫不下,可以用多個(gè)單行注釋。這種注釋可以包含多行內(nèi)容。它可以單獨(dú)占一行(在行開頭以/*開始,行末以*/結(jié)束),也可以包含多行。編譯系統(tǒng)在發(fā)現(xiàn)一個(gè)/*后,會(huì)開始找注釋結(jié)束符*/,把二者間的內(nèi)容作為注釋。以//開始的單行注釋以/*開始,以*/結(jié)束的塊式注釋注意:在字符串中的//和/*都不作為注釋的開始。而是作為字符串的一部分。//第一行注釋//繼續(xù)注釋/*一整塊都是注釋*/注釋#include<stdio.h>intmain() {printf("http://howdoyoudo!\n");return0;}#include<stdio.h>intmain() {printf("/*howdoyoudo!*/\n");return0;}最簡單的C語言程序【例1.2】求兩個(gè)整數(shù)之和解題思路:設(shè)置3個(gè)變量,a和b用來存放兩個(gè)整數(shù),sum用來存放和數(shù)。用賦值運(yùn)算符“=”把相加的結(jié)果傳送給sum。#include<stdio.h> //這是編譯預(yù)處理指令intmain() //定義主函數(shù){ //函數(shù)開始

inta,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("sumis%d\n",sum); //輸出結(jié)果

return0; //使函數(shù)返回值為0} //函數(shù)結(jié)束最簡單的C語言程序#include<stdio.h> //這是編譯預(yù)處理指令intmain() //定義主函數(shù){ //函數(shù)開始

inta,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("sumis%d\n",sum); //輸出結(jié)果

return0; //使函數(shù)返回值為0} //函數(shù)結(jié)束程序分析printf("sumis%d\n",sum);printf函數(shù)圓括號(hào)內(nèi)有兩個(gè)參數(shù)。第一個(gè)參數(shù)是雙引號(hào)中的內(nèi)容sumis%d\n,它是輸出格式字符串,作用是輸出用戶希望輸出的字符和輸出的格式。其中sumis是用戶希望輸出的字符,%d是指定的輸出格式,d表示用“十進(jìn)制整數(shù)”形式輸出。圓括號(hào)內(nèi)第二個(gè)參數(shù)sum表示要輸出變量sum的值。在執(zhí)行printf函數(shù)時(shí),將sum變量的值(以十進(jìn)制整數(shù)表示)取代雙引號(hào)中的%d。printf("sumis%d\n",sum);輸出時(shí)用sum的值取代%d最簡單的C語言程序【例1.3】求兩個(gè)整數(shù)中的較大者解題思路:用一個(gè)函數(shù)來實(shí)現(xiàn)求兩個(gè)整數(shù)中的較大者。在主函數(shù)中調(diào)用此函數(shù)并輸出結(jié)果。#include<stdio.h>//主函數(shù)intmain() //定義主函數(shù){ //主函數(shù)體開始

intmax(intx,inty); //對(duì)被調(diào)用函數(shù)max的聲明

inta,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的值

return0; //返回函數(shù)值為0} //主函數(shù)體結(jié)束//求兩個(gè)整數(shù)中的較大者的max函數(shù)intmax(intx,inty) //定義max函數(shù),函數(shù)值為整型,形式參數(shù)x和y為整型{ intz; //max函數(shù)中的聲明部分,定義本函數(shù)中用到的變量z為整型 if(x>y)z=x; //若x>y成立,將x的值賦給變量z elsez=y; //否則(即x>y不成立),將y的值賦給變量z return(z); //將z的值作為max函數(shù)值,返回到調(diào)用max函數(shù)的位置}最簡單的C語言程序#include<stdio.h>//主函數(shù)intmain() //定義主函數(shù){ //主函數(shù)體開始

intmax(intx,inty); //對(duì)被調(diào)用函數(shù)max的聲明

inta,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的值

return0; //返回函數(shù)值為0}//主函數(shù)體結(jié)束//求兩個(gè)整數(shù)中的較大者的max函數(shù)intmax(intx,inty) //定義max函數(shù),函數(shù)值為整型,形式參數(shù)x和y為整型{ intz; //max函數(shù)中的聲明部分,定義本函數(shù)中用到的變量z為整型 if(x>y)z=x; //若x>y成立,將x的值賦給變量z elsez=y; //否則(即x>y不成立),將y的值賦給變量z return(z); //將z的值作為max函數(shù)值,返回到調(diào)用max函數(shù)的位置}程序分析本程序包括兩個(gè)函數(shù):①主函數(shù)main;②被調(diào)用的函數(shù)max。max函數(shù)的作用是將x和y中較大者的值賦給變量z,最后通過return語句將z的值作為max的函數(shù)值返回給調(diào)用max函數(shù)的主函數(shù)。scanf是輸入函數(shù)的名字(scanf和printf都是C的標(biāo)準(zhǔn)輸入輸出函數(shù))。該scanf函數(shù)的作用是輸入變量a和b的值。max(a,b)調(diào)用max函數(shù)。在調(diào)用時(shí)將a和b作為max函數(shù)的實(shí)際參數(shù)的值分別傳送給max函數(shù)中的形式參數(shù)x和y。最簡單的C語言程序#include<stdio.h>//主函數(shù)intmain() //定義主函數(shù){ //主函數(shù)體開始

intmax(intx,inty); //對(duì)被調(diào)用函數(shù)max的聲明

inta,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的值

return0; //返回函數(shù)值為0}//主函數(shù)體結(jié)束//求兩個(gè)整數(shù)中的較大者的max函數(shù)intmax(intx,inty) //定義max函數(shù),函數(shù)值為整型,形式參數(shù)x和y為整型{ intz; //max函數(shù)中的聲明部分,定義本函數(shù)中用到的變量z為整型 if(x>y)z=x; //若x>y成立,將x的值賦給變量z elsez=y; //否則(即x>y不成立),將y的值賦給變量z return(z); //將z的值作為max函數(shù)值,返回到調(diào)用max函數(shù)的位置}注意:本例程序中兩個(gè)函數(shù)都有return語句,請注意它們的異同。兩個(gè)函數(shù)都定義為整型,都有函數(shù)值,都需要用return語句為函數(shù)指定返回值。main函數(shù)中的return語句指定的返回值一般為0。max函數(shù)的返回值是max函數(shù)中求出的兩數(shù)中的最大值z,只有通過return語句才能把求出的z值作為函數(shù)的值并返回調(diào)用它的main函數(shù)中。C語言程序的結(jié)構(gòu)一個(gè)程序由一個(gè)或多個(gè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論