《c程序設計》---黃淮學院精品課程建設平臺_第1頁
已閱讀1頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、《 C語言程序設計案例教程》,Huanghuai University Department of Information Engineering,主講:傅 豐黃淮學院信息工程學院,北京大學出版社,汪新民、劉若慧主編,自我介紹,傅豐1969年4月19日戍時生O型血、白羊座工作經(jīng)歷:從教21年專業(yè):數(shù)學—計算機Tel:2853011QQ:10840899Email:fu_feng@sina.com,,一、課程的基本要

2、求: 1、掌握C語言的語法規(guī)則,數(shù)據(jù)類型;掌握C程序的結構。 2、學習運用高級語言進行程序設計的思想和方法。 3、熟悉并掌握一些基本算法和程序設計技術,并能用C語言解決實際問題。二、課程設置目的: 本課程是計算機專業(yè)學生的基礎課,是一門理論性和實踐性較強的課程。 通過本課程的學習掌握傳統(tǒng)的結構化程序設計的一般方法,培養(yǎng)嚴謹?shù)某绦蛟O計思想和較強的動手能力,并以此為基礎逐漸掌握復雜軟件的設計和開發(fā)手段,為后序課程的學

3、習打下扎實的理論和實踐基礎。,課程簡介,1、C語言程序設計,何欽銘、顏暉主編,高等教育出版社2、C語言程序設計,譚浩強主編,清華大學出版社3、C語言程序設計教程 ,蘇小紅等著,高等教育出版社    4、《C語言程序設計實習指導與習題集》 ,譚浩強等編著,清華大學出版社5、《C語言程序設計》,夏寬理編著,復旦大學出版社,參考資料,開復學生網(wǎng): 給中國學生的第五封信——你有選擇的權利

4、 (主題思想:積級主動),記憶語法、思考算法。讀懂程序、循序漸進。記好筆記、上機調試。,學習方法,第一章 C語言概述,§1 程序設計語言概述§2 用庫函數(shù)組裝C程序§3 自己設計C函數(shù)課后作業(yè)上機任務,§1 程序設計語言,一、計算機語言的種類,機器語言,匯編語言,高級語言,面向機器,面向過程,面向對象,,,,二、程序翻譯方式,解 釋,編

5、 譯,邊翻譯邊執(zhí)行不產(chǎn)生目標代碼,先翻譯后執(zhí)行產(chǎn)生目標代碼,,,,Basic,,C、C++,,例如:,X=1Y=2Print X+Y,main( ){int x , y; x=1; y=2; printf(“%d,%d\n”,x,y);},Basic源程序,C源程序,01代碼,01代碼,01代碼,01代碼,執(zhí)行,執(zhí)行,執(zhí)行,,,,解 釋,,,,,,…,01代碼,執(zhí)行,,,,編 譯,目標程序,三、程序語言的運行環(huán)境

6、,裸機,操作系統(tǒng),語言編譯系統(tǒng),用戶編寫的源程序,四、C語言編譯系統(tǒng),Visual C++6.0,可視化開發(fā)環(huán)境Windows界面編譯C++程序,,五、C語言程序的調試、運行步驟,§2 用庫函數(shù)組裝C程序,例1:顯示一行信息。,main( ){ printf (“This is a C program\n”);},main為函數(shù)名,表示主函數(shù),( )內為函數(shù)參數(shù),無參時()不能省。每個函數(shù)完成獨立的功能。一個程

7、序必須有一個主函數(shù),程序從主函數(shù)開始執(zhí)行。,{ }內為函數(shù)體,printf是標準函數(shù)庫中的輸出函數(shù),在屏幕上顯示指定內容?!啊北硎咀址丛瓨虞敵?。\n為轉義字符(換行符)。,一、C語言程序是由函數(shù)組成的。,說明部分,執(zhí)行部分,由若干語句組成,語句以“;”號結束,定義函數(shù)用到的數(shù)據(jù)類型(可以沒有說明部分),,,運行結果:This is a C program,main( ){ printf(“Programming \n”);

8、 printf(“is fun.\n”);},運行結果:Programmingis fun.,舉例:對比程序,理解\n的作用。,main( ){ printf(“Prog”); printf(“ramming i”); printf(“s fun.\n”);},運行結果:Programming is fun.,main函數(shù)調用printf函數(shù),main,printf,,例2:計算正弦值。,#include

9、“math.h”main( ) { float x; /*說明x為實型變量*/ x=sin(0.19199); /*調用sin函數(shù)*/ printf(“%f \n”, x);},二、編譯系統(tǒng)的庫文件提供的庫函數(shù),運行結果:0.190813,%f為格式字符 ,此處用“”后對應的變量值代替。%f實型、%d十進制整數(shù)、%c字符、 %s字符串、%o八進制整數(shù),,

