版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
選擇結(jié)構(gòu)程序設(shè)計(jì)第一講if選擇語(yǔ)句-單分支if語(yǔ)句C語(yǔ)言程序設(shè)計(jì)任務(wù)驅(qū)動(dòng)式教程if選擇語(yǔ)句多分支switch語(yǔ)句選擇結(jié)構(gòu)綜合應(yīng)用目錄問(wèn)題導(dǎo)入【問(wèn)題】什么是選擇結(jié)構(gòu)?導(dǎo)航儀對(duì)公路上的汽車進(jìn)行導(dǎo)航的過(guò)程中,要以“目的地”為條件選擇相應(yīng)的路線進(jìn)行導(dǎo)航,這就是選擇結(jié)構(gòu)。問(wèn)題導(dǎo)入用什么語(yǔ)句可以實(shí)現(xiàn),下面這樣的分支結(jié)構(gòu)呢?if選擇語(yǔ)句if選擇語(yǔ)句——單分支if語(yǔ)句任務(wù)一(1)函數(shù)格式
if(表達(dá)式){語(yǔ)句組;}重要提示:面臨的選擇是要么執(zhí)行,要么跳過(guò)。
“語(yǔ)句組”是一條獨(dú)立的語(yǔ)句,“{}”可以省略;“語(yǔ)句組”為多條語(yǔ)句的復(fù)合語(yǔ)句,“{}”不能省略。此處不需要;語(yǔ)句后面;不能少請(qǐng)注意if選擇語(yǔ)句——單分支if語(yǔ)句任務(wù)一
關(guān)于表達(dá)式
請(qǐng)注意(2)執(zhí)行流程注:不局限于關(guān)系表達(dá)式,也可以是數(shù)值表達(dá)式,表達(dá)式的值為非0時(shí),即為真。
示例1if(5+3)
……if(x>=85)
……if(x>0&&x<6)
……算術(shù)表達(dá)式關(guān)系表達(dá)式邏輯表達(dá)式if選擇語(yǔ)句——單分支if語(yǔ)句的應(yīng)用任務(wù)一根據(jù)天氣情況,判斷是否打傘去上學(xué)。請(qǐng)注意
應(yīng)用1#include<stdio.h>intmain(){
charr;
scanf(“%c”,&r);
if(r==‘y’||r<=‘Y’)printf(“帶好傘,去上學(xué)?!?;
printf(“去上學(xué)。”);return0;}判斷是否打傘去上學(xué)的表達(dá)式為:r==‘y’||r<=‘Y’if選擇語(yǔ)句——單分支if語(yǔ)句的應(yīng)用任務(wù)一輸入一字母,無(wú)論該字母是大寫還是小寫,均以小寫形式輸出。
應(yīng)用2if選擇語(yǔ)句——單分支if語(yǔ)句的應(yīng)用任務(wù)一輸入一字母,無(wú)論該字母是大寫還是小寫,均以小寫形式輸出。請(qǐng)注意
應(yīng)用2#include<stdio.h>intmain(){
charch;
ch=getchar();if(ch>=‘A’&&ch<=‘Z’)
ch=ch+32;
putchar(ch);
putchar(‘\n’);return0;}判斷大寫字母的表達(dá)式為:
ch>=‘A’&&ch<=‘Z’if選擇語(yǔ)句——單分支if語(yǔ)句的應(yīng)用任務(wù)一計(jì)算兩個(gè)數(shù)的最大值——單分支if語(yǔ)句實(shí)現(xiàn)請(qǐng)注意
應(yīng)用3開始輸入a和ba>b?a<=b?輸出max結(jié)束max=amax=b開始輸入a和ba>b?a<=b?輸出max結(jié)束max=amax=b是是否否if選擇語(yǔ)句——單分支if語(yǔ)句的應(yīng)用任務(wù)一計(jì)算兩個(gè)數(shù)的最大值——單分支if語(yǔ)句實(shí)現(xiàn)請(qǐng)注意
應(yīng)用3#include<stdio.h>intmain(){
inta,b,max;
printf("請(qǐng)輸入a,b的值:\n");
scanf("%d%d",&a,&b);
if(a>b)max=a;
if(a<=b)max=b;printf("輸出結(jié)果為:max=%d.\n",max);return0;}技能實(shí)訓(xùn)改寫應(yīng)用3的程序:輸入兩個(gè)整數(shù),然后將這兩個(gè)整數(shù)按照從大到小的順序輸出?!獑畏种f語(yǔ)句實(shí)現(xiàn)。參照下面的結(jié)果編寫程序。練一練技能實(shí)訓(xùn)任務(wù)一#include<stdio.h>voidmain(){inta,b,t;printf("請(qǐng)輸入a,b的值:");scanf("%d%d",&a,&b);
if(a<b){t=a;a=b;b=t;}printf("輸出結(jié)果為:a=%d,b=%d.",a,b);}學(xué)習(xí)總結(jié)答一答任務(wù)一學(xué)習(xí)總結(jié)(1)if后面的表達(dá)式必須用圓括號(hào)括起來(lái)。(2)if后面的表達(dá)式可以為關(guān)系表達(dá)式、邏輯表達(dá)式、算術(shù)表達(dá)式等。例如:if(a>=1&&a<=10)printf("x=%d,y=%d",x,3*x-1);if(1)printf("OK!"); /*條件永遠(yuǎn)為真*/if(!a)printf("inputerror!");(3)表達(dá)式中一定要區(qū)分賦值運(yùn)算符“=”和關(guān)系運(yùn)算符“==”。例如,if(x==3)判斷x的值是否等于3,而if(x=3)則是把3賦值給x,所以表達(dá)式的值為3(非0),即為真。感謝觀看!選擇結(jié)構(gòu)程序設(shè)計(jì)第二講if選擇語(yǔ)句-雙分支結(jié)構(gòu)C語(yǔ)言程序設(shè)計(jì)任務(wù)驅(qū)動(dòng)式教程if選擇語(yǔ)句多分支switch語(yǔ)句選擇結(jié)構(gòu)綜合應(yīng)用目錄問(wèn)題導(dǎo)入小李,你的出租車如何計(jì)費(fèi)?起步價(jià)7元(<=2公里),2公里以上部分每公里2元。if……else……
分析設(shè)x代表行駛的公里數(shù),m代表費(fèi)用7+2(x-2)7m=如何實(shí)現(xiàn)雙分支結(jié)構(gòu)呢?
出租車計(jì)費(fèi)問(wèn)題
if選擇語(yǔ)句-雙分支結(jié)構(gòu)任務(wù)二請(qǐng)注意(1)語(yǔ)法格式(2)執(zhí)行流程
if(表達(dá)式)
{語(yǔ)句組1;}else
{語(yǔ)句組2;}重要提示:面臨的選擇是在兩個(gè)不同的操作中,選擇其中的一個(gè)來(lái)執(zhí)行。
If之后的小括號(hào)中必須有表達(dá)式,else之后不能有表達(dá)式。If…else…表達(dá)是是兩種情況,實(shí)現(xiàn)兩個(gè)分支。if選擇語(yǔ)句-雙分支結(jié)構(gòu)任務(wù)二
關(guān)于表達(dá)式
請(qǐng)注意
示例1if(6)
……else……if(x<60)
……else……if(x<0||x>100)
……else……算術(shù)表達(dá)式關(guān)系表達(dá)式邏輯表達(dá)式寫出輸出x,y中較大數(shù)的語(yǔ)句。if(x>y)
printf(“%d\n”,x);elseprintf(“%d\n”,y);if選擇語(yǔ)句-雙分支結(jié)構(gòu)的應(yīng)用任務(wù)二出租車計(jì)費(fèi):起步價(jià)7元(<=2公里),2公里以上部分每公里2元。
應(yīng)用1
分析設(shè)x代表行駛的公里數(shù),m代表費(fèi)用7+2(x-2)(x>2)7(x<=2)m=if選擇語(yǔ)句-雙分支結(jié)構(gòu)的應(yīng)用任務(wù)二出租車計(jì)費(fèi):起步價(jià)7元(<=2公里),2公里以上部分每公里2元。
應(yīng)用1#include<stdio.h>intmain(){
floatx,m;
scanf(“%f”,&x);
if(x<=2)
m=7;
else
m=7+2*(x-2);printf(“%5.1f元。\n”,m);return0;}if選擇語(yǔ)句-雙分支結(jié)構(gòu)的應(yīng)用任務(wù)二
應(yīng)用2輸入一個(gè)正整數(shù),判斷該數(shù)是偶數(shù),還是奇數(shù)。#include<stdio.h>voidmain(){
intx;printf("請(qǐng)輸入一個(gè)正整數(shù):");scanf("%d",&x);
if(x%2==0)printf("正整數(shù)%d是偶數(shù)。\n",x);
elseprintf("正整數(shù)%d是奇數(shù)。\n",x);}if選擇語(yǔ)句——單分支if語(yǔ)句的應(yīng)用任務(wù)一計(jì)算兩個(gè)數(shù)的最大值——雙分支if-else語(yǔ)句實(shí)現(xiàn)請(qǐng)注意
應(yīng)用3開始輸入a和ba>b?輸出max結(jié)束max=amax=b開始輸入a和ba>b?a<=b?輸出max結(jié)束max=amax=b是是否否if選擇語(yǔ)句——單分支if語(yǔ)句的應(yīng)用任務(wù)一計(jì)算兩個(gè)數(shù)的最大值——雙分支if-else語(yǔ)句實(shí)現(xiàn)請(qǐng)注意
應(yīng)用3#include<stdio.h>intmain(){inta,b,max;printf("請(qǐng)輸入a,b的值:\n");scanf("%d%d",&a,&b);if(a>b)max=a;elsemax=b;printf("輸出結(jié)果為:max=%d.\n",max); return0;}if(a>b)max=a;
if(a<=b)max=b;
if(a>b)max=a;
elsemax=b;if選擇語(yǔ)句——單分支if語(yǔ)句的應(yīng)用任務(wù)一計(jì)算兩個(gè)數(shù)的最大值——雙分支if-else語(yǔ)句實(shí)現(xiàn)請(qǐng)注意
應(yīng)用3#include<stdio.h>intmain(){inta,b,max;printf("請(qǐng)輸入a,b的值:\n");scanf("%d%d",&a,&b);if(a>b)max=a;elsemax=b;printf("輸出結(jié)果為:max=%d.\n",max); return0;}表達(dá)式1?表達(dá)式2:表達(dá)式3max=a>b?a:bif選擇語(yǔ)句——單分支if語(yǔ)句的應(yīng)用任務(wù)一計(jì)算兩個(gè)數(shù)的最大值——雙分支if-else語(yǔ)句實(shí)現(xiàn)請(qǐng)注意
應(yīng)用3#include<stdio.h>intmain(){inta,b,max;printf("請(qǐng)輸入a,b的值:\n");scanf("%d%d",&a,&b);if(a>b)max=a;elsemax=b;printf("輸出結(jié)果為:max=%d.\n",max); return0;}表達(dá)式1?表達(dá)式2:表達(dá)式3printf("輸出結(jié)果為:max=%d.\n",
a>b?a:b);技能實(shí)訓(xùn)以下程序用于判斷輸入的字符是否為字母,補(bǔ)充完整,然后將程序改寫成僅一對(duì)if-else的形式。練一練技能實(shí)訓(xùn)任務(wù)二charch;ch=getchar();
if(
)printf("%c是字母。",ch);
else
if(
)
printf("%c是字母。",ch);else
printf("%c不是字母。",ch);技能實(shí)訓(xùn)2.一個(gè)三角形的三邊分別用a,b,c表示,輸入三個(gè)邊長(zhǎng)a、b、c,判斷該三角形是否為等腰三角形。練一練技能實(shí)訓(xùn)任務(wù)二#include<stdio.h>voidmain(){inta,b,c;printf("請(qǐng)輸入三角形三邊長(zhǎng):");scanf("%d%d%d",&a,&b,&c);if(a==b||b==c||a==c)printf("該三角形是等腰三角形.\n");elseprintf("該三角形不是等腰三角形.\n");}學(xué)習(xí)總結(jié)答一答任務(wù)二學(xué)習(xí)總結(jié)【問(wèn)題1】if語(yǔ)句的雙分支語(yǔ)法結(jié)構(gòu)?【問(wèn)題2】if-else語(yǔ)句是一個(gè)整體,屬于同一個(gè)語(yǔ)句。需要注意的是,else子句不能作為語(yǔ)句單獨(dú)使用,它必須是if語(yǔ)句的一部分,與if配對(duì)使用。感謝觀看!選擇結(jié)構(gòu)程序設(shè)計(jì)第三講if選擇語(yǔ)句-多分支結(jié)構(gòu)C語(yǔ)言程序設(shè)計(jì)任務(wù)驅(qū)動(dòng)式教程if選擇語(yǔ)句多分支switch語(yǔ)句選擇結(jié)構(gòu)綜合應(yīng)用目錄問(wèn)題導(dǎo)入if…else…if如何實(shí)現(xiàn)多分支結(jié)構(gòu)呢?編程計(jì)算y的值求y=-1(x<0)0(x=0)1(x>0)if選擇語(yǔ)句---多分支if-else-if語(yǔ)句任務(wù)三if-else-if語(yǔ)句,其一般形式如下:if(表達(dá)式1) 語(yǔ)句1elseif(表達(dá)式2) 語(yǔ)句2elseif(表達(dá)式3) 語(yǔ)句3…elseif(表達(dá)式n) 語(yǔ)句nelse 語(yǔ)句n+1編程時(shí)常常需要判定一系列的條件,一旦其中某一個(gè)條件為真就立刻停止。(1)語(yǔ)法格式if選擇語(yǔ)句---多分支if-else-if語(yǔ)句形式任務(wù)三執(zhí)行過(guò)程是:程序先判斷表達(dá)式1的值,當(dāng)其結(jié)果為“真”時(shí),則執(zhí)行語(yǔ)句1;否則判斷表達(dá)式2的值,當(dāng)其值為“真”時(shí),則執(zhí)行語(yǔ)句2;否則判斷表達(dá)式3的值,當(dāng)其值為“真”時(shí),則執(zhí)行語(yǔ)句3;否則接著進(jìn)行判斷,依此類推,直到找到結(jié)果為“真”的表達(dá)式,并執(zhí)行與之相關(guān)的語(yǔ)句。如果經(jīng)過(guò)判斷,所有的表達(dá)式都為“假”,那么就執(zhí)行最后一個(gè)else之后的語(yǔ)句。(2)執(zhí)行流程if選擇語(yǔ)句-多分支if-else-if語(yǔ)句形式任務(wù)三
應(yīng)用1
#include<stdio.h>main(){intx,y;scanf("%d",&x);if(x<0)y=-1;elseif(x==0)y=0;elsey=1;printf("x=%d,y=%d\n",x,y);}輸入:3輸出:x=3,y=1輸入:-4輸出:x=-4,y=-1輸入:0輸出:x=0,y=0求y=-1(x<0)0(x=0)1(x>0)if選擇語(yǔ)句-多分支if-else-if語(yǔ)句形式任務(wù)三
應(yīng)用2體型判斷:根據(jù)“體指數(shù)”,對(duì)體型進(jìn)行劃分:體指數(shù)t=體重w/(身高h(yuǎn))2
(w單位為千克,h單位為米)。當(dāng)t<18時(shí),為低體重;當(dāng)t介于18和25之間時(shí),為正常體重;當(dāng)t介于25和27之間時(shí),為超重體重;當(dāng)t≥27時(shí),為肥胖。編程從鍵盤輸入體重w和身高h(yuǎn),根據(jù)給定公式計(jì)算體指數(shù)t,然后判斷體型屬于何種類型,并輸出結(jié)果。問(wèn)題分析本問(wèn)題屬于多分支選擇結(jié)構(gòu),可以用if語(yǔ)句的第3種形式來(lái)表示。
問(wèn)題:體型判斷問(wèn)題
if選擇語(yǔ)句-多分支if-else-if語(yǔ)句形式任務(wù)三
應(yīng)用2#include<stdio.h>intmain(){ doubleh,w,t; printf("請(qǐng)輸入體重(千克),身高(米):");//在輸入語(yǔ)句前加一條輸入提示
scanf("%lf%lf",&w,&h); //輸入雙精度浮點(diǎn)型變量的值要用格式控制%lf t=w/(h*h); if(t<18)
printf(“t=%5.2f,體型為低體重\n”,t); //%5.2f表示輸出的數(shù)據(jù)寬度為5位,小數(shù)占2位
elseif(t>=18&&t<25)
printf("t=%5.2f,體型為正常體重\n",t); elseif(t>=25&&t<27)
printf("t=%5.2f,體型為超重體重\n",t); else
printf("t=%5.2f,體型為肥胖體重\n",t); return0; }
問(wèn)題:體型判斷問(wèn)題
技能實(shí)訓(xùn)1.編程:現(xiàn)有一分段函數(shù),輸入任意一個(gè)x值,輸出對(duì)應(yīng)的y值。練一練技能實(shí)訓(xùn)任務(wù)三y=x+3(x>3)x(x=3)x-3(x<3)技能實(shí)訓(xùn)1.編程:現(xiàn)有一分段函數(shù),輸入任意一個(gè)x值,輸出對(duì)應(yīng)的y值。練一練技能實(shí)訓(xùn)任務(wù)三y=x+3(x>3)x(x=3)x-3(x<3)#include“stdio.h”main(){intx,y;printf(“\n請(qǐng)輸入x的值:”);
scanf(“%d”,&x);if(x<3)y=x+3;elseif(x==3)y=x;elsey=x-3;printf(“x=%d,y=%d”,x,y);}
學(xué)習(xí)總結(jié)答一答任務(wù)二學(xué)習(xí)總結(jié)【問(wèn)題1】if語(yǔ)句的多分支語(yǔ)法結(jié)構(gòu)?【問(wèn)題2】在應(yīng)用if-else-if多分支結(jié)構(gòu)時(shí),應(yīng)注意每個(gè)else是和其前面最近的if配對(duì)使用的。一般來(lái)講,中間的各個(gè)else不能省略,但最后一個(gè)else可以省略,這時(shí)表示當(dāng)所有的表達(dá)式的值都為假時(shí),執(zhí)行該選擇結(jié)構(gòu)下面的語(yǔ)句。感謝觀看!選擇結(jié)構(gòu)程序設(shè)計(jì)第四講if選擇語(yǔ)句-if語(yǔ)句的嵌套C語(yǔ)言程序設(shè)計(jì)任務(wù)驅(qū)動(dòng)式教程if選擇語(yǔ)句多分支switch語(yǔ)句選擇結(jié)構(gòu)綜合應(yīng)用目錄問(wèn)題導(dǎo)入如果輸入的a、b、c值不能構(gòu)成三角形呢?#include<stdio.h>voidmain(){inta,b,c;printf("請(qǐng)輸入三角形三邊長(zhǎng):");scanf("%d%d%d",&a,&b,&c);if(a==b||b==c||a==c)printf("該三角形是等腰三角形.\n");elseprintf("該三角形不是等腰三角形.\n");}一個(gè)三角形的三邊分別用a,b,c表示,輸入三個(gè)邊長(zhǎng)a、b、c,判斷該三角形是否為等腰三角形。if選擇語(yǔ)句-if語(yǔ)句的嵌套任務(wù)二(1)語(yǔ)法格式if(expr1)if(expr2)statement1elsestatement2內(nèi)嵌ifif(expr1)if(expr2)statement1elsestatement3
內(nèi)嵌ifif(expr1)statement1elseif(expr3)statement3elsestatement4內(nèi)嵌ifif(expr1)if(expr2)statement1elsestatement2elseif(expr3)statement3elsestatement4內(nèi)嵌if內(nèi)嵌ifif選擇語(yǔ)句-if語(yǔ)句的嵌套的應(yīng)用任務(wù)二
應(yīng)用1修改程序,輸入三個(gè)邊長(zhǎng)a、b、c,如果這三個(gè)邊能構(gòu)成三角形,判斷該三角形是等邊三角形、等腰三角形,還是其它三角形。#include<stdio.h>voidmain(){inta,b,c;printf("請(qǐng)輸入三角形三邊長(zhǎng):");scanf("%d%d%d",&a,&b,&c);if(a>0&&b>0&&c>0&&a+b>c&&b+c>a&&a+c>b)//判斷能否構(gòu)成三角形
{if(a==b&&b==c)
printf("該三角形是等邊三角形.\n");
else
if(a==b||b==c||a==c)
printf("該三角形是等腰三角形.\n");
else
printf("該三角形是其它三角形.\n");}else
printf("注意:不能構(gòu)成合法三角形.\n");if選擇語(yǔ)句-if語(yǔ)句的嵌套的應(yīng)用任務(wù)二
應(yīng)用1修改程序,輸入三個(gè)邊長(zhǎng)a、b、c,如果這三個(gè)邊能構(gòu)成三角形,判斷該三角形是等邊三角形、等腰三角形,還是其它三角形。重要提示:
else總是和它前面離它最近的未配對(duì)的if相匹配??梢酝ㄟ^(guò)“{}”來(lái)強(qiáng)制if和else的配對(duì)關(guān)系。請(qǐng)注意程序運(yùn)行情況如下(運(yùn)行4次)請(qǐng)輸入a,b,c的值:6,6,6↙
該三角形是等邊三角形.請(qǐng)輸入a,b,c的值:6,6,8↙
該三角形是等腰三角形.請(qǐng)輸入a,b,c的值:6,7,8↙
該三角形是其它三角形.請(qǐng)輸入a,b,c的值:2,3,6↙
注意:不能構(gòu)成合法三角形.if選擇語(yǔ)句-if語(yǔ)句的嵌套的應(yīng)用任務(wù)二輸入兩數(shù)并判斷其大小關(guān)系
應(yīng)用2#include<stdio.h>voidmain(){intx,y;printf("Enterintegerx,y:");scanf("%d,%d",&x,&y);if(x!=y){if(x>y)printf("X>Y\n");elseprintf("X<Y\n");}elseprintf("X==Y\n");}運(yùn)行:Enterintegerx,y:12,23
X<Y
Enterintegerx,y:12,6
X>YEnterintegerx,y:12,12
X==Y程序1:if選擇語(yǔ)句-if語(yǔ)句的嵌套的應(yīng)用任務(wù)二輸入兩數(shù)并判斷其大小關(guān)系
應(yīng)用2運(yùn)行:Enterintegerx,y:12,23
X<Y
Enterintegerx,y:12,6
X>YEnterintegerx,y:12,12
X==Y程序2:#include<stdio.h>voidmain(){intx,y;printf("Enterintegerx,y:");scanf("%d%d",&x,&y);if(x==y)printf("X==Y\n");else {if(x>y)printf("X>Y\n"); elseprintf("X<Y\n");}}if選擇語(yǔ)句-if語(yǔ)句的嵌套的應(yīng)用任務(wù)二
應(yīng)用3有如下一個(gè)函數(shù):
編寫一程序,實(shí)現(xiàn)輸入x值,輸出y值。if選擇語(yǔ)句-if語(yǔ)句的嵌套的應(yīng)用任務(wù)二
應(yīng)用3有如下一個(gè)函數(shù):
編寫一程序,實(shí)現(xiàn)輸入x值,輸出y值。#include<stdio.h>
voidmain(){floatx,y;printf("Pleaseinputx:");scanf("%f",&x);
if(x<1)y=x;
else{if(x<10)
y=2*x-1;else
y=3*x-5;}printf("y=%f\n",y);}if選擇語(yǔ)句-if語(yǔ)句的嵌套的應(yīng)用任務(wù)二
應(yīng)用4編程實(shí)現(xiàn):根據(jù)性別sex和身高tall給某數(shù)據(jù)分類,如果sex為‘F’,當(dāng)tall>=150時(shí),輸出A,否則輸出B;若sex不為‘F’,當(dāng)tall>=172時(shí),輸出A,否則輸出B。程序的運(yùn)行結(jié)果如圖所示。#include"stdio.h"voidmain(){inttall;
charsex;printf("請(qǐng)輸入性別和身高:");scanf("%c%d",&sex,&tall);
if
(sex=='F')
{if(tall>=150)printf("\tA\n");
else
printf("\tB\n");}
else
{if(tall>=172)printf("\tA\n");
elseprintf("\tB\n");}}技能實(shí)訓(xùn)實(shí)現(xiàn)英寸與厘米的換算:設(shè)置一個(gè)變量flag,用于選擇換算的方向,flag的值為1表示英寸換算成厘米,flag的值為2表示厘米換算成英寸。1英寸=2.54*厘米請(qǐng)參照如下運(yùn)行結(jié)果,編寫程序。練一練技能實(shí)訓(xùn)任務(wù)二技能實(shí)訓(xùn)任務(wù)二程序:實(shí)現(xiàn)英寸與厘米的換算#include"stdio.h"voidmain(){floaty,r=2.54;intflag;printf("請(qǐng)輸入要換算的數(shù)據(jù)和換算的方式(1.英寸→厘米,2.厘米→英寸):\n");scanf("%f%d",&y,&flag);if(flag==2||flag==1){if(flag==1)printf("%8.2f英寸=%8.2f厘米\n",y,y*r);elseprintf("%8.2f厘米=%8.2f英寸\n",y,y/r);}else{printf("數(shù)據(jù)錯(cuò)誤!\n");}}學(xué)習(xí)總結(jié)答一答任務(wù)二學(xué)習(xí)總結(jié)一個(gè)if語(yǔ)句又包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套。嵌套if語(yǔ)句使用非常靈活,任何if語(yǔ)句都可以嵌套;被嵌套的if語(yǔ)句本身又可以是一個(gè)嵌套的if語(yǔ)句;在多種嵌套的if語(yǔ)句中,else總是與離它最近并且沒(méi)有配對(duì)的if配對(duì)。感謝觀看!選擇結(jié)構(gòu)程序設(shè)計(jì)第五講多分支switch語(yǔ)句C語(yǔ)言程序設(shè)計(jì)任務(wù)驅(qū)動(dòng)式教程if選擇語(yǔ)句多分支switch語(yǔ)句選擇結(jié)構(gòu)綜合應(yīng)用目錄問(wèn)題導(dǎo)入這是一簡(jiǎn)單計(jì)算器,它可實(shí)現(xiàn)“+、-、*、/”四項(xiàng)功能。除了if語(yǔ)句還有其他語(yǔ)句可以實(shí)現(xiàn)多分支結(jié)構(gòu)嗎?if選擇語(yǔ)句-
多分支switch語(yǔ)句任務(wù)五請(qǐng)注意switch(表達(dá)式){case
常量表達(dá)式1:[語(yǔ)句序列1;][break;]
case
常量表達(dá)式2:[語(yǔ)句序列2;][break;]
……
case
常量表達(dá)式n:[語(yǔ)句序列n;][break;]
default:語(yǔ)句序列n+1;}方括號(hào)括起來(lái)的可省退出當(dāng)前switch語(yǔ)句整型或字符型整型或字符型,常量值不能重復(fù)(1)語(yǔ)法格式if選擇語(yǔ)句-多分支switch語(yǔ)句任務(wù)五(2)執(zhí)行流程if選擇語(yǔ)句-
多分支switch語(yǔ)句任務(wù)五(3)執(zhí)行流程首先計(jì)算switch后面表達(dá)式的值,再依次與每一個(gè)case后面的常量表達(dá)式的值進(jìn)行比較,若有相等的情況,則以該case為入口,執(zhí)行相應(yīng)的語(yǔ)句序列。若相應(yīng)的語(yǔ)句序列后面有break,則程序跳出switch選擇結(jié)構(gòu),執(zhí)行switch選擇結(jié)構(gòu)后面的語(yǔ)句;若相應(yīng)的語(yǔ)句序列后面沒(méi)有break,則執(zhí)行下一個(gè)case后面的語(yǔ)句序列。若所有case后面的常量表達(dá)式的值沒(méi)有與switch后面表達(dá)式的值相等的情況,則執(zhí)行default后面的語(yǔ)句序列。if選擇語(yǔ)句-多分支switch語(yǔ)句任務(wù)五switch后的“表達(dá)式”只能是整形表達(dá)式或字符型表達(dá)式。
說(shuō)明2intx=6;
switch(x)charm=‘a(chǎn)’;
switch(m)整形表達(dá)式字符型表達(dá)式case后的常量表達(dá)式只起到標(biāo)號(hào)作用,找到匹配的入口。intx=3;
switch(x-1){case2:……case3:…………}x-1與2相匹配
說(shuō)明1if選擇語(yǔ)句-多分支switch語(yǔ)句任務(wù)五
說(shuō)明3case后有多條語(yǔ)句時(shí),可以省略大括號(hào){}
intx=3;
switch(x-1){case2:y=sqrt(3+z);printf(“%d\n”,y);break;……}多條語(yǔ)句,省略{}
說(shuō)明4case后無(wú)“break;“語(yǔ)句,程序?qū)⒗^續(xù)執(zhí)行?!璼canf("%c",&ch);
switch(ch){case‘A’:printf(“成績(jī)>=90\n”);case‘C’:printf(“成績(jī)>=60\n”);……}if選擇語(yǔ)句-多分支switch語(yǔ)句任務(wù)五
說(shuō)明5
說(shuō)明6case后有“break;“語(yǔ)句,程序跳出switch語(yǔ)句?!璼canf("%c",&ch);
switch(ch){case‘A’:printf(“成績(jī)>=90\n”);break;case‘C’:printf(“成績(jī)>=60\n”);break;……}各case語(yǔ)句先后順序,不影響程序的執(zhí)行結(jié)果?!璼canf("%c",&ch);
switch(ch){case‘C’:printf(“成績(jī)>=60\n”);break;
case‘A’:printf(“成績(jī)>=90\n”);break;……}if選擇語(yǔ)句-多分支switch語(yǔ)句任務(wù)五
說(shuō)明7多個(gè)case語(yǔ)句共用一組語(yǔ)句。……scanf("%d",&month);
switch(month){case1:
case2:case3:printf(“春季\n”);break;……}month與1、2、3相匹配時(shí),都輸出“春季”if選擇語(yǔ)句-多分支switch語(yǔ)句任務(wù)五
應(yīng)用1利用switch編程,實(shí)現(xiàn)“+、-、*、/”簡(jiǎn)單計(jì)算器。switch(表達(dá)式)中的“表達(dá)式”
如何設(shè)計(jì)?設(shè)char型變量op代表不同的運(yùn)算,根據(jù)op的不同值形成多分支。如:switch(op
)case后的“常量表達(dá)式”
如何表示?
常量表達(dá)式可用‘+’、‘-’、‘*’、‘/’表示
如:case‘+’:
case‘-’:【提示】if選擇語(yǔ)句-多分支switch語(yǔ)句任務(wù)五
應(yīng)用1利用switch編程,實(shí)現(xiàn)“+、-、*、/”簡(jiǎn)單計(jì)算器。#include<stdio.h>voidmain(){
floatx,y;
charop;printf("請(qǐng)輸入運(yùn)算式,如:1.6-0.3:");scanf("%f%c%f",&x,&op,&y);
switch(op){case'+':printf("%0.1f+%0.1f=%0.1f\n",x,y,x+y);break;
case'-':printf("%0.1f-%0.1f=%0.1f\n",x,y,x+y);break;
case'*':printf("%0.1f*%0.1f=%0.1f\n",x,y,x+y);break;case'/':printf("%0.1f/%0.1f=%0.1f\n",x,y,x+y);break;
default:printf("error!\n");}}if選擇語(yǔ)句-多分支switch語(yǔ)句任務(wù)五
應(yīng)用2根據(jù)學(xué)生考試成績(jī)score的值判定考試等級(jí)。判定標(biāo)準(zhǔn)如下表所示。成績(jī)(score)等級(jí)score>=90優(yōu)秀(A級(jí))80<=score<90良好(B級(jí))70<=score<80中等(C級(jí))60<=score<70及格(D級(jí))score<60不及格(E級(jí))if選擇語(yǔ)句-多分支switch語(yǔ)句任務(wù)五
應(yīng)用2根據(jù)學(xué)生考試成績(jī)score的值判定考試等級(jí)。判定標(biāo)準(zhǔn)如下表所示。#include<stdio.h>voidmain(){doublescore;printf("請(qǐng)輸入學(xué)生成績(jī):");scanf("%lf",&score);
switch((int)(score/10))//分析switch后面的表達(dá)式為什么寫成(int)(score/10)?{case10:
case
9:printf("該生的成績(jī)等級(jí)為A-優(yōu)秀.");break;
case
8:printf("該生的成績(jī)等級(jí)為B-良好.");break;
case
7:printf("該生的成績(jī)等級(jí)為C-中等.");break;
case
6:printf("該生的成績(jī)等級(jí)為D-及格.");break;
default:printf("該生的成績(jī)等級(jí)為E-不及格.");}}程序運(yùn)行結(jié)果思考:將程序代碼中的break去掉,會(huì)得到怎樣的運(yùn)行結(jié)果,試分析其原因。技能實(shí)訓(xùn)利用switch編程,實(shí)現(xiàn)從鍵盤輸入1-7之間的數(shù)字時(shí),顯示對(duì)應(yīng)的星期幾的英文單詞。當(dāng)輸入數(shù)字不在1-7范圍內(nèi)時(shí),輸出“error!”練一練技能實(shí)訓(xùn)任務(wù)五技能實(shí)訓(xùn)任務(wù)五 switch(x) { case1:printf("Monday\n");break; case2:printf("Tuesday\n");break; case3:printf("Wednesday\n");break; case4:printf("Thursday\n");break; case5:printf("Friday\n");break; case6:printf("Saturday\n");break; case7:printf("Sunday\n");break; }else printf("error!\n");}#include<stdio.h>voidmain(){ intx; printf("inputx:"); scanf("%d",&x); if(x>=1&&x<=7)技能實(shí)訓(xùn)任務(wù)五#include<stdio.h>voidmain(){ intx; printf("inputx:"); scanf("%d",&x); if(x<1||x>7) printf("error!\n"); else switch(x) { case1:printf("Monday\n");break; case2:printf("Tuesday\n");break; case3:printf("Wednesday\n");break; case4:printf("Thursday\n");break; case5:printf("Friday\n");break; case6:printf("Saturday\n");break; case7:printf("Sunday\n");break; } }技能實(shí)訓(xùn)2.請(qǐng)將簡(jiǎn)單的計(jì)算器程序改寫為帶有菜單設(shè)計(jì)的計(jì)算器。運(yùn)行結(jié)果如下:練一練技能實(shí)訓(xùn)任務(wù)五技能實(shí)訓(xùn)任務(wù)五switch(ch) {
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度二手車買賣合同范本含車輛維修保養(yǎng)協(xié)議3篇
- 轉(zhuǎn)向拉桿課程設(shè)計(jì)
- 二零二五年度信息安全咨詢服務(wù)保密協(xié)議范本2篇
- 二零二五年度無(wú)人機(jī)采購(gòu)安裝與培訓(xùn)合同3篇
- 二零二五年度工程車租賃及運(yùn)輸服務(wù)合同3篇
- 二零二五年度合伙人聯(lián)合市場(chǎng)推廣協(xié)議
- 電力二次系統(tǒng)安全防護(hù)處置方案例文(2篇)
- 2025年小學(xué)二年級(jí)數(shù)學(xué)上冊(cè)教學(xué)工作總結(jié)(3篇)
- 2025年六年級(jí)上學(xué)期語(yǔ)文教師工作總結(jié)范文(2篇)
- 2025年畢業(yè)典禮教師演講稿范文(2篇)
- GB/T 1040.3-2006塑料拉伸性能的測(cè)定第3部分:薄膜和薄片的試驗(yàn)條件
- 定崗定編定員實(shí)施方案(一)
- 河北省房屋建筑和市政基礎(chǔ)設(shè)施施工圖設(shè)計(jì)文件審查要點(diǎn)(版)
- 醫(yī)院院長(zhǎng)年終工作總結(jié)報(bào)告精編ppt
- 綠化養(yǎng)護(hù)重點(diǎn)難點(diǎn)分析及解決措施
- “三排查三清零”回頭看問(wèn)題整改臺(tái)賬
- 造價(jià)咨詢結(jié)算審核服務(wù)方案
- 中國(guó)人民財(cái)產(chǎn)保險(xiǎn)股份有限公司機(jī)動(dòng)車綜合商業(yè)保險(xiǎn)條款
- 八年級(jí)物理上冊(cè)計(jì)算題精選(50道)
- 礦井反風(fēng)演習(xí)方案
- 2022年脛骨平臺(tái)三柱理論
評(píng)論
0/150
提交評(píng)論