版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
注汰法:英訣:女:沐逐沐美沐沐泱沐米淡淡沐訣族&*浜逐渙逐法漲沐逐淡:渙沐沐差二:4
第一章
第二章C語言概述
第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式
第四章最簡(jiǎn)單的C程序設(shè)計(jì)
第五章邏輯運(yùn)算和判斷選取控制
章循環(huán)控制
第六
章
第七數(shù)組
章
第八函數(shù)
章
第九編譯預(yù)處理
章
第十指針
一
第十章結(jié)構(gòu)體與共用體
一
第十三章文件的基本操作
位運(yùn)算
§4.4switch語句一開關(guān)語句
問題:當(dāng)某一表達(dá)式有n個(gè)取值,每一取值執(zhí)行一
語句,則如果用內(nèi)嵌if十分繁鎖,而用switch簡(jiǎn)單.
一般形式:switch(表達(dá)式)
{case常量表達(dá)式1:語句1
case常量表達(dá)式2:語句2
*
*
case常量表達(dá)式n:語句n
default:語句n+1
1心悟言起算得日
例:根據(jù)成績(jī)等級(jí)打印百分?jǐn)?shù)段.
switch(grade)
{case'A':printf(n85-100\nn);
case'B':printf("70?84\n");
case'C':printf("60?69\n");
case'D':printf(n<60\nn);
default:printf(nerror\nn);
功能:
*根據(jù)表達(dá)式的取值,判斷其與哪一個(gè)
常量表達(dá)式相等。如=表達(dá)式i,則自語
句i開始執(zhí)行,直到語句n+1止。
*若與所有常量表達(dá)式值不相等,則從
default后的語句開始執(zhí)行。
C語者凝停過it
例如:/*exp55,c*/
#include<stdio.h>
main()
{chargrade;
scanf(n%cf\&grade);
switch(grade)
{casefA!:printf(n85-100\nn);
caselBf:printf(M70-84\nn);
casefCf:printf(n60-69\nu);
caselDl:printf(H<60\nn);
default:printf(nError\n'');
C語言耗停直苜
運(yùn)行結(jié)果:
AJ
85-100
70-84
60-69
<60
Error
程序運(yùn)行結(jié)果不在預(yù)料之中!
產(chǎn)生錯(cuò)誤的原因:沒有完全起到分支作用。
C福言程停過升
解決辦法:增加break語句,使之跳出switch結(jié)構(gòu)。
一般形式為:itch(表達(dá)式)
{case常表1:語句1;
break;
case常表2:語句2;
break;
case常表n:語句n;
break;
default:語句n+1;
}
修改程序?yàn)?/*exp56,c*/
#include<stdio.h>
main()
{chargrade;
scanf(n%cn,&grade);
switch(grade)
{case,Af:printf(,,85-100\nM);break;
case!Bf:printf(n70-84\nn);break;
casefCf:printf(n60-69\nn);break;
case,D,:printf(ff<60\nn);break;
default:printf(nError\nn);
}
C語言凝停直苜
C語言凝停直苜
例如:switch(grade)
{case'A':
case'B':
case'C':printf(n>60\nn);
break;
case'D':printf(n<60\nn);
break;
C語言耗停汽苜
例1:寫一程序,輸入年號(hào),判斷是否為閏年。
1.算法:根據(jù)閏年的判斷條件為下列條件之一:
*當(dāng)年號(hào)能被4整除但不能被100整除時(shí),它為閏年。
*當(dāng)年號(hào)能被400整除時(shí),它為閏年。
2.流程圖
設(shè)用變量year表示年號(hào)Jeap為待置值變量,當(dāng)year
為閏年:leap-1,否則leap-0.
輸入year
yes/No
<^eap-pz
打印非閏年打印是閏年
]
結(jié)束
C語言程停冏計(jì)
3.程序:#include<stdio.h>
main()
{intyear,leap;
scanf("%d",&year);
if(year%4==0)
{if(year%100==0)
{if(year%400==0)
leap=l;
else
leap=0;}
else
leap=1;}
else
leap=0;
C語演言妄母耗停直苜
if(leap)
printf(n%dis",year);
else
printf(n%disnot”,year);
printf(naleapyear\nn);
)
運(yùn)行情況如下:
第一次:1989J
1989isnotaleapyear
第二次:2000J
2000isaleapyear
.丘I
IiTWit
注:上述條件也可用一個(gè)邏輯表達(dá)式表示為
if((year%4=0)&&year%100!=0)]]
(year%400==0))
leap=l;
elseleap=0;
語言展停阻升
§5.1概述
前面已介紹了順序結(jié)構(gòu),選擇結(jié)構(gòu),本章
介紹循環(huán)結(jié)構(gòu)。
實(shí)際問題:一組重復(fù)執(zhí)行的語句。
100
如:Zi,sum=l+2+3+...+100;
i=l
可用循環(huán)結(jié)構(gòu)解決。
C謂言程停通計(jì)
C語言一般采用三種形式循環(huán)
1.while語句
2.do...while語句
3.for語句
另:用if語句與goto語句的結(jié)合也可構(gòu)成循環(huán).
C語言耗停直苜
§5.2goto語句及與if語句構(gòu)成修壞
1.goto語句
形式:goto標(biāo)號(hào);
功能:無條件轉(zhuǎn)向標(biāo)號(hào)處。
標(biāo)號(hào):用標(biāo)識(shí)符命名。
2.與1幽成循環(huán).
100
例:求Z,=l+2+…+1。。
/=1
#include<stdio.h>
main()
{inti,sum=0;
c一看—睜及甘
i=l;
loop:if(i<=100)
{sum=sum+i;
i++;
gotoloop;}
printff'sum=%d",sum);
運(yùn)行結(jié)果如下:
sum=5050
C語言耗停汽苜
上面的程序相當(dāng)于當(dāng)型循環(huán),可改為直到型:
#include<stdio.h>
main()
{intsum=O,i=0;
loop:sum=sum+i;
jH——
if(i<=100)gotoloop;
printf("sum=%d",sum);
}
建議:盡可能的不用got。語句,以免破壞程
序的結(jié)構(gòu)化。
CISSSSiait
§5.3whi1e語句
專門的當(dāng)空循環(huán)語句一while語句
1.形式:while(表達(dá)式)
語句
2.執(zhí)行過程:先判斷表達(dá)式的值。若M.則執(zhí)行其后
面的語句,否則while執(zhí)行完畢。
Cisssmsn
3.流程圖:
將上述例子用while語句寫出
while(i<=100)
{sum+=i;
i++;
c港舌程停過甘
注:*若卬山江后面的語句為復(fù)合語句,必須加{}
來語句中應(yīng)有使表達(dá)式=0的語句。
否則會(huì)出現(xiàn)無限循環(huán)——“死”循環(huán)。
*語句有可能一次也不執(zhí)行
§5.4do,??while語句
一種專門的“直到型”循環(huán)語句。
1.形式:do語句while(表達(dá)式);
2.執(zhí)行過程:先執(zhí)行語句,再判表達(dá)式的值,若再
執(zhí)行語句,否則結(jié)束循環(huán)
3.流程:-----
畫
尸°C語言準(zhǔn)陋tt
程序如下:#include<stdio.h>
main()
{inti,sum=O;
i=l;
do
{sum=sum+i;
i++;
)
while(i<=100);
nn
printf(%d9sum);
)
注:1、do......while結(jié)構(gòu)的作用與while基本
相同。
2、語句至少要執(zhí)行一次。
C語言凝停直苜
§5.5for語句
一種形式更為靈活的循環(huán)語句。
1.形式
for(初始表達(dá)式;條件表達(dá)式;循環(huán)表達(dá)式)
語句
2.執(zhí)行過程
?、計(jì)算初始表達(dá)式的值。
?、判斷條件表達(dá)式,若條件表達(dá)式的值則執(zhí)行語句。
若條件表達(dá)式的值=0,則跳出循環(huán)體。
?、計(jì)算循環(huán)表達(dá)式。
?、轉(zhuǎn)到第?步。
C謂看程停過甘
3.流程:計(jì)算表達(dá)式1
語句
計(jì)算表達(dá)式3
結(jié)束for語句
C語言耗停汽苜
用for語句重寫上述例子:
for(i=l;i<=100;i++)
sum+=i;
for語句完全可以用whi1e代替,
但for直觀、簡(jiǎn)單、方便。
for用while代替的流程:
表達(dá)式1;、
while(表達(dá)式2)
{語句
表達(dá)式3;
}C語言程停過計(jì)
4.for語句的幾種特例
*可以省略初始表達(dá)式,但須保留分號(hào);且在for之前必須給
循環(huán)變量賦值;
i-b
例:任意輸入兩個(gè)整數(shù)a,b,求
i=a
#include<stdio.h>
main()
{inti,j9a,b9sum;
printf("pleaseinputtwonumber!\nn);
scanf("a=%d,b=%d\&a,&b);
i=a;j=b;if(a>b){i=b;j=a;}
for(;i<寸i++)
sum=sum+i;
nn
printf(\nsum=%d5sum);
}c語言震拂沒苜
條件表達(dá)式一般不可省略,否則為無限循環(huán)
例:for(i=l;;i++)sum=sum+i;
相當(dāng)于條件永真、永不為0,若用while表示
相當(dāng)于:while(1)
{sum=sum+i;
i++;
i吾舌程停投注
?循環(huán)表達(dá)式亦可省略,但在循環(huán)體中必須有語句
來修改循環(huán)變量,以使條件表達(dá)式在某一時(shí)刻
為0而正常結(jié)束循環(huán)。
/*沒有循環(huán)表達(dá)式*/
例:for(sum=05i=l;i<=100;)
{sum=sum+i;
i++;
}
cissgsmt
張若同時(shí)省略初始表達(dá)式.和循環(huán)表達(dá)式,則相當(dāng)
于while語句o
例:for(;i<=100;){sum+=i;i++;}
while(i<=100)
{sum+=i;
i++;
)
串三個(gè)表達(dá)式均省略即for(;;)語句則相當(dāng)于while(l)
語句,為無限循環(huán)。
4■初始表達(dá)式、循環(huán)表達(dá)式可以是逗號(hào)表達(dá)式,以
使循環(huán)變量值在修改時(shí)可以對(duì)其它變量賦值。
如:for(sum=09i=l;i<=100;i++,i++)
相當(dāng)于:sum=0;
for(i=1;i<=100;i=i+2)
c捂言握停直計(jì)
令條件表達(dá)式可以是關(guān)系表達(dá)式,也可以是數(shù)值表
達(dá)式或字符表達(dá)式。只要值M.即執(zhí)行循環(huán)體.
例:for(i=0;(c=getchar())!='\n';i+=c);
條件表達(dá)式
C語言耗停直苜
§5.6循環(huán)的嵌套
與其它語言一樣,當(dāng)循環(huán)體中又包含了另一個(gè)完
整的循環(huán)語句時(shí)——嵌套。
C語言有三種循環(huán)語句,均可以相互嵌套:
例1:while()
while()
C語言耗停直苜
例2:for(;v條件表達(dá)式>;)
while(){}
do
{}while();
均為正確的嵌套
吾舌維停投計(jì)
但:
while()for(;;)
{for(;;)
while()
不能理解為正確的形式。但要注意語句的
包含關(guān)系。
C語言混程汽苜
§5.7幾種循環(huán)的比較
?1.對(duì)于同一問題,三種循環(huán)可相互替代。但不
要用goto語句。
?2.for循環(huán)功能強(qiáng)于while和do…while。但若不
是明顯地給出循環(huán)變量初終值(或修改條件),
則應(yīng)用while或do...while。以增強(qiáng)程序的結(jié)
構(gòu)化和可讀性。
C語言耗停直苜
?3.要防止無限循環(huán)一死循環(huán)。
?4.循環(huán)過程中,為了結(jié)束本次循環(huán)或跳出整個(gè)
循環(huán)。分別要用至Ucontinue和break語句。
C語言震界過片
§5.8break語句和contiune語句
5.8.1break語句(作用:從循環(huán)體中退出)
問題:計(jì)算圓的面積九比半徑取1,2,3,4...,
當(dāng)面積>100時(shí)結(jié)束。
C語言凝停過H
程序段:
pi=3.14159;
for(r=l;r<=10;r++)
{area=pi*r*r;
if(area>100)break;
)
printf(n%f\area);
)
注意:break只能用于循環(huán)語句和switch語句。
C語言耗停汽苜
5.8.2continuce語句
作用:結(jié)束循環(huán)。
例:編寫程序,打印100?200中不能被3整除的數(shù)。
程序一:不用continue語句:
#include<stdio.h>
main()
{intn;
for(n=100;n<200;n++)
if(n%3!=0)/*n不能被3整除*/
nn
printf(%d9n);
}c語言震擲汽苜
程序二:使用continue語句:
main()
{intn;
for(n=100;n<=200;n++)
{if(n%3==0)/*n能被3整除*/
continue;
nn
printf(%d5n);
ci吾言程停過片
§5.9程序舉例
例1:求Fibonacci數(shù)例:1,1,2,3,5,8,...前40個(gè)數(shù)。
規(guī)律:F「1,F2=1
Fn=Fn-1+Fn-2(n>2)
程序要點(diǎn):
*fl=fl+f2;
f2=fl+f2;交替的結(jié)果正好為一序列
*每輸出4個(gè)數(shù)時(shí)換行。
■(F心悟言能吊汽苜
程序如下:
fl=lf2=l
/*exp61.c*/5
#include<stdio.h>fori=lto40
main()
輸出fl,f2
{longintfl9f2;
inti;fl=fl+f2
fl=l;f2=l;f2=f2+fl
for(i=1;i<=40;i++)
printf(%121d%121d,flQ;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新教材 新思維 新啟航-一年級(jí)教師參加新教材培訓(xùn)心得分享
- 參加《麥肯齊大學(xué)教學(xué)精要》培訓(xùn)有感
- 河南科技大學(xué)《機(jī)械設(shè)計(jì)基礎(chǔ)D》2021-2022學(xué)年第一學(xué)期期末試卷
- 河南科技大學(xué)《車輛優(yōu)化設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷
- 河北地質(zhì)大學(xué)《影視特效處理(AE)》2021-2022學(xué)年第一學(xué)期期末試卷
- 互聯(lián)網(wǎng)創(chuàng)新的科學(xué)途徑-數(shù)理方法解析創(chuàng)新模型
- 河北地質(zhì)大學(xué)《室內(nèi)設(shè)計(jì)》2022-2023學(xué)年第一學(xué)期期末試卷
- 記分簿項(xiàng)目運(yùn)營(yíng)指導(dǎo)方案
- 藤編制品市場(chǎng)分析及投資價(jià)值研究報(bào)告
- 酒精戒斷綜合癥的護(hù)理
- (高清版)TDT 1037-2013 土地整治重大項(xiàng)目可行性研究報(bào)告編制規(guī)程
- 愛國(guó)衛(wèi)生工作培訓(xùn)課件
- 卵巢癌腹腔化療方案
- 腫瘤放射規(guī)培出科小結(jié)
- 光通信芯片十大品牌簡(jiǎn)介
- 小學(xué)勞動(dòng)教育一年級(jí)第一單元2《洗漱》教學(xué)設(shè)計(jì)
- 醫(yī)保按病種分值付費(fèi)(DIP)院內(nèi)培訓(xùn)
- 兒童心理異常的早期識(shí)別與干預(yù)
- 《困難氣道的評(píng)估》課件
- 強(qiáng)化學(xué)習(xí)基本理論概述
評(píng)論
0/150
提交評(píng)論