C語言程序設(shè)計 課件 于紅 模塊二 程序設(shè)計基礎(chǔ)_第1頁
C語言程序設(shè)計 課件 于紅 模塊二 程序設(shè)計基礎(chǔ)_第2頁
C語言程序設(shè)計 課件 于紅 模塊二 程序設(shè)計基礎(chǔ)_第3頁
C語言程序設(shè)計 課件 于紅 模塊二 程序設(shè)計基礎(chǔ)_第4頁
C語言程序設(shè)計 課件 于紅 模塊二 程序設(shè)計基礎(chǔ)_第5頁
已閱讀5頁,還剩116頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

高級語言程序設(shè)計模塊二程序設(shè)計基礎(chǔ)任務(wù)2.1流程圖的繪制C語言程序設(shè)計基礎(chǔ)與實踐課程組04技能點拓展03技能點詳解02技能點分析目錄CONTENTS任務(wù)2.1流程圖的繪制01問題引入05技能點檢測一問題引入流程圖是人們對解決問題的方法、思路或算法的一種描述。社會的各行各業(yè)都會用到流程圖,比如酒店有管理流程,企業(yè)有項目實施流程,物流系統(tǒng)有配送流程等等。使用流程圖可以形象直觀的描述程序設(shè)計的思路,使各種操作一目了然,便于理解,并可以直接轉(zhuǎn)化為程序。那么在C程序設(shè)計中如何繪制流程圖呢?04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.1流程圖的繪制二技能點分析1.了解流程圖的繪制規(guī)范2.掌握流程圖繪制方法3.能夠使用visio繪制流程圖學(xué)習(xí)目標(biāo)1.什么是流程圖?他的主要作用是什么?2.流程圖有哪幾種符號?分別表示什么含義?3.從結(jié)構(gòu)化設(shè)計角度來看,有哪幾種流程控制結(jié)構(gòu)?4.常用的流程圖繪制軟件有哪幾種?分別是哪些公司開發(fā)的?學(xué)期預(yù)習(xí)04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.1流程圖的繪制三技能點詳解——1規(guī)范1)流程圖形狀統(tǒng)一。流程圖是由點和線組成的面。要畫出規(guī)范的流程圖,最基本的就是流程圖的形狀要統(tǒng)一,如表2.1.1所示:表2.1.1流程圖標(biāo)準(zhǔn)符號2)流程圖的命名要使用主謂結(jié)構(gòu),如“設(shè)備購買流程”。3)操作描述用動賓結(jié)構(gòu),語言要簡潔清晰,如“編制招聘計劃”。4)起點必須有且只有一個,而終點可以省略不畫或有多個。5)流程圖的形狀大小一致,統(tǒng)一字號。6)流程線是從下往上或從右向左時,必須帶箭頭;除此以外,都可以不畫箭頭;流程線的走向默認(rèn)都是從上向下或從左向右。7)判斷框和選擇框上下端連接“yes”線,左右端“no”流入流出。8)流程圖從左到右、從上至下排列。9)流程處理關(guān)系為并行關(guān)系的,需要將流程放在同一高度。10)連接線不要交叉。三技能點詳解——1規(guī)范三技能點詳解——2流程圖的三大結(jié)構(gòu)流程圖由三大結(jié)構(gòu)構(gòu)成,這三大結(jié)構(gòu)分別為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),這三個結(jié)構(gòu)構(gòu)成了流程執(zhí)行的全過程。1)順序結(jié)構(gòu)在順序結(jié)構(gòu)中,各個步驟是按先后順序執(zhí)行的,這是一種最簡單的基本結(jié)構(gòu)。如圖2.1.1所示,A、B、C是三個連續(xù)的步驟,它們是按順序執(zhí)行的,即完成上一個框中指定的操作才能再執(zhí)行下一個動作。圖2.1.1順序結(jié)構(gòu)流程圖三技能點詳解——2流程圖的三大結(jié)構(gòu)2)選擇結(jié)構(gòu)選擇結(jié)構(gòu)又稱分支結(jié)構(gòu),選擇結(jié)構(gòu)用于判斷給定的條件,根據(jù)判斷的結(jié)果來控制程序的流程,如圖2.1.2所示。在實際運用中,某一判定結(jié)果可以為空操作(如圖二)。圖2.1.2選擇結(jié)構(gòu)流程圖三技能點詳解——2流程圖的三大結(jié)構(gòu)3)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)又稱為重復(fù)結(jié)構(gòu),就是流程在一定的條件下,反復(fù)執(zhí)行某一操作的流程結(jié)構(gòu)。循環(huán)結(jié)構(gòu)下又可以分為當(dāng)型結(jié)構(gòu)和直到型結(jié)構(gòu)。循環(huán)結(jié)構(gòu)可以看成是一個條件判斷條件和一個向回轉(zhuǎn)向條件的組合,循環(huán)結(jié)構(gòu)的包括三個要素:循環(huán)變量、循環(huán)體和循環(huán)終止條件。在流程圖的表示中,判斷框內(nèi)寫上條件,兩個出口分別對應(yīng)著條件成立和條件不成立時所執(zhí)行的不同指令,其中一個要指向循環(huán)體,然后再從循環(huán)體回到判斷框的入口處。當(dāng)型結(jié)構(gòu):先判斷所給條件p是否成立,若P成立,則執(zhí)行A(步驟);再判斷條件p是否成立;若P成立,則又執(zhí)行A,若此反復(fù),直到某一次條件p不成立時為止,如圖2.1.3所示:三技能點詳解——2流程圖的三大結(jié)構(gòu)直到型結(jié)構(gòu):先執(zhí)行A,再判斷所給條件P是否成立,若p成立,則再執(zhí)行A,如此反復(fù),直到P不成立,該循環(huán)過程結(jié)束,如圖2.1.4所示:圖2.1.3當(dāng)型結(jié)構(gòu)流程圖圖2.1.4直到型結(jié)構(gòu)流程圖案例2.1.1順序結(jié)構(gòu)流程圖示例案例題目:計算1+2+3+4+5的和。解題思路:第一步:計算1+2的和等于3第二步:計算3+3的和等于6第三步:計算6+4的和等于10第四步:計算10+5的和等于15流程圖如圖2.1.5所示:三技能點詳解——案例實踐案例2.1.2選擇結(jié)構(gòu)流程圖示例案例題目:判斷一個數(shù)能否同時被3和5整除。解題思路:第一步:先輸入這個數(shù)(假定為變量a)的值第二步:判斷a是否可以同時被3和5整除第三步:如果可以,則輸出“可以整除”;如果不可以,則輸出“不可以整除”流程圖如圖2.1.6所示:三技能點詳解——案例實踐04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.1流程圖的繪制四技能點拓展——1畫流程圖工具MicrosoftVisio(微軟老牌制作流程圖軟件)億圖(國產(chǎn)不錯的流程圖軟件)Xmind(涵蓋pc\Mac\IOS\安卓)/(在線制作流程圖)四技能點拓展——2OfficeVisio04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.1流程圖的繪制五技能點檢測1)下列圖形符號,屬于判斷框的是(

)。A)B)C)D)2)下列關(guān)于流程線的說法,正確的有(

)。A)流程線表示算法步驟執(zhí)行的順序,用來連接圖框。B)流程線只要是上下方向就表示自上而下執(zhí)行可以不要箭頭。C)流程線無論什么方向,總要按箭頭的指向執(zhí)行。D)流程線是帶有箭頭的線,它可以畫成折線。五技能點檢測3)解決下列幾個問題,能用順序結(jié)構(gòu)畫出其流程圖的是(

)。A)計算1+2+3+...+100的和B)判斷兩數(shù)的大小關(guān)系,輸出結(jié)果C)求兩個整數(shù)的和D)求1-100內(nèi)的所有素數(shù)4)算法中通常有三種不同的基本邏輯結(jié)構(gòu),下面說法正確的是(

)。A)一個算法中只能包含一種基本邏輯結(jié)構(gòu)。B)一個算法可以包含三種基本邏輯結(jié)構(gòu)的任意組合。C)一個算法最多可以包含兩種基本邏輯結(jié)構(gòu)。D)一個算法必須包含三種基本邏輯結(jié)構(gòu)。課后作業(yè)完成課堂任務(wù),在線提交;完成技能檢測,在線提交;高級語言程序設(shè)計模塊二程序設(shè)計基礎(chǔ)任務(wù)2.2順序結(jié)構(gòu)的使用C語言程序設(shè)計基礎(chǔ)與實踐課程組04技能點拓展03技能點詳解02技能點分析目錄CONTENTS任務(wù)2.2順序結(jié)構(gòu)的使用01問題引入05技能點檢測一問題引入

