2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

4、 (主題思想:積級(jí)主動(dòng)),記憶語(yǔ)法、思考算法。讀懂程序、循序漸進(jìn)。記好筆記、上機(jī)調(diào)試。,學(xué)習(xí)方法,第一章 C語(yǔ)言概述,§1 程序設(shè)計(jì)語(yǔ)言概述§2 用庫(kù)函數(shù)組裝C程序§3 自己設(shè)計(jì)C函數(shù)課后作業(yè)上機(jī)任務(wù),§1 程序設(shè)計(jì)語(yǔ)言,一、計(jì)算機(jī)語(yǔ)言的種類,機(jī)器語(yǔ)言,匯編語(yǔ)言,高級(jí)語(yǔ)言,面向機(jī)器,面向過(guò)程,面向?qū)ο?,,,二、程序翻譯方式,解 釋,編

5、 譯,邊翻譯邊執(zhí)行不產(chǎn)生目標(biāo)代碼,先翻譯后執(zhí)行產(chǎn)生目標(biāo)代碼,,,,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í)行,,,,編 譯,目標(biāo)程序,三、程序語(yǔ)言的運(yùn)行環(huán)境

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

7、序必須有一個(gè)主函數(shù),程序從主函數(shù)開始執(zhí)行。,{ }內(nèi)為函數(shù)體,printf是標(biāo)準(zhǔn)函數(shù)庫(kù)中的輸出函數(shù),在屏幕上顯示指定內(nèi)容。“”表示字符串,按原樣輸出。\n為轉(zhuǎn)義字符(換行符)。,一、C語(yǔ)言程序是由函數(shù)組成的。,說(shuō)明部分,執(zhí)行部分,由若干語(yǔ)句組成,語(yǔ)句以“;”號(hào)結(jié)束,定義函數(shù)用到的數(shù)據(jù)類型(可以沒(méi)有說(shuō)明部分),,,運(yùn)行結(jié)果:This is a C program,main( ){ printf(“Programming \n”);

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

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

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

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

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

13、,使程序清晰。 一個(gè)函數(shù)可以沒(méi)有聲明部分,甚至可以兩者都沒(méi)有。如: void dump() { 空函數(shù),什么也不做,但合法 },2、C程序的書寫格式:,三、課堂練習(xí):,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ù),標(biāo)準(zhǔn)庫(kù)函數(shù),用戶自定義函數(shù),用預(yù)處理命令: #include “頭文件名”聲明后便可使用,需用戶自己定義函數(shù)后才能使用,,,,函 數(shù),若在函數(shù)庫(kù)中找不到所需函數(shù)時(shí),需要自己定義函數(shù),例3:求三個(gè)數(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 實(shí)型(單精度)int 整型char 字符型

16、double 實(shí)型(雙精度),,舊風(fēng)格:float average(x, y, z)float x, y,z;,函數(shù)首部,函數(shù)體,,,函數(shù)值類型 函數(shù)名(變量類型 變量名,…){ 說(shuō)明部分;/*聲明用到的量*/ 執(zhí)行部分;/*return一般在最后,可沒(méi)有*/},兩種放置順序:,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ù)調(diào)用*/ printf(“average= %f\n”, ave);},先定義后使用的順序:,main(

18、) /*主函數(shù)*/{ float average(float x, float y, float z); /*調(diào)用聲明*/ float a, b, c, ave; a=3.5; b=4.6; c=7.9; ave=average(a, b, c); /*函數(shù)調(diào)用*/ 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);},定義在后的順序: (需在調(diào)用函數(shù)的說(shuō)明部分寫調(diào)用聲明語(yǔ)句),例4:求任意三個(gè)數(shù)的平均值。,main( ) /*主函數(shù)*/{ float average(float x, float y, float z);

20、/*調(diào)用聲明*/ float a, b, c, ave; a=3.5; b=4.6; c=7.9; ave=average(a, b, c); /*函數(shù)調(diào)用*/ 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);,,,運(yùn)行結(jié)果:輸入3個(gè)實(shí)數(shù),以逗號(hào)分開,如:3.5, 4.6, 7.9average=5.333333,演示運(yùn)行,注意地址運(yùn)算符&和格式字符%f間的逗號(hào),例5:求兩數(shù)中較大者。(教材有錯(cuò):兩實(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);},運(yùn)行結(jié)果:輸入:-10,5max=5.000000,方法一,不使用自定義函數(shù),main( ) /*主函數(shù)*/{ void max(i

23、nt x, int y); /*調(diào)用聲明*/ 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);},,,運(yùn)行結(jié)果:輸入

24、:-10,5max=5.00000,方法二,自定義函數(shù)無(wú)返回值,main( ) /*主函數(shù)*/{ int max(int x, int y); /*調(diào)用聲明*/ 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);},,,運(yùn)行結(jié)果:輸入:-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);},運(yùn)行結(jié)果:55,方法一,不使用自定義函數(shù),int f(int n){ int sum, i; sum=0; i=1; while (i<=n) { sum=sum+i; i=i+1; } return(sum);},,,運(yùn)

27、行結(jié)果:55,方法二,使用自定義函數(shù),main( ) { int m,total; scanf(“%d”,&m); total=f(m); printf(“total=%d\n”, total);},課堂練習(xí):,7、編寫一個(gè)求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);},運(yùn)行結(jié)果:2550,等差數(shù)列前n項(xiàng)和公式:S=n(a1+an)/2=50(2+100)/2=2550,課堂練習(xí):,7、求三個(gè)整數(shù)之和:(1)只用main函數(shù) (2)用求兩個(gè)整數(shù)之和的函數(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,課堂練習(xí):,7、求三個(gè)整數(shù)之和:(1)只用main函數(shù)

30、 (2)用求兩個(gè)整數(shù)之和的函數(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);},,,,,課堂練習(xí):,7、編定寫一個(gè)程序從5個(gè)整數(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ù)構(gòu)成的。 一個(gè)C程序包含且只能包含一個(gè)main函數(shù),它是整個(gè)程序的入口(無(wú)論放在何處)。被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫(kù)函數(shù)(如:printf、scanf)也可以是用戶自己設(shè)計(jì)的函數(shù)(如前面的average)。編寫C程序就是編寫一個(gè)個(gè)函數(shù)。 一

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論