計(jì)算機(jī)本科c措辭第六章講稿優(yōu)質(zhì)課件_第1頁(yè)
計(jì)算機(jī)本科c措辭第六章講稿優(yōu)質(zhì)課件_第2頁(yè)
計(jì)算機(jī)本科c措辭第六章講稿優(yōu)質(zhì)課件_第3頁(yè)
計(jì)算機(jī)本科c措辭第六章講稿優(yōu)質(zhì)課件_第4頁(yè)
計(jì)算機(jī)本科c措辭第六章講稿優(yōu)質(zhì)課件_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、本章重點(diǎn) for語(yǔ)句 do-while語(yǔ)句 while語(yǔ)句本章難點(diǎn) break語(yǔ)句和continue語(yǔ)句的區(qū)別點(diǎn) 循環(huán)條件的表示和控制 循環(huán)的嵌套 第六章 循環(huán)控制泰痛褒脾嗽神交不嗆誡垂磺椎粗控遠(yuǎn)蝗頒賤憐修奏孟叁主反竹乘峽龜引泉計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第1頁(yè),共55頁(yè)。 一、結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)A塊B塊條件A塊B塊成立不成立順序結(jié)構(gòu)分支選擇結(jié)構(gòu)繼洱棠囂悲啦仙描后骸株罐悄彭銥二柞咖盞愁伺傻疽紉厚拙蹤囊剮懶腰斥計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第2頁(yè),共55頁(yè)。條件AB不成立a塊當(dāng)型循環(huán)結(jié)構(gòu)條件Aa塊不成立直到型循環(huán)結(jié)構(gòu)B區(qū)別在于:當(dāng)型循環(huán)結(jié)構(gòu)當(dāng)條

2、件滿足時(shí),反復(fù)執(zhí)行a塊,直到條件不滿足時(shí)才停止循環(huán)。而直到型是先執(zhí)行a塊操作,再判斷條件是否滿足,若滿足再執(zhí)行a塊,如此反復(fù),直到條件不滿足為止。灼革踩嘯鮮街丁滬微啤斤傲琉咽戌走鑒鍋奸嘛柄旁賤慷噶窮困井鯉來(lái)悄工計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第3頁(yè),共55頁(yè)。循環(huán)結(jié)構(gòu)一般由兩部分組成:進(jìn)入或退出循環(huán)的條件:該條件決定是否繼續(xù)下一輪循環(huán)。循環(huán)體:為每一輪循環(huán)所進(jìn)行的操作,語(yǔ)法上要求是一個(gè)語(yǔ)句序列構(gòu)成,如示意圖中的a塊。蘿旱溫威配置煌蓖綸雇動(dòng)桓篇磐竟恨脫赤睡嗎茸燴場(chǎng)銀續(xù)望佃醫(yī)勁蔬壓苫計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第4頁(yè),共55頁(yè)。 在許多問(wèn)題中要用到循環(huán)控

3、制: 輸入全校學(xué)生成績(jī) 求04級(jí)C語(yǔ)言的總成績(jī) 1+2+3+100 循環(huán)是用來(lái)求這類重復(fù)性操作的結(jié)構(gòu),幾乎所有實(shí)用的程序中都包含循環(huán),掌握循環(huán)是結(jié)構(gòu)化程序設(shè)計(jì)最基本的要求。權(quán)咸枉爽鄉(xiāng)滄晃衣磊呸卸擔(dān)淹趟眉臨良撾仆橋管菱農(nóng)割誹睫鵑膛晝?nèi)垢飞嫌?jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第5頁(yè),共55頁(yè)。一、while 語(yǔ)句1、一般形式 while (表達(dá)式) 語(yǔ)句 說(shuō)明:當(dāng)表達(dá)式的值為真時(shí)執(zhí)行循環(huán)體語(yǔ)句特點(diǎn):先判斷表達(dá)式,后執(zhí)行語(yǔ)句。執(zhí)行過(guò)程為:先計(jì)算表達(dá)式的值,如果為真,則執(zhí)行循環(huán)體語(yǔ)句部分并重新求表達(dá)式的值,一直到表達(dá)式的值變?yōu)?時(shí),才退出整個(gè)循環(huán)結(jié)構(gòu)??胀瓜媾鸥氯畛廊”馄っ孑敯牒m睬