世間萬物都在遵循著規(guī)律各自運作。太陽總是先從東邊升起,再從西邊落下;大自然春夏秋冬,四季更迭;學(xué)習(xí)總是先有付出,才有收獲。在C語言的編程世界里,也有一種結(jié)構(gòu)有著自己的編寫規(guī)律,這就是順序結(jié)構(gòu)。那么什么是順序結(jié)構(gòu)編程呢?它又有什么樣的編程規(guī)律呢?04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.2順序結(jié)構(gòu)的使用二技能點分析1.了解順序結(jié)構(gòu)的含義2.掌握順序結(jié)構(gòu)編程的主要步驟3.能夠利用順序結(jié)構(gòu)解決簡單問題學(xué)習(xí)目標(biāo)1.什么是順序結(jié)構(gòu)?它的特點是什么?2.順序結(jié)構(gòu)編程的主要步驟是什么?學(xué)期預(yù)習(xí)04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.2順序結(jié)構(gòu)的使用三技能點詳解順序結(jié)構(gòu)是C語言的基本結(jié)構(gòu),平時寫程序基本都用到順序結(jié)構(gòu)。所謂“順序結(jié)構(gòu)”,即指程序中語句的執(zhí)行順序,就是按照書寫的先后順序從前到后執(zhí)行的結(jié)構(gòu)。程序設(shè)計者要把事情交給計算機去做,通常是寫出一條條語句,用它們描述事情的原委,這在程序設(shè)計里稱作“順序式”結(jié)構(gòu),它的執(zhí)行特點如圖2.2.1所示:圖2.2.1順序結(jié)構(gòu)執(zhí)行特點示意圖三技能點詳解順序結(jié)構(gòu)編程的主要步驟可分為三步:1)輸入數(shù)據(jù)2)對數(shù)據(jù)進行加工處理3)輸出結(jié)果其中第一步可通過調(diào)用輸入函數(shù)來實現(xiàn),第二步可運用我們在模塊一中給大家介紹的各種表達(dá)式和賦值語句組合完成,第三步調(diào)用輸出函數(shù)即可。其流程圖如圖2.2.2所示:圖2.2.2順序結(jié)構(gòu)執(zhí)行流程圖案例2.2.1順序結(jié)構(gòu)程序示例1案例題目:已知一圓的半徑,求其面積(圓周率記pi=3.14)。/**********************************內(nèi)容簡述:已知圓的半徑,求面積。**********************************/#include

