最新版課件c語言 (72)_第1頁
最新版課件c語言 (72)_第2頁
最新版課件c語言 (72)_第3頁
最新版課件c語言 (72)_第4頁
最新版課件c語言 (72)_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、授課時候安排授課時候安排學(xué)問回想、導(dǎo)入新學(xué)問回想、導(dǎo)入新課課, ,及本次課講授及本次課講授重點、難點講述重點、難點講述1010分鐘分鐘本次課內(nèi)容講解本次課內(nèi)容講解8585分種分種小結(jié)作業(yè)小結(jié)作業(yè)5 5分鐘分鐘授課講明授課講明 參考書籍參考書籍:C語言程序設(shè)計案例教程語言程序設(shè)計案例教程 人民郵電人民郵電出版社出版社 講授方式講授方式:多媒體講授多媒體講授 授課人授課人 :李鋒李鋒授課班級授課時候授課周節(jié)次授課內(nèi)容D05電氣12021.12.18第15周周一3-4節(jié)8.1-8.2D05電氣22021.12.18第15周周一1-2節(jié)重點、難點重點、難點自定義函數(shù)的定義形式;實參和形自定義函數(shù)的定義

2、形式;實參和形參的使用參的使用main()int x,y,z;scanf(%d%d,&x,&y);z=x+y;printf(sum=%d,z);getch();一樣做法main()int x,y,z;scanf(%d%d,&x,&y);z=sum(x,y);printf(sum=%d,z);getch();int sum(int n,int m) int w;w=n+m;return w;主函數(shù)子函數(shù)startend注:上面“信息類型”可省,需在下一行表明類型.觀看程序例似:float sub(int x,int y,int z)再似:float sub(voi

3、d)或:float sub()分號要不得;,都寫完全,再調(diào)程序. a=num2; printf(MAX= %d,a); 12121212形參是指針變量形參是指針變量時不再開發(fā)新的時不再開發(fā)新的信息單元信息單元,對形對形指標(biāo)據(jù)單元指標(biāo)據(jù)單元 的的操縱便是對實指操縱便是對實指標(biāo)據(jù)單元的操縱標(biāo)據(jù)單元的操縱,這種傳遞方式為這種傳遞方式為傳址傳址.12a調(diào)用前a0a112a調(diào)用a0a112xy21xy交流12a返回#include void swap2(int x,int y) int z; z=x; x=y; y=z;main() int a2=1,2; swap2(a0,a1); printf(a0

4、=%dna1=%dn,a0,a1);值傳遞12a調(diào)用前12ax調(diào)用21ax交流21a返回#include void swap2(int x) int z; z=x0; x0=x1; x1=z;main() int a2=1,2; swap2(a); printf(a0=%dna1=%dn,a0,a1);地址傳遞 #include void main() float score10 , av; int i; printf(Input 10 scores:n); for( i=0; i10; i+ ) scanf(%f, &scorei); av=average(score); print

5、f(Average is:%.2f, av); float average(float stu10) int i; float av,total=0; for( i=0; i10; i+ ) total += stui; av = total10; return av; 實參用數(shù)組名形參用數(shù)組定義, float stu .2109score562312.88stu 數(shù)組名指針作函數(shù)指標(biāo) 數(shù)組名作函數(shù)指標(biāo),是地址傳遞 數(shù)組名作函數(shù)指標(biāo),實介入形參的對應(yīng)關(guān)系實參形參數(shù)組名指針變量數(shù)組名指針變量數(shù)組名數(shù)組名指針變量指針變量例 將數(shù)組a中的n個整數(shù)按相反次序存放 ij 3 7 9 11 0 6 7 5

6、 4 20 1 2 3 4 5 6 7 8 9ijijijji11760594723實介入形參均用數(shù)組void inv(int x, int n) int t,i,j,m=(n-1)2; for(i=0;i=m;i+) j=n-1-i; t=xi; xi=xj; xj=t; main() int i,a10=3,7,9,11,0,6,7,5,4,2; inv(a,10); printf(The array has been reverted:n); for(i=0;i10;i+) printf(%d,ai); printf(n);m=4例 將數(shù)組a中的n個整數(shù)按相反次序存放 void inv(

7、int *x, int n) int t,*p,*i,*j,m=(n-1)2; i=x; j=x+n-1; p=x+m; for(;i=p;i+,j-) t=*i; *i=*j; *j=t; main() int i,a10=3,7,9,11,0,6,7,5,4,2; inv(a,10); printf(The array has been reverted:n); for(i=0;i10;i+) printf(%d,ai); printf(n);實參用數(shù)組,形參用指針變量37911067542a0a1a2a3a4a5a6a7a8a9xp=x+ma數(shù)組60711594723ijijijjiji

8、例 將數(shù)組a中的n個整數(shù)按相反次序存放 void inv(int *x, int n) int t,*i,*j,*p,m=(n-1)2; i=x; j=x+n-1; p=x+m; for(;i=p;i+,j-) t=*i; *i=*j; *j=t; main() int i,a10,*p=a; for(i=0;i10;i+,p+) scanf(%d,p); p=a; inv(p,10); printf(The array has been reverted:n); for(p=a;pa+10;p+) printf(%d,*p);實介入形參均用指針變量例 將數(shù)組a中的n個整數(shù)按相反次序存放 vo

