c程序基本結構_第1頁
c程序基本結構_第2頁
c程序基本結構_第3頁
c程序基本結構_第4頁
c程序基本結構_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1高級語言程序設計高級語言程序設計2課程前言(課程前言(4W) Why What How Then How3Why 程序設計思維訓練 后續(xù)專業(yè)課程需要 就業(yè)素養(yǎng)需要 實習技能需要 畢業(yè)論文選題4What 算法表示的一般方法 C程序設計的基礎知識 程序設計的常用技能、技巧 程序設計的基本訓練 是報考全國計算機等級考試二級、三級的基礎5How 課堂講授 分組學習 案例研習 講練結合 項目實訓 提交程序6Then How 算法表示的一般方法 C程序設計的基礎知識 程序設計的常用技能、技巧 能用編程解決一定難度的應用問題 獲得全國計算機等級考試二級C語言考證 考核要求:平時成績30考試7078C語言學

2、習網站:語言學習網站:910p 程序是什么?程序是什么? 程序是問題處理過程的程序是問題處理過程的步驟描述步驟描述。p程序設計:程序設計:用計算機語言來描述程序用計算機語言來描述程序。int a,b,c;scanf(“%d%d”,&a,&b);c=a+b;printf(“sum is%d.n”,c);11p 演示三個簡單程序,演示三個簡單程序,p 觀察觀察C程序結構程序結構【例【例1】向屏幕上輸出一句話:】向屏幕上輸出一句話: Hello,everyone!12主函數(shù)主函數(shù)#include void main( ) printf(“Hello every

3、one!n); 預處理命令預處理命令主函數(shù)主函數(shù)【例【例1】函數(shù)體函數(shù)體13#include void main( ) int a,b,c; scanf(“%d%d”,&a,&b); c=a+b; printf(“sum is %d.n”,c); 【例【例2】定義簡單變量,求計算結果】定義簡單變量,求計算結果14int max(int x,int y) int z; if(xy) z=x; else z=y; return z; main() int a,b,c; scanf(%d%d,&a,&b); c=max(a,b); printf(The max is: %dn,c);/* 用戶自定義

4、函數(shù)用戶自定義函數(shù) */【例【例3】定義用戶函數(shù),求兩個數(shù)的最大值】定義用戶函數(shù),求兩個數(shù)的最大值/* 主函數(shù)主函數(shù) */* 調用用戶自定義函數(shù)調用用戶自定義函數(shù) */15v C程序是由函數(shù)組成的。程序是由函數(shù)組成的。v 每個程序有且只有一個每個程序有且只有一個main()主函數(shù)。()主函數(shù)。v 用戶自定義的函數(shù)獨立于主函數(shù),位置位于主函用戶自定義的函數(shù)獨立于主函數(shù),位置位于主函數(shù)前后都可以。數(shù)前后都可以。C程序總是以程序總是以main()函數(shù)作為入()函數(shù)作為入口開始執(zhí)行,結束于口開始執(zhí)行,結束于main()的最后一條語句()的最后一條語句。v 每個函數(shù)都由函數(shù)首行信息和函數(shù)體構成。每個函數(shù)

5、都由函數(shù)首行信息和函數(shù)體構成。v 函數(shù)體首先書寫變量定義語句,然后是其它程序函數(shù)體首先書寫變量定義語句,然后是其它程序語句。語句。v 以以# 開始的預處理命令寫在整個程序開始之處。開始的預處理命令寫在整個程序開始之處。C程序框架結構程序框架結構【分析與總結】【分析與總結】16注意:注意:一個源程序存盤就是一個擴展名為一個源程序存盤就是一個擴展名為.C的文件的文件(Turbo C 或或 Borland C)。)。當使用當使用Visual C+等環(huán)境調試程序時,默認生等環(huán)境調試程序時,默認生成文件擴展名為成文件擴展名為.cpp,同時還自動生成一些其,同時還自動生成一些其它的附帶文件。本學期學習僅關

6、注它的附帶文件。本學期學習僅關注.cpp或或.c文件文件即可。即可。1718程序演示程序演示注意觀察:注意觀察: (提問)(提問)如何新建文件?如何輸入源程序?如何保存或命名?如何編譯源文件?如何組建和運行源文件?1. 如何查看結果?19VC環(huán)境操作總結環(huán)境操作總結文件新建C+source文件輸入源程序在右側的主窗口?保存:文件保存;或CtrlS編譯:組建編譯,或CtrlF7 信息提示窗口(下方)組建:F7;運行:CtrlF5查看結果:press any key to continue?20幾個基本概念幾個基本概念源程序:用源程序:用C語法描述的程序;存盤擴展語法描述的程序;存盤擴展名為名為.