<stdio.h>

intmain(void){

float

s,r,pi=3.14;

printf("請輸入圓的半徑:\n");

scanf("%f",&r);//輸入數(shù)據(jù) s=pi*r*r;//對數(shù)據(jù)加工處理

printf("面?積ys=%.2f\n",s);//輸出結(jié)果

return0;}三技能點詳解——案例案例題目:從鍵盤輸入一個小寫字母,將其轉(zhuǎn)換成大寫字母后輸出。案例2.2.2順序結(jié)構(gòu)程序示例2/***************************************內(nèi)容簡述:將小寫字母轉(zhuǎn)換成大寫字母輸出。***************************************/#include

<stdio.h>

intmain(void){

charc1,c2;

printf("請輸入一個小寫字母:\n"); c1=getchar(); c2=c1-32;//小寫字母的ASCII碼值比大寫字母大32

printf("%c,%d\n",c2,c2);//將轉(zhuǎn)換后的字母分別以字符和整數(shù)兩種形式輸出

return0;}三技能點詳解——案例04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.2順序結(jié)構(gòu)的使用四技能點拓展——1printf()函數(shù)的計算順序我們知道任何一個程序都是要有輸出結(jié)果的,順序結(jié)構(gòu)也不例外。在C中通過調(diào)用printf()函數(shù)來完成,那么大家知道printf()函數(shù)的計算順序嗎?printf()函數(shù)對輸出變量表里所列諸變量(或表達(dá)式),其計算順序是自右向左進行的。因此,要注意右邊的參數(shù)值是否會影響到左邊的參數(shù)取值。案例2.2.3printf()函數(shù)的計算順序有如下程序,試分析該程序的輸出是什么?四技能點拓展——1printf()函數(shù)的計算順序輸出結(jié)果為:案例解析:此時,要特別注意printf()函數(shù)對輸出變量表里所列諸變量(或表達(dá)式)的計算順序是自右向左進行的。因此printf()在輸出前,應(yīng)該先計算x--,再計算中間的x++,最后計算左邊的x++。但%d與輸出變量的對應(yīng)關(guān)系仍然是從左往右一一對應(yīng)。所以,該程序執(zhí)行后的輸出是:434,而不是:454。四技能點拓展——2復(fù)合語句在C語言程序中,可以用一對花括號把若干條語句括起來,形成一個整體。這個整體就被稱為“復(fù)合語句”。從語法上講,它只相當(dāng)于一個語句。復(fù)合語句的一般格式是:關(guān)于復(fù)合語句,要注意:1)復(fù)合語句中可以出現(xiàn)變量說明;2)復(fù)合語句中的最后一條語句的語句結(jié)束符(分號)不能省略,否則會產(chǎn)生語法錯誤;3)標(biāo)識復(fù)合語句結(jié)束的右花括號的后面不能有語句結(jié)束符(分號);4)在選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中,常會用復(fù)合語句作為程序中的一個語法成分。四技能點拓展——2復(fù)合語句案例2.2.4復(fù)合語句演示輸出結(jié)果為:04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.2順序結(jié)構(gòu)的使用五技能點檢測1)根據(jù)題目中已給出的數(shù)據(jù)的輸入和輸出形式,程序中輸入/輸出語句的正確是(

)。main(){inta;floatx;printf("inputa,x:");輸入語句輸出語句}輸入形式inputa,x:32.1輸出形式a+x=5.10五技能點檢測A)scanf("%d,%f",&a,&x);B)scanf("%d%f",&a,&x);printf("\na+x=%4.2f",a+x);printf("\na+x=%4.2f",a+x);C)scanf("%d%f",&a,&x);D)scanf("%d%3.1f",&a,&x);printf("\na+x=%6.1f",a+x);printf("\na+x=%4.2f",a+x);五技能點檢測2)以下程序的輸出結(jié)果是(

)。main(){inti=010,j=10,k=0x10;printf("%d,%d,%d\n",i,j,k);}A)8,10,16B)8,10,10C)10,10,10D)10,10,16五技能點檢測3)以下程序的輸出結(jié)果是(

)。#include<stdio.h>main(){printf("%d\n",NULL);}A)不確定的值(因變量無定義)B)0C)-1D)1五技能點檢測4).以下程序的輸出結(jié)果是(

)。main(){charc1='6',c2='0';printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);}A)因輸出格式不合法,輸出出錯信息B)6,0,6,102C)6,0,7,6D)6,0,5,7課后作業(yè)完成課堂任務(wù)撰寫任務(wù)書完成云課堂作業(yè)高級語言程序設(shè)計模塊二程序設(shè)計基礎(chǔ)任務(wù)2.3選擇結(jié)構(gòu)的使用C語言程序設(shè)計基礎(chǔ)與實踐課程組04技能點拓展03技能點詳解02技能點分析目錄CONTENTS任務(wù)2.3選擇結(jié)構(gòu)的使用01問題引入05技能點檢測一問題引入