9、id inv(int x, int n) int t,i,j,m=(n-1)2; for(i=0;i=m;i+) j=n-1-i; t=xi; xi=xj; xj=t; main() int i,a10,*p=a; for(i=0;i10;i+,p+) scanf(%d,p); p=a; inv(p,10); printf(The array has been reverted:n); for(p=arr;parr+10;p+) printf(%d ,*p);實參用指針變量,形參用數(shù)組9.1 變量的作用域及存儲特性 例 void f1( ) int t=2; a *= t; b = t; ma

10、in() int a, b; printf(“ Enter a,b:”); scanf(“%d,%d”, &a, &b); f1( ); * 調(diào)用函數(shù)f1( ) * printf (“a=%d,b=%d”, a, b); 編譯程序會提示犯錯: Undefined symbol a 和 Undefined symbol b .為啥?全局變量全局變量(外部變量外部變量)局部變量局部變量(內(nèi)部變量內(nèi)部變量)定義位置定義位置 函數(shù)體外函數(shù)體外函數(shù)體內(nèi)函數(shù)體內(nèi)作用域作用域從定義處到文件結(jié)束從定義處到文件結(jié)束從定義處到本函數(shù)結(jié)束從定義處到本函數(shù)結(jié)束舉例舉例全部在函數(shù)體外定義的全部在函數(shù)體外

11、定義的變量變量(1) 全部在函數(shù)體內(nèi)定義的變量(2)形式指標(biāo)注重注重與局部變量同名的操作與局部變量同名的操作差別函數(shù)中同名局部變差別函數(shù)中同名局部變量互不干擾量互不干擾9.2 變量的作用域1.變量按作用域:分為全局變量和局部變量2.區(qū)不:例程序#include int a,b; *a,b為全局變量*void f1( ) int t1,t2; t1 = a * 2; t2 = b * 3; b = 100; printf (“t1=%d,t2=%dn”, t1, t2); main() a=2; b=4; f1( ); printf (“a=%d,b=%d”, a, b); 程序輸出結(jié)論為程序輸

12、出結(jié)論為: t1=4,t2=12 a=2,b=100 將程序改為:#include int a=2,b=4; *a,b為全局變量*void f1( ) int t1,t2; t1 = a * 2; t2 = b * 3; b = 100; printf (“t1=%d,t2=%dn”, t1, t2); main() int b=4; f1( ); printf (“a=%d,b=%d”, a, b); 程序輸出結(jié)論為程序輸出結(jié)論為: t1=4,t2=12 a=2, b=4 結(jié)論結(jié)論:全局變量與局部全局變量與局部變量同名時變量同名時,局部變量的局部變量的作用域屏蔽全局變量作用域屏蔽全局變量9.

13、3 變量的存儲特性1.變量按存在時候分:靜態(tài)變量,動態(tài)變量靜態(tài)存儲變量:生活期為程序履行的整個環(huán)節(jié),在該環(huán)節(jié)中占有固定的存儲空間,也稱永世存儲.動態(tài)存儲變量:只生活在某一段時候內(nèi).例似:函數(shù)的形參、函數(shù)體或分程序中定義的變量,只有當(dāng)程序進(jìn)入該函數(shù)或分程序時才安排存儲空間,函數(shù)分程序履行完后,變量的存儲空間又被釋放.2. 變量屬性:信息類型,存儲特性完整的變量定義: 存儲特性 信息類型 變量名;1) auto型有形式指標(biāo)、函數(shù)內(nèi)變量、分程序變量.進(jìn)入程序自動安排內(nèi)存,不恒久占用內(nèi)存.2) static 型 局部靜態(tài)變量 全局靜態(tài)變量恒久占用內(nèi)存自動型自動型 auto靜態(tài)型靜態(tài)型 static寄存

14、器型寄存器型 register外部型外部型 extern例f(int a)int b=0; static int c=3; b+;c+; printf(“%5d%5d%5d”,a,b,c); return(a+b+c);main() int a=2,k; for(k=0;k3;k+) printf(“%5dn”,f(a);(看L4_11)3) register型 將使用次數(shù)高的變量定義為register型,能夠提高運行速度.寄存器變量只限于整型、字符型、指針型的局部變量寄存器變量只限于整型、字符型、指針型的局部變量.寄存器變量是動態(tài)變量寄存器變量是動態(tài)變量,僅許可講明兩個寄存器變量僅許可講明兩個寄存器變量.例似例似: register int d; register char c; 信息內(nèi)存 運算器 運算器 結(jié)論 操縱器 信息寄存器寄存器4) extern型 引用: extern 類型 變量名;似果某個模塊文件中要用到另一個模塊文件中的全局變量,要用extern講明. 例似: 程序模塊file1.c中定義了全局變量 int s ; 另一程序file2.c的函數(shù)fun1()需要使用那個變量s.在file2.c的fun1()對s履行外部變量講明: fun1() extern int s ; *表明變

溫馨提示

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

評論

0/150

提交評論