7、C目標程序:經過編譯得到的二進制代碼。目標程序:經過編譯得到的二進制代碼。擴展名為擴展名為.OBJ可執(zhí)行程序:目標程序與庫函數(shù)連接后的可執(zhí)行程序:目標程序與庫函數(shù)連接后的完整、獨立執(zhí)行的程序。擴展名為完整、獨立執(zhí)行的程序。擴展名為.EXE21C程序上機程序上機補充兩點:補充兩點: 每個默認工作空間只能生成一個每個默認工作空間只能生成一個.exe文件,文件,因此當再建一個新的因此當再建一個新的C源程序時,需:源程序時,需: “文件文件” “關閉工作空間工作空間” 然后再“文件”“新建”C+source文件1. 2.建立個人文件夾,將你的程序放在其中,建立個人文件夾,將你的程序放在其中,清晰易查找

8、。清晰易查找。22編程小練編程小練現(xiàn)在我們能編寫簡單程序嗎?現(xiàn)在我們能編寫簡單程序嗎?仿照例仿照例1編寫程序:向屏幕上輸編寫程序:向屏幕上輸出一句話出一句話“My name is .”。仿照例仿照例2編寫程序:求三個數(shù)的編寫程序:求三個數(shù)的平均數(shù)。補充一個數(shù)據(jù)類型平均數(shù)。補充一個數(shù)據(jù)類型float23初識初識scanf函數(shù)函數(shù)輸入數(shù)據(jù)使用輸入函數(shù):輸入數(shù)據(jù)使用輸入函數(shù):scanf(%d%d,&a,&b);說明:說明:輸入整型數(shù)(輸入整型數(shù)(int)用)用d,輸入實數(shù)類型(,輸入實數(shù)類型(float)用)用f,輸入幾個變量值就用幾個格式符;例如:,輸入幾個變量值就用幾個格式符;例如: scanf

9、(%f%f%f,&a,&b,&c);1. 第二部分參數(shù)是變量的名稱前加運算符第二部分參數(shù)是變量的名稱前加運算符“&”24初識初識printf函數(shù)函數(shù)簡單輸出數(shù)據(jù): 只輸出簡單信息:只輸出簡單信息: printf(“Hello students!n); 輸出變量值:輸出變量值: printf(sum is %dn, sum);25由若干程序語句按順序書寫,按順序執(zhí)行;由若干程序語句按順序書寫,按順序執(zhí)行;每條語句以分號每條語句以分號“ ;”結束;結束; 一個復雜的語句也可以寫成幾行,用反斜杠一個復雜的語句也可以寫成幾行,用反斜杠 表示續(xù)行;幾個簡單語句也可寫在一起,都必須表示續(xù)行;幾個簡單語句也

10、可寫在一起,都必須用用“;”作為每句結束標志。作為每句結束標志。通常變量定義放在開始部分;通常變量定義放在開始部分;語句后面可以有注釋,注釋內容放在語句后面可以有注釋,注釋內容放在 /* */內內程序體的基本語法要素程序體的基本語法要素【總結【總結1】26標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。個字符必須為字母或下劃線。例如:例如:sum,average,_total,Class,day,stu_name,p405 不合法的標識符:不合法的標識符:M.D.John,$123,#33,3D64,ab 區(qū)別大小寫

11、。區(qū)別大小寫。例如:例如:sum不同不同Sum。BOOK不同不同book。標識符長度有限制標識符長度有限制(TC 最多最多32個字符,有的系統(tǒng)最多個字符,有的系統(tǒng)最多8個個)。例如:例如:student_name,student_number 如果取如果取8個,這兩個標個,這兩個標識符是相同的。識符是相同的。標識符不能與標識符不能與“關鍵詞關鍵詞”同名,見教材同名,見教材13頁。頁。建議:標識符命名應當有一定的意義,做到見名知義。建議:標識符命名應當有一定的意義,做到見名知義。C語言標識符定義規(guī)則語言標識符定義規(guī)則27內容總結及回顧內容總結及回顧C程序的基本結構:函數(shù);函數(shù);main框架框架;