大千世界,茫茫人海。變幻的世界,讓我們在人生的旅途中不斷地選擇,其實,人的一生就是在不斷地選擇。每當(dāng)我們站在人生的十字路口時,交警是我們自己,自己選擇要去的方向。人生綻放光彩,總是在我們做出完美的選擇時。在計算機的世界里,我們需要根據(jù)某些條件來選擇執(zhí)行指定的操作,這就需要選擇結(jié)構(gòu)。04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.3選擇結(jié)構(gòu)的使用二技能點分析1.了解實現(xiàn)選擇結(jié)構(gòu)的兩種語句:if語句和switch語句2.掌握if語句和switch語句的語法3.能夠使用這兩種語句進行選擇結(jié)構(gòu)編程學(xué)習(xí)目標(biāo)1.什么是選擇結(jié)構(gòu)?實現(xiàn)選擇結(jié)構(gòu)的語句有哪些?2.if語句的使用形式有哪些?3.什么情況下使用嵌套if語句?4.switch語句的使用注意事項有哪些?學(xué)期預(yù)習(xí)04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.3選擇結(jié)構(gòu)的使用三技能點詳解選擇結(jié)構(gòu)要求程序員指定一個或多個要評估或測試的條件,以及條件為“真”時要執(zhí)行的語句(必需的)和條件為“假”時要執(zhí)行的語句(可選的)。C語言把任何非零和非空的值假定為“真”,把零或null假定為“假”。下面是大多數(shù)編程語言中典型的選擇語句的流程圖:圖2.3.1選擇語句流程圖三技能點詳解常用選擇語句對應(yīng)關(guān)系,如表2.3.1所示:表2.3.1選擇語句描述對照表三技能點詳解——1

if語句1.if語句一個if語句由一個布爾表達(dá)式后跟一個或多個語句組成。C語言中if語句的語法:如果布爾表達(dá)式為“真”,則if語句內(nèi)的代碼塊將被執(zhí)行。如果布爾表達(dá)式為“假”,則if語句結(jié)束后的第一組代碼將被執(zhí)行。C語言把任何非零和非空的值假定為“真”,把零或null假定為“假”。if語句流程圖如圖2.3.2所示:圖2.3.2if語句流程圖三技能點詳解——2

if...else語句2.if...else語句一個if語句后可跟一個可選的else語句,else語句在布爾表達(dá)式為“假”時執(zhí)行。C語言中if...else語句的語法:三技能點詳解——2

if...else語句如果布爾表達(dá)式為“真”,則執(zhí)行if塊內(nèi)的代碼。如果布爾表達(dá)式為“假”,則執(zhí)行else塊內(nèi)的代碼。C語言把任何非零和非空的值假定為“真”,把零或null假定為“假”。if...else語句流程圖如圖2.3.3所示:圖2.3.3if...else語句流程圖三技能點詳解——3

if...elseif...else3.if...elseif...else語句一個if語句后可跟一個可選的elseif...else語句,這可用于測試多種條件。當(dāng)使用if...elseif...else語句時,以下幾點需要注意:一個if后可跟零個或一個else,else必須在所有elseif之后。一個if后可跟零個或多個elseif,elseif必須在else之前。一旦某個elseif匹配成功,其他的elseif或else將不會被測試。

三技能點詳解——3

if...elseif...elseC語言中的if...elseif...else語句的語法:三技能點詳解——3

if...elseif...elseif...elseif...else語句流程圖如圖2.3.4所示:圖2.3.4if...elseif...else語句流程圖三技能點詳解——4

C嵌套if語句4.C嵌套if語句在C語言中,嵌套if-else語句是合法的,這意味著您可以在一個if或elseif語句內(nèi)使用另一個if或elseif語句。C語言中嵌套if語句的語法:您可以嵌套elseif...else,方式與嵌套if語句相似。嵌套if語句流程圖如圖2.3.5所示:圖2.3.5嵌套if語句流程圖三技能點詳解——5

switch語句5.switch語句一個switch語句允許測試一個變量等于多個值時的情況。每個值稱為一個case,且被測試的變量會對每個case進行檢查。C語言中switch語句的語法:三技能點詳解——5