4、彰臼噴簡(jiǎn)納再竊力仲個(gè)駛炳圈玩川計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第6頁(yè),共55頁(yè)。在應(yīng)用while()語(yǔ)句時(shí),要注意以下幾點(diǎn): while()后面的條件表達(dá)式一定要用一對(duì)圓括弧括起來(lái)。 如果循環(huán)體中的語(yǔ)句多于一條時(shí),應(yīng)該用大括號(hào)括起來(lái),以復(fù)合語(yǔ)句形式出現(xiàn),因?yàn)閣hile()語(yǔ)句的作用范圍只能是 while()后面的第一個(gè)語(yǔ)句在循環(huán)體中應(yīng)有改變循環(huán)條件表達(dá)式的語(yǔ)句,否則,如果不采用其他方法退出循環(huán),將成為死循環(huán)。 while()語(yǔ)句可以嵌套。戮砷棵暇杜邑易嫡官適偶獰孰監(jiān)秒傲鍘龜鯨派登需雍靈要練淺捅羞簇鮑崖計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第7頁(yè),共55頁(yè)。例1

5、設(shè)有程序段 int k=10;while (k=0) k=k-1;則下面描述正確的是_A) while循環(huán)執(zhí)行10次B)循環(huán)是無(wú)限循環(huán)C)循環(huán)體語(yǔ)句一次也不執(zhí)行D)循環(huán)體語(yǔ)句執(zhí)行一次惹器煥洲馴咨賀瘴拳峭冷荷皆札踢豁瀕廠葬梯找儈役反跨朵慨瑣懂清例瞻計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第8頁(yè),共55頁(yè)。例2:求1+2+ +50main ( )int n=1,sum=0; while(n=50) sum+=n; n+; printf(“sum=%dn”,sum);當(dāng)循環(huán)體由多個(gè)語(yǔ)句組成時(shí),必須用左、右花括號(hào)括起來(lái),使其形成復(fù)合語(yǔ)句。湛吾扛韶鵝騰醛笑堤敬俄鈔洼濟(jì)嚴(yán)弊腿秘氧黨爛慮乏他吩怨

6、虧原黑甄曰無(wú)計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第9頁(yè),共55頁(yè)。例3利用while語(yǔ)句,計(jì)算1+1/2+1/4+1/50的值,并顯示出來(lái)。#include main( )int i; float sum=1.0; i=2; while(i=50) sum+=1/(float)i; i+=2; printf(“sum=%fn”,sum);襲也鵲阜及詳具軸置方畦鳳寐降峙涵入嗓肺鈞堅(jiān)盞喘嗚使險(xiǎn)乘嘗鄭爍印圾計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第10頁(yè),共55頁(yè)。例4 從鍵盤連續(xù)輸入字符,直到輸入“回車”符為止,并分別統(tǒng)計(jì)其中算術(shù)運(yùn)算符(+ - * / %)的個(gè)數(shù)。ma

7、in( )int c_add=0,c_sub=0,c_mul=0,c_div=0,c_mod=0; char ch; while(1)ch =getchar( ); if (ch=n) break; switch(ch) case +: c_add+;break; case -: c_sub+;break; case *: c_mul+;break; case /: c_div+;break; case %:c_mod+;break; printf(“%d%d%d%d%d”,c_add,a_sub,a_mul,a_div,a_mod);n為標(biāo)記值,當(dāng)提前不知道準(zhǔn)確循環(huán)的次數(shù),可用標(biāo)記來(lái)控制循環(huán)

8、。穎瑯鳥(niǎo)器龍聶教其夸軀彌吏覆躁待果塹遭鴿逃犯皇入漆邱鋸傈示我肪貞惺計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第11頁(yè),共55頁(yè)。例5 鍵入一個(gè)整數(shù),然后按相反順序輸出各位數(shù)字。分析:要將一個(gè)整數(shù)按相反的次序輸出各位數(shù)字,必須獲得該整數(shù)的各位數(shù)字,由于n%10為n的個(gè)位數(shù),用循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)。#include main()int n,r;/*n用來(lái)接受輸入的整數(shù),r用來(lái)求個(gè)位數(shù)*/ printf(“請(qǐng)輸入一個(gè)整數(shù):”); scanf(“%d”,&n);putchar(n); while(n!=0)r=n%10;printf(“%d”,r);n/=10;啃神矯礬倍滑駱撐駒信鵑午害軸助浚撬顆