12、 預處理命令在前;有且只有一個預處理命令在前;有且只有一個main函函數(shù)、數(shù)、函數(shù)組成(函數(shù)說明部分、函數(shù)體);函數(shù)說明部分、函數(shù)體);函數(shù)體內順序:先變量定義,再其它語句先變量定義,再其它語句。簡單變量定義:int、float標識符的命名規(guī)則。 C程序的VC上機過程。簡單使用scanf輸入數(shù)據(jù)、printf輸出數(shù)據(jù)2829【回答】如果程序中處理的數(shù)據(jù)需要由用戶在【回答】如果程序中處理的數(shù)據(jù)需要由用戶在運行程序時確定,應該用運行程序時確定,應該用scanf()函數(shù)輸入;()函數(shù)輸入;如果數(shù)據(jù)不需用戶確定,而由程序自身確定,如果數(shù)據(jù)不需用戶確定,而由程序自身確定,可直接賦值。可直接賦值。【思考】

13、【思考】你知道以下兩種方法為變量輸入已知值的不同嗎?你知道以下兩種方法為變量輸入已知值的不同嗎?main() int a,b,c; a=4; b=5; c=a+b; printf(“sum is %dn”,c);main() int a,b,c; scanf(“%d%d”,&a,&b); c=a+b; printf(“sum is %dn”,c);30基本編程經驗基本編程經驗總結總結2:程序由程序由 “輸入處理輸出輸入處理輸出” 三個模塊組成。三個模塊組成。輸入時通常先定義變量,然后用輸入函數(shù)輸入時通常先定義變量,然后用輸入函數(shù)scanf()輸()輸入數(shù)據(jù),或直接給變量賦值。入數(shù)據(jù),或直接給變

14、量賦值。程序的關鍵算法語句。程序的關鍵算法語句。使用輸出函數(shù),如使用輸出函數(shù),如printf()輸出結果。()輸出結果。31讓我們一起分析、編寫一個程序吧讓我們一起分析、編寫一個程序吧【實例【實例4】某鐵桶廠應客戶要求定做一批鐵桶,】某鐵桶廠應客戶要求定做一批鐵桶,客戶給出了鐵桶的規(guī)格,高客戶給出了鐵桶的規(guī)格,高30cm,半徑,半徑10cm,共訂做共訂做1500個鐵桶。工廠接到訂單后需馬上計個鐵桶。工廠接到訂單后需馬上計算出所需的原材料組織生產。算出所需的原材料組織生產。1-1.c32分析:分析:我們知道鐵桶為圓柱形,其表面積的計算可以利用數(shù)學公式:我們知道鐵桶為圓柱形,其表面積的計算可以利用

15、數(shù)學公式: S=2RH+R2為了計算為了計算S的值,我們首先需要向計算機輸入兩個已知值的值,我們首先需要向計算機輸入兩個已知值R和和H,計算機根據(jù)上面的公式進行運算,得到一只鐵桶的鐵皮,計算機根據(jù)上面的公式進行運算,得到一只鐵桶的鐵皮用量,然后計算用量,然后計算N只鐵桶的總鐵皮用量,最后輸出計算結果。只鐵桶的總鐵皮用量,最后輸出計算結果。因此上面程序的工作步驟可以描述為:因此上面程序的工作步驟可以描述為:1. 定義四個變量定義四個變量S,R,H,N。2. 為為R,H,N輸入已知值。輸入已知值。3. 利用公式利用公式S=2RH+R2求表面積求表面積S。4. 求總用量求總用量SSN。5. 輸出最后

16、結果輸出最后結果S6. 結束。結束。33#include main() float s,r,h; /* 定義變量定義變量s表示面積,表示面積,r表示半徑,表示半徑,h表示桶高表示桶高 */int n; /* 定義變量定義變量n表示桶的數(shù)量表示桶的數(shù)量 */printf(“input r,h,n:n”); /*友好的屏幕提示,讓用戶輸入已知值友好的屏幕提示,讓用戶輸入已知值*/scanf(“%f%f%d”,&r,&h,&n); /* C語言的輸入函數(shù),語言的輸入函數(shù), 從鍵盤上接受用戶輸入的已知值分別送給變量從鍵盤上接受用戶輸入的已知值分別送給變量r,h和和n */s=2*3.14*r*h+3.

17、14*r*r; /* 計算一個桶的表面積計算一個桶的表面積 */s=s*n; /* 求求n只桶的總表面積只桶的總表面積 */printf(“Total area is %.2fn”,s); /* 輸出總鐵皮用量輸出總鐵皮用量 */運行程序吧!運行程序吧!34【實例【實例5】利用系統(tǒng)庫函數(shù)實現(xiàn)數(shù)學運算,求利用系統(tǒng)庫函數(shù)實現(xiàn)數(shù)學運算,求xy。#include /*系統(tǒng)標準輸入、輸出函數(shù)庫系統(tǒng)標準輸入、輸出函數(shù)庫*/#include /*系統(tǒng)數(shù)學函數(shù)庫系統(tǒng)數(shù)學函數(shù)庫*/main()double x,y,Result; /*定義兩個輸入變量定義兩個輸入變量x,y及輸出變量及輸出變量Result*/pr