switch語句switch語句必須遵循下面的規(guī)則:1)switch語句中的表達(dá)式是一個常量表達(dá)式,必須是一個整型或枚舉類型。2)在一個switch中可以有任意數(shù)量的case語句。每個case后跟一個要比較的值和一個冒號。3)case后的常量必須與switch中的變量具有相同的數(shù)據(jù)類型,且必須是一個整數(shù)或字符常量。4)當(dāng)被測試的變量等于case中的常量時,case后跟的語句將被執(zhí)行,直到遇到break語句為止。5)當(dāng)遇到break語句時,switch終止,控制流將跳轉(zhuǎn)到switch語句后的下一行。6)不是每一個case都需要包含break。如果case語句不包含break,控制流將會繼續(xù)后續(xù)的case,直到遇break為止。7)一個switch語句可以有一個可選的defaultcase,出現(xiàn)在switch的結(jié)尾。defaultcase可用于在上面所有case都不為“真”時執(zhí)行一個任務(wù)。defaultcase中的break語句不是必需的。三技能點詳解——5

switch語句switch...case語句流程圖如圖2.3.6所示:圖2.3.6switch...case語句流程圖三技能點詳解——6嵌套switch語句6.嵌套switch語句您可以把一個switch作為一個外部switch的語句序列的一部分,即可以在一個switch語句內(nèi)使用另一個switch語句。即使內(nèi)部和外部switch的case常量包含共同的值,也沒有矛盾。C語言中嵌套switch語句的語法:案例2.3.1if語句在這個案例中,我們要先定義一個整型變量,并對其賦值,然后判斷其值是否小于20,如果是則輸出“a小于20”,再輸出它的值。/****************************************內(nèi)容簡述:判斷輸入的值是否小于20。

***************************************/#include

<stdio.h>

//頭函數(shù)

intmain(void){

inta=10;//變量賦值

if(a<20)//條件判斷 {

printf("a小于20\n"); }

printf("a的值是%d\n",a);//輸出變量a

return0;}三技能點詳解——案例案例2.3.2if...else語句在這個案例中,我們要先定義一個整型變量,并對其賦值,然后判斷其值是否小于20,如果是則輸出“a小于20”,否則輸出“a大于20”再輸出它的值。/*********************************內(nèi)容簡述:判斷a值的大小。

*********************************/#include

<stdio.h>

//頭文件

intmain(void){

inta=100;//定義a值

if(a<20)//小于20 {

printf("a小于20\n"); }

else

//不小于20 {

printf("a大于20\n"); }

printf("a的值是%d\n",a);

return0;}三技能點詳解——案例案例2.3.3if...elseif...elseif...else語句我們要先定義一個整型變量,并對其賦值,然后判斷其值是否為10,20或者30,并輸出相應(yīng)的結(jié)果,如果都不是則輸出“沒有匹配的值”,最后再輸出它的值。/***************************************內(nèi)容簡述:輸入數(shù)值,與設(shè)定值進行數(shù)值匹配

***************************************/#include

<stdio.h>intmain(void){

inta=100;//定義變量值

if(a==10)//判斷是否與10相等{

printf("a的值是10\n");}

else

if(a==20)//判斷是否與20相等{

printf("a的值是20\n");}

else

if(a==30)//判斷是否與30相等{

printf("a的值是30\n");}

else

//以上都不匹配{

printf("沒有匹配的值\n");}

printf("a的準(zhǔn)確值是%d\n",a);

return0;}三技能點詳解——案例案例2.3.4嵌套if語句在這個案例中,我們先定義兩個整型變量,并對它們各自賦值,然后先判斷第一個變量的值是否滿足條件,在滿足條件的情況下再去判斷第二個變量的值是否也滿足條件,如果兩個變量的值都滿足條件,則輸出一句話,說明兩個變量的值是多少,最后再輸出這兩個變量的值加以驗證。/***************************************內(nèi)容簡述:判斷兩個條件都滿足時候的條件

***************************************/#include

<stdio.h>

//頭文件

intmain(void){

inta=100;//定義變量值

intb=200;

if(a==100)//條件1滿足 {

if(b==200)//條件2滿足 {

printf("a的值是100且b的值是200\n"); } }

printf("a的準(zhǔn)確值是%d\n",a);

printf("b的準(zhǔn)確值是%d\n",b);

return0;}三技能點詳解——案例案例2.3.5switch語句我們要根據(jù)某學(xué)生考試所得成績?nèi)ポ敵鱿鄳?yīng)的結(jié)果提示,最后再輸出其成績。三技能點詳解——案例/***************************************************內(nèi)容簡述:根據(jù)某學(xué)生考試所得成績?nèi)ポ敵鱿鄳?yīng)的結(jié)果提示

***************************************************/#include

<stdio.h>

//頭文件

