計算機軟件基礎課件:程序的控制結(jié)構_第1頁
計算機軟件基礎課件:程序的控制結(jié)構_第2頁
計算機軟件基礎課件:程序的控制結(jié)構_第3頁
計算機軟件基礎課件:程序的控制結(jié)構_第4頁
計算機軟件基礎課件:程序的控制結(jié)構_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

程序的控制結(jié)構《計算機軟件基礎》01.順序結(jié)構02.選擇結(jié)構03.循環(huán)結(jié)構主要內(nèi)容本章重點難點本章重點:單個字符輸入輸出函數(shù)的功能與使用;格式化輸入輸出函數(shù)的功能與使用;邏輯表達式求值;條件表達式的正確使用;if、if-else和switch語句的一般形式及其執(zhí)行過程;while、do-while和for三種循環(huán)語句的一般形式及其執(zhí)行過程;編寫包含順序、選擇和循環(huán)結(jié)構的綜合程序并分析其運行結(jié)果。本章難點:按指定格式說明符(%d、%f、%c)正確地輸入和輸出數(shù)據(jù);break和continue語句的正確使用;編寫包含順序、選擇和循環(huán)結(jié)構的綜合程序。01順序結(jié)構AB順序結(jié)構示意圖1.單個字符輸入/輸出getchar():從鍵盤輸入一個字符。putchar(C):輸出一個字符。2.格式化輸入與輸出scanf(“格式控制”,地址列表)printf(“格式控制”,輸出列表)例如:ch=getchar();putchar(ch);printf(“%s”,”china”);scanf(“%d”,&n);3.程序設計舉例例2-4輸入一個十進制整數(shù),輸出它的八進制、十六進制數(shù)。程序如下:#include<stdio.h>intmain(){inta;scanf("%d",&a);/*鍵入十進制數(shù)到a中*/printf("%o\n",a); /*輸出a的八進制數(shù)*/printf("%x\n",a); /*輸出a的十六進制數(shù)*/return0;}程序運行情況如下:12↙(輸入十進制數(shù))14(輸出八進制數(shù))c(輸出十六進制數(shù))02選擇結(jié)構1.關系運算符和關系表達式1)關系運算又稱比較運算,指對兩個數(shù)的大小進行比較的運算C語言提供的關系運算符有6種:>(大于)、>=(大于等于)、<(小于)、<=(小于等于)、==(等于)、!=(不等于)2)關系表達式,即用關系運算符把兩個表達式連接起來的式子如果比較運算的結(jié)果符合給定的條件符合,則結(jié)果為真,用1表示;如果不符合,則結(jié)果為“假”,用0表示。3)優(yōu)先級:算術運算符>關系運算符>賦值運算4)結(jié)合性:算術運算符(自左向右);

關系運算符(自左向右);

賦值運算(自右向左)。2.邏輯運算符和邏輯表達式1)C語言提供了三種邏輯運算符:!(邏輯非)、&&(邏輯與)、||(邏輯或)邏輯與:一般形式:a&&b;只有當a和b都為真時,結(jié)果才為真。邏輯或:一般形式:a||b;a和b中任一為真,結(jié)果為真。邏輯非:一般形式!a;a為真,!a為假;a為假,!a為真。2)優(yōu)先級3)例題

要判別某一年是否為閏年。閏年的條件是符合下面兩個條件的其中一個:①能被4整除,但不能被100整除;②能被400整除;

邏輯表達式為:

(year%4==0&&year%100!=0)||(year%400)==0)3.if語句1)if語句有三種基本形式:單分支if語句雙分支if語句多分支if語句2)例題用C語言if語句編程實現(xiàn),通過鍵盤輸入學生成績。若學習成績>100,則輸出“成績有誤”。否則,學習成績>=90分,則輸出等級“A”,成績在60-89分之間,則輸出等級“B”,60分以下,則輸出等級“C”。4.switch語句1)多分支結(jié)構,用來解決嵌套的if語句層數(shù)多,可讀性差問題。2)一般形式:switch(表達式){ case常量表達式1:語句組1;break; case常量表達式2:語句組2;break; …… case常量表達式n:語句組n;break; default:語句組n+1;}3)舉例:用switch語句實現(xiàn)上頁中學生成績的例題。5.選擇結(jié)構程序設計舉例某一年為閏年的條件滿足下面二者之一:①能被4整除,但不能被100整除。②能被400整除。試分別用if語句和switch編寫C程序,根據(jù)輸入年份,判斷其是否為閏年。#include<stdio.h>intmain(){intyear;scanf("%d",&year);if(year%4!=0)printf("%disanotaleapyear\n",year);elseif(year%100!=0)printf("%disaleapyear\n",year); elseif(year%400!=0)printf("%disanotaleapyear\n",year);elseprintf("%disaleapyear\n",year);return0;}(year%4==0&&year%100!=0)||year%400==0簡判斷化03循環(huán)結(jié)構所謂循環(huán),就是對一段程序重復執(zhí)行多次。程序中需要被重復執(zhí)行的部分為循環(huán)體。當型循環(huán)結(jié)構流程圖直到型循環(huán)結(jié)構流程圖1.循環(huán)三要素1.循環(huán)控制變量初始化;

定義了循環(huán)的起點2.循環(huán)條件;

界定了循環(huán)的終點3.循環(huán)控制變量的改變。

決定了循環(huán)的方向和改變的步長每個循環(huán)必須包含這三個要素。2.實現(xiàn)循環(huán)的三種方法:1)while語句:屬于當型循環(huán)。其一般形式為:while(表達式)

循環(huán)體語句S;先判斷表達式再執(zhí)行循環(huán)體;2)do-while語句:屬于直到型循環(huán)。其一般形式為:do{

循環(huán)體語句S;}while(表達式);先執(zhí)行循環(huán)體再判斷表達式;3)for語句:屬于當型循環(huán)。其一般形式為:for(初始化表達式;循環(huán)控制表達式;增值表達式)

循環(huán)體語句S;當已知循環(huán)范圍時,采用for循環(huán)書寫更加簡潔清晰。注意:初始表達式可以省略,但是分號不可省略;循環(huán)控制表達式也可以省略,分號不可省略,但是循環(huán)體中必須增加使循環(huán)能夠結(jié)束的語句;增值表達式也可以省略,如果省略,分號不能省略,應該在循環(huán)體中加入使循環(huán)趨于結(jié)束的語句。4)舉例:分別使用循環(huán)的三種實現(xiàn)方式編寫求s=1+2+…+100的程序。5)三種循環(huán)的比較:三種循環(huán)都可以用來處理同一個問題。while和do-while循環(huán),只在while后面指定循環(huán)條件,在循環(huán)體中應包含使循環(huán)趨于結(jié)束的語句(如i++等)。而for在增值表達式中包含了使循環(huán)趨于結(jié)束的語句。while和do-while循環(huán)中,循環(huán)變量的初始化應在while和do-while之前完成,而在for循環(huán)中,初始化表達式實現(xiàn)該功能。3.break和continue1)死循環(huán)與break語句在書寫循環(huán)時,盡力避免死循環(huán),因為死循環(huán)永無終止的。在C/C++中:經(jīng)典的死循環(huán)寫法:while(1){}

其中1表示true,因為永遠為真,所以會一直循環(huán)下去。退出當前循環(huán):break

注意break只退出一層循環(huán)。死循環(huán)加break可以構建未知循環(huán)次數(shù)的基本結(jié)構。2)循環(huán)與continue

在循環(huán)體中遇到continue語句時,程序?qū)⑻^continue語句后面尚未執(zhí)行的語句,重新進行循環(huán)判斷以決定是否繼續(xù)進行下次循環(huán),即只結(jié)束本次循環(huán)的執(zhí)行,并不終止整個循環(huán)的執(zhí)行。3)break與continue對比continue與break類似,都是跳出循環(huán)。但continue只是退出本次循環(huán),不執(zhí)行循環(huán)體中的后繼語句,直接轉(zhuǎn)到下一次循環(huán),并非完全跳出循環(huán)。while(...){............break;............}while(...){............continue;............}跳出整個循環(huán)繼續(xù)下一次循環(huán)4.循環(huán)舉例(課下練習)1)輸入一個整數(shù),判斷其是否為素數(shù)。素數(shù)是只能被1和自己本身整除的數(shù)。判斷一個數(shù)是否為素數(shù)的方法很多。這里只介紹一種思路簡單的方法,即用m分別除以2~m-

溫馨提示

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

評論

0/150

提交評論