![大學(xué)C語言程序設(shè)計(jì)二版(電子工業(yè))_第1頁](http://file4.renrendoc.com/view/e091d187ecaa4f3e40d708e71aa11f7b/e091d187ecaa4f3e40d708e71aa11f7b1.gif)
![大學(xué)C語言程序設(shè)計(jì)二版(電子工業(yè))_第2頁](http://file4.renrendoc.com/view/e091d187ecaa4f3e40d708e71aa11f7b/e091d187ecaa4f3e40d708e71aa11f7b2.gif)
![大學(xué)C語言程序設(shè)計(jì)二版(電子工業(yè))_第3頁](http://file4.renrendoc.com/view/e091d187ecaa4f3e40d708e71aa11f7b/e091d187ecaa4f3e40d708e71aa11f7b3.gif)
![大學(xué)C語言程序設(shè)計(jì)二版(電子工業(yè))_第4頁](http://file4.renrendoc.com/view/e091d187ecaa4f3e40d708e71aa11f7b/e091d187ecaa4f3e40d708e71aa11f7b4.gif)
![大學(xué)C語言程序設(shè)計(jì)二版(電子工業(yè))_第5頁](http://file4.renrendoc.com/view/e091d187ecaa4f3e40d708e71aa11f7b/e091d187ecaa4f3e40d708e71aa11f7b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、大學(xué)C/C+語言程序設(shè)計(jì) 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.1 if語句4.2 switch 語句 C語言的語句可分為以下四類: 簡(jiǎn)單語句、空語句、復(fù)合語句和流程控制語句。 簡(jiǎn)單語句又分為:表達(dá)式語句和函數(shù)調(diào)用語句。 x+y%4; z-;x=a/2+fabs( b );printf(“hello!”); 復(fù)合語句:用一對(duì)花括號(hào) 將多條語句組合在一起,在語法上相當(dāng)于一條語句。 . int x,y; x =exp(3); y=pow(2,4) ; printf(“x=%d,y=%dn”, x,y);.4.1 if語句(條件選擇語句)if語句的三種形式(1)形式一:?jiǎn)畏种?一般格式
2、:if(表達(dá)式) 語句;例if (xy) max=x; 執(zhí)行過程:實(shí)驗(yàn)教程P18頁6題(if 單分支結(jié)構(gòu))#include stdio.h main( ) int a=8,b=7,c=9,t=0; if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(%5d%5d%5dn,a,b,c); kj17 輸出結(jié)果: 9 8 7三個(gè)數(shù)降序輸出實(shí)驗(yàn)教程P18頁6題(if 單分支結(jié)構(gòu))#include stdio.h main( ) int a=8,b=7,c=9,t=0; if(ab) t=a;a=b;b=t; if(ac)
3、 t=a;a=c;c=t; if(by) max=x; else max=y; printf(“%d”,max);(2)形式二:雙分支一般格式:if (表達(dá)式) 語句1; else 語句2;執(zhí)行過程:#include main() int x,y; printf(Enter an integer:); scanf(%d,&x); if(x=0) y=x; printf(%d.absolute value:%dn,x,y); kj18例: 求一個(gè)數(shù)的絕對(duì)值運(yùn)行:Enter an integer:-12 -12.absolute value :12if(x0) y= -x;else y=x;如:i
4、f(a=b&x=y) printf(“a=b,x=y”); if(3) printf(“OK”); if(a) printf(“%d”,a);if后面的表達(dá)式類型任意(關(guān)鍵:非0為真)if或else后面的語句可以是復(fù)合語句else 不可以單獨(dú)使用例 考慮下面程序的輸出結(jié)果: #include main() int x,y; scanf(“%d,%d”,&x,&y); if(xy) x-; y-; else x+; y+; printf(“%d,%dn”,x,y); kj19Compile Error!if后只能管一條語句說明:(3)形式三:多分支一般格式:if(表達(dá)式1) 語句1; else
5、if(表達(dá)式2) 語句2; else if(表達(dá)式n) 語句n; else 語句n+1;執(zhí)行過程: 實(shí)驗(yàn)教程P18頁4題(if 多分支結(jié)構(gòu))#include “stdio.h”main( ) int a=1,b=2,c=3,d=4; if(abc) printf(“%dn”,d); else if(c-b)=a) printf(“%dn”,2*d); else printf(“%dn”,4*d); kj20例.編程實(shí)現(xiàn):給出一百分制成績(jī),要求輸出成績(jī)等級(jí)A、B、C、D。90分以上為A等,8980分為B等,7970分為C等,6960分為D等。假定成績(jī)?yōu)閷?shí)型數(shù)據(jù)。#includemain() fl
6、oat score; scanf(%f,& score); if (score =90) printf(“An”); if (score =80& score =70& score =60& score 70) printf(“Dn”); kj21例:百分制成績(jī)的等級(jí)劃分問題之解法1:僅用if單分支語句實(shí)現(xiàn)#includemain() float score; scanf(f, &score); if(score=90) printf(An); else if(score=80) printf(Bn); else if(score=70) printf(Cn); else printf(Dn)
7、; kj22解法2:用if多分支語句實(shí)現(xiàn)if語句嵌套:如果if(表達(dá)式)或else后面的語句又包含一個(gè)或多個(gè)if語句,就稱為if語句的嵌套。內(nèi)嵌的if-else語句內(nèi)嵌if-else語句if語句的兩層嵌套結(jié)構(gòu)如下:if(表達(dá)式1) if(表達(dá)式1_1) 語句1_1; else 語句1_2;else if(表達(dá)式2_1) 語句2_1; else 語句2_2;修改1: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”); kj22cif else 配對(duì)原則:缺省 時(shí),else總是和它上面離它最近的未配對(duì)的if配對(duì)例:修改程序,使之 滿足 1.
8、 a,b,c相等時(shí)輸出 :a=b=c; 2. a!=b時(shí)輸出a!=b if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);想改變if else默認(rèn)配對(duì)方法:加 例: 計(jì)算分段函數(shù)。 x + 2 x= x -10 x *2 10 = x 0 x / 2 x 10 kj23 if(x=0) if(x=-10) y=x+2; else y=x-2; else if(x=10) y=x*2; else y=x/2; if(x=-10) y=x+2;else if(x=0) y=x-2; else if(x0 。常量可以是整數(shù)或字符。例 switc
9、h(score) case 9: printf(“A”); case 8: printf(“B”); case 7: printf(“C”); case 6: printf(“D”); default : printf(“E”); kj24運(yùn)行結(jié)果:score為9時(shí),輸出: ABCDE如果score分別為3,2,1呢?說明:語句標(biāo)號(hào)作用,必須用break跳出case后可包含多個(gè)可執(zhí)行語句,且不必加 多個(gè)case可共用一組執(zhí)行語句如: case A:printf(“score90n”);break; case B: case C: printf(“score60n”); break; .swit
10、ch可嵌套,其中的break語句只能退出本層的switch語句體 例 :. int score; scanf(“%d”,&score); switch(score/10) case 9: printf(“A”); break; case 8: printf(“B”); break; case 7: printf(“C”); break; case 6: printf(“D”); break;. kj24運(yùn)行結(jié)果:score為95時(shí),輸出: A例:百分制成績(jī)的等級(jí)劃分之解法3:用switch語句實(shí)現(xiàn)main ( ) int a=1, b=0;switch(a)case 1: switch (b)
11、 case 0: printf(*0*); break; case 1: printf(*1*); break; case 2: printf(*2*); break; kj25運(yùn)行結(jié)果:*0*2*例(習(xí)題9):根據(jù)程序?qū)懗鲞\(yùn)行結(jié)果?例: 輸入兩個(gè)整數(shù)和一個(gè)四則運(yùn)算符,要求輸出計(jì)算結(jié)果。#includevoid main() int num1, num2; char sign; scanf(“d , c,d, &num1, &sign, &num2); switch(sign) case +: printf(dn, num1+num2); break; case -: printf(dn, n
12、um1-num2); break; case *: printf(dn, num1*num2); break; case /: printf(dn, num1/num2); break; default: printf(input errorn); kj264.3 實(shí) 例 解 析例1:根據(jù)程序?qū)懗鲞\(yùn)行結(jié)果答案:2答案:13 #include main ( ) int x=2,y=-1,z=2; if(xy) if(y0) z=0; else z+=1; printf(“%dn“,z); kj22e#include main ( ) int i=10; switch(i) case 9:i+=1
13、; case 10:i+=1; case 11:i+=1; default:i+=1; printf(%dn,i);例:根據(jù)輸入的年份和月份,計(jì)算該月有多少天?(考慮閏年和平年的情況)#include main() int year,month,day; printf(“input the year and month:”); scanf(“%d,%d”,&year,&month);/輸入年份和月份 switch(month) case 4: case 6: case 9: case 11: day=30;break; case 2: if (year%4=0&year%100!=0|year
14、%400=0) day=29; else day=28; break; default:day=31;break; printf(“The month is %d dayn”,day);/輸出該月的天數(shù)#include #include main() float a,b,c,m,n,x1,x2; scanf(%f%f%f,&a,&b,&c); n=-b/(2*a); m=b*b-4*a*c; if(m=0) x1=x2=n; printf(x1=x2=%fn,x1); else if(m0) x1=n+sqrt(m)/(2*a); x2=n-sqrt(m)/(2*a); printf(x1=%f,x2=%fn,x1,x2); else x1=n;x2=sqrt(fabs(m)/(2*a); printf(x1=%f+%fi,x2=%f-%fin,x1,x2,x1,x2); kj28輸入:a=1,b=3,c=2 輸出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度蘋果種植戶與批發(fā)商購(gòu)銷合作協(xié)議4篇
- 2025年購(gòu)房合同關(guān)于貸款條件的補(bǔ)充協(xié)議3篇
- 二零二五年度企業(yè)員工外部培訓(xùn)項(xiàng)目成果應(yīng)用與評(píng)價(jià)協(xié)議3篇
- 二零二五年度綠色建筑項(xiàng)目分期投資借款合同示范文本2篇
- 二零二五年度化糞池設(shè)備研發(fā)與市場(chǎng)推廣合同2篇
- 2025版欠款轉(zhuǎn)為借款合同下載實(shí)現(xiàn)便捷借款2篇
- 二零二五版人才職稱評(píng)定合作協(xié)議2篇
- 二零二五年度租賃房屋租賃雙方責(zé)任認(rèn)定合同2篇
- 2025-2030全球虛擬試穿平臺(tái)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)EMI屏蔽箔膠帶行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 醫(yī)院消防安全培訓(xùn)課件
- 質(zhì)保管理制度
- 《00541語言學(xué)概論》自考復(fù)習(xí)題庫(kù)(含答案)
- 2025年機(jī)關(guān)工會(huì)個(gè)人工作計(jì)劃
- 江蘇省南京市、鹽城市2023-2024學(xué)年高三上學(xué)期期末調(diào)研測(cè)試+英語+ 含答案
- 2024護(hù)理不良事件分析
- 光伏項(xiàng)目的投資估算設(shè)計(jì)概算以及財(cái)務(wù)評(píng)價(jià)介紹
- 2024新版《藥品管理法》培訓(xùn)課件
- 干燥綜合征診斷及治療指南
- 糧油廠食品安全培訓(xùn)
- 南京信息工程大學(xué)《教師領(lǐng)導(dǎo)力》2022-2023學(xué)年第一學(xué)期期末試卷
評(píng)論
0/150
提交評(píng)論