10、P352附錄IV,math.h為數(shù)學庫函數(shù)頭文件。用庫函數(shù)前應用預處理命令聲明(末尾不帶;號),說明部分,執(zhí)行部分,/*與*/之間為注釋,不編譯不執(zhí)行,庫函數(shù)頭文件:數(shù)學:math.h字符:ctype.h字符串:string.h輸入輸出:stdio.h動態(tài)分配:malloc.h,main調用sin和printf函數(shù),1補充舉例,2說明,,,補充:舉例說明格式字符的用法,#include main( ) /*兩數(shù)之

11、和*/{ int a,b,sum; /*聲明部分*/ a=123; b=456; /*賦值語句*/ sum=a+b; printf(“sum is %d\n”,sum);},運行結果:sum is 579,思考輸出結果:printf(“%d+%d=%d\n”,a,b,sum);,,例:求兩數(shù)之和。,返回,1、一個函數(shù)可以調用另一個函數(shù),但任何函數(shù)不能 調用main函數(shù)。,#in

12、clude “math.h”main( ) { printf(“%f \n”, sin(0.19199) );},main調用printf函數(shù),printf又調用sin函數(shù),,,說明:,main,printf,,sin,,一行內可寫多條語句,一個語句可能分寫在多行上; 每條語句最后必須有一個;號。 可以用/* */做注釋,增加程序的可讀性。 區(qū)分大小寫。如:sum和Sum為兩個不同的變量。 建議采用內縮對齊格式書寫

13、,使程序清晰。 一個函數(shù)可以沒有聲明部分,甚至可以兩者都沒有。如: void dump() { 空函數(shù),什么也不做,但合法 },2、C程序的書寫格式:,三、課堂練習:,P15:6、求函數(shù)值:log90、e2.5678、,#include “math.h”main( ) { float x; x=log10(90); prin

14、tf(“%f \n”, x);},x=exp(2.5678);,,x=sqrt(5);,§3 自定義函數(shù),標準庫函數(shù),用戶自定義函數(shù),用預處理命令: #include “頭文件名”聲明后便可使用,需用戶自己定義函數(shù)后才能使用,,,,函 數(shù),若在函數(shù)庫中找不到所需函數(shù)時,需要自己定義函數(shù),例3:求三個數(shù)的平均值。,main( ) /*主函數(shù)*/{ float a, b, c, ave; a=3.5

15、; b=4.6; c=7.9; ave=average(a, b, c); printf(“average= %f\n”, ave);},/*自定義函數(shù)*/float average(float x, float y, float z){ float aver; aver=(x+y+z)/3; return(aver);},,,數(shù)據(jù)類型:float 實型(單精度)int 整型char 字符型

16、double 實型(雙精度),,舊風格:float average(x, y, z)float x, y,z;,函數(shù)首部,函數(shù)體,,,函數(shù)值類型 函數(shù)名(變量類型 變量名,…){ 說明部分;/*聲明用到的量*/ 執(zhí)行部分;/*return一般在最后,可沒有*/},兩種放置順序:,float average(float x, float y, float z) /*自定義函數(shù)*/{ float ave

17、r; aver=(x+y+z)/3; return(aver);} main( ) /*主函數(shù)*/{ float a, b, c, ave; a=3.5; b=4.6; c=7.9; ave=average(a, b, c); /*函數(shù)調用*/ printf(“average= %f\n”, ave);},先定義后使用的順序:,main(

18、) /*主函數(shù)*/{ float average(float x, float y, float z); /*調用聲明*/ float a, b, c, ave; a=3.5; b=4.6; c=7.9; ave=average(a, b, c); /*函數(shù)調用*/ printf(“average= %f\n”, ave);} float avera

19、ge(float x, float y, float z) /*自定義函數(shù)*/{ float aver; aver=(x+y+z)/3; return(aver);},定義在后的順序: (需在調用函數(shù)的說明部分寫調用聲明語句),例4:求任意三個數(shù)的平均值。,main( ) /*主函數(shù)*/{ float average(float x, float y, float z);

20、/*調用聲明*/ float a, b, c, ave; a=3.5; b=4.6; c=7.9; ave=average(a, b, c); /*函數(shù)調用*/ printf(“average= %f\n”, ave);} float average(float x, float y, float z) /*自定義函數(shù)*/{ float aver;

21、 aver=(x+y+z)/3; return(aver);},scanf(“%f, %f, %f”, &x, &y, &z);,,,運行結果:輸入3個實數(shù),以逗號分開,如:3.5, 4.6, 7.9average=5.333333,演示運行,注意地址運算符&和格式字符%f間的逗號,例5:求兩數(shù)中較大者。(教材有錯:兩實數(shù)不能比較大小),main( ) /*主函數(shù)*/{

22、 int a,b,c; scanf(“%d,%d”,&a,&b);/*鍵盤輸入*/ if (a>b) printf(“max= %d\n”,a); else printf(“max=%d\n”,b);},運行結果:輸入:-10,5max=5.000000,方法一,不使用自定義函數(shù),main( ) /*主函數(shù)*/{ void max(i

23、nt x, int y); /*調用聲明*/ int a,b,c; scanf(“%d,%d”,&a,&b);/*鍵盤輸入*/ max(a,b);},void max(int x,int y){ if (x>y) printf(“max=%d\n”, x); else printf(“max=%d\n”, y);},,,運行結果:輸入