18、intf(Please enter x,y for pow(x,y):); /*提示輸入提示輸入x和和y的值的值*/scanf(%lf%lf,&x,&y); /*輸入輸入x和和y的值的值*/Result = pow(x,y); /*調用數(shù)學函數(shù)庫中的調用數(shù)學函數(shù)庫中的pow函數(shù)來計算函數(shù)來計算 */printf(pow(x,y) = %g,Result); /*輸出結果值輸出結果值*/double是雙精度實數(shù)類型是雙精度實數(shù)類型3536 C語言字符集(略)語言字符集(略) 標識符:標識符:變量名、符號常量名、函數(shù)名、數(shù)組變量名、符號常量名、函數(shù)名、數(shù)組名、類型名等。名、類型名等。 關鍵字(自學

19、)關鍵字(自學) C語言語句及表達式:語言語句及表達式: 變量定義語句、賦值語句、函數(shù)調用語句、空變量定義語句、賦值語句、函數(shù)調用語句、空語句、表達式語句、表達式 運算符:算術運算符(除法)、賦值運算符、運算符:算術運算符(除法)、賦值運算符、 sizeof運算符、關系運算符。運算符、關系運算符。 優(yōu)先級見附件,括號優(yōu)先、括號一律用小括優(yōu)先級見附件,括號優(yōu)先、括號一律用小括號、多層括號由內向外算;號、多層括號由內向外算; 分隔符:空格(源程序中起到分隔元素的作用)分隔符:空格(源程序中起到分隔元素的作用) 空格、回車、空格、回車、Tab(輸入數(shù)據(jù)的分隔)(輸入數(shù)據(jù)的分隔) 其它符號:略其它符號

20、:略3738本小節(jié)目錄本小節(jié)目錄 數(shù)據(jù)類型總體分類數(shù)據(jù)類型總體分類 整數(shù)類型整數(shù)類型 實數(shù)類型實數(shù)類型 字符型數(shù)據(jù)字符型數(shù)據(jù)39404142434445#include #include void main( )void main( ) char ch; char ch; int x; int x; ch=A; ch=A; x=ch+32; x=ch+32; printf(%c,%dn, ch, ch); printf(%c,%dn, ch, ch); printf(%c,%dn, x, x); printf(%c,%dn, x, x); 運行結果:運行結果:A, 65A, 65a, 97 4

21、6China04748思考:如何實現(xiàn)兩個變量值的互換?思考:如何實現(xiàn)兩個變量值的互換?常見算法有兩種:常見算法有兩種: 算法算法1:定義第:定義第3個變量作為中間變量,借以互換值。個變量作為中間變量,借以互換值。 算法算法2:不需要任何中間變量,利用加減法實現(xiàn)值互換。:不需要任何中間變量,利用加減法實現(xiàn)值互換。 a=a+b; b=a-b; a=a-b;例題例題1_6:定義變量,為它們賦值,互換兩個變量的值。:定義變量,為它們賦值,互換兩個變量的值。49#include main() int a,b,c; a=30; b=40; c=a; a=b; b=c;printf(a=%d,b=%d,a,

22、b); getch();總結:通過本例理解總結:通過本例理解變量是可變的量,變量是可變的量,可以不斷的被賦以新值,只保留最新值??梢圆粩嗟谋毁x以新值,只保留最新值。1-6.c50#include main() char ch; printf(input a char:); scanf(%c,&ch); printf(%c,ch-32); getch();學生練習:學生練習:從鍵盤上輸入一個小寫字母,把它轉變?yōu)榇髮憦逆I盤上輸入一個小寫字母,把它轉變?yōu)榇髮懽帜冈佥敵?。字母再輸出。提示:大、小寫字母的提示:大、小寫字母的ASCII值相差值相差321-5.c51提問提問算術運算符、關系運算符及關系運算