intmain(void){

chargrade='B';//分?jǐn)?shù)等級

switch(grade) {

case'A'://如果是A等級

printf("很棒\n");break;

case'B'://如果是B等級

case'C'://如果是C等級

printf("做得好\n");break;

case'D'://如果是D等級

printf("您通過了\n");break;

case'E'://如果是E等級

printf("最好再試一下\n");break;

default://以上等級都不是

printf("無效的成績\n"); }

printf("您的成績是:%c\n",grade);

return0;}三技能點詳解——案例案例2.3.6嵌套switch語句的應(yīng)用在這個案例中,我們先定義兩個整型變量,并對它們各自賦值,然后先用一個switch...case語句去判斷a的值,在此case分支內(nèi)再去嵌套一個switch...case去判斷b的值,最后再輸出這兩個變量的值加以驗證。三技能點詳解——案例/***************************************************內(nèi)容簡述:根據(jù)某學(xué)生考試所得成績?nèi)ポ敵鱿鄳?yīng)的結(jié)果提示

***************************************************/#include

<stdio.h>

intmain(void){

inta=100;//定義變量值

intb=200;

switch(a)//根據(jù)a的值進行選擇{

case100:

printf("a的值是100。\n");

switch(b)//根據(jù)b的值進行選擇 {

case200:

printf("a的值是100,且b的值是200。\n");break;

default:printf("沒有找到符合b的值。\n");}

break;

default:printf("沒有找到符合a的值。\n");}

printf("a的準(zhǔn)確值是%d\n",a);

printf("b的準(zhǔn)確值是%d\n",b);

return0;}三技能點詳解——案例04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.3選擇結(jié)構(gòu)的使用四技能點拓展——1?:運算符(三元運算符)我們已經(jīng)在前面的章節(jié)中講解了條件運算符?:,可以用來替代if...else語句。它的一般形式如下:Exp1?Exp2:Exp3;其中,Exp1、Exp2和Exp3是表達(dá)式。請注意,冒號的使用和位置。?表達(dá)式的值是由Exp1決定的。如果Exp1為“真”,則計算Exp2的值,結(jié)果即為整個?表達(dá)式的值。如果Exp1為“假”,則計算Exp3的值,結(jié)果即為整個?表達(dá)式的值。其執(zhí)行示意圖如圖2.3.13所示:圖2.3.13三元運算符執(zhí)行示意圖四技能點拓展——1?:運算符(三元運算符)以下實例通過輸入一個數(shù)字來判斷它是否為奇數(shù)或偶數(shù)四技能點拓展——1?:運算符(三元運算符)輸出結(jié)果為:四技能點拓展——2If語句和switch語句的區(qū)別if語句和switch語句可以從使用的效率上來進行區(qū)別,也可以從實用性角度區(qū)分。如果從使用效率上區(qū)分:在對同一個變量在不同值做條件判斷時,可以使用switch語句,也可以使用if語句,使用switch語句的效率更高一些尤其是判斷的分支越多越明顯。如果從語句的實用性的角度去區(qū)分,那switch語句肯定不如if條件語句。if條件語句是應(yīng)用最廣泛和最實用的語句。在程序開發(fā)的過程中,具體如何使用if和switch語句哦,需要根據(jù)實際的情況來定,應(yīng)盡量做到物盡其用,不要因為switch語句的效率高就一味的使用,也不要因為if語句常用就不應(yīng)用switch語句,根據(jù)實際情況,具體問題具體分析,使用最適合的條件語句。一般情況下,對于判斷條件較少的,可以使用if條件語句,但是在實現(xiàn)一些多條件的判斷中,就應(yīng)該使用switch語句。04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.3選擇結(jié)構(gòu)的使用五技能點檢測1)以下if語句書寫正確的是(

)。A)if(x=0;)B)if(x>0)

printf(“%f”,x);{x=x+1;printf(“%f”,x);}elseprintf(“%f”,-x);elseprintf(“%f”,-x);C)if(x>0);D)if(x>0)

