![C語言程序設(shè)計 課件 于紅 模塊二 程序設(shè)計基礎(chǔ)_第1頁](http://file4.renrendoc.com/view7/M01/2E/04/wKhkGWcGGyGAQHSpAAFgcb81Hbc812.jpg)
![C語言程序設(shè)計 課件 于紅 模塊二 程序設(shè)計基礎(chǔ)_第2頁](http://file4.renrendoc.com/view7/M01/2E/04/wKhkGWcGGyGAQHSpAAFgcb81Hbc8122.jpg)
![C語言程序設(shè)計 課件 于紅 模塊二 程序設(shè)計基礎(chǔ)_第3頁](http://file4.renrendoc.com/view7/M01/2E/04/wKhkGWcGGyGAQHSpAAFgcb81Hbc8123.jpg)
![C語言程序設(shè)計 課件 于紅 模塊二 程序設(shè)計基礎(chǔ)_第4頁](http://file4.renrendoc.com/view7/M01/2E/04/wKhkGWcGGyGAQHSpAAFgcb81Hbc8124.jpg)
![C語言程序設(shè)計 課件 于紅 模塊二 程序設(shè)計基礎(chǔ)_第5頁](http://file4.renrendoc.com/view7/M01/2E/04/wKhkGWcGGyGAQHSpAAFgcb81Hbc8125.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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é)習目標1.什么是流程圖?他的主要作用是什么?2.流程圖有哪幾種符號?分別表示什么含義?3.從結(jié)構(gòu)化設(shè)計角度來看,有哪幾種流程控制結(jié)構(gòu)?4.常用的流程圖繪制軟件有哪幾種?分別是哪些公司開發(fā)的?學(xué)期預(yù)習04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.1流程圖的繪制三技能點詳解——1規(guī)范1)流程圖形狀統(tǒng)一。流程圖是由點和線組成的面。要畫出規(guī)范的流程圖,最基本的就是流程圖的形狀要統(tǒng)一,如表2.1.1所示:表2.1.1流程圖標準符號2)流程圖的命名要使用主謂結(jié)構(gòu),如“設(shè)備購買流程”。3)操作描述用動賓結(jié)構(gòu),語言要簡潔清晰,如“編制招聘計劃”。4)起點必須有且只有一個,而終點可以省略不畫或有多個。5)流程圖的形狀大小一致,統(tǒng)一字號。6)流程線是從下往上或從右向左時,必須帶箭頭;除此以外,都可以不畫箭頭;流程線的走向默認都是從上向下或從左向右。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)下又可以分為當型結(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)體回到判斷框的入口處。當型結(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當型結(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é)習總是先有付出,才有收獲。在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é)習目標1.什么是順序結(jié)構(gòu)?它的特點是什么?2.順序結(jié)構(gòu)編程的主要步驟是什么?學(xué)期預(yù)習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),第二步可運用我們在模塊一中給大家介紹的各種表達式和賦值語句組合完成,第三步調(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ù)對輸出變量表里所列諸變量(或表達式),其計算順序是自右向左進行的。因此,要注意右邊的參數(shù)值是否會影響到左邊的參數(shù)取值。案例2.2.3printf()函數(shù)的計算順序有如下程序,試分析該程序的輸出是什么?四技能點拓展——1printf()函數(shù)的計算順序輸出結(jié)果為:案例解析:此時,要特別注意printf()函數(shù)對輸出變量表里所列諸變量(或表達式)的計算順序是自右向左進行的。因此printf()在輸出前,應(yīng)該先計算x--,再計算中間的x++,最后計算左邊的x++。但%d與輸出變量的對應(yīng)關(guān)系仍然是從左往右一一對應(yīng)。所以,該程序執(zhí)行后的輸出是:434,而不是:454。四技能點拓展——2復(fù)合語句在C語言程序中,可以用一對花括號把若干條語句括起來,形成一個整體。這個整體就被稱為“復(fù)合語句”。從語法上講,它只相當于一個語句。復(fù)合語句的一般格式是:關(guān)于復(fù)合語句,要注意:1)復(fù)合語句中可以出現(xiàn)變量說明;2)復(fù)合語句中的最后一條語句的語句結(jié)束符(分號)不能省略,否則會產(chǎn)生語法錯誤;3)標識復(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技能點檢測一問題引入
大千世界,茫茫人海。變幻的世界,讓我們在人生的旅途中不斷地選擇,其實,人的一生就是在不斷地選擇。每當我們站在人生的十字路口時,交警是我們自己,自己選擇要去的方向。人生綻放光彩,總是在我們做出完美的選擇時。在計算機的世界里,我們需要根據(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é)習目標1.什么是選擇結(jié)構(gòu)?實現(xiàn)選擇結(jié)構(gòu)的語句有哪些?2.if語句的使用形式有哪些?3.什么情況下使用嵌套if語句?4.switch語句的使用注意事項有哪些?學(xué)期預(yù)習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語句由一個布爾表達式后跟一個或多個語句組成。C語言中if語句的語法:如果布爾表達式為“真”,則if語句內(nèi)的代碼塊將被執(zhí)行。如果布爾表達式為“假”,則if語句結(jié)束后的第一組代碼將被執(zhí)行。C語言把任何非零和非空的值假定為“真”,把零或null假定為“假”。if語句流程圖如圖2.3.2所示:圖2.3.2if語句流程圖三技能點詳解——2
if...else語句2.if...else語句一個if語句后可跟一個可選的else語句,else語句在布爾表達式為“假”時執(zhí)行。C語言中if...else語句的語法:三技能點詳解——2
if...else語句如果布爾表達式為“真”,則執(zhí)行if塊內(nèi)的代碼。如果布爾表達式為“假”,則執(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語句,這可用于測試多種條件。當使用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語句中的表達式是一個常量表達式,必須是一個整型或枚舉類型。2)在一個switch中可以有任意數(shù)量的case語句。每個case后跟一個要比較的值和一個冒號。3)case后的常量必須與switch中的變量具有相同的數(shù)據(jù)類型,且必須是一個整數(shù)或字符常量。4)當被測試的變量等于case中的常量時,case后跟的語句將被執(zhí)行,直到遇到break語句為止。5)當遇到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的準確值是%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的準確值是%d\n",a);
printf("b的準確值是%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';//分數(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的準確值是%d\n",a);
printf("b的準確值是%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是表達式。請注意,冒號的使用和位置。?表達式的值是由Exp1決定的。如果Exp1為“真”,則計算Exp2的值,結(jié)果即為整個?表達式的值。如果Exp1為“假”,則計算Exp3的值,結(jié)果即為整個?表達式的值。其執(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技能點檢測一問題引入早在公元三世紀,魏晉時期的數(shù)學(xué)家劉徽利用割圓術(shù),用圓內(nèi)接六邊形起算,令邊數(shù)加倍,以圓內(nèi)接正3*2n邊形的面積為圓面積的近似值,從而進一步可以算出圓周率。南北朝時期杰出的數(shù)學(xué)家祖沖之,更是將圓周率精確到小數(shù)第7位。無論是劉徽還是祖沖之,他們都付出了常人難以想象的心血重復(fù)進行了大量的運算??萍及l(fā)達的今天,我們可以運用計算機里的循環(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é)習目標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ù)習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í)行一組目標語句。C語言中while循環(huán)的語法:在這里,循環(huán)體語句可以是一個單獨的語句,也可以是幾個語句組成的代碼塊。條件可以是任意的表達式,當為任意非零值時都為true。當條件為true時執(zhí)行循環(huán)體。當條件為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í)行。當條件為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)的語法:請注意,條件表達式出現(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)的控制流:表達式1通常是為循環(huán)變量指定初值,會首先被執(zhí)行,且只會執(zhí)行一次。這一步允許您聲明并初始化任何循環(huán)控制變量。您也可以不在這里寫任何語句,只要有一個分號出現(xiàn)即可。接下來,會判斷表達式2,如果為真,則執(zhí)行循環(huán)主體。如果為假,則不執(zhí)行循環(huán)主體,且控制流會跳轉(zhuǎn)到緊接著for循環(huán)的下一條語句。三技能點詳解——3for循環(huán)在執(zhí)行完for循環(huán)主體后,控制流會跳回上面的表達式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)如果條件永遠不為假,則循環(huán)將變成無限循環(huán)。for循環(huán)在傳統(tǒng)意義上可用于實現(xiàn)無限循環(huán)。由于構(gòu)成循環(huán)的三個表達式中任何一個都不是必需的,您可以將某些條件表達式留空來構(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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 分包工人合同范本
- 上海工程裝修合同范本
- 倉庫電工維修合同范例
- 單元樓租賃合同范本
- 借款經(jīng)濟合同范例
- 基坑及邊坡監(jiān)測沉降觀測合同范本
- 2025年度建筑工程資料歸檔與歸檔技術(shù)支持承包合同范本
- 個人住宅租房合同范本
- 企業(yè)金基金審計合同范例
- 全款購房定金合同范本
- 校長在行政會上總結(jié)講話結(jié)合新課標精神給學(xué)校管理提出3點建議
- T-CSUS 69-2024 智慧水務(wù)技術(shù)標準
- 2025年護理質(zhì)量與安全管理工作計劃
- 湖南大學(xué) 嵌入式開發(fā)與應(yīng)用(張自紅)教案
- 地下商業(yè)街的規(guī)劃設(shè)計
- 長安大學(xué)《畫法幾何與機械制圖一》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024-2030年全球及中國低密度聚乙烯(LDPE)行業(yè)需求動態(tài)及未來發(fā)展趨勢預(yù)測報告
- 2024年新華東師大版七年級上冊數(shù)學(xué)全冊教案(新版教材)
- 醫(yī)院物業(yè)管理制度
- 初中數(shù)學(xué)思維訓(xùn)練雙十字相乘法因式分解練習100道及答案
- (正式版)QC∕T 625-2024 汽車用涂鍍層和化學(xué)處理層
評論
0/150
提交評論