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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

<stdio.h>

intmain(void){

float

s,r,pi=3.14;

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

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

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

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

<stdio.h>

intmain(void){

charc1,c2;

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

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

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

)。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)以下程序的輸出結果是(

)。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)以下程序的輸出結果是(

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

)。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課后作業完成課堂任務撰寫任務書完成云課堂作業高級語言程序設計模塊二程序設計基礎任務2.3選擇結構的使用C語言程序設計基礎與實踐課程組04技能點拓展03技能點詳解02技能點分析目錄CONTENTS任務2.3選擇結構的使用01問題引入05技能點檢測一問題引入

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

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

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

if...else語句如果布爾表達式為“真”,則執行if塊內的代碼。如果布爾表達式為“假”,則執行else塊內的代碼。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語句內使用另一個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語句必須遵循下面的規則:1)switch語句中的表達式是一個常量表達式,必須是一個整型或枚舉類型。2)在一個switch中可以有任意數量的case語句。每個case后跟一個要比較的值和一個冒號。3)case后的常量必須與switch中的變量具有相同的數據類型,且必須是一個整數或字符常量。4)當被測試的變量等于case中的常量時,case后跟的語句將被執行,直到遇到break語句為止。5)當遇到break語句時,switch終止,控制流將跳轉到switch語句后的下一行。6)不是每一個case都需要包含break。如果case語句不包含break,控制流將會繼續后續的case,直到遇break為止。7)一個switch語句可以有一個可選的defaultcase,出現在switch的結尾。defaultcase可用于在上面所有case都不為“真”時執行一個任務。defaultcase中的break語句不是必需的。三技能點詳解——5

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

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

<stdio.h>

//頭函數

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”再輸出它的值。/*********************************內容簡述:判斷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,并輸出相應的結果,如果都不是則輸出“沒有匹配的值”,最后再輸出它的值。/***************************************內容簡述:輸入數值,與設定值進行數值匹配

***************************************/#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語句在這個案例中,我們先定義兩個整型變量,并對它們各自賦值,然后先判斷第一個變量的值是否滿足條件,在滿足條件的情況下再去判斷第二個變量的值是否也滿足條件,如果兩個變量的值都滿足條件,則輸出一句話,說明兩個變量的值是多少,最后再輸出這兩個變量的值加以驗證。/***************************************內容簡述:判斷兩個條件都滿足時候的條件

***************************************/#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語句我們要根據某學生考試所得成績去輸出相應的結果提示,最后再輸出其成績。三技能點詳解——案例/***************************************************內容簡述:根據某學生考試所得成績去輸出相應的結果提示

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

<stdio.h>

//頭文件

intmain(void){

chargrade='B';//分數等級

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語句的應用在這個案例中,我們先定義兩個整型變量,并對它們各自賦值,然后先用一個switch...case語句去判斷a的值,在此case分支內再去嵌套一個switch...case去判斷b的值,最后再輸出這兩個變量的值加以驗證。三技能點詳解——案例/***************************************************內容簡述:根據某學生考試所得成績去輸出相應的結果提示

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

<stdio.h>

intmain(void){

inta=100;//定義變量值

intb=200;

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

case100:

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

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

)。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)寫出下面程序的執行結果(

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

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

<stdio.h>

intmain(void){

inta;

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

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

return0;}三技能點詳解——案例案例2.4.4嵌套for循環利用嵌套for循環輸出2-50內的所有質數。/***********************************************內容簡述:利用嵌套for循環輸出2-50內的所有質數。***********************************************/#include

<stdio.h>

intmain(void){

int

i,j

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

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

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

break;}

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

printf("%d是質數\n",i); }

return0;}三技能點詳解——案例案例2.4.5嵌套while循環36塊磚,36人搬,男搬4,女搬3,兩個小孩抬一磚。要求一次全搬完,問男、女、小孩各若干?三技能點詳解——案例/**************************內容簡述:搬磚問題。**************************/#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個,小孩有\%d個。\n",men,women,children); women++; } men++; }

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論