9、茸佬院訪咱抬擎瓜皇字熙羌?jí)ìm計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第12頁(yè),共55頁(yè)。二、do-while語(yǔ)句1 一般形式: do 語(yǔ)句 while (表達(dá)式);2 特點(diǎn) 1)先執(zhí)行一次語(yǔ)句,后判斷表達(dá)式;當(dāng)表達(dá)式的值為真時(shí),反復(fù)執(zhí)行循環(huán)體中的語(yǔ)句。3 注意點(diǎn):同while()語(yǔ)句,但還要特別注意一點(diǎn),即while()后的分號(hào)不能少。4 與while()語(yǔ)句的不同點(diǎn): while()語(yǔ)句是先判斷后執(zhí)行而dowhile()語(yǔ)句是先執(zhí)行后判斷。輿噸擯夢(mèng)岸罪懸堂晴漆茹北騰潮溪塵愧剿執(zhí)奇轄乞麓庚伎尸霖獎(jiǎng)繩胰丫縮計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第13頁(yè),共55頁(yè)。例子1

10、 以下程序段x=-1;do x=x*x;while(!x);A)死循環(huán)B)循環(huán)執(zhí)行二次C)循環(huán)執(zhí)行一次D)有語(yǔ)法錯(cuò)誤 陶畫(huà)企淖哎戲糊呵榷犯捎欺咆鍺擾瞧榴苔蒙點(diǎn)介寺飛遍洪蹄侵斜班軀診眾計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第14頁(yè),共55頁(yè)。例2 求1+2+ +50#include main( ) int n=1,sum=0; do sum+=n;n+; while (n=50); printf(“sum=%dn”,sum);壁劑鳥(niǎo)飼救藝頹烤茂括銻撒另屜喚帽嫂饅林咸型宜久窿潔捎鬧綽酌逾掉處計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第15頁(yè),共55頁(yè)。main( ) mai

11、n( ) int sum=0; int sum=0; int n; int n; scanf(“%d”,&n); scanf(“%d”,&n); while(n=10) do sum+=n; sum+=n; n+; n+; while(n=10); printf(“sum=%dn”,sum); printf(“sum=%dn”,sum);如果從終端輸入的值為11的前提下,請(qǐng)大家分析兩個(gè)程序的運(yùn)行結(jié)果.例3顛螞曬磕割越棟滔闊彝聾禹睡懸江醞絨晚推漸占在耍疤幻頒碌鹵限次寥抱計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第16頁(yè),共55頁(yè)。例4 若執(zhí)行下面程序時(shí),輸入“Adescriptor ”

12、后按回車,則以下程序的輸出結(jié)果是_#include main( )char c;int v0=0,v1=0,v2=0; do switch(c=getchar() case a:case A: case e:case E: case i:case I: case o:case O: case u:case U:v1+; default:v0+;v2+;while(c!=n); printf(“nv0=%d,v1=%d,v2=%d”,v0,v1,v2);v0=7,v1=4,v2=7v0=8,v1=4,v2=8v0=11,v1=4,v2=11v0=12,v1=4,v2=12履腥捍圓次擇頁(yè)聯(lián)虐里唆序

13、痹差尋渦熄皂邵磨已泉墅屆刮籬拉災(zāi)迄褲定靳計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第17頁(yè),共55頁(yè)。1、一般形式 for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 語(yǔ)句表達(dá)式2非00求解表達(dá)式1語(yǔ)句表達(dá)式3三 for語(yǔ)句2、它的執(zhí)行過(guò)程:唐查慧明擅裝匯閥父鍬巍尺獨(dú)貫軌雨憤亢哉內(nèi)跋處舵獲途閩謬楓計(jì)鰓倦損計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第18頁(yè),共55頁(yè)。則執(zhí)行以下for語(yǔ)句時(shí),for(i=0;i3;i+) printf(“*”); 表達(dá)式1執(zhí)行_次,表達(dá)式2執(zhí)行_次;表達(dá)式3執(zhí)行_次。例子1:壓濘踞侮到茅橋演錦扯挑彤瑪射賺雌唱能翅迢痔峻囑懊鏟障利鈞牌譜播曉計(jì)算機(jī)本科C語(yǔ)言第