23、的結果。算術運算符、關系運算符及關系運算的結果。C語言數(shù)據(jù)類型的分類語言數(shù)據(jù)類型的分類基本數(shù)據(jù)類型分類基本數(shù)據(jù)類型分類整數(shù)類型的分類、關鍵字、類型長度整數(shù)類型的分類、關鍵字、類型長度整型常量的表示方法整型常量的表示方法實數(shù)類型的分類、關鍵字、類型長度實數(shù)類型的分類、關鍵字、類型長度實型常量的表示方法實型常量的表示方法字符常量的表示方法字符常量的表示方法字符串常量的表示方法字符串常量的表示方法5253格式格式: scanf(“%d %d %d”,&a,&b,&c);1-scanf.c數(shù)據(jù)的分隔數(shù)據(jù)的分隔54格式字符 說明 d o x u c s f e g 用用來來輸輸入入十十進進制制整整數(shù)數(shù)

24、用用來來輸輸入入八八進進制制整整數(shù)數(shù) 用用來來輸輸入入十十六六進進制制整整數(shù)數(shù) 用用來來輸輸入入無無符符號號十十進進制制整整數(shù)數(shù) 用用來來輸輸入入單單個個字字符符 用用來來輸輸入入字字符符串串, ,將將字字符符串串送送到到一一個個 字字符符數(shù)數(shù)組組中中. .遇遇到到第第一一個個空空白白字字符符結結束束 用用來來輸輸入入實實數(shù)數(shù), ,可可以以用用小小數(shù)數(shù)形形式式或或指指 數(shù)數(shù)形形式式輸輸入入 作作用用和和 f f 相相同同 作作用用和和 f f 相相同同 1-scanf.c格式符的選擇格式符的選擇55字符 說明 L 或 l H 或 h 域寬(正整數(shù)) * 用于輸入長整形數(shù)據(jù) 用于輸入短整形數(shù)據(jù)

25、指定輸入數(shù)據(jù)所占寬度(列數(shù)) 表示本輸入項讀入后不賦給相應變量 1-4.c56說明并深刻理解說明并深刻理解: 1-7.c57說明說明:58說明說明:不能企圖用格式控制符來規(guī)定輸入數(shù)據(jù)的精度不能企圖用格式控制符來規(guī)定輸入數(shù)據(jù)的精度scanf(“%7.2f”,&a)59printf(“ Input two integers ”);printf(“a=%d,b=%d,%d”,a,b,a+b);格式格式: 說明說明: 格式控制符以外的普通字符串原樣輸出。格式控制符以外的普通字符串原樣輸出。6061在格式控制符中在格式控制符中,%和跟隨的單個字符間又可插入和跟隨的單個字符間又可插入以下幾種附加符號以下幾

26、種附加符號字符字符說明說明 字母字母l 用于長整型用于長整型, 加在格式符加在格式符d、o、x、u前面前面 m(正整數(shù))正整數(shù))數(shù)據(jù)輸出寬度(域寬)數(shù)據(jù)輸出寬度(域寬) .n(正整數(shù))正整數(shù))對實數(shù),輸出對實數(shù),輸出n位小數(shù);對字符串,位小數(shù);對字符串, 表示截取的字符個數(shù)表示截取的字符個數(shù) 輸出的數(shù)字或字符在域內向左靠齊輸出的數(shù)字或字符在域內向左靠齊注:注:n之之 前前有一小數(shù)點有一小數(shù)點舉例舉例1-4.c62注意:注意:當當m小于實際長度時,小于實際長度時,m不起作用,按實際不起作用,按實際 長度輸出長度輸出一個整數(shù)只要它的值在一個整數(shù)只要它的值在0255之間,它即可以整數(shù)之間,它即可以整

27、數(shù)形式輸出,也可字符形式輸出。同樣一個字符數(shù)據(jù)形式輸出,也可字符形式輸出。同樣一個字符數(shù)據(jù)也可用整數(shù)形式輸出也可用整數(shù)形式輸出1-2.c63其他輸入輸出函數(shù):其他輸入輸出函數(shù):getchar()、putchar()gets()、 puts()例如:例如:char c; c=getchar(); 或或 scan(“%c”,&c);使用這些函數(shù),使用這些函數(shù),需包含頭文件需包含頭文件stdio.h6465 有窮性: 確定性: 有0個或多個輸入: 有1個或多個輸出: 有效性: 6667見見24頁圖頁圖1.568結束輸入a,b,cab?bc?ac?輸出c輸出b輸出c輸出a開始tfftft69即結構化程序設計流程圖,提供了描述三種基本邏輯即結構化程序設計流程圖,提供了描述三種基本邏輯結構的圖形工具,與傳統(tǒng)的程序流程圖對照描述如下:結構的圖形工具,與傳統(tǒng)的程序流程圖對照描述如下:1、順序結構、順序結構

溫馨提示

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

評論

0/150

提交評論