{x=x+1;printf(“%f”,x);}{x=x+1;printf(“%f”,x)}elseprintf(“%f”,-x);elseprintf(“%f”,-x);五技能點檢測2)分析以下程序:main(){intx=5,a=0,b=0;if(x=a+b)printf(“****\n”);elseprintf(“####\n”);以上程序(

)。A)有語法錯,不能通過編譯B)通過編譯,但不能連接C)輸出****D)輸出####五技能點檢測3)兩次運行下面的程序,如果從鍵盤上分別輸入6和4,則輸出結(jié)果是(

)。main(){intx;

scanf(“%d”,&x);if(x++>5)printf(“%d”,x);elseprintf(“%d\n”,x--);

}A)7和5B)6和3C)7和4D)6和4五技能點檢測4)寫出下面程序的執(zhí)行結(jié)果(

)。main(){intx,y=1;if(y!=0)x=5;printf(“%d\t”,x);if(y==0)x=3;elsex=5;printf(“%d\t\n”,x);}A)13B)15C)53D)55課后作業(yè)完成課堂任務(wù),在線提交;完成技能檢測,在線提交;高級語言程序設(shè)計模塊二程序設(shè)計基礎(chǔ)任務(wù)2.4循環(huán)結(jié)構(gòu)的使用C語言程序設(shè)計基礎(chǔ)與實踐課程組04技能點拓展03技能點詳解02技能點分析目錄CONTENTS任務(wù)2.4循環(huán)結(jié)構(gòu)的使用01問題引入05技能點檢測一問題引入早在公元三世紀(jì),魏晉時期的數(shù)學(xué)家劉徽利用割圓術(shù),用圓內(nèi)接六邊形起算,令邊數(shù)加倍,以圓內(nèi)接正3*2n邊形的面積為圓面積的近似值,從而進一步可以算出圓周率。南北朝時期杰出的數(shù)學(xué)家祖沖之,更是將圓周率精確到小數(shù)第7位。無論是劉徽還是祖沖之,他們都付出了常人難以想象的心血重復(fù)進行了大量的運算??萍及l(fā)達(dá)的今天,我們可以運用計算機里的循環(huán)結(jié)構(gòu)來幫助我們進行這些重復(fù)的操作,那么如何編寫循環(huán)結(jié)構(gòu)的程序呢?04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.4循環(huán)結(jié)構(gòu)的使用二技能點分析1.了解循環(huán)的概念和意義2.掌握while循環(huán)和do…while循環(huán)的語法和應(yīng)用3.掌握for循環(huán)的語法和應(yīng)用4.掌握循環(huán)嵌套的方法5.能夠使用循環(huán)結(jié)構(gòu)解決實際問題學(xué)習(xí)目標(biāo)1.什么是循環(huán)結(jié)構(gòu)?實現(xiàn)循環(huán)結(jié)構(gòu)的語句有哪些?2.while循環(huán)和do...while循環(huán)的區(qū)別是什么?3.for循環(huán)的使用變體形式有哪些?4.什么情況下需要使用嵌套循環(huán)?學(xué)期預(yù)習(xí)04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.4循環(huán)結(jié)構(gòu)的使用三技能點詳解在一定的條件下,去重復(fù)執(zhí)行一組語句,這樣的語句結(jié)構(gòu)稱為“循環(huán)結(jié)構(gòu)”,被重復(fù)執(zhí)行的那組語句被稱為“循環(huán)體”。循環(huán)結(jié)構(gòu)在程序設(shè)計中的應(yīng)用是極為廣泛的,下面是大多數(shù)編程語言中循環(huán)語句的流程圖:圖2.4.1循環(huán)語句流程圖三技能點詳解C語言提供了以下幾種循環(huán)類型,如表2.4.1所示:表2.4.1循環(huán)語句描述對照表三技能點詳解——1while循環(huán)只要給定的條件為真,C語言中的while循環(huán)語句就會重復(fù)執(zhí)行一組目標(biāo)語句。C語言中while循環(huán)的語法:在這里,循環(huán)體語句可以是一個單獨的語句,也可以是幾個語句組成的代碼塊。條件可以是任意的表達(dá)式,當(dāng)為任意非零值時都為true。當(dāng)條件為true時執(zhí)行循環(huán)體。當(dāng)條件為false時,退出循環(huán),程序流將繼續(xù)執(zhí)行緊接著循環(huán)的下一條語句。三技能點詳解——1while循環(huán)