14、六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第19頁(yè),共55頁(yè)。3 for 語(yǔ)句最簡(jiǎn)單的應(yīng)用形式是:for (循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) 語(yǔ)句例2 求1+2+ +50#include main() int n ,sum; for (n=1,sum=0;n=50;n+) sum+=n; printf(“sum=%dn”,sum);for語(yǔ)句最簡(jiǎn)單的應(yīng)用形式通常用計(jì)數(shù)器來(lái)控制循環(huán)魯棕進(jìn)哆忘竟櫻娜財(cái)猙箭懷鑼中趙溝瀉曲娃彭碉堆滲謝映獄宴盼造遁謅灘計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第20頁(yè),共55頁(yè)。#include main() int n ,sum=0; for (n=1;n=

15、50;n+) sum+=n; printf(“sum=%dn”,sum);計(jì)數(shù)器控制的循環(huán)的本質(zhì)在一個(gè)由計(jì)數(shù)器控制的循環(huán)中,需要包括以下內(nèi)容:1 控制變量(循環(huán)計(jì)數(shù)器)的名稱2 控制變量的初值3 用于檢測(cè)控制變量終值的條件(即循環(huán)是否要繼續(xù))4 循環(huán)時(shí),控制變量每一次都會(huì)自增或自減(通常是1)俯跋喲七凡汗逆氛魏勝汾脂陶脆憚癢誓象右滅凈歡雙嶺羹須胯兇呆慰歹魔計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第21頁(yè),共55頁(yè)。例子304級(jí)計(jì)算機(jī)專業(yè)有4位同學(xué)中的一位做了好事,不留名,表?yè)P(yáng)信來(lái)了之后,院長(zhǎng)問(wèn)這4位是誰(shuí)做的好事。A說(shuō):不是我B說(shuō):是CC說(shuō):是DD說(shuō):他胡說(shuō) 已知3個(gè)人說(shuō)的是真話,一

16、個(gè)人說(shuō)的是假話,現(xiàn)在要根據(jù)這些信息,找出做了好事的人。銅鄰琳勢(shì)椰賢噓樸亦如使晶瞳冰捏姨待蝸么牙南翠咋虱冠霞闡磐文銥?zāi)佔(zhàn)u(yù)計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第22頁(yè),共55頁(yè)。#include void main()int k; char s; for (k=1;k=4;k+) s=64+k; if (s!=A)+(s=C)+(s=D)+(s!=D)=3) printf( thisman is %c“,s); 豢撅皚廁鴨拱掇瘁流挑癡臘兩瞳窖噓乾鱗祟彈飄媽堂吉翰迂薄鑿猿褲靳季計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第23頁(yè),共55頁(yè)。(1) for 語(yǔ)句一般形式中的表達(dá)

17、式1可以省略例子4#include main() int n=1 ,sum=0; for ( ; n=50 ; n+) sum= sum+ n; printf(“sum=%dn”,sum);請(qǐng)大家理解以下幾點(diǎn):濾皮趕棕顯靳侈哩蹤詢啥嗚稿滔寥雄詢緩屑予犯型他裙尉豌朝識(shí)它邢舷訪計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第24頁(yè),共55頁(yè)。(2) 如果表達(dá)式2省略,即不判斷條件,循環(huán)無(wú)終止地進(jìn)行下去。此時(shí)必須在循環(huán)體中有一個(gè)ifbreak語(yǔ)句使循環(huán)終止。例子5#include main() int n,sum; for ( n=1,sum=0; ; n+) sum+=n; if(n=50)

18、 break; printf(“sum=%dn”,sum);豌殆頸橫桐峙粱怨此同爽培莽騎縷鄒彩望燕宰堡幀坊腥倉(cāng)坷唯授肥錄壬嘎計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第25頁(yè),共55頁(yè)。(3) 表達(dá)式3也可以省略,但此時(shí)應(yīng)在循環(huán)體中設(shè)法使循環(huán)變量的值發(fā)生改變,從而使循環(huán)條件趨于0。例子6#include main() int n ,sum; for (n=1,sum=0;n=50;) sum+=n; n+; printf(“sum=%dn”,sum);春浸批廊暖侈堆么函硝拜正萎掀冠鬃匈喻枕營(yíng)蝶縣注吝指彼煽酵鉸概盯輻計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第26頁(yè),共55頁(yè)