24、:-10,5max=5.00000,方法二,自定義函數(shù)無返回值,main( ) /*主函數(shù)*/{ int max(int x, int y); /*調用聲明*/ int a,b,c; scanf(“%d,%d”,&a,&b);/*鍵盤輸入*/ c=max(a,b); printf(“max= %d\n”,c);},int max(int x,int y){

25、 int z; if (x>y) z=x; else z=y; return(z);},,,運行結果:輸入:-10,5max=5.000000,方法三,自定義函數(shù)有返回值,例6 (了解) :求1+2+3+…+10的值。,main( ) /*主函數(shù)*/{ int sum,i; sum=0; i=1; while (i<=10) {

26、 sum=sum+i; i=i+1; } printf(“%d\n”, sum);},運行結果:55,方法一,不使用自定義函數(shù),int f(int n){ int sum, i; sum=0; i=1; while (i<=n) { sum=sum+i; i=i+1; } return(sum);},,,運

27、行結果:55,方法二,使用自定義函數(shù),main( ) { int m,total; scanf(“%d”,&m); total=f(m); printf(“total=%d\n”, total);},課堂練習:,7、編寫一個求0~100之間全部偶數(shù)之和的程序,main( ) { int sum,i; sum=0; i=2; while (i<=100)

28、 { sum=sum+i; i=i+2; } printf(“%d\n”, sum);},運行結果:2550,等差數(shù)列前n項和公式:S=n(a1+an)/2=50(2+100)/2=2550,課堂練習:,7、求三個整數(shù)之和:(1)只用main函數(shù) (2)用求兩個整數(shù)之和的函數(shù)實現(xiàn),main( ) {

29、 int a, b, c, sum; scanf(“%d, %d,%d”, &a, &b, &c); sum=a+b+c; printf(“sum=%d\n”,sum);},printf(“%d+%d+%d=%d\n”,a,b,c,a+b+c);,,,1,課堂練習:,7、求三個整數(shù)之和:(1)只用main函數(shù)

30、 (2)用求兩個整數(shù)之和的函數(shù)實現(xiàn),main( ) /*主函數(shù)*/{ int a, b, c, sum; scanf(“%d, %d,%d”, &a, &b, &c); sum=two(two(a,b),c); printf(“sum=%d\n”,sum);},2,int two(int x,int y){ int z; z=x+y; ret

31、urn(z);},,,,,課堂練習:,7、編定寫一個程序從5個整數(shù)中找出最小的數(shù),main( ) { int a1,a2,a3,a4,a5,min; scanf(%d%d%d%d%d”,&a1,&a2,&a3,&a4,&a5); min=a1; if (a2<min) min=a2; if (a3<min) min=a3; i

32、f (a4<min) min=a4; if (a5<min) min=a5; printf(“min=%d\n”, min);},C程序是由函數(shù)構成的。 一個C程序包含且只能包含一個main函數(shù),它是整個程序的入口(無論放在何處)。被調用的函數(shù)可以是系統(tǒng)提供的庫函數(shù)(如:printf、scanf)也可以是用戶自己設計的函數(shù)(如前面的average)。編寫C程序就是編寫一個個函數(shù)。 一

33、個函數(shù)是由函數(shù)首部和函數(shù)體組成的。,函數(shù)首部,函數(shù)體,函數(shù),聲明部分,執(zhí)行部分,,,程序,,函數(shù),函數(shù),小結,定義用到的變量及對調用函數(shù)的聲明(帶“;”號),函數(shù)首部: 函數(shù)類型 函數(shù)名 參數(shù)類型 參數(shù)名 int max ( int x, int y) —— 不帶;號 函數(shù)體:函數(shù)首部下有多個{ }號,最外層的{ }中的部分為函數(shù)體。,,,,,

34、int max(int x,int y){ int z; if (x>y) z=x; else z=y; return(z);},函數(shù)首部,函數(shù)體,聲明部分,執(zhí)行部分,,,,,,,由多條語句組成,語句以;號結束,小結(續(xù)),課后作業(yè),課后作業(yè): 4、5、6(2)(3)(4)、7、8,要求:1、準備兩個作業(yè)本:實驗報告作業(yè)本、課后作業(yè)本。2、每章結束后交課后作業(yè)。3、每次上機結束前10分

溫馨提示

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

評論

0/150

提交評論