While循環(huán)語句流程圖如圖2.4.2所示:圖2.4.2while循環(huán)語句流程圖在這里,while循環(huán)的關(guān)鍵點是循環(huán)可能一次都不會執(zhí)行。當(dāng)條件為false時,會跳過循環(huán)主體,直接執(zhí)行緊接著while循環(huán)的下一條語句。三技能點詳解——2do...while循環(huán)不像for和while循環(huán),它們是在循環(huán)頭部測試循環(huán)條件。在C語言中,do...while循環(huán)是在循環(huán)的尾部檢查它的條件。do...while循環(huán)與while循環(huán)類似,但是do...while循環(huán)會確保至少執(zhí)行一次循環(huán)。C語言中do...while循環(huán)的語法:請注意,條件表達(dá)式出現(xiàn)在循環(huán)的尾部,所以循環(huán)中的循環(huán)體語句會在條件被測試之前至少執(zhí)行一次。如果條件為真,控制流會跳轉(zhuǎn)回上面的do,然后重新執(zhí)行循環(huán)體語句。這個過程會不斷重復(fù),直到給定條件變?yōu)榧贋橹?。三技能點詳解——2do...while循環(huán)do...while循環(huán)語句流程圖如圖2.4.3所示:圖2.4.3do...while循環(huán)語句流程圖三技能點詳解——3for循環(huán)for循環(huán)允許您編寫一個執(zhí)行指定次數(shù)的循環(huán)控制結(jié)構(gòu)。C語言中for循環(huán)的語法:下面是for循環(huán)的控制流:表達(dá)式1通常是為循環(huán)變量指定初值,會首先被執(zhí)行,且只會執(zhí)行一次。這一步允許您聲明并初始化任何循環(huán)控制變量。您也可以不在這里寫任何語句,只要有一個分號出現(xiàn)即可。接下來,會判斷表達(dá)式2,如果為真,則執(zhí)行循環(huán)主體。如果為假,則不執(zhí)行循環(huán)主體,且控制流會跳轉(zhuǎn)到緊接著for循環(huán)的下一條語句。三技能點詳解——3for循環(huán)在執(zhí)行完for循環(huán)主體后,控制流會跳回上面的表達(dá)式3去執(zhí)行。該語句允許您更新循環(huán)控制變量。該語句可以留空,只要在條件后有一個分號出現(xiàn)即可。條件再次被判斷。如果為真,則執(zhí)行循環(huán),這個過程會不斷重復(fù)(循環(huán)主體,然后增加步值,再然后重新判斷條件)。在條件變?yōu)榧贂r,for循環(huán)終止。for循環(huán)語句流程圖如圖2.4.4所示:圖2.4.4for循環(huán)語句流程圖三技能點詳解——4嵌套循環(huán)C語言允許在一個循環(huán)內(nèi)使用另一個循環(huán),下面從語法和流程圖的角度給大家闡述這個概念。C語言中嵌套for循環(huán)語句的語法:嵌套for循環(huán)流程圖如圖2.4.5所示:圖2.4.5嵌套for循環(huán)流程圖三技能點詳解——4嵌套循環(huán)C語言中嵌套while循環(huán)語句的語法:嵌套While循環(huán)流程圖如圖2.4.6所示:圖2.4.6嵌套while循環(huán)流程圖三技能點詳解——4嵌套循環(huán)C語言中嵌套do...while循環(huán)語句的語法:嵌套do...while循環(huán)流程圖如圖2.4.7所示:關(guān)于嵌套循環(huán)有一點值得注意,您可以在任何類型的循環(huán)內(nèi)嵌套其他任何類型的循環(huán)。比如,一個for循環(huán)可以嵌套在一個while循環(huán)內(nèi),反之亦然。圖2.4.7嵌套do...while循環(huán)流程圖三技能點詳解——5無限循環(huán)如果條件永遠(yuǎn)不為假,則循環(huán)將變成無限循環(huán)。for循環(huán)在傳統(tǒng)意義上可用于實現(xiàn)無限循環(huán)。由于構(gòu)成循環(huán)的三個表達(dá)式中任何一個都不是必需的,您可以將某些條件表達(dá)式留空來構(gòu)成一個無限循環(huán)。案例2.4.1while循環(huán)在這個案例中,我們先定義一個整型變量,并對其賦值10,然后通過while循環(huán)將其值增加到20。/**********************************************內(nèi)容簡述:通過while循環(huán)將變量的值由10增到20。**********************************************/#include

<stdio.h>

intmain(void){

inta=10;

while(a<=20) {

printf("a的值:%d\n",a); a++; }

printf("a的值:%d\n",a);

return0;}三技能點詳解——案例案例2.4.2do...while循環(huán)在這個案例中,我們先定義一個整型變量,并對其賦值10,然后通過do...while循環(huán)將其值增加到20。/***********************************************內(nèi)容簡述:通過do...while循環(huán)將變量的值由10增到20。***********************************************/#include

<stdio.h>

intmain(void){

inta=10;

do {

printf("a的值:%d\n",a); a++; }while(a<=20);printf("a的值:%d\n",a);

return0;}三技能點詳解——案例案例2.4.3for循環(huán)我們先定義一個整型變量,并對其賦值10,然后通過for循環(huán)將其值增加到20。/***********************************************內(nèi)容簡述:通過for循環(huán)將變量的值由10增到20。***********************************************/#include

<stdio.h>

intmain(void){

inta;

for(a=10;a<=20;a++) {

printf("a的值:%d\n",a); }

return0;}三技能點詳解——案例案例2.4.4嵌套for循環(huán)利用嵌套for循環(huán)輸出2-50內(nèi)的所有質(zhì)數(shù)。/***********************************************內(nèi)容簡述:利用嵌套for循環(huán)輸出2-50內(nèi)的所有質(zhì)數(shù)。***********************************************/#include

<stdio.h>

intmain(void){

int

i,j

for(i=2;i<50;i++) {

for(j=2;j<=i-1;j++)//用2到i-1作為除數(shù)去驗證 {

if(!(i%j))//如果i能被j整除,則不是質(zhì)數(shù),余下的循環(huán)就無需進行

break;}

if(j>i-1)//在整個循環(huán)過程中i都沒有被任何一個除數(shù)j整除,故是質(zhì)數(shù)

printf("%d是質(zhì)數(shù)\n",i); }

return0;}三技能點詳解——案例案例2.4.5嵌套while循環(huán)36塊磚,36人搬,男搬4,女搬3,兩個小孩抬一磚。要求一次全搬完,問男、女、小孩各若干?三技能點詳解——案例/**************************內(nèi)容簡述:搬磚問題。**************************/#include

<stdio.h>intmain(void){

intmen=1,women,children;

while(men<=8)//男人的取值范圍在1到8之間 { women=1;

while(women<=11)//女人的取值范圍在1到11之間 { children=36-men-women;

if(4.0*men+3.0*women+children/2.0==36.0)//利用36塊磚36人

一次全搬完列等式

printf("男人有%d個,女人有%d個,小孩有\(zhòng)%d個。\n",men,women,children); women++; } men++; }

return0;}三技能點詳解——案例案例2.4.6

嵌套do...while循環(huán)打印一個由*組成的5行的直角三角形。/***

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論