19、。(4) 表達(dá)式1、表達(dá)式2、表達(dá)式3也可同時(shí)省略。例子7 /*該程序功能求150的總和*/#include main() int n,sum=0; _; for (; ;) sum+=n; _; _; printf(“sum=%dn”,sum);誹閻燒菏亨韋伊卒爽嚨茄窒喝琴竅窄務(wù)酪敷逼自符憑三咎衰塹竭睦即洲詣?dòng)?jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第27頁(yè),共55頁(yè)。4 for語(yǔ)句的應(yīng)用方面計(jì)數(shù)循環(huán):在已知最大循環(huán)次數(shù)的情況下, 可使用for語(yǔ)句。例子8 #include main() /*程序的功能求10的階乘*/ long sum=1; int t; for(t=1;t=10

20、;t+) sum*=t; printf(“10的階乘為%ldn”,sum); 哇湖賬祁長(zhǎng)住浸爭(zhēng)洶宮恤圃溺別騎晾蛻根臂擯芋鐘沽窖濫纜鈴竹蹭貌鈴汗計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第28頁(yè),共55頁(yè)。查找循環(huán):和ifbreak語(yǔ)句配合使用,當(dāng)找到符合條件的值時(shí),就跳出循環(huán);反之,則繼續(xù)查找。#include /*例子9 */main() int i,a; for (i=1;i=101) printf(“不存在n”);容貨錫穎平鍋鍘及姥斂璃軋履涌雕冒肉遮彩腿枚犀芒馭攬析戶言突榔醋便計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第29頁(yè),共55頁(yè)。3)無(wú)限循環(huán):沒(méi)有循環(huán)條件或條

21、件永遠(yuǎn)為真值的for循環(huán)是無(wú)限循環(huán)。例如在顯示功能菜單并等待鍵盤輸入的應(yīng)用中,或者在單片機(jī)控制中等待外部變量的變化過(guò)程中,都可以使用無(wú)限循環(huán)。此時(shí)只有在循環(huán)體中判斷某個(gè)條件為真時(shí),用break語(yǔ)句跳出循環(huán)。效擠斥袋危壇宏乃馬皂匙矣遺誼傲減琺忌銻揍鴿倒聚胡宵戰(zhàn)實(shí)確逢鋸芯稚計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第30頁(yè),共55頁(yè)。例子10#include main( )char c; for (c=getchar(); ;c=getchar() clrscr( );/*清屏*/ puts(“please select key:n”); puts(“1. insert recordn”

22、); puts(“2. delete recordn”); puts(“3. print recordn”); puts(“0. Exitn”); if(c=0) break;添安摟侮馴腔鄰犯戴哎饋裹摟棍技怎雁耪醛勉腐孿壤獻(xiàn)痊酋薦頒扦推揚(yáng)掠計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第31頁(yè),共55頁(yè)。 switch(c) case 1:insert();break; case 2:delete();break; case 3:print();break; default:printf(“errorn”);break; 衡伶槽散良迅佩粳晦汲獺區(qū)祟腫晶幽鎖各應(yīng)凝彌壟酬否速當(dāng)暮押匆哺圣拭計(jì)

23、算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第32頁(yè),共55頁(yè)。4) 延時(shí)循環(huán):即循環(huán)體內(nèi)不做任何事情,只是使CPU等待一定時(shí)間后再執(zhí)行程序,這在控制兩個(gè)動(dòng)作之間的時(shí)間間隔上經(jīng)常使用。 #inlcude /*例子11*/main()int t; clrscr(); puts(“hello,welcome you!n”); for (t=1;t=1000;t+) ; puts(“并祝您能早日掌握C語(yǔ)言n”); getchar();浪瀑納溝道坍浦仰澀予這胰鋤忻骯絞淵芹鋼礁決輩柒逃十紉吊齡黔惱閏隔計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第33頁(yè),共55頁(yè)。5 循環(huán)的嵌套 一個(gè)循環(huán)體

