




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、產生數據產生數據數據處理、計算數據處理、計算輸出結果輸出結果順序結構程序設計定義變量定義變量三種控制結構的三種控制結構的n-sn-s流程圖。流程圖。思考:思考:輸入三角形的三邊長,求三角形面積。輸入三角形的三邊長,求三角形面積。 # include main( ) float a, b, c, s, area; scanf(%f%f%f ,&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(area=%.2fn ,area); 輸入輸入1,2,31,2,3會有會有正確結果嗎?正確結果嗎?如何避免發生如何避免發生此類錯誤此類
2、錯誤如果任意兩邊之和大于第三如果任意兩邊之和大于第三邊才能構成三角形,即邊才能構成三角形,即a+bc并且并且a+cb并且并且b+ca第第3 3章章 選擇結構程序設計選擇結構程序設計 關系運算符和關系表達式關系運算符和關系表達式 邏輯運算符和邏輯表達式邏輯運算符和邏輯表達式 if if 語句語句 switchswitch語句語句 程序舉例程序舉例3.1 if3.1 if語句語句1. 運算符:運算符:、=、b)=c (ab)=c b+ca b+cb d=ab f=abc f=abc 要想表示與數學中的要想表示與數學中的abcabc等價的關系等價的關系怎么辦?怎么辦?一、關系運算一、關系運算3.1
3、if3.1 if語句語句二、邏輯運算二、邏輯運算1.運算符運算符:&(且)、(且)、|(或)、(或)、!(非)(非)例如:例如: a&b 若若a、b均為均為真(非真(非0)時,時,a&b為為1 a|b 若若a、b其中之一為非其中之一為非0,a|b為為1 !a 若若a為非為非0 ,則,則 !a為為0 例例: : a=4,b=5 !a a&b a | b !a | b 4&0 | 2 53&2 |8c&b=ca|b+c&b-c!(x=a)&(y=b)&0!(a+b)+c-1&b+c/2x&!xxy-1 !(非)!(非)算術運算符算術運算符關系運算符關系運算符&賦值運算符賦值運算符 高高低低0101
4、01練習練習2 2:a=1a=1,b=2b=2,c=3c=3,d=4d=4,m=1m=1,n=2n=2 y=(m=ab) & (n=cd) y=(m=ab) & (n=cd) y= y= m= m= n= n=0 00 02 2注:在邏輯表達式的求解中,并不是所有的邏輯注:在邏輯表達式的求解中,并不是所有的邏輯運算都被執行,只是在必須執行下一個邏輯運算運算都被執行,只是在必須執行下一個邏輯運算符才能求出表達式的解時,才執行該運算符。符才能求出表達式的解時,才執行該運算符。如:如: a&b&ca&b&c a|b|c a|b|c3.1 if3.1 if語句語句三、三、if語句語句、if語句的語句的
5、3種形式種形式 1if(表達式表達式)語句語句例:例:main( ) int x; scanf(%d,&x); if (x0) printf(“%d”,x); printf(abc ); 4545abc-7abc 2if(表達式表達式)語句語句 1 else 語句語句2表達式表達式真真假假語句語句表達式表達式真真假假語句語句1語句語句2 2例例1 1: 輸入一個整輸入一個整數,若為偶數則輸數,若為偶數則輸出出“yes”yes”,若為奇,若為奇數則輸出數則輸出“no”no”。 main( ) int a; scanf(%d,&a); if(a%2=0) printf(yesn); else pr
6、intf(non); ifelse是一個語句是一個語句思考:思考:輸入三角形的三邊長,求三角形面積。輸入三角形的三邊長,求三角形面積。 # include main( ) float a, b, c, s, area; scanf(%f%f%f ,&a,&b,&c); if(a+bc&a+cb&b+ca) s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(area=%.2fn ,area); else printf(no); 3.多分支多分支if(表達式表達式1) 語句語句1else if(表達式表達式2) 語句語句2else if(表達式表
7、達式n) 語句語句nelse 語句語句n+1nn表達式表達式1表達式表達式2語句語句2表達式表達式n語句語句n語句語句n+1yyny語句語句1例例2 2: :計算分段函數,計算分段函數,輸入輸入x x的值后,的值后,請輸出相應的請輸出相應的y y值。值。6 .12sin26 .121032cos16log10729523xexxxxxxy #include math.h main( ) float x, y; scanf(%f,&x); if(x-10) y=5.0/29*fabs(x-7); else if(x12.6) y=log(16)/log(3)+cos(32*3.14/180);
8、else y=(sqrt(2*x)-3.14*sin(x)/(exp(1)*x*x); printf(%fn,y); !注意!注意c c中表達式書寫(中表達式書寫(p25p25)【練習】【練習】計算分段函數計算分段函數 3366sin3log2xexxy #include math.h main( ) float x, y; scanf(%f,&x); if(x1&x12&x=27) y=3*x; printf(%fn,y); else printf(wuyiyi); (二)(二)if語句的嵌套語句的嵌套: 在在 if 語句中又包含一個或多個語句中又包含一個或多個 if 語句稱語句稱為為 if
9、語句的嵌套。語句的嵌套。 if ( ) if ( ) 語句語句1 else 語句語句2 else if ( ) 語句語句3 else 語句語句4 !注意注意 if 與與 else 的配對關的配對關系,系,else總是與它上面最近總是與它上面最近的未配對的的未配對的 if 配對配對,若,若if與與 else 的數目不一致,可以加的數目不一致,可以加 來確定配對關系。來確定配對關系。例:有一函數例:有一函數 輸入輸入x值,輸出值,輸出y值。值。y=-1 (x0) main( ) int x, y; scanf(%d,&x); if(x=0) if (x= =0) y=0; else y=-1; e
10、lse y=1; printf(x=%d,y=%dn,x,y); if (x=0) if (x0) y=1;else y=0;(三)條件運算符(三)條件運算符1.形式:形式:表達式表達式1 ? 表達式表達式2 : 表達式表達式32.執行過程:如果表達式執行過程:如果表達式1為真,則條件表達式為真,則條件表達式取表達式取表達式2的值,否則取表達式的值,否則取表達式3的值。的值。例例 有以下有以下if 語句語句: if (ab) max=a; else max=b;可以用條件運算符可以用條件運算符處理處理: max=(ab)?a:b; 3. 屬性:三目、右結合、優先級高于屬性:三目、右結合、優先級
11、高于=若若w=1,x=2,y=3,z=4,則條件表達式則條件表達式wx?w:yb) a=b; if(bc) b=c;else c=b;c=a;2、當、當a=1,b=2,c=3時時,執行以下程序段后執行以下程序段后, a的值為【的值為【 】,b的值為【的值為【 】,c的值為【的值為【 】.if (ac) b=a; a=c; c=b;3、下面一段程序的輸出結果是【、下面一段程序的輸出結果是【 】.int x=2;if(x)printf(true);else;printf(false);a=2,b=1,c=2a=3,b=2,c=2truefalse1if(表達式表達式)語句語句 2if(表達式表達式
12、)語句語句 1 else 語句語句23. if(表達式表達式1) 語句語句1 else if(表達式表達式2) 語句語句2 else if(表達式表達式m) 語句語句m else 語句語句n!注意注意1、 if 與與 else 的配對關系,的配對關系,else總是與它上面最近的總是與它上面最近的未配對的未配對的 if 配對配對。2、表達式可為、表達式可為常量常量、變變量量或或任意類型任意類型表達式。表達式。3、if或或else后面可使用后面可使用復復合語句合語句 。4. 優先級由高到低優先級由高到低 !、算術算術、關系關系、& 、|、?:?:、=3.2 switch語句語句 一般形式:一般形式
13、: switch(表達式表達式) case 常量常量1:語句:語句1 case 常量常量2:語句:語句2 case 常量常量n:語句:語句n default:語句:語句n+1 switch語句,用于直接處理多分支選擇。語句,用于直接處理多分支選擇。p27必有空格必有空格表達式=常量表達式1表達式=常量表達式2表達式=常量表達式n語句1語句2語句ndefault語句n+1值必互不相同值必互不相同u 讀程序讀程序main( )main( ) int i=10 ; int i=10 ; switch(i) switch(i) case 9 : i+=1; case 9 : i+=1; case 10
14、 :i+=1; case 10 :i+=1; case 11 :i+=1; case 11 :i+=1; default : i+=1; default : i+=1; printf(%d,i); printf(%d,i); 13break;break;break;11lswitch (表達式表達式)l l case 常量表達式常量表達式1:語句:語句1; break;l case 常量表達式常量表達式2:語句:語句2; break;l l case 常量表達式常量表達式n:語句:語句n; break;l default: 語句語句n+1;l表達式=常量表達式1表達式=常量表達式2表達式=常量
15、表達式n語句1語句2語句ndefault語句n+1breakbreakbreakbreak3.2 switch語句語句例例: : 根據百分制成績計算五級分。根據百分制成績計算五級分。main( ) float x; int y; scanf(%f,&x); if(x100|xb) t=a;a=b;b=t; printf(%d,%d n,a,b);數據交數據交換方法換方法 main( ) float x,y; scanf(%f,&x); if(x=15&x200) if(x30) y=x; else if(x100) y=50; else y=2*x-3; printf(y=%.2fn, y);
16、 else printf(“wuyiyin); 其它無意義2001003210030503015xxxxxy編程編程3:計算分段函數。:計算分段函數。讀程序段讀程序段m,n,x,y,z均為整型變量均為整型變量,求執行完該段求執行完該段程序后各變量的值。程序后各變量的值。m=10;n=5;x=(-m=n+)?-m:+n;y=m+;z=n;x=7,y=9,z=7m=10,n=71. c1. c程序是由程序是由函數函數構成的,一個構成的,一個c c程序有且僅程序有且僅有一個有一個mainmain函數;函數;2. 2. 一個函數由兩部分構成:即一個函數由兩部分構成:即函數首部函數首部和和函函數體數體;
17、3. 3. 一個一個c c程序總是從程序總是從mainmain函數函數開始,在開始,在mainmain函函數結束;數結束;4. c4. c程序程序書寫自由書寫自由;5. 5. 分號分號是是c c語句和聲明的語句和聲明的結束結束標志;標志;6. c6. c語言本身無輸入輸出語句,其功能語言本身無輸入輸出語句,其功能由函數由函數實現實現;7. 7. 可用可用/ /* * */ /對對c c程序中的任何部分作任何程序中的任何部分作任何注釋,其對程序的編譯執行沒有任何影響。注釋,其對程序的編譯執行沒有任何影響。小結一、程序結構:一、程序結構:二、常量、變量:二、常量、變量:標識符:標識符:標識符由標識
18、符由字母字母、數字數字和和下劃線下劃線三種字符三種字符組成,且組成,且第一個字符不為數字。第一個字符不為數字。1.1.整型常量整型常量2.2.浮點型常量浮點型常量八進制:以八進制:以0 0開頭,開頭,012012十六進制:以十六進制:以0 x0 x開頭,開頭,0 x1d30 x1d3十進制小數形式:十進制小數形式:由數字和小數由數字和小數點組成點組成;指數形式:指數形式:字母字母e后必須為整數,后必須為整數,e前必須有數字前必須有數字。3.3.變量變量(1).(1).嚴格區分大小寫嚴格區分大小寫。(2).(2).變量變量“先定義,后使用先定義,后使用”。(3).(3).變量的值應與定義的變量的
19、值應與定義的類型一致類型一致。(4).(4).變量名變量名不能與關鍵字重名不能與關鍵字重名。三、三、scanf(格式控制,地址表列)(格式控制,地址表列)說明說明:(1) (1) 變量前必須有地址符變量前必須有地址符& &。 (2) “ (2) “格式控制格式控制”若有普通字符,輸入時必須輸入這若有普通字符,輸入時必須輸入這些些 字符。字符。scanf(“a=%d,b=%d,&a,&b);scanf(“a=%d,b=%d,&a,&b);輸入:輸入: a=76,b=28a=76,b=28(3) (3) 輸入實數不能規定精度輸入實數不能規定精度。(4) (4) 可以可以指定指定輸入數據的輸入數據的
20、列數列數,系統,系統自動自動按它按它截截 取取所需數據。所需數據。scanf(%7.2f,&a);scanf(%7.2f,&a);(5) (5) * *格式用于格式用于跳過指定列數跳過指定列數。 例:例:scanf(%3d%3d,&a,&b);scanf(%3d%3d,&a,&b); 輸入:輸入:123456 123456 a a值值123123,b b值值456456 scanf(%2d%scanf(%2d%* *3d%2d,&a,&b);3d%2d,&a,&b); 輸入:輸入:12345671234567 12a 12a,345345被跳過,被跳過,67b67b。四、四、c表達式表達式 “
21、*”不能省略;不能省略; / /:若若/ /號兩邊都是整型時,結果也為整型;號兩邊都是整型時,結果也為整型; % %:求模或求余運算,要求兩邊的操作數必求模或求余運算,要求兩邊的操作數必須是須是整型整型;正確使用數學函數;正確使用數學函數;運算符優先級:運算符優先級: 單目(單目(! + - (! + - (類型類型) )) 雙目(算術、雙目(算術、&、|、關系)、關系) 三目(三目(?:?:) 賦值(賦值(= =) 常用數學函數常用數學函數(p14)(p14)xsqrt(x)x fabs(x) xeexp(x)xlnlog(x)xlglog10(x)yxpow(x,y)xsinsin(x)xcoscos(x)xtantan(x) 各類數值型數據的混合運算各類數值型數據的混合運算 高高 doubledoublefloat float long long unsi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 道具存款測試題及答案
- 綠色發展面試題及答案
- 理想教育創新路徑
- 教育機構教管主任競聘演講
- 兒童創意繪畫蓮蓬課件
- 刺豚創意繪畫課件
- 原料庫年終工作總結
- 中國移動公司員工培訓大綱
- 組織實施培訓的
- 折紙小兔子課件
- 2023年吉林省國資委出資企業定向招聘高校畢業生540人筆試備考題庫及答案解析
- 2022年四川涼山州屬國有企業專業技術及管理人員招聘和選聘49人筆試備考題庫及答案解析
- 寶馬e38,e39維修手冊第一章車身控制系統
- 軋輥作業指導書
- LY/T 1704-2007白蛾周氏嚙小蜂人工繁育及應用技術規程
- JJF 1078-2002光學測角比較儀校準規范
- 如何進行生產線編成
- 腦卒中篩查與干預流程
- 電氣工程及其自動化畢業論文
- 馬鈴薯脫毒種薯繁育技術
- 洪澇災害災區血吸蟲病防控應急工作方案(2020年版)
評論
0/150
提交評論