版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第三章選擇結(jié)構(gòu)第三章選擇結(jié)構(gòu)目錄§3.1語句§3.2if語句§3.3switch語句§3.4小結(jié)
§3.1語句一個程序由若干語句構(gòu)成,語句的作用是向計算機系統(tǒng)發(fā)出操作指令,要求執(zhí)行相應(yīng)的操作。表達(dá)式語句空語句函數(shù)調(diào)用語句復(fù)合語句C語句控制語句
§3.1語句①if()…else…(條件語句)②for()…(循環(huán)語句)③while()…(循環(huán)語句)④do…while()(循環(huán)語句)⑤continue(結(jié)束本次循環(huán)語句)⑥break(中止執(zhí)行switch或循環(huán)語句)⑦switch(多分支選擇語句)⑧return(從函數(shù)返回語句)⑨goto(轉(zhuǎn)向語句,在結(jié)構(gòu)化程序中基本不用goto語句)()表示括號中是一個判別條件…表示內(nèi)嵌的語句控制語句表達(dá)式語句空語句函數(shù)調(diào)用語句復(fù)合語句C語句
§3.1語句函數(shù)調(diào)用語句由一個函數(shù)調(diào)用加一個分號構(gòu)成。其中printf(“HelloWorld!”)是一個函數(shù)調(diào)用,加一個分號成為一個語句??刂普Z句表達(dá)式語句空語句函數(shù)調(diào)用語句復(fù)合語句C語句printf(“HelloWorld!
");
§3.1語句函數(shù)調(diào)用語句
表達(dá)式語句由一個表達(dá)式加一個分號構(gòu)成
最典型的是由賦值表達(dá)式構(gòu)成一個賦值語句。例如:a=3是一個賦值表達(dá)式,而a=3;是一個賦值語句。
任何表達(dá)式都可以加上分號而成為語句,包括算術(shù)運算表達(dá)式、關(guān)系運算表達(dá)式、邏輯運算表達(dá)式等。控制語句表達(dá)式語句空語句復(fù)合語句C語句
§3.1語句表達(dá)式語句函數(shù)調(diào)用語句;只有一個分號的語句即為空語句??梢杂脕碜鳛榱鞒痰霓D(zhuǎn)向點(流程從程序其他地方轉(zhuǎn)到此語句處);或作為循環(huán)語句中的循環(huán)體,表示循環(huán)體什么也不做。例如:while((ch=getchar())=='');
該語句表示將跳過輸入字符串中的空白字符,直到遇到非空白字符為止??刂普Z句空語句復(fù)合語句C語句
§3.1語句表達(dá)式語句函數(shù)調(diào)用語句用{}括起來的語句稱為復(fù)合語句(又稱語句塊)。復(fù)合語句常用在選擇結(jié)構(gòu)或循環(huán)結(jié)構(gòu)中,此時程序需要連續(xù)執(zhí)行一組語句。控制語句空語句復(fù)合語句C語句{
x=3; printf(“x=%d",x);}
§3.1語句Tips:①
C語言中每一條語句在最后必須出現(xiàn)分號,分號是語句中不可缺少的組成部分,而不是兩個語句間的分隔符號;②賦值表達(dá)式可以包括在其他表達(dá)式中,但賦值語句不能包含在其他語句和表達(dá)式中;③空語句可用作循環(huán)語句中的循環(huán)體,表示循環(huán)體什么也不做;④復(fù)合語句是用一對大括號“{”和“}”將語句括起來完成了一系列工作。
第三章選擇結(jié)構(gòu)目錄§3.1語句§3.2if語句§3.3switch語句§3.4小結(jié)§3.2if語句3.2.1單分支if結(jié)構(gòu)3.2.2雙分支if結(jié)構(gòu)3.2.3多分支if結(jié)構(gòu)3.2.4if嵌套§3.2if語句§3.2.1單分支if結(jié)構(gòu)格式:if(表達(dá)式)
語句段執(zhí)行:
先計算表達(dá)式的值,如果表達(dá)式的值為真,執(zhí)行后面的語句段;否則不執(zhí)行,即跳過該語句段,繼續(xù)執(zhí)行后面的語句。流程:
§3.2if語句例3.1三個數(shù)字排序。
§3.2if語句輸入三個整數(shù)a,b,c,要求將輸出的數(shù)據(jù)按從大到小排序后輸出。#include<stdio.h>intmain(){inta,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(b<c){t=b;b=c;c=t;} printf("%d%d%d\n",a,b,c);return0;}if(a<b)t=a,a=b,b=t;如何對4個數(shù)進行排序?5個數(shù)呢?思考§3.2.2雙分支if結(jié)構(gòu)格式:if(表達(dá)式)
語句段else
語句段2執(zhí)行:
先計算表達(dá)式的值,如果表達(dá)式的值為真(非0),執(zhí)行語句段1;否則執(zhí)行語句段2。流程:
§3.2if語句魚與熊掌不可兼得例3.2求兩個數(shù)中的較大者。
§3.2if語句輸入兩個整數(shù)a,b,求其中的較大者。#include<stdio.h>intmain(){inta,b,c;scanf("%d%d",&a,&b);if(a<b)c=b;elsec=a;printf("%d\n",c);return0;}輸入三個數(shù),輸出其中的最小數(shù),要求采用if…else雙分支結(jié)構(gòu)來實現(xiàn)。思考
§3.2if語句Tips:①if…else語句是根據(jù)表達(dá)式的真假來從語句段1和語句段2中選擇一路來執(zhí)行;②在雙分支結(jié)構(gòu)中,else必須與if配對使用,構(gòu)成if-else語句,實現(xiàn)雙分支選擇;③語句段1和語句段2可以是一條語句,也可以是多條語句,甚至是一個控制結(jié)構(gòu);如果是多條語句,需要用“{”和“}”括起來,形成復(fù)合語句?!?.2.3多分支if結(jié)構(gòu)格式:if(表達(dá)式1)
語句1
else
if(表達(dá)式2)
語句2
else
if(表達(dá)式3)
語句3......else
if(表達(dá)式n-1)
語句n-1else
語句n
§3.2if語句執(zhí)行:
依次計算表達(dá)式i(i=1,2,…,n-1)的值,當(dāng)表達(dá)式i為真時,執(zhí)行與之相關(guān)的語句段i,并以此結(jié)束整個多分支結(jié)構(gòu)的執(zhí)行。流程:例3.3判斷字符。
§3.2if語句從鍵盤輸入一個字符,根據(jù)字符的ASCI值,判斷它是數(shù)字、大寫字母、小寫字母,還是其他字符,并輸出說明結(jié)果。#include<stdio.h>intmain(){charc;printf("請輸入一個字符:");c=getchar();if(c>='0'&&c<='9')printf("這是一個數(shù)字字符。\n");elseif(c>='A'&&c<='z')printf("這是一個大寫字母。\n");elseif(c>='a'&&c<='z')printf("這是一個小寫字母。\n");elseprintf("這是一個其他字符。\n");return0;}輸入一個字母(大寫或小寫),輸出其對應(yīng)的另一字母(小寫或大寫)。思考§3.2.4if嵌套結(jié)構(gòu)格式:if(表達(dá)式1)if(表達(dá)式2)
語句1//表達(dá)式1為真,且表達(dá)式2也為真時執(zhí)行else
語句2//表達(dá)式1為真,且表達(dá)式2為假時執(zhí)行else
語句3//表達(dá)式1為假時執(zhí)行
§3.2if語句在if…else結(jié)構(gòu)中語句段1和語句段2既可以是一個簡單的語句,也可以是另一個if…else結(jié)構(gòu),從而形成if…else語句的嵌套。if(表達(dá)式1)語句1//表達(dá)式1為真時執(zhí)行
elseif(表達(dá)式2)語句2//表達(dá)式1為假,且表達(dá)式2為真時執(zhí)行
else語句3//表達(dá)式1為假,且表達(dá)式2為假時執(zhí)行
或如下結(jié)構(gòu):if(表達(dá)式1)
if(表達(dá)式2)
語句1
//表達(dá)式1為真,且表達(dá)式2也為真時執(zhí)行
else語句2
//表達(dá)式1為真,且表達(dá)式2為假時執(zhí)行
else
if(表達(dá)式3)
語句3
//表達(dá)式1為假,且表達(dá)式3為真時執(zhí)行
else語句4
//表達(dá)式1為假,且表達(dá)式3也為假時執(zhí)行
例3.4求一元二次方程的根。
§3.2if語句
§3.2if語句#include<stdio.h>#include"math.h"intmain(){doublea,b,c,delta,x1,x2,y1,y2,t;scanf("%lf%lf%lf",&a,&b,&c);if(fabs(a)<1e-6)//判斷a是否相當(dāng)小printf("輸入的系數(shù)不能構(gòu)成二次方程!");//a=0時不是二次方程else{ delta=b*b-4*a*c; if(fabs(delta)<1e-6)//△=0時有兩個相等的根 printf("x1=x2=%.5lf\n",-b/(2*a));elseif(delta>0)//△>0時有兩個實數(shù)根? { x1=(-b+sqrt(delta))/(2*a);//sqrt函數(shù)用來求出參數(shù)的平方根 x2=(-b-sqrt(delta))/(2*a);if(x1<x2)//交換兩個實根 t=x1,x1=x2,x2=t; printf("x1=%.5lf;x2=%.5lf",x1,x2); } else//△<0時有兩個復(fù)數(shù)跟 { x1=-b/(2*a); y1=sqrt(-delta)/(2*a); y2=-sqrt(-delta)/(2*a);if(y1<y2)//交換兩個虛根 t=y1,y1=y2,y2=t; printf("x1=%.5lf",x1); if(y1>0) printf("+%.5lfi;x2=%.5lf",y1,x1); else printf("%.5lfi;x2=%.5lf",y1,x1); if(y2>0) printf("+%.5lfi",y2); else printf("%.5lfi",y2); }}return0;}下述分支結(jié)構(gòu)中,語句2的執(zhí)行條件是什么?
if(表達(dá)式1)
if(表達(dá)式2)
語句1
else
語句2
思考嚴(yán)密、求精工匠精神第三章選擇結(jié)構(gòu)目錄§3.1語句§3.2if語句§3.3switch語句§3.4小結(jié)格式:switch(表達(dá)式)
{case常量表達(dá)式1:語句段1[break;]
case常量表達(dá)式2:語句段2[break;]......case常量表達(dá)式n:語句段n[break;][default:語句段n+1]}
§3.3switch語句執(zhí)行:先計算switch后面表達(dá)式的值,然后逐個與case中的常量表達(dá)式的值比較,如果二者相等,執(zhí)行相應(yīng)case后面的語句段,如果case語句段后有break語句,執(zhí)行完語句段后則控制跳出switch語句,執(zhí)行switch之后的語句;如果case語句段后沒有break語句,執(zhí)行完語句段后將繼續(xù)往下執(zhí)行后面所有case后的語句,直到有break或者遇到switch語句的“}”終止該結(jié)構(gòu)。不相等時,繼續(xù)執(zhí)行下一個case結(jié)構(gòu)進行判斷。若表達(dá)式的值與所有case中的表達(dá)式的值均不相等時,執(zhí)行default后面的語句。流程:
§3.3switch語句例3.5等級成績。
§3.3switch語句學(xué)院的考試采用等級制,即將百分制轉(zhuǎn)換為A、B、C、D、E5個等級,設(shè)成績?yōu)閄,則90≤X≤100為A,80≤X<90為B,70≤X<80為C,60≤X<70為D,X<60為E。編寫一個程序,將輸入的分?jǐn)?shù)轉(zhuǎn)換成A、B、C、D、E5個等級。#include<stdio.h>intmain(){floatscore;scanf("%d",&score);switch((int)score/10){ case10: case9:printf("A");break; case8:printf("B");break; case7:printf("C");break; cas
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/Z 17626.35-2025電磁兼容試驗和測量技術(shù)第35部分:HPEM模擬器概述
- 2026年海洋非物質(zhì)文化遺產(chǎn)保護合同
- 2026年網(wǎng)絡(luò)安全文化建設(shè)服務(wù)合同
- 2026年醫(yī)院古金星模型館共建合同
- 2025年瀏陽市金陽醫(yī)院第三批公開招聘編外合同制人員備考題庫及一套完整答案詳解
- 2025年上海大學(xué)上海市科創(chuàng)教育研究院招聘行政專員備考題庫完整參考答案詳解
- 吉林省水利水電勘測設(shè)計研究院2026年校園招聘29人備考題庫及一套完整答案詳解
- 銀聯(lián)企業(yè)服務(wù)(上海)有限公司2026年度招聘備考題庫及完整答案詳解一套
- 國家知識產(chǎn)權(quán)局專利局專利審查協(xié)作廣東中心2026年度專利審查員公開招聘備考題庫完整參考答案詳解
- 2025年關(guān)于為山東鐵路檢察機關(guān)公開招聘聘用制書記員的備考題庫附答案詳解
- 非開挖頂管合同范本
- 專家講座的協(xié)議書
- 雨課堂學(xué)堂在線學(xué)堂云民族學(xué)導(dǎo)論專題中央民族大學(xué)單元測試考核答案
- 2026元旦班級聯(lián)歡晚會活動主題班會:星光閃耀迎新夜 課件
- 2025年內(nèi)蒙古行政執(zhí)法人員資格認(rèn)證考試題庫真題庫及答案
- 急性胰腺炎重癥患者白蛋白輸注方案
- 中國-東盟貿(mào)易投資合作進展報告2024-2025-深圳大學(xué)
- 特種設(shè)備安全管理制度匯編
- 異形展臺施工方案設(shè)計
- 績效管理數(shù)字化應(yīng)用指南2025
- 施工員證考試題型及答案
評論
0/150
提交評論