24、內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。其中三種循環(huán)可以互相嵌套。 while ( ) do while ( ); 骯雇狀帥陷浚梳移夠蓑熟肌黍暴碴尚坍肪賂撲掠蝸鈉蟬猾劑妨勾侄蝎焚剝計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第34頁(yè),共55頁(yè)。例子1 若t,k已定義為int 類型,則以下程序段中循環(huán)體執(zhí)行總的次數(shù)是?for(t=5;t;t-) for(k=0;k4;k+) printf(“*”);棒家撓正譚楷膘霉挾喧錄濟(jì)渣徑潦候盆蜜騁跨防腮摘?jiǎng)玉勛o(hù)夕配棄紉楓蘋計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第35頁(yè),共55頁(yè)。循環(huán)嵌套的應(yīng)用 1)用來(lái)處理數(shù)組中元素(如賦值、排

25、序、輸出等)例子2#include main()int s23,t,k; for (t=0;t=1;t+) for (k=0;k=2;k+) scanf(“%d”,&stk);for (t=0;t=1;t+) for (k=0;k=2;k+) printf(“%5d”,stk); 忠羌儉坊挺維逝理寫捏刀餐硅鉑鎮(zhèn)仆俠智尿瘍俊繪磺北烹聽(tīng)膏墊盧艙笑倔計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第36頁(yè),共55頁(yè)。2)解決數(shù)學(xué)上的窮舉法問(wèn)題例子3 婚禮上的謊言 三對(duì)情侶參加婚禮,三個(gè)新郎為A,B,C三個(gè)新娘為X,Y,Z。有人想知道究竟誰(shuí)和誰(shuí)結(jié)婚,于是就問(wèn)新人中的三位,得到如下的提示:A說(shuō)他將和

26、X結(jié)婚;X說(shuō)她的未婚夫是C;C說(shuō)他將和Z結(jié)婚。這人事后知道他們?cè)陂_(kāi)玩笑,說(shuō)的全是假話。那么,究竟誰(shuí)與誰(shuí)結(jié)婚呢?媒嚼愧賤據(jù)鉚綻諷腆黔蹲韓付峙瀉笨嗜裹層窩描日服鞋嶄樣碌亡倍擋饞旦計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第37頁(yè),共55頁(yè)。#include main( )char A,B,C; for (A=X;A=Z;A+) for (B=X;B=Z;B+) for (C=X;C=Z;C+) if(A!=X&C!=C&C!=Z&A!=B&A!=C&B!=C) printf(“A will marry to %cn”,A); printf(“B will marry to %cn”,B)

27、; printf(“C will marry to %cn”,C);潛醚車汀川逝帚沾李掄聯(lián)疑肆診親輪妊幀募便釀涯評(píng)湛鑒味霖氏雞墟忽烙計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第38頁(yè),共55頁(yè)。五、break語(yǔ)句作用:從循環(huán)體內(nèi)跳出循環(huán),接著執(zhí)行控制語(yǔ)句下 面的語(yǔ)句。如例子1 #include #define PI 3.14156 main( ) int r;float area; for (r=1; r100) break; printf(“%fn”,area); 允訟留巍霧女焙顛德它闖捌吩報(bào)或刃吼爍揭捌取州司笛氖僵挺皺蘭減裔條計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第

28、39頁(yè),共55頁(yè)。break語(yǔ)句通常用于以下兩種情況:用于switch語(yǔ)句的語(yǔ)句序列中,作用是退出 switch語(yǔ)句。用在循環(huán)中,其功能是用來(lái)退出循環(huán)結(jié)構(gòu), 即當(dāng)運(yùn)行到循環(huán)體中的break語(yǔ)句時(shí),就立即 退出循環(huán)。通常和if語(yǔ)句結(jié)合使用。嚼犬紙史項(xiàng)述兼磊淳顱雞捧譴微偉臀蔚用慕癢街罷臭好爐胳僚位鑲歧泡泌計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第40頁(yè),共55頁(yè)。七、continue 語(yǔ)句一般形式: continue作用:結(jié)束本次循環(huán),跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,接著進(jìn)行下一次是否進(jìn)行循環(huán)的判定main( ) int n; for (n=100; n=200; n+) if (n%

29、3=0) continue; else printf(“n=%dn”,n);福映囚節(jié)膠開(kāi)鼓腆姥豈難緯獄靴脯坯譏賃六哲存甕損盲粕昧雕庫(kù)衡假不康計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第41頁(yè),共55頁(yè)。 書(shū)中例1 用/4約等于1-1/3+1/5-1/7+1/9+式,求的近似值,直到最后一項(xiàng)的絕對(duì)值小于10-6為止#include #include main( )int s=1; float n=1,t=1,pi=0; while(fabs(t)1e-6) pi+=t; n+=2; s=s*(-1); t=s/n; pi*=4; printf(“pi=%10.6fn”,pi);這贊帳姻

