




第5章 算法與程序設(shè)計基礎(chǔ)(總)_免費下載.ppt.ppt 免費下載
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1,第5章 算法與程序設(shè)計基礎(chǔ),主講教師:鄭立垠,計算機(jī)與通信工程學(xué)院 計算機(jī)應(yīng)用技術(shù)系,2,課程網(wǎng)站:,3,本章主要內(nèi)容,5.1 程序設(shè)計過程及程序開發(fā)環(huán)境 5.2 程序設(shè)計語言基礎(chǔ) 5.3 數(shù)據(jù)的輸入與輸出 5.4 邏輯思維與選擇程序設(shè)計,4,5.1程序設(shè)計過程與程序開發(fā)環(huán)境,程序的例子 程序設(shè)計(實現(xiàn))過程 程序開發(fā)環(huán)境,5,編寫一個求解將a和b的值交換的程序。 #include int main( ) int a,b,c; scanf(%d%d, ,5.1程序設(shè)計過程與程序開發(fā)環(huán)境,6,5.1程序設(shè)計過程與程序開發(fā)環(huán)境,7,5.1程序設(shè)計過程與程序開發(fā)環(huán)境,8,C程序基本結(jié)構(gòu),#inc
2、lude int main() printf(Hello Worldn); return 0; ,以 # 開始的語句稱為預(yù)處理器指令,如果程序有該語句,就必須將它放在程序的開始處,以.h為后綴的文件被稱為頭文件,可以是 C 程序中現(xiàn)成的標(biāo)準(zhǔn)庫文件,也可以是自定義的庫文件。,stdio.h文件中包含了有關(guān)輸入輸出語句的函數(shù),main() 函數(shù)是 C 程序處理的起點。,main() 函數(shù)可以返回一個值,也可以不返回值。如果某個函數(shù)沒有返回值,那么在它的前面有一個關(guān)鍵字 void,在函數(shù)定義的后面有一個左大括號,即 ,它表示函數(shù)的開始,后面是函數(shù)的主體,大括號也可以用于將語句塊括起來,在函數(shù)定義的結(jié)
3、尾處有一個右大括號,即 ,在屏幕上產(chǎn)生一行輸出“Hello world”,并換行(n),函數(shù)主體中的每個語句都以分號結(jié)束。,C 程序中的一個語句可以跨越多行,并且用分號通知編譯器該語句已結(jié)束。,9,C程序的注釋,#include int main() printf(Hello Worldn); ,/ 此程序用來打印Hello World,單行注釋,C 程序可以包含注釋,以便向讀者作一般說明,編譯器并不處理這些注釋,/* 此程序由 編寫 用來打印輸出“Hello World”*/,多行注釋,/* * 作者: 創(chuàng)建日期: 描述: * */ #include int main() ,注釋,在程序中添
4、加注釋是一個好的編程習(xí)慣,可以增強(qiáng)程序的可讀性。,10,多函數(shù)程序,/* *多行注釋 作者: 創(chuàng)建日期: 描述: * */ #include int max(int x, int y) /* 定義max函數(shù) */ return( xy ? x : y ); /* 求出兩數(shù)中的較大數(shù)并返回 */ /* max函數(shù)結(jié)束 */ int main(void) int num1, num2, m; printf(輸入第一個整數(shù) : );/* 提示輸入第一個整數(shù) */ scanf(%d, ,11,C程序基本結(jié)構(gòu)總結(jié),#include int main(void) printf(Hello Worldn);
5、 return 0; ,/*文件包含(固定格式)*/ /*主函數(shù)(固定格式) */ /*函數(shù)體開始標(biāo)識(固定) */ /*輸出Hello World*/ /*函數(shù)體結(jié)束標(biāo)識(固定) */,1、C程序是由函數(shù)構(gòu)成: 至少且僅有一個main函數(shù) 2、主函數(shù)的命名: main() 3、函數(shù)體及作用范圍: 必要的語句; 4、C語句的結(jié)束標(biāo)志: ; 5、C注釋語句的格式: /* */或者/ 6、文件包含命令: #include ,12,使用C語言的步驟,理解確定要解決的問題與要求,與具體語言無關(guān),與其它目標(biāo)程序或庫鏈接裝配,生成可執(zhí)行程序*.exe,設(shè)計解決問題的具體步驟、以及所用到的數(shù)據(jù),不考慮具體代
6、碼,根據(jù)設(shè)計編寫程序代碼,生成源程序*.c,自動語法分析查錯,翻譯生成目標(biāo)程序*.obj,編譯中發(fā)現(xiàn)錯誤,轉(zhuǎn)回修改源程序,連接中發(fā)現(xiàn)錯誤,轉(zhuǎn)回修改源程序,13,C集成開發(fā)環(huán)境(IDE),眾多的C開發(fā)環(huán)境 Turbo C CodeBlocks Microsoft Visual C+ Borland C+ Builder ,14,Turbo C 提供兩種編輯、 編譯、 連接和運(yùn)行C程序的方法: (1) 集成開發(fā)環(huán)境(TC.EXE) (2) 命令行編譯器(TCC.EXE),Turbo C 2.0的上機(jī)操作方法(現(xiàn)在不用了),Visual C+ 6.0的上機(jī)操作方法(使用該環(huán)境),Visual C+
7、6.0是Microsoft公司在1998年推出的一款運(yùn)行在Windows上的集成開發(fā)環(huán)境。使用Visual C+ 6.0可以對C語言程序進(jìn)行各種操作,如建立、打開、編輯、保存、編譯、連接、運(yùn)行和調(diào)試等。,C集成開發(fā)環(huán)境(IDE),CodeBlocks上機(jī)操作方法(后面學(xué)會使用),15,(1)啟動Visual C+ 6.0,Visual C+ 6.0集成開發(fā)環(huán)境,16,(2)輸入新程序前的準(zhǔn)備工作,單擊文件新建,彈出新建對話框,選擇“Files”選項卡“C+ Source File”,在右邊的“文件(File)”框中輸入文件名(注意:一定要加.C,否則將使用缺省的.CPP),在“位置(Locat
8、ion)”框中輸入路徑,也可以通過點擊右邊的按鈕在彈出的對話框中選擇路徑。,Visual C+ 6.0集成開發(fā)環(huán)境,17,(3)輸入源程序(在“程序區(qū)”內(nèi)輸入源程序),Visual C+ 6.0集成開發(fā)環(huán)境,18,(4)編譯和連接,單擊build按鈕(或按功能鍵F7或單擊Build菜單中的Build子菜單),在隨后彈出的兩個信息框中都單擊“是(Y)”按鈕,則編譯系統(tǒng)會自動將程序進(jìn)行編譯和連接,編譯和連接的信息會自動顯示在Visual C+ 6.0開發(fā)環(huán)境窗口中最下面的“信息區(qū)”內(nèi)。,(5)運(yùn)行程序,單擊執(zhí)行按鈕,自動運(yùn)行已生成的可執(zhí)行程序。結(jié)果會顯示在自動彈出的命令提示符窗口中。按任意鍵便返回
9、Visual C+ 6.0窗口中。,(6)關(guān)閉工作空間,一個程序完成后,選擇菜單命令File| Close workspace關(guān)閉工作空間。重復(fù)(2)(6),可以創(chuàng)建并運(yùn)行其他的C程序。,Visual C+ 6.0集成開發(fā)環(huán)境,19,簡單的C程序?qū)嵗?例1.1 最簡單的C程序 int main(void) 例1.2 在屏幕上顯示字符串“This is a C program.” #include int main(void) printf(“This is a C program.n”); return 0; 例1.3 在屏幕上輸出如下字符串: * Hello world *,20,自學(xué)材料,
10、21,C語言簡介,CPL BCPL B C ,其中: CPL:1963,英國劍橋 BCPL: 1967,英國劍橋 B:1970,美國貝爾實驗室 C:1972,美國貝爾實驗室(D. Ritchie) 1973年,Dennis M.Ritchie開始和Thompson合作用C將UNIX重寫,從此奠定了操作系統(tǒng)的基礎(chǔ) 1978年后,C語言被先后移植到各種機(jī)型,22,C語言的祖師爺,丹尼斯里奇(1941年9月9日2011年10月9日) 丹尼斯里奇, C語言之父,UNIX之父。曾擔(dān)任朗訊科技公司貝爾實驗室 下屬的計算機(jī)科學(xué)研究中心系統(tǒng)軟件研究部的主任一職。1978年與布萊恩科爾尼干(Brian W. K
11、ernighan)一起出版了名著C程序設(shè)計語言(The C Programming Language),現(xiàn)在此書已翻譯成多種語言,成為C語言方面最權(quán)威的教材之一。,23,總結(jié),C程序的基本結(jié)構(gòu)包括:預(yù)處理語句、main函數(shù),函數(shù)體使用 括起來,函數(shù)體中每條語句必須用分號結(jié)束 C程序編寫完成后,首先需要通過編譯轉(zhuǎn)換成目標(biāo)文件,然后通過連接創(chuàng)建可執(zhí)行程序,最后才可以執(zhí)行該程序 可以使用Visual C+ 6.0編輯和運(yùn)行C程序 C語言的特點包括:結(jié)構(gòu)化的程序設(shè)計語言、語句簡潔、功能強(qiáng)大、移植性好,24,上機(jī)作業(yè),1、熟悉VC6.0環(huán)境,學(xué)會在該環(huán)境下編輯、編譯、連接、運(yùn)行C程序。 2、網(wǎng)站作業(yè):1
12、.1、1.2、1.5 3、預(yù)習(xí)“5.2程序設(shè)計基礎(chǔ)”,第十周上課提問,25,5.2 程序設(shè)計語言基礎(chǔ),算法及其描述方法 C的基本數(shù)據(jù)類型 常量 變量 函數(shù) 表達(dá)式 賦值語句,26,算法,算法:為解決一個具體問題而采取的確定的有限的操作步驟,僅指計算機(jī)能執(zhí)行的算法 數(shù)據(jù)結(jié)構(gòu) + 算法 = 程序,27,算法的表示方法,自然語言表示 傳統(tǒng)的流程圖表示 在1966年,Bohra 與 Jacopini 提出 N-S結(jié)構(gòu)化流程圖表示 1973年,美國學(xué)者I.Nassi 和 B.Shneiderman 提出 偽代碼表示,28,算法舉例,例1 :有兩個存儲單元a和b,要求將它們的值互換。,分析:按存儲器的性質(zhì)
13、,如果將單元a的值直接送到單元b中,那么就會覆蓋掉b原來的內(nèi)容,因此,需要借助一個臨時單元c來交換。,具體算法如下: 步驟1: 將單元a的值送給單元c; 步驟2: 將單元b的值送給單元a; 步驟3: 將單元c的值送給單元b。,29,a b c,5,8,5,t = a,a = b,b = t,c,b,a,算法舉例,30,例2:求1+2+3+4+10。,假設(shè)用存儲單元S存放累加和,具體算法如下: 步驟1: 把0存入S單元中; 步驟2: 把1加到S中(即取S中的內(nèi)容0加1后得到 1, 再把1送回S單元中); 步驟3: 把2加到S中; 步驟4: 把3加到S中; 步驟10: 把9加到S中; 步驟11:
14、把10加到S中; 步驟12: 把S中的結(jié)果輸出。,這算法雖然正確,但不科學(xué),不實用??梢栽O(shè)一個計數(shù)器單元n,每重復(fù)一次n增1,直到n大于10為止,求和操作可以改為“n+S送S”。,算法舉例自然語言描述,31,31,例2:求1+2+3+4+10。,修改后的算法如下: 步驟1: 將0送到S中; 步驟2: 將1送到n中; 步驟3: 把n的值加到S中; 步驟4: n增1; 步驟5: 若n10則轉(zhuǎn)回步驟3,否則執(zhí)行步驟6; 步驟6: 輸出S的值。,算法舉例自然語言描述,32,32,將例2 求1+2+3+4+10的和用流程圖進(jìn)行描述。,算法舉例-流程圖描述,33,33,針對流程圖存在的缺點,I. Nass
15、i和B. Shneiderman提出了結(jié)構(gòu)化程序設(shè)計的流程圖,稱為N-S圖,更能體現(xiàn)結(jié)構(gòu)化程序設(shè)計的思想。推薦使用N-S圖。,N-S圖完全去掉了流程線,算法的所有處理步驟都寫在一個大矩形框內(nèi)(表示簡單、符合結(jié)構(gòu)化思想) (象堆積木),結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu) 順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu),34,34,結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)具有以下共同的特點: 只有一個入口; 只有一個出口; 結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會被執(zhí)行到; 結(jié)構(gòu)內(nèi)不存在“死循環(huán)”。,結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu),35,將例2 求1+2+3+4+10 的和用N-S圖進(jìn)行描述。,算法舉例-N-S圖描述,/
16、求1+2+3+4+10的累加和 #include int main(void) int s,n; s=0; n=1; while (n=10) s=s+n; n=n+1; printf(s=%dn,s); return 0; ,36,思考題,1、能否求123410的累積? 2、能否求1+2+3+4+m的累加和? 畫出N-S圖作為作業(yè) 3、能否求1234m的 累積? 畫出N-S圖作為作業(yè),37,C語言中的基本元素,程序,指令,標(biāo)識符 關(guān)鍵字 運(yùn)算符 分隔符 數(shù)據(jù),標(biāo)識符:程序員在程序中定義的名稱,以便在程序中引用 關(guān)鍵字:C中規(guī)定的一批英文單詞,被賦予特殊含義,要小寫,/求1+2+3+4+10的
17、累加和 #include int main(void) int s,n; s=0; n=1; while (n 右尖括號 % 百分號 _ 下劃線 . 圓點 ) 右圓括號 ! 感嘆號 分號 左方括號 | 豎線 xor(異或) : 冒號 右方括號 / 斜杠 * 乘號 ? 問號 左大括號 反斜杠 - 減號 單引號 右大括號 波折號 = 等于號 “ 雙引號 左尖括號 # 井號 + 加號,39,C語言的基本數(shù)據(jù)類型,數(shù)據(jù)屬于不同類別,Africa,The quick brown fox,TRUE,數(shù)據(jù),非數(shù)值,數(shù)值,整型,非整型,9002.12,999,9/12/2003,2.175,123,Jacki
18、e Chan,char,數(shù)據(jù)類型,非數(shù)值,數(shù)值,整型,int,short int,long int,double,float,非整型,40,C語言的基本數(shù)據(jù)類型,signed、unsigned、short、long稱為修飾符,字長滿足shortint long,41,常量,什么是常量 常量是在程序運(yùn)行過程中保持不變的量 包括整型常量、實型常量、字符型常量、字符串常量以及符號常量等,42,整型常量,整型常量即整常數(shù),C的整常數(shù)有三種表示形式: 十進(jìn)制:一串連續(xù)的數(shù)字,最高位非0 八進(jìn)制:以數(shù)字0開頭,其數(shù)碼取值為07。例如:023 十六進(jìn)制:以數(shù)字0和字母x開頭,x和af不區(qū)分大小寫。如:0 x
19、2A,0X3f 等 考慮如下常數(shù):327,-18,0,010,018,0 xF,ox2A 當(dāng)任意整型常量后跟一個字母u或U時,表示是無符號整型。例如,123u 當(dāng)任意整型常量后跟一個字母l或L時,表示是長整型。例如,123L,43,浮點型常量,浮點型常量也稱實型常量,即實數(shù),由整數(shù)部分和小數(shù)部分組成。有2種表示方法: 十進(jìn)制小數(shù)形式:由數(shù)字和小數(shù)點組成,必須要有小數(shù)點。例如:0.123,123.,123.0,0.0等。 指數(shù)形式:如123e3或123E3都代表123103。 注意字母e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。 規(guī)范化的指數(shù)形式:在字母e或E之前的小數(shù)部分中,小數(shù)點左邊
20、應(yīng)有一位且只能有一位非零的數(shù)字,如1.23e5。,44,字符型常量,C語言的字符常量是用單引號括起來的一個字符,如A,a,$等。單引號稱作定界符 轉(zhuǎn)義字符:以一個字符“”開頭的字符序列,代表特殊的含義。,#include int main() printf(Hello Worldn); return 0; ,字符串常量是用雙引號括起來的若干個字符。如 ”Abc” , ”How are you?”,”A”等。,45,符號常量,在C語言中,用一個標(biāo)識符來表示一個常量,稱之為符號常量 其定義的一般形式為: #define 習(xí)慣上,符號常量名用大寫,#include #define PI 3.1415
21、9 int main(void) double s,r; r=5; s = PI * r * r; printf(“area s=%fn”,s); return 0; ,46,變量,什么是變量 程序運(yùn)行過程中其值可以改變的量 變量的作用 通常使用變量來存儲數(shù)據(jù),可以把變量看成用來裝數(shù)據(jù)的容器 增加程序的靈活度,任何一個程序基本上都要用到變量 變量的定義 int i; char c1,c2; double d1,d2;,定義變量的方法: 數(shù)據(jù)類型 變量名列表;,注意:在同一語句中聲明的多個變量必須類型相同,47,變量命名,在 C 語言中,變量命名需要遵循一定的規(guī)則,有效名稱,principal,
22、cost_price,marks_3,lastname,city,無效名稱,123rate,char,discount%,zip code,變量名可以由字母、數(shù)字和 _(下劃線)組合而成 變量名的首字符必須以字母或 _(下劃線)開頭 C 語言中的某些詞(例如 int 和 float 等)稱為保留字,具有特殊意義,不能用作變量名 C 語言區(qū)分大小寫,因此變量 price 與變量 PRICE 是兩個不同的變量 變量命名的良好習(xí)慣:見名知意,如年齡用age表示 習(xí)慣上,變量名用小寫,48,變量賦值,變量賦值的方法: 定義時初始化變量: int age=20; 定義后初始化變量: int age; a
23、ge=20; 定義后通過計算獲得: int num1,num2,sum; num1=11; num2=22; sum=num1+num2; 使用scanf()函數(shù)接受用戶輸入值,/*求兩個整數(shù)的和*/ #include int main(void) int num1=11,num2,sum; printf(“Input a number”); scanf(“%d”, ,49,變量賦值,注意: 定義什么類型的變量就賦什么類型的數(shù)據(jù) 使用前必須首先聲明 參與運(yùn)算前必須先賦值,#include int main(void) char c1, c2; c1 = a; c2 = b; printf (
24、%c %cn, c1, c2 ); c1 = 97; c2 = 98; printf ( %c %cn, c1, c2 ); return 0; ,50,函數(shù),C語言提供了豐富的內(nèi)部函數(shù),又叫庫函數(shù),也稱標(biāo)準(zhǔn)函數(shù),其定義按函數(shù)類型存放在不同的“頭文件”中,使用時應(yīng)該在源文件中的開始位置包含上相應(yīng)的頭文件。 例如,使用數(shù)學(xué)函數(shù)時,應(yīng)該在源文件中的開始位置使用“#include ”math.h“” 把頭文件“math.h”包含到源文件中。,51,函數(shù),使用庫函數(shù)時,必須注意以下幾點: 1)要包含相應(yīng)“頭文件” 2)函數(shù)名要正確 3)自變量要寫在括號里面,各自變量用逗號隔開;自變量可以是常量、變量或
25、表達(dá)式;要注意數(shù)據(jù)類型。對于無參函數(shù),其括號也不能少 4)使用三角函數(shù)時,必須注意角度的單位是“弧度” 5)在調(diào)用函數(shù)處得到函數(shù)返回值,52,表達(dá)式,表達(dá)式由操作數(shù)和運(yùn)算符以及括號的有意義的組合 表達(dá)式中的操作數(shù)可以是變量、常量或者子表達(dá)式等 運(yùn)算符的主要類型有: 算術(shù)運(yùn)算符 賦值運(yùn)算符 關(guān)系運(yùn)算符 邏輯運(yùn)算符,算術(shù)表達(dá)式 賦值表達(dá)式 關(guān)系表達(dá)式 邏輯表達(dá)式,53,算術(shù)運(yùn)算符和算術(shù)表達(dá)式,基本的算術(shù)運(yùn)算符 + :加運(yùn)算符,5+4 - :減運(yùn)算符,7-4 * :乘運(yùn)算符,7*5 / :除運(yùn)算符,7/3值為2 % :模運(yùn)算符,求余運(yùn)算,7%3值為1 注意 兩個整數(shù)相除,其值為整數(shù),如 5 / 3值
26、為1 除數(shù)、被除數(shù)中有一個為實數(shù)時,結(jié)果為 double 型,操作數(shù),操作數(shù),運(yùn)算符,二元運(yùn)算符,54,算術(shù)運(yùn)算符和算術(shù)表達(dá)式,算術(shù)表達(dá)式 用算術(shù)運(yùn)算符和括號將運(yùn)算對象(操作數(shù))連接起來的、符合 C 語言語法規(guī)則的式子,稱作算術(shù)表達(dá)式。 如:X*3-23%10+a/5,x+5*(a-2) 運(yùn)算符的優(yōu)先級和結(jié)合性 優(yōu)先級:先 *、 / 、% 后 +、 - 結(jié)合性:左結(jié)合,即表達(dá)式從左向右進(jìn)行計算 如:X*(b-3)-23%10+a/5,55,算術(shù)運(yùn)算符和算術(shù)表達(dá)式,自增、自減運(yùn)算符 +、-:變量的值加1或減1 如:+num 等價于 num=num+1 -num 等價于 num=num-1 兩種方
27、式 +i,-i 先使 i 的值加 1 或減 1,然后使用i i+,i- 先使用i ,然后使 i 的值加 1 或減 1 優(yōu)先級: 優(yōu)先級高于算術(shù)運(yùn)算符,結(jié)合方向是 “自右向左” 如:-i+ 相當(dāng)于 - ( i+ ),56,例:算術(shù)運(yùn)算符應(yīng)用,#include int main(void ) int a = 5, b = 3, c = 25, d = 12; float f; int re,in,de; /* 使用算術(shù)運(yùn)算符 */ f = a / b; / 除法 re = a % b; / 求模 in = +c; de = d-; printf (商為 %fn,f); printf (余數(shù)為 %d
28、n,re); printf (“加 1 后為 %d %dn”,in,c); printf (減 1 后為 %d %dn,de,d); return 0; ,輸出: 商為 1.000000 余數(shù)為 2 加 1 后為 26 26 減 1 后為 12 11,57,將下列數(shù)學(xué)算式轉(zhuǎn)換為C語言表達(dá)式,58,求下列表達(dá)式的值,已知a=5,b=3,x=3.5,y=2.6,求下列表達(dá)式的值: (1)x+a%3*(int)(x+y)%2/4 (2)(float)(a+b)/2+(int)x%(int)y (3)a/b+x/y-(int)x%3*(float)a/b,59,賦值運(yùn)算符,變量=表達(dá)式;,height
29、 = 177.5; weight = 78; x = a+b; w = sin(a)+sin(b); a=b=c=5;,作用是將一個數(shù)據(jù)(或表達(dá)式的值)賦給一個變量。,最簡單的賦值運(yùn)算符:=,60,復(fù)合賦值運(yùn)算符,61,賦值運(yùn)算符使用,#include int main (void) float book_price = 60.75; /存放書的價格 printf(n 書的價格 = %f,book_price); book_price += 12.50; printf(n 書的新價格 =%fn,book_price); return 0; ,book_price=book_price+12.5
30、0;,62,逗號運(yùn)算符與逗號表達(dá)式,形式:表達(dá)式1, 表達(dá)式2, ,表達(dá)式n 作用:用于連接表達(dá)式 計算過程:先求解表達(dá)式1,再求解表達(dá)式2,一直求到表達(dá)式n,整個逗號表達(dá)式的值是表達(dá)式n的值。 逗號運(yùn)算符的優(yōu)先級最低,結(jié)合方向自左到右 例: x=(a=3, 6*3) a=3 x=18 表達(dá)式的值為18 x=a=3,3*a 表達(dá)式的值為9,63,類型轉(zhuǎn)換舉例,#include int main(void) int m = 5; printf(m / 2=%dn, m/2); printf(float)(m/2) = %fn, (float)(m/2); printf(float)m/2 = %
31、fn, (float)m/2); printf(m = %dn, m); return 0; ,兩個整數(shù)運(yùn)算的結(jié)果 還是整數(shù),不是浮點數(shù),64,混合類型運(yùn)算與類型轉(zhuǎn)換,自動類型轉(zhuǎn)換 原則:把表示范圍小的類型的值轉(zhuǎn)換到表示范圍大的類型的值 將取值范圍小的類型轉(zhuǎn)為取值范圍大的類型是安全的,反之不安全 強(qiáng)制類型轉(zhuǎn)換 語法:(類型名) 變量或數(shù)值 例如:int a = 5, b = 3; float q = (float)a / b;,65,閱讀程序,寫出執(zhí)行結(jié)果,#include int main(void) int a=4,b=3,c=2,d=1; printf(%dn, (a+b,b+c,c+d
32、); rerurn 0; ,66,總結(jié),常量是在程序中不能被更改的值;而變量在程序中可以被更改的,通過變量可以引用存儲在內(nèi)存中的數(shù)據(jù) C語言中的基本數(shù)據(jù)類型包括整型、單精度浮點型、雙精度浮點型和字符型 整型分為短整型、整型、長整型,每種整型又可分為有符號型和無符號型 單精度浮點型和雙精度浮點型變量可以存儲實數(shù),但雙精度型取值范圍要比單精度型大的多 字符型變量可以存儲單個字符,其值是該字符的ASCII 碼 表達(dá)式是操作數(shù)和運(yùn)算符的集合 算術(shù)運(yùn)算符提供運(yùn)算功能,包括+、-、*、/、%、+和,67,5.3 數(shù)據(jù)的輸入與輸出,字符輸入輸出函數(shù)getchar和putchar 格式輸入輸出函數(shù)scanf和
33、printf 順序程序設(shè)計,68,字符輸入輸出函數(shù),getchar(),字符型數(shù)據(jù),字符型數(shù)據(jù),putchar(),69,getchar函數(shù),char variablename; variablename = functionname;,getchar(),語法:,例如: char c; c=getchar();,注意:getchar函數(shù)無參數(shù),70,putchar函數(shù),#include int main() char ch; printf(Press a key and then press Enter:); ch = getchar(); printf(You pressed ); put
34、char(ch); putchar(n); return 0; ,運(yùn)行程序,Press a key and then press Enter:,A,You pressed,A,該語句的作用是什么?,71,格式輸入輸出函數(shù),輸入/輸出函數(shù) (scanf/printf) 用于接受和顯示數(shù)據(jù)或信息,#include int main() int num; printf(請輸入一個數(shù):); scanf(%d, ,轉(zhuǎn)換字符串,轉(zhuǎn)義序列,printf()函數(shù)的一般形式為: printf(“格式描述串”,變量列表); 說明: 第一個參數(shù)說明采用什么樣的格式輸出內(nèi)容。 格式描述串中可以包含轉(zhuǎn)換字符串(以“%”
35、開始),也可以包含轉(zhuǎn)義序列(以“”標(biāo)識)。 第二個參數(shù)是要顯示其值的參數(shù)列表。 如果格式描述串中沒有特殊字符“%”,那么該輸出語句里就不能有變量列表,也不需要表示分隔的逗號這是使用printf()函數(shù)的最簡單的形式。,72,printf函數(shù),int visitor_count = 150; printf ( %d , visitor_count);,printf,將一些信息按照指定的格式送到標(biāo)準(zhǔn)輸出(顯示器), %d,visitor_count,將按指定的格式顯示該變量的值,73,printf函數(shù)使用,#include int main() float radius=1.5, high=2.0
36、; float pi=3.14159, vol; /*計算體積*/ vol=pi*radius*radius*high; /*輸出體積的值*/ printf(vol=%7.2fn,vol); return 0; ,1.5,2.0,14.14,輸出: vol= 14.14,3.14159,74,scanf函數(shù),scanf(%d,scanf 函數(shù)從標(biāo)準(zhǔn)輸入(鍵盤)讀取信息,按照格式描述把讀入的信息轉(zhuǎn)換為指定數(shù)據(jù)類型的數(shù)據(jù),并把這些數(shù)據(jù)賦給指定的程序變量。,轉(zhuǎn)換字符串, /公斤、鎊、盎司 公斤、磅和盎司的轉(zhuǎn)換公式: 1磅=16盎司=0.4536千克(公斤) 算法如下: 1. 得到用公斤表示的重量 2
37、. 將重量轉(zhuǎn)化為磅:pound=kilogram/0.4536; 3. 將磅轉(zhuǎn)化為盎司:ounce=pound*16; 4. 輸出轉(zhuǎn)換后的重量,問題分析,79,順序程序設(shè)計,/ 重量單位換算 #include int main() double kilogram, pound, ounce; /公斤、鎊、盎司 printf(請輸入重量(公斤):); scanf(%lf, ,80,順序程序設(shè)計,例4:輸入一個華氏溫度,計算并輸出對應(yīng)的攝氏溫度值,輸出時保留2位小數(shù)。,#include int main() double c, f; /c和f分別存放攝氏溫度和華氏溫度 printf(請輸入一個華氏
38、溫度:); scanf(%lf, ,81,自學(xué)材料,82,C語言中的語句,控制語句 if()else return 變量聲明語句 int a=1; 函數(shù)調(diào)用語句 printf(hello world!); 表達(dá)式語句 k+; k = k+ 1; 空語句 ; 復(fù)合語句 t = x; x = y; y = t;,83,復(fù)合語句,在什么情況下使用復(fù)合語句? 條件語句和循環(huán)語句在語法上只允許帶一條語句 當(dāng)分支和循環(huán)中需要進(jìn)行多項操作時, t=x; x=y; y=t; ,被當(dāng)作一條語句來處理,84,復(fù)合語句使用,#include int main() int a = 0; int a = 1; prin
39、tf(In: a = %dn, a); printf(Out: a = %dn, a); return 0; ,85,空語句,空語句有什么作用? 什么也不做,只表示語句的存在 自頂向下程序設(shè)計時用在那些未完成的模塊中 延時用的空循環(huán),int main() DataInitialze(); DataProcess(); DataOutput(); return 0; ,DataInitialze() ; ,86,scanf函數(shù)使用,#include int main() int a, b; printf(Please input a and b:); scanf(%d%d, ,以空格或TAB 鍵
40、作為分隔符,87,scanf函數(shù)使用,#include int main() int a, b; printf(Please input a and b:); scanf(%d%d, ,Please input a and b:,a=12, b=34, a+b = 46,12,以回車鍵作為分隔符,34,88,scanf函數(shù)使用,#include int main() int a, b; printf(Please input a and b:); scanf(%d,%d, ,Please input a and b:,a=12, b=34, a+b = 46,12,34,這里逗號需要原樣輸入,
41、89,輸入數(shù)據(jù)的格式控制,#include int main() int a, b; scanf(%d %d, ,問題1:當(dāng)限定用戶輸入數(shù)據(jù)以逗號為分隔符,即輸入數(shù)據(jù)格式為: 12,34 時,應(yīng)修改程序中的哪條語句?怎樣修改?,scanf(%d,%d, ,90,輸入數(shù)據(jù)的格式控制,#include int main() int a, b; scanf(%d %d, ,問題2: 語句scanf(%d %d, 時,用戶應(yīng)該如何輸入數(shù)據(jù)?,a = 12, b = 34,不推薦使用!,scanf(a = %d, b = %d, ,91,輸入數(shù)據(jù)的格式控制,#include int main() int
42、 a, b; scanf(%d %d, ,問題3:限定用戶輸入數(shù)據(jù)為以下格式為 1234 同時要求程序輸出結(jié)果為a = 12, b = 34,scanf(%2d%2d, ,不推薦使用!,92,總結(jié),了解語句的基本概念 了解語句的分類 掌握字符輸入輸出函數(shù)getchar和putchar 掌握格式輸入輸出函數(shù)scanf和printf 掌握順序程序設(shè)計,93,5.4 邏輯思維與選擇程序設(shè)計,關(guān)系運(yùn)算符與關(guān)系表達(dá)式 邏輯運(yùn)算符與邏輯表達(dá)式 條件結(jié)構(gòu),94,邏輯思維與選擇程序設(shè)計,趣味題目: 雞兔同籠是我國古代著名趣題之一。大約在1500年前,孫子算經(jīng)中就記載了這個有趣的問題。書中是這樣敘述的:“今有雉兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?”這四句話的意思是:有若干只雞兔同在一個籠子里,從上面數(shù),有35個頭;從下面數(shù),有94只腳。問籠中各有幾只雞和兔?,95,輸入總頭數(shù) h,計算總腳數(shù) f 的合理取值范圍 minf=2*h; maxf=4*h,提示輸入 f minf=f=maxf,計算 chick=(4*h-f)/2 ; rabbit=(f-2*h)/2;,輸出 chick和rabbit,#include int main() int h,f ,mi
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯(lián)網(wǎng)+農(nóng)業(yè)金融服務(wù)模式及其風(fēng)險管理
- 高職院校田徑運(yùn)動訓(xùn)練計劃與實施的協(xié)調(diào)機(jī)制
- 多國法律與標(biāo)準(zhǔn)對跨境數(shù)據(jù)治理的協(xié)調(diào)
- 河南省周口市扶溝縣2025屆八年級數(shù)學(xué)第一學(xué)期期末質(zhì)量跟蹤監(jiān)視試題含解析
- 2025至2030全球及中國白金戒指行業(yè)項目調(diào)研及市場前景預(yù)測評估報告
- 礦產(chǎn)資源采石場股份買賣協(xié)議
- 航空航天產(chǎn)業(yè)財稅代理與研發(fā)費用加計扣除合同
- 老年人的健康飲食與烹飪技巧
- 液態(tài)金屬電極行業(yè)投資機(jī)會與風(fēng)險評估
- 高新技術(shù)在特定區(qū)域的產(chǎn)業(yè)化發(fā)展指導(dǎo)研究
- 2024-2025學(xué)年華東師大版數(shù)學(xué)七年級上冊計算題專項訓(xùn)練
- 福建省機(jī)關(guān)工作人員年度考核登記表
- JBT 7808-2010 無損檢測儀器 工業(yè)X射線探傷機(jī)主參數(shù)系列
- DB44-T 2474-2024 自然教育標(biāo)識設(shè)置指引
- 研學(xué)基地合作協(xié)議
- 駕駛員行為規(guī)范管理制度
- (高清版)JTG D81-2017 公路交通安全設(shè)施設(shè)計規(guī)范
- 《鍋爐水介質(zhì)檢驗導(dǎo)則標(biāo)準(zhǔn)-征求意見稿》
- 2023年陽江市陽東區(qū)教育局招聘事業(yè)編制教師考試真題
- 利用隱私保護(hù)技術(shù)實現(xiàn)網(wǎng)絡(luò)爬蟲安全抓取
- 成本會計崗位競聘稿
評論
0/150
提交評論