30、均焊斜譬句鱗墅獅轉(zhuǎn)咋施進(jìn)卷霓陵蟬繡噸簡(jiǎn)祈秧既料葵憋祟捻購(gòu)計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第42頁(yè),共55頁(yè)。書(shū)中例3 判斷m是否是素?cái)?shù)判斷m能被2sqrt(m)中的任何一個(gè)整數(shù)整除,則它不是素?cái)?shù),否則就是素?cái)?shù)。#include #include main()int m,i,k; scanf(“%d”,&m); k=sqrt(m); for (i=2;i=k+1) printf(“%d is a prime numbern”,m); else printf(“%d is not a prime numbern”,m);瓤譽(yù)術(shù)韶試軒烯濰騙跪霄抿琳融炊俐憫正滓而跺昔適氟艙好悄勉校

31、篇唬蒙計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第43頁(yè),共55頁(yè)。書(shū)中例4 譯密碼,為使電文保密,往往按一定規(guī)律將其轉(zhuǎn)換成密碼,收?qǐng)?bào)人再按約定的規(guī)律將其譯回原文,例如,將字母A變成字母E,a變成字母e,則變成其后的第4個(gè)字母,W變成A,X變成B,Y 變成C,Z變成D。輸入一行字符,要求輸出其相應(yīng)的密碼。殿賣店怠諄衰第俘窟旁鄭闊婪耳抓僧豪宛綴謝籃炕慫頻炎哇鳴蘆懶閩炔傍計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第44頁(yè),共55頁(yè)。#include main( )char c; while(c=getchar( )!=n) if (c=a&c=A&c=Z&cz) c=c-26;

32、 printf(“c”,c); 收享依皚液粹澀聾戍辭艦示臆淋絮史禾澀淑鞠禽蔚虛錄匝灌操擒油侄悅狐計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第45頁(yè),共55頁(yè)。本章練習(xí)1下面程序輸出的結(jié)果是_#include main( )int x=3; do printf(“%dn”,x-=2); while(!(-x);輸出的是1輸出的是1和-2輸出的是3和0是死循環(huán)潤(rùn)簾媒鑒擒厭核茅懂探數(shù)掇引貢檄譴娟薩郊餡附呈析臼醉茬墅價(jià)剃佳箔鄧計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第46頁(yè),共55頁(yè)。2 設(shè)x和y均為int型變量,則執(zhí)行下面的循環(huán)后,y的值為_(kāi)for(y=1,x=1;y=10)

33、break; if(x%2=1) x+=5;continue; x-=3;2468壁嘉顏悟驚陳漁愈入輻詫魄慢乖墜膿盾刊囚熱吵空寅忘悅踴粘看饞膀降瑩計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第47頁(yè),共55頁(yè)。3 下面程序段是從鍵盤輸入的字符中統(tǒng)計(jì)數(shù)字字符的個(gè)數(shù),用換行符結(jié)束循環(huán)。請(qǐng)?zhí)羁眨篿nt n=0,c;c=getchar( );while(_)if (_) n+; c=getchar( );吞脅乍綠區(qū)烷謂膜秒秒沙鮮舒垮衫祁居偷苯誠(chéng)祝緯篡整泛垂匈怯事拇雖迅計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第48頁(yè),共55頁(yè)。4 當(dāng)運(yùn)行以下程序時(shí),從鍵盤鍵入right?(代表回車), 則下面程序的運(yùn)行結(jié)果是_ #include main() char c; while (c=getchar()!=?) putchar(+c);絕藍(lán)萍妝聽(tīng)匈霖漸腥琶附拌粘裴象懈費(fèi)巡糕栗葫彭淆川拔抗誹寶贊宦徒里計(jì)算機(jī)本科C語(yǔ)言第六章講稿計(jì)算機(jī)本科C語(yǔ)言第六章講稿第49頁(yè),共55頁(yè)。5 執(zhí)行下面的程序后,k值是_ k=1;n=263; do k*=n%10;n

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論