版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
關(guān)于語(yǔ)言入門(mén)教程基礎(chǔ)第一章計(jì)算機(jī)語(yǔ)言與C語(yǔ)言概述
1.1計(jì)算機(jī)語(yǔ)言概念
■計(jì)算機(jī)語(yǔ)言定義計(jì)算機(jī)能夠識(shí)別和接受的語(yǔ)言。要使計(jì)算機(jī)按自己的意圖工作,必須使用計(jì)算機(jī)所能接受、理解和執(zhí)行的指令指揮計(jì)算機(jī)工作。第2頁(yè),共434頁(yè),2024年2月25日,星期天
■計(jì)算機(jī)語(yǔ)言的種類(lèi)
機(jī)器語(yǔ)言
低級(jí)語(yǔ)言
匯編語(yǔ)言
(面向計(jì)算機(jī))
BASIC
入門(mén)語(yǔ)言
F77
科學(xué)計(jì)算
高級(jí)語(yǔ)言
Foxpro
數(shù)據(jù)庫(kù)管理
(面向問(wèn)題)
C
多用途
計(jì)算機(jī)語(yǔ)言…………第3頁(yè),共434頁(yè),2024年2月25日,星期天?機(jī)器語(yǔ)言
最早問(wèn)世,用二進(jìn)制代碼構(gòu)成指令。如:100000(+)110000(-)
用機(jī)器語(yǔ)言編程的缺點(diǎn):
─繁瑣、不直觀、不易調(diào)試。
如計(jì)算y=2x2+3x-1需要七八條指令。
─移植性差。依賴(lài)于計(jì)算機(jī)。
第4頁(yè),共434頁(yè),2024年2月25日,星期天?匯編語(yǔ)言
用符號(hào)構(gòu)成指令,如:MOV、ADD
用匯編語(yǔ)言編程:
相對(duì)直觀,但仍繁瑣,仍是面向計(jì)算機(jī)的語(yǔ)言。
匯編語(yǔ)言是計(jì)算機(jī)間接接受的語(yǔ)言第5頁(yè),共434頁(yè),2024年2月25日,星期天?高級(jí)語(yǔ)言與低級(jí)語(yǔ)言相比,有根本性的區(qū)別:
是面向問(wèn)題的語(yǔ)言。高級(jí)語(yǔ)言的一條指令(語(yǔ)句):
y=2*x*x+3*x-1;對(duì)應(yīng)于:y=2x2+3x-1y=sin(x);對(duì)應(yīng)于:y=sinx用高級(jí)語(yǔ)言編程:直觀、易懂、移植性好(不依賴(lài)于具體計(jì)算機(jī))第6頁(yè),共434頁(yè),2024年2月25日,星期天上機(jī)運(yùn)行高級(jí)語(yǔ)言程序需經(jīng)過(guò)編譯:
編譯
執(zhí)行
要上機(jī)完成一個(gè)計(jì)算問(wèn)題,主要的任務(wù)就是用高級(jí)語(yǔ)言編寫(xiě)出相應(yīng)的源程序。即至少要學(xué)會(huì)一種計(jì)算機(jī)語(yǔ)言。
高級(jí)語(yǔ)言源程序
機(jī)器指令目的程序結(jié)果編譯程序第7頁(yè),共434頁(yè),2024年2月25日,星期天1.2C語(yǔ)言的特點(diǎn)
集高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的優(yōu)點(diǎn)于一身:
●能實(shí)現(xiàn)低級(jí)語(yǔ)言的大部分功能(如直接訪(fǎng)問(wèn)內(nèi)存物理地址、進(jìn)行位操作等)。
●圖形功能強(qiáng)。
●運(yùn)算符和數(shù)據(jù)結(jié)構(gòu)豐富。
●語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。
●生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。第8頁(yè),共434頁(yè),2024年2月25日,星期天1.3簡(jiǎn)單的C程序介紹
例1:
main()
主函數(shù)說(shuō)明
{
程序框架
printf(“abcdef”);
函數(shù)體
}
語(yǔ)句
程序的功能是輸出字符串:abcdef
第9頁(yè),共434頁(yè),2024年2月25日,星期天例2:求兩數(shù)之和。main(){inta,b,c;
a
a=100;b=50;
bc=a+b;
cprintf(“\nc=%d”,c);}程序運(yùn)行結(jié)果:c=150
第10頁(yè),共434頁(yè),2024年2月25日,星期天例3:求兩數(shù)中的最大值。
函數(shù)類(lèi)型函數(shù)名形參main()
intmax(intx,inty){
inta,b,c;
{intz;
scanf(“%d,%d”,&a,&b);if(x>y)z=x;
c=max(a,b);elsez=y;
printf(“\nmaxis:%d”,c);return(z);}
}
a
x
b
y
c
z
(兩個(gè)函數(shù)組成)353555第11頁(yè),共434頁(yè),2024年2月25日,星期天
總結(jié)上例可知:(1)C程序由函數(shù)構(gòu)成。(2)函數(shù)由兩部分組成:
函數(shù)說(shuō)明部分:函數(shù)名、函數(shù)類(lèi)型、形參名、形參類(lèi)型。
函數(shù)體:實(shí)現(xiàn)函數(shù)的具體操作;由語(yǔ)句構(gòu)成。(3)程序總是從main函數(shù)開(kāi)始執(zhí)行。(4)書(shū)寫(xiě)格式自由。(5)語(yǔ)句必須有分號(hào)。:
第12頁(yè),共434頁(yè),2024年2月25日,星期天
第二章算法
2.1算法的概念
要利用計(jì)算機(jī)處理問(wèn)題,光學(xué)習(xí)語(yǔ)言的語(yǔ)法規(guī)則還不夠,最重要的是要學(xué)會(huì)針對(duì)各類(lèi)型的問(wèn)題,擬定出有效的解題方法和步驟。解題方法和步驟就是算法。第13頁(yè),共434頁(yè),2024年2月25日,星期天算法:
為了解決一個(gè)問(wèn)題而采取的有限步驟。
計(jì)算機(jī)算法:
如何使計(jì)算機(jī)一步一步地工作的具體過(guò)程。第14頁(yè),共434頁(yè),2024年2月25日,星期天
利用計(jì)算機(jī)處理問(wèn)題的步驟:
1)設(shè)計(jì)好算法——算法設(shè)計(jì);
2)用計(jì)算機(jī)語(yǔ)言實(shí)現(xiàn)算法——程序設(shè)計(jì)。算法必須是“有效”的。算法設(shè)計(jì)還要充分考慮算法的好壞。衡量算法好壞的主要標(biāo)準(zhǔn):
①程序簡(jiǎn)練。②執(zhí)行速度快。③占空間少。
第15頁(yè),共434頁(yè),2024年2月25日,星期天例:考慮的算法。算法①:直接表達(dá)。直接用語(yǔ)句s=1+2+3+4+5+6+7+8+9+10當(dāng)項(xiàng)數(shù)較多時(shí)該算法不適用s=∑i110第16頁(yè),共434頁(yè),2024年2月25日,星期天算法②:迭代法(累加求和法)
s=1+2+3+4+5+6+7+8+9+10
算法步驟:si
①使s=0+②使i=1
累加器記數(shù)器③s+i→s④i+1→i⑤若i≤10轉(zhuǎn)③,否則轉(zhuǎn)⑥⑥輸出s01123364105該算法通用,是好算法第17頁(yè),共434頁(yè),2024年2月25日,星期天2.2算法的表示
算法需要有統(tǒng)一的表示方法
常用的表示方法有:
自然語(yǔ)言流程圖結(jié)構(gòu)化流程圖
N-S流程圖.
第18頁(yè),共434頁(yè),2024年2月25日,星期天1、自然語(yǔ)言
對(duì)于計(jì)算
s=1+2+3+4+5+6+7+8+9+10
用自然語(yǔ)言表示為:
①
使s=0
(s為累加器)
②
使i=1
(i為計(jì)數(shù)器)
③
s+i→s
(累加求和公式)
④
i+1→i
(計(jì)數(shù)器加1)
⑤
若i≤10轉(zhuǎn)③,否則轉(zhuǎn)⑥
⑥
輸出s的值
特點(diǎn):通俗易懂、文字冗長(zhǎng)、含義不大嚴(yán)格。
第19頁(yè),共434頁(yè),2024年2月25日,星期天2、流程圖
用流程圖符號(hào)表示算法。常用的流程圖符號(hào)
起止框
輸入輸出框
處理框
流程線(xiàn)
判斷框
第20頁(yè),共434頁(yè),2024年2月25日,星期天
對(duì)于計(jì)算s=1+2+3+4+5+6+7+8+9+10
用流程圖表示為:s+i→s
i+1→i
S+i→s
S+i→s
i≤10
輸出s
0→s
1→i
直觀形象,易于理解,次序清楚YN第21頁(yè),共434頁(yè),2024年2月25日,星期天3、結(jié)構(gòu)化流程圖
傳統(tǒng)的流程圖有一個(gè)弊端:對(duì)流程線(xiàn)沒(méi)有嚴(yán)格的限制,對(duì)于較復(fù)雜的算法可能會(huì)變成亂麻一般(BS型算法)。為克服這一弊端,提出了由三個(gè)基本結(jié)構(gòu)組成算法流程圖的思想:
結(jié)構(gòu)化流程圖
第22頁(yè),共434頁(yè),2024年2月25日,星期天
三個(gè)基本結(jié)構(gòu):①
順序結(jié)構(gòu)
按固定順序(從上到下或從左到右)執(zhí)行的結(jié)構(gòu)。
ABab第23頁(yè),共434頁(yè),2024年2月25日,星期天
②
選擇結(jié)構(gòu)
根據(jù)條件P選擇執(zhí)行哪一個(gè)分支。
成立
不成立
pABab成立不成立第24頁(yè),共434頁(yè),2024年2月25日,星期天例:計(jì)算
y=1/x當(dāng)x≠0時(shí)
y=10000當(dāng)x=0時(shí)的算法流程圖圖:
選擇結(jié)構(gòu)
輸入x
X=0?
10000→y
1/x→y
輸出y
YN第25頁(yè),共434頁(yè),2024年2月25日,星期天
③
循環(huán)結(jié)構(gòu)
重復(fù)執(zhí)行某些操作的結(jié)構(gòu)。分為兩種:當(dāng)型循環(huán)和直到型循環(huán)。
當(dāng)型循環(huán)
直到型循環(huán)
P1AAP2aabbYYNN第26頁(yè),共434頁(yè),2024年2月25日,星期天
可以看出,每個(gè)基本結(jié)構(gòu)都只有一個(gè)入口和一個(gè)出口,因此,用三個(gè)基本結(jié)構(gòu)構(gòu)成的流程圖不會(huì)象亂麻一般,用三個(gè)基本結(jié)構(gòu)構(gòu)成的流程圖就成為結(jié)構(gòu)化流程圖,用結(jié)構(gòu)化流程圖描述的算法稱(chēng)為結(jié)構(gòu)化算法,相應(yīng)的程序設(shè)計(jì)就稱(chēng)為結(jié)構(gòu)化程序設(shè)計(jì)。
第27頁(yè),共434頁(yè),2024年2月25日,星期天觀察前例:
0→s
1→i
S+i→s
i+1→i
i≤10
輸出s順序結(jié)構(gòu)循環(huán)結(jié)構(gòu)yn第28頁(yè),共434頁(yè),2024年2月25日,星期天4
N-S流程圖N-S流程圖的三個(gè)基本結(jié)構(gòu):
ABP成立不成立ABAB當(dāng)P1直到P2順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)第29頁(yè),共434頁(yè),2024年2月25日,星期天例:計(jì)算
y=1/x當(dāng)x≠0時(shí)
y=10000當(dāng)x=0時(shí)的N-S流程圖:輸入x
X=0?是否10000→y1/x→y
輸出y
第30頁(yè),共434頁(yè),2024年2月25日,星期天
例:計(jì)算s=1+2+3+4+5+6+7+8+9+10
的N-S流程圖:
i≤10
直到i>10
直到型
當(dāng)型
0→s
1→i
輸出s1→i
0→ss+i→s
i+1→i
s+i→s
i+1→i
輸出s第31頁(yè),共434頁(yè),2024年2月25日,星期天
第三章數(shù)據(jù)類(lèi)型、運(yùn)算符
與表達(dá)式
3.1C的數(shù)據(jù)類(lèi)型
●基本類(lèi)型(整型、實(shí)型、字符型、枚舉型)
●構(gòu)造類(lèi)型(略)
●指針類(lèi)型(略)
●空類(lèi)型各類(lèi)型包含常量與變量第32頁(yè),共434頁(yè),2024年2月25日,星期天3.2常量與變量■常量與符號(hào)常量
常量在程序運(yùn)行過(guò)程中其值保持不變的量。符號(hào)常量用來(lái)代表一個(gè)常量的標(biāo)識(shí)符。
#definePI3.1415926第33頁(yè),共434頁(yè),2024年2月25日,星期天
例:
#definePI3.1415926main(){floatr=2,c;
c=2*PI*r;printf(“%f”,c);}第34頁(yè),共434頁(yè),2024年2月25日,星期天■變量
其值可以改變的量。
變量的三要素:
①
變量名每個(gè)變量有一個(gè)名字,作為識(shí)別該變量的標(biāo)識(shí)符。②變量的值每個(gè)變量有一個(gè)值,變量的值是隨時(shí)可以改變的。
第35頁(yè),共434頁(yè),2024年2月25日,星期天
③變量的存儲(chǔ)單元
每個(gè)變量占據(jù)一個(gè)內(nèi)存單元,用于存放變量的值。
變量名
a
變量值
存儲(chǔ)單元
3第36頁(yè),共434頁(yè),2024年2月25日,星期天
變量的命名規(guī)則:由字母、數(shù)字和下劃線(xiàn)組成以字母或下劃線(xiàn)開(kāi)頭
a、x1、y_2、_b1、_1c合法
1x、a+2、Ф、Ω不合法
變量必須先定義后使用。程序中何時(shí)使用常量?何時(shí)使用變量?第37頁(yè),共434頁(yè),2024年2月25日,星期天
3.3整型數(shù)據(jù)
■整型常量
即整常數(shù),c的整常數(shù)有三種形式:
①十進(jìn)制整數(shù)與數(shù)學(xué)中的整數(shù)一致,如:100,123,15等。
②八進(jìn)制整數(shù)以0開(kāi)頭的整數(shù),如:010,07,020等。
③十六進(jìn)制整數(shù)以0x開(kāi)頭的整數(shù),如:0x10,0xff,0x2a等。第38頁(yè),共434頁(yè),2024年2月25日,星期天
■整型變量
用于存放整數(shù)的變量。分4種類(lèi)型:
①基本型:inta16位,可表示的數(shù)值范圍:-32768—32767
②短整型:shortintb16位,可表示的數(shù)值范圍:-32768—32767
③長(zhǎng)整型:longintc32位,數(shù)值范圍:-2147483648—2147483647第39頁(yè),共434頁(yè),2024年2月25日,星期天
④無(wú)符號(hào)型:加上unsigned
只存放正數(shù)。如:unsignedintx
變量x為無(wú)符號(hào)整數(shù),16位全表示數(shù)碼,數(shù)值范圍:0—65535
在程序設(shè)計(jì)中,如果要使用整型變量,必須首先選擇以上類(lèi)型符來(lái)定義變量,然后才能使用;第40頁(yè),共434頁(yè),2024年2月25日,星期天
例:
main()定義
{inta,b,c;a=100;b=50;使用
c=a+b;printf(“%d”,c);}
一般根據(jù)什么原則選擇變量的類(lèi)型?第41頁(yè),共434頁(yè),2024年2月25日,星期天3.4實(shí)型數(shù)據(jù)
■實(shí)型常量
可使用兩種形式表示:①小數(shù)形式:如1.23,3.141592615.48②指數(shù)形式:如1e-201.23e5
第42頁(yè),共434頁(yè),2024年2月25日,星期天■實(shí)型變量
用于存放實(shí)數(shù)的變量分單精度和雙精度兩種:
floata,b
定義a和b為單精度型變量
32位,7位有效數(shù)字,10-38—1038
doublex,y
定義x和y為雙精度型變量
64位,15位有效數(shù)字,10-308—10308第43頁(yè),共434頁(yè),2024年2月25日,星期天
例:
main(){floatr,c;doubler,c;r=5;c=2*3.1415926*r;printf(“%f”,c);}
第44頁(yè),共434頁(yè),2024年2月25日,星期天
3.5字符型數(shù)據(jù)
■字符常量
用單引號(hào)括起來(lái)的一個(gè)字符?!痑’,’x’,’*’,’1’等除此外,以’\’開(kāi)頭的字符如’\n’,’\t’等稱(chēng)為轉(zhuǎn)義字符,祥見(jiàn)書(shū)表3.3第45頁(yè),共434頁(yè),2024年2月25日,星期天
■字符型變量
用于存放字符的變量。
charc1,c2定義c1和c2為字符型變量
c1=’a’;c2=’b’;字符賦值字符型變量存放一個(gè)字符,占據(jù)一個(gè)字節(jié)第46頁(yè),共434頁(yè),2024年2月25日,星期天
■字符型數(shù)據(jù)的存儲(chǔ)形式
存放ASCII碼不是而是
如字符’a’在內(nèi)存中存放97,’b’存放98。與整數(shù)的存儲(chǔ)形式一致,它們之間可以通用一個(gè)字符數(shù)據(jù)既可以作字符用,也可以作整數(shù)用(取其ASCII代碼)。如:32+’a’相當(dāng)于32+97
若intx;charc;則x=’a’;c=97;x=97;c=’a’;都允許
a97第47頁(yè),共434頁(yè),2024年2月25日,星期天
■字符串常量
用雙引號(hào)括起來(lái)的字符序列。
如:”abcde”,”china””a”也屬字符串。注意”a”與’a’的區(qū)別。對(duì)于:
charc;c=”a”;
用法錯(cuò)誤第48頁(yè),共434頁(yè),2024年2月25日,星期天
字符串中每個(gè)字符各占一個(gè)字節(jié),并且在字符串結(jié)尾加上一個(gè)結(jié)束標(biāo)記’\0’
如:”china”
在內(nèi)存中占6個(gè)字節(jié)。
china\0
C語(yǔ)言中專(zhuān)門(mén)的字符串變量,可用字符數(shù)組存放(以后介紹)。第49頁(yè),共434頁(yè),2024年2月25日,星期天3.6變量賦初值
在定義變量的同時(shí)給相應(yīng)的變量賦初值。如:
inta=3;
a
floatb=5.2;charc=’a’;intx=y=z=6;
效果:在給變量分配內(nèi)存單元的同時(shí)在相應(yīng)的單元中存放初值。
3第50頁(yè),共434頁(yè),2024年2月25日,星期天3.7各數(shù)值型數(shù)據(jù)間的混合運(yùn)算
整型、實(shí)型、字符型數(shù)據(jù)間可以進(jìn)行混合運(yùn)算,如:
10-‘a(chǎn)’*1.5
運(yùn)算時(shí),參加運(yùn)算的兩個(gè)數(shù)據(jù)如果類(lèi)型不同,則首先將其類(lèi)型轉(zhuǎn)換成一致再運(yùn)算,轉(zhuǎn)換規(guī)則是:
將優(yōu)先級(jí)低的類(lèi)型轉(zhuǎn)換到優(yōu)先級(jí)高的類(lèi)型第51頁(yè),共434頁(yè),2024年2月25日,星期天
數(shù)據(jù)類(lèi)型的優(yōu)先級(jí):高
doublefloatlongunsignde
低
intchar第52頁(yè),共434頁(yè),2024年2月25日,星期天3.8算術(shù)運(yùn)算符與算術(shù)表達(dá)式
■基本的算術(shù)運(yùn)算符
+-*/%
■算術(shù)表達(dá)式
用算術(shù)運(yùn)算符將運(yùn)算對(duì)象連接起來(lái)的式子
用于表達(dá)數(shù)學(xué)公式的式子如:2*x+y-1/a
表達(dá)式經(jīng)過(guò)運(yùn)算最終得到一個(gè)值:
算術(shù)表達(dá)式的值第53頁(yè),共434頁(yè),2024年2月25日,星期天■運(yùn)算符的優(yōu)先級(jí)與結(jié)合性
優(yōu)先級(jí):在對(duì)表達(dá)式求值時(shí),如果存在多個(gè)運(yùn)算符,則運(yùn)算的先后次序按運(yùn)算符的優(yōu)先級(jí)別從高到底進(jìn)行。
運(yùn)算符的優(yōu)先級(jí)關(guān)系為:高:*/%
低:+-
如:a-2*x先算*
2*(a+2)有括號(hào)的情況?
第54頁(yè),共434頁(yè),2024年2月25日,星期天
結(jié)合性:
如果在一個(gè)運(yùn)算對(duì)象兩邊的運(yùn)算符的優(yōu)先級(jí)相同,則按規(guī)定的“結(jié)合方向”處理。如:a-b+cb與-結(jié)合是從左到右,稱(chēng)“左結(jié)合性”。
b與+結(jié)合是從右到左,稱(chēng)“右結(jié)合性”。每個(gè)運(yùn)算符都有相應(yīng)的優(yōu)先級(jí)和結(jié)合性?;舅阈g(shù)運(yùn)算符都是左結(jié)合性。
第55頁(yè),共434頁(yè),2024年2月25日,星期天計(jì)算表達(dá)式例:
2+’A’-1/2.01+3/2-1構(gòu)造表達(dá)式例
2x2+3x-1
a+ba-b
a+ba-b
x+yx-ya+b/a-b?(a+b)/(a-b)2*x*x+3*x-1(*不能?。?a+b)/(a-b)/(x+y)/(x-y)(a+b)/(a-b)/((x+y)/(x-y))(a+b)/(a-b)/(x+y)*(x-y)第56頁(yè),共434頁(yè),2024年2月25日,星期天■強(qiáng)制類(lèi)型轉(zhuǎn)換可以用強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式的值轉(zhuǎn)換成所需類(lèi)型:如:
(int)(x+y)(float)(7%3)第57頁(yè),共434頁(yè),2024年2月25日,星期天
應(yīng)用舉例:
inta=200,b=300,c;c=a*b/100;?
可知,有自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換,當(dāng)自動(dòng)轉(zhuǎn)換達(dá)不到目的時(shí),可用強(qiáng)制轉(zhuǎn)換。c=(long)a*b/100;c=(long)(a*b)/100;第58頁(yè),共434頁(yè),2024年2月25日,星期天■自增、自減運(yùn)算符
自增運(yùn)算符:++
使變量值加1
自減運(yùn)算符:--
使變量值減1
兩種用法:
++i,--i先加(減)后用
i++,i--先用后加(減)兩種用法對(duì)i效果一樣,但表達(dá)式的值不同。例:假設(shè)i的原值為5:
j=++i;j=?
j=i++;j=?第59頁(yè),共434頁(yè),2024年2月25日,星期天
注意:●++和--只能用于變量。
如:3++和(a+1)++
不合法●++和--為右結(jié)合性。
(-i)++
-i++
-(i++)
若i的原值是5,則該表達(dá)式的值是多少?第60頁(yè),共434頁(yè),2024年2月25日,星期天
例:分析執(zhí)行下列語(yǔ)句后的結(jié)果:
a=5;abcd
b=a++;c=--a-b++;d=(a++)-(++b)+c--;
5565067-26-1第61頁(yè),共434頁(yè),2024年2月25日,星期天
兩種特殊情況:①k=(i++)+(i++)+(i++)
②i+++j
是i+(++j)
還是(i++)+j?
i++雖然與i=i+1等效,但使用自增自減運(yùn)算符的代碼優(yōu)化程度好,因而經(jīng)常使用;但用時(shí)需特別小心。第62頁(yè),共434頁(yè),2024年2月25日,星期天3.9賦值運(yùn)算符和賦值表達(dá)式■賦值運(yùn)算符
“=”稱(chēng)賦值運(yùn)算符,其作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量。如:a=5
不要理解為“等號(hào)”。執(zhí)行賦值運(yùn)算的結(jié)果,是將右邊的數(shù)據(jù)存入左邊變量所對(duì)應(yīng)的內(nèi)存單元中。第63頁(yè),共434頁(yè),2024年2月25日,星期天
■賦值規(guī)則
如果賦值運(yùn)算符兩側(cè)的類(lèi)型不一致,則在賦值時(shí)要進(jìn)行類(lèi)型轉(zhuǎn)換,轉(zhuǎn)換規(guī)則為:●實(shí)型→整變量舍去小數(shù)部分。
inta=5.5;a中為5。●整型→實(shí)變量數(shù)值不變,以浮點(diǎn)形式存儲(chǔ)?!褡址汀兞糠旁谡巫兞康?位。保持原值不變?cè)瓌t。
inta=‘A’;第64頁(yè),共434頁(yè),2024年2月25日,星期天■復(fù)合賦值運(yùn)算符
在賦值運(yùn)算符前加上其它運(yùn)算符,可以構(gòu)成復(fù)合賦值運(yùn)算符。
a+=3——a=a+3b-=x+5——b=b-(x+5)x*=c-6——x=x*(c-6)y/=a*4——y=y/(a*4)k%=b-2——k=k%(b-2)
屬于高效率運(yùn)算符。第65頁(yè),共434頁(yè),2024年2月25日,星期天■賦值表達(dá)式
主要實(shí)現(xiàn)賦值運(yùn)算的表達(dá)式。
一般形式:
<變量>=<表達(dá)式>
如:a=5y=2*x+3a=a+1
不是衡等作用:將右邊表達(dá)式的值賦給左邊的變量。賦值表達(dá)式的值取左邊變量的值。第66頁(yè),共434頁(yè),2024年2月25日,星期天
賦值表達(dá)式右邊的<表達(dá)式>可以是任何表達(dá)式,如:
a=(b=5)賦值表達(dá)式中包含賦值表達(dá)式賦值運(yùn)算符的優(yōu)先級(jí)低于所有算術(shù)運(yùn)算符,且是右結(jié)合性。
a=(b=5)
與a=b=5
等效。
第67頁(yè),共434頁(yè),2024年2月25日,星期天
例:計(jì)算以下表達(dá)式的值:
a=b=c=5a=5+(c=6)a=(b=4)+(c=6)a=(b=4.5)+(c=6.5)(a、b、c為整型變量)
a+=a-=a*a(設(shè)a的原值為3)第68頁(yè),共434頁(yè),2024年2月25日,星期天
賦值表達(dá)式是C語(yǔ)言中的一個(gè)重要成分,在賦值表達(dá)式后加一分號(hào)就成為常用的賦值語(yǔ)句。如y=2*x+1;
賦值表達(dá)式作為表達(dá)式的一種,可以出現(xiàn)在任何表達(dá)式中,如:
x+2-(b/3-(a=k-5)+’b’第69頁(yè),共434頁(yè),2024年2月25日,星期天
3.10逗號(hào)表達(dá)式
逗號(hào)也是一種運(yùn)算符,用它對(duì)兩個(gè)表達(dá)式實(shí)現(xiàn)連接運(yùn)算。
3+5,6+8稱(chēng)逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的一般形式:
表達(dá)式1,表達(dá)式2
取表達(dá)式2的值作為整個(gè)逗號(hào)表達(dá)式的值。如:a=3*5,a*4
逗號(hào)表達(dá)式的值為:60第70頁(yè),共434頁(yè),2024年2月25日,星期天
一個(gè)逗號(hào)表達(dá)式又可以與另一個(gè)表達(dá)式組成一個(gè)新的逗號(hào)表達(dá)式,如:
(a=3*5,a*4),a+5
因此,逗號(hào)表達(dá)式的一般形式可以擴(kuò)展為:
表達(dá)式1,表達(dá)式2,表達(dá)式3,……,表達(dá)式n
取表達(dá)式n的值作為整個(gè)逗號(hào)表達(dá)式的值。
逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低,且是左結(jié)合性。
逗號(hào)運(yùn)算符只起到連接作用,沒(méi)有實(shí)際操作。
第71頁(yè),共434頁(yè),2024年2月25日,星期天
第四章最簡(jiǎn)單的C程序設(shè)計(jì)
C程序最基本的成分是語(yǔ)句目前我們已掌握的語(yǔ)句:
變量說(shuō)明語(yǔ)句:
inta,b,c;
表達(dá)式語(yǔ)句:
x+y;
特別地:
a=5;
賦值語(yǔ)句第72頁(yè),共434頁(yè),2024年2月25日,星期天
可以編寫(xiě)簡(jiǎn)單程序如:
main(){intx,y;x=5;y=2*x*x+3*x-1;}
該程序語(yǔ)法上完整,但還缺少輸出。
第73頁(yè),共434頁(yè),2024年2月25日,星期天
■數(shù)據(jù)的輸出
用輸出函數(shù)實(shí)現(xiàn),其中的兩種輸出函數(shù):
1.putchar函數(shù)(字符輸出函數(shù))用于輸出一個(gè)字符。
如:
putchar(‘a(chǎn)’);putchar(100);charc=’b’;putchar(c);第74頁(yè),共434頁(yè),2024年2月25日,星期天
例:輸出單詞Boy的完整程序:
#include“stdio.h”注意該語(yǔ)句的作用
main(){chara,b,c;a=’B’;b=’o’;c=’y’;putchar(a);putchar(b);putchar(c);}第75頁(yè),共434頁(yè),2024年2月25日,星期天
2.printf函數(shù)(格式輸出函數(shù))
任意類(lèi)型、任意格式、任意個(gè)數(shù)。例如:
inta=100,b=56;
printf(“a=%d,b=%d”,a,b);
普通字符格式說(shuō)明格式控制
輸出表列
輸出結(jié)果:a=100,b=56“%”后的字符稱(chēng)格式字符,不同格式字符對(duì)應(yīng)不同的數(shù)據(jù)類(lèi)型。第76頁(yè),共434頁(yè),2024年2月25日,星期天
d格式符:按整數(shù)格式輸出
幾種用法:
%d
不指定寬度,按實(shí)際寬度輸出
%md
按指定寬度輸出,m為寬度
%ld
用于輸出長(zhǎng)整型數(shù)第77頁(yè),共434頁(yè),2024年2月25日,星期天
例:
inta=125,b=453;longc=65535;printf(“a=%d,b=%5d,c=%ld”,a,b,c);
輸出結(jié)果:
a=125,b=453,c=65535第78頁(yè),共434頁(yè),2024年2月25日,星期天
%ld也可以按指定寬度輸出:
printf(“c=%8ld”,c);
輸出結(jié)果:c=65535注意:格式字符的類(lèi)型要與對(duì)應(yīng)的輸出對(duì)象的類(lèi)型一致。
第79頁(yè),共434頁(yè),2024年2月25日,星期天c格式符:用于輸出字符
charc=’A’;printf(“c=%c,%c”,c,’B’);
輸出結(jié)果:c=A,B
輸出對(duì)象既可以是字符變量、字符常量,還可以是整型表達(dá)式。
第80頁(yè),共434頁(yè),2024年2月25日,星期天
如:
inta=100;charb=’A’;printf(“\n%d,%c”,a,a);printf(“\n%c,%d”,b,b);
輸出結(jié)果:
100,dA,65第81頁(yè),共434頁(yè),2024年2月25日,星期天s格式符:用于輸出字符串
%s
不指定寬度
%-ms
指定寬度,左靠齊
%ms
指定寬度,右靠齊
%m.ns
指定寬度m,只取左端n個(gè)字符,右靠齊
%-m.ns
指定寬度m,只取左端n個(gè)字符,左靠齊第82頁(yè),共434頁(yè),2024年2月25日,星期天例:
printf(“1:%s”,”abcd”);
printf(“2:%8s”,”abcd”);printf(“3:%-8s”,”abcd”);
printf(“4:%8.3s”,”abcd”);printf(“5:%-8.3s”,”abcd”);1:abcd2:abcd3:abcd4:abc5:abc第83頁(yè),共434頁(yè),2024年2月25日,星期天f格式符:按小數(shù)形式輸出實(shí)數(shù)
%f由系統(tǒng)指定寬度(6位小數(shù))
%m.nf指定寬度m,小數(shù)位數(shù)n,右靠齊
%-m.nf指定寬度m,小數(shù)位數(shù)n,左靠齊
注意:寬度包括符號(hào)和小數(shù)點(diǎn)。
第84頁(yè),共434頁(yè),2024年2月25日,星期天例:
floata=3.141592654,b=14.326795,c=-125.2468;
printf(“\na=%f,b=%8.3f,c=%-10.2f”,a,b,c);
輸出結(jié)果:
a=3.141592,b=14.326,c=-125.24
第85頁(yè),共434頁(yè),2024年2月25日,星期天完整前面的程序:main(){intx,y;x=5;y=2*x*x+3*x-1;
printf(“\ny=%d”,y);}第86頁(yè),共434頁(yè),2024年2月25日,星期天程序設(shè)計(jì)例:
編寫(xiě)程序計(jì)算如圖中的電流I.
假設(shè)U=220,R1=30,R2=60,R3=45UIR1R2R3第87頁(yè),共434頁(yè),2024年2月25日,星期天算法設(shè)計(jì):
I=U/R1+U/R2+U/R3程序設(shè)計(jì):
main(){
}I=U/R1+U/R2+U/R3;intU=220,R1=30,R2=60,R3=45;floatI;printf(“\nI=%f”,I);第88頁(yè),共434頁(yè),2024年2月25日,星期天
正確的程序:
main(){intU=220,R1=30,R2=60,R3=45;floatI;I=(float)U/R1+(float)U/R2+(float)U/R3;printf(“\nI=%f”,I);}第89頁(yè),共434頁(yè),2024年2月25日,星期天
考慮通用:
main(){intU,R1,R2,R3;floatI;
輸入U(xiǎn),R1,R2,R3I=(float)U/R1+(float)U/R2+(float)U/R3;printf(“\nI=%f”,I);}第90頁(yè),共434頁(yè),2024年2月25日,星期天
■數(shù)據(jù)的輸入
getchar函數(shù)(字符輸入)
#include“stdio.h”main(){charc;c=getchar();等待鍵盤(pán)輸入
putchar(c);}
第91頁(yè),共434頁(yè),2024年2月25日,星期天scanf函數(shù)(格式輸入)
與printf函數(shù)相反。用于輸入若干任意類(lèi)型的數(shù)據(jù)。
scanf(“%d%d%d”,&a,&b,&c);
格式控制地址列表
第92頁(yè),共434頁(yè),2024年2月25日,星期天
scanf(“%d%d%d”,&a,&b,&c);
執(zhí)行此函數(shù)時(shí),等待從鍵盤(pán)輸入三個(gè)整數(shù)給a,b,c
若從鍵盤(pán)輸入358
則系統(tǒng)即從鍵盤(pán)緩沖區(qū)取出這三個(gè)數(shù)分別賦給a,b,c
注意與printf的區(qū)別,注意格式的匹配第93頁(yè),共434頁(yè),2024年2月25日,星期天如:
scanf(“%3d%2d%4d”,&a,&b,&c);
若從鍵盤(pán)輸入123456789a=123,b=45,c=6789
若想使a=12,b=5,c=100
則鍵盤(pán)輸入應(yīng)為:125100
方便的輸入格式一般不指定寬度,如:
scanf(“%d%d%d”,&a,&b,&c);第94頁(yè),共434頁(yè),2024年2月25日,星期天
在鍵盤(pán)輸入時(shí),用分隔符把每個(gè)數(shù)據(jù)隔開(kāi),標(biāo)準(zhǔn)的分隔符是空格。如:12315023
若想用逗號(hào)作分隔符,則:
scanf(“%d,%d,%d”,&a,&b,&c);
不要隨便使用普通字符,如使用:
scanf(“a=%d,b=%dc=%d”,&a,&b,&c)
對(duì)應(yīng)數(shù)據(jù)輸入:
a=123,b=150,c=23第95頁(yè),共434頁(yè),2024年2月25日,星期天
前面的歐姆定律:main(){intU,R1,R2,R3;floatI;
scanf(“%d%d%d%d”,&U,&R1,&R2,&R3);I=(float)U/R1+(float)U/R2+(float)U/R3;printf(“\nI=%f”,I);}第96頁(yè),共434頁(yè),2024年2月25日,星期天求三角形面積#include“math.h”main(){floata,b,c,area,s;scanf(“%f,%f,%f”,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“\narea=%f”,area);}使用數(shù)學(xué)函數(shù)第97頁(yè),共434頁(yè),2024年2月25日,星期天使用三角函數(shù)#include“math.h”main(){floatx,y;scanf(“%f”,&x);y=sin(x*3.1415926/180);以弧度為單位
printf(“\ny=%f”,y);}第98頁(yè),共434頁(yè),2024年2月25日,星期天第五章
選擇結(jié)構(gòu)程序設(shè)計(jì)
對(duì)于如下的函數(shù)計(jì)算,算法上屬于一個(gè)選擇結(jié)構(gòu)。
y=
用于實(shí)現(xiàn)選擇結(jié)構(gòu)的主要是if語(yǔ)句。1/x當(dāng)x≠0時(shí)
10000當(dāng)x=0時(shí)第99頁(yè),共434頁(yè),2024年2月25日,星期天if語(yǔ)句的最常見(jiàn)形式為:
if(關(guān)系表達(dá)式)語(yǔ)句1;
else語(yǔ)句2;如:
if(x!=0)y=1/x;elsey=10000;其中
x!=0
就是一個(gè)關(guān)系表達(dá)式
!=
就是一個(gè)關(guān)系運(yùn)算符第100頁(yè),共434頁(yè),2024年2月25日,星期天5.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式1、關(guān)系運(yùn)算符用于進(jìn)行比較運(yùn)算的運(yùn)算符。共有六種:
<<=>>===!=■優(yōu)先級(jí)與結(jié)合性:①前4種大于后兩種。②低于算術(shù)運(yùn)算符而高于賦值運(yùn)算符。③左結(jié)合性。第101頁(yè),共434頁(yè),2024年2月25日,星期天2、關(guān)系表達(dá)式一般形式:〈表達(dá)式〉〈關(guān)系運(yùn)算符〉〈表達(dá)式〉
如:a>ba+b>b+c
經(jīng)過(guò)關(guān)系運(yùn)算后最終有一個(gè)值--關(guān)系表達(dá)式的值。關(guān)系表達(dá)式的值只有0(假)或1(真)第102頁(yè),共434頁(yè),2024年2月25日,星期天例:設(shè)a=2,b=4,c=1計(jì)算以下關(guān)系表達(dá)式的值:
a>ba+b>b+c‘a(chǎn)’>’b’可以是字符表達(dá)式(x=2)>(y=5)可以是賦值表達(dá)式(a<b)>(b<c)甚至可以是關(guān)系表達(dá)式a<b==b<c第103頁(yè),共434頁(yè),2024年2月25日,星期天例:假設(shè)x=3,y=5,z=1,計(jì)算以下關(guān)系表達(dá)式的值:x+z>yx<y==y<zy>z==x>zy>x>z(x==y-2)<z+1==x+ya=x+y==x+z<y+x!=z+1>x+1第104頁(yè),共434頁(yè),2024年2月25日,星期天5.2邏輯運(yùn)算符和邏輯表達(dá)式有時(shí),只用一個(gè)簡(jiǎn)單的關(guān)系表達(dá)式無(wú)法完整地表達(dá)一個(gè)條件,如:
y=
其中的條件需要用邏輯表達(dá)式來(lái)表達(dá):
x!=0&&a!=0
&&就是一種邏輯運(yùn)算符。1/x+1/a當(dāng)x≠0,a≠0時(shí)
10000其它第105頁(yè),共434頁(yè),2024年2月25日,星期天1、邏輯運(yùn)算符&&邏輯與
兩個(gè)操作數(shù)都為真時(shí)&&運(yùn)算結(jié)果為真。||
邏輯或
兩個(gè)操作數(shù)之一為真時(shí)即為真。!
邏輯非(單目運(yùn)算)操作數(shù)為真(假)時(shí)為假(真)。
如:若a=2,b=3,c=0則:
a<b&&b<c0a<b||b<c1!(a<b)0第106頁(yè),共434頁(yè),2024年2月25日,星期天■優(yōu)先級(jí)(由高到低):!邏輯非算術(shù)運(yùn)算符關(guān)系運(yùn)算符&&邏輯與||邏輯或賦值運(yùn)算符■結(jié)合性:左結(jié)合性第107頁(yè),共434頁(yè),2024年2月25日,星期天2、邏輯表達(dá)式實(shí)際上,前面所舉例子即為邏輯表達(dá)式:
a<b&&b<ca<b||b<c!(a<b)
邏輯表達(dá)式的值同樣只有1和0,但參加邏輯運(yùn)算的操作數(shù)可以是任意類(lèi)型的數(shù)據(jù),可以是任意大小。例:
a+b&&b+c
是合法的邏輯表達(dá)式。此時(shí)以0代表假,非0代表真。第108頁(yè),共434頁(yè),2024年2月25日,星期天例:設(shè)a=2,b=3,c=0,計(jì)算以下表達(dá)式的值:
a&&bb&&ca||c
!a+c&&b+c
!c+a==b||b<a
a+c||a+b>c+10
第109頁(yè),共434頁(yè),2024年2月25日,星期天對(duì)于邏輯表達(dá)式的兩種基本技能:①邏輯表達(dá)式的計(jì)算。②邏輯表達(dá)式的構(gòu)造。第110頁(yè),共434頁(yè),2024年2月25日,星期天邏輯表達(dá)式的構(gòu)造舉例:
a≥b≥c
a和b之一為0,但不同時(shí)為0a>=b>=c5>=4>=3a>=b&&b>=ca==0&&b!=0||a!=0&&b==0a*b==0a*b==0&&a+b!=0第111頁(yè),共434頁(yè),2024年2月25日,星期天對(duì)于a==0&&b!=0||a!=0&&b==0
a==0可以用!a代替
a!=0可以直接用a
!a&&b||a&&!b但必須是運(yùn)算結(jié)果作為邏輯量的情況下。
y=(a!=0)與
y=a不等效第112頁(yè),共434頁(yè),2024年2月25日,星期天5.3if語(yǔ)句1、if語(yǔ)句的三種形式①
if(表達(dá)式)語(yǔ)句;
有一分支為空。
scanf(“%d”,&score);if(score>=60)printf(“pass”);
第113頁(yè),共434頁(yè),2024年2月25日,星期天
②
if(表達(dá)式)語(yǔ)句1;
else語(yǔ)句2;
if(x!=0)y=1/x;elsey=10000;第114頁(yè),共434頁(yè),2024年2月25日,星期天
③
if(表達(dá)式1)語(yǔ)句1;
elseif(表達(dá)式2)語(yǔ)句2;
elseif(表達(dá)式3)語(yǔ)句3;┇
else語(yǔ)句n;
if(score==100)printf(“A”);elseif(score>=90)printf(“B”);elseif(score>=80)printf(“C”);elseif(score>=70)printf(“D”);elseif(score>=60)printf(“E”);elseprintf(“F”);第115頁(yè),共434頁(yè),2024年2月25日,星期天
對(duì)于:
1/x當(dāng)x≠0時(shí)10000當(dāng)x=0時(shí)一般用:if(x!=0)y=1/x;elsey=10000;也可用:y=10000;if(x!=0)y=1/x;y=?y=1/x;if(x==0)y=10000第116頁(yè),共434頁(yè),2024年2月25日,星期天
例:(習(xí)題5.5):x(x<1)2x-1(1≤x<10)
3x-11(x≥10)y=第117頁(yè),共434頁(yè),2024年2月25日,星期天
main(){floatx,y;scanf(“%f”,&x);
if(x<1)y=x;elseif(x<10)y=2*x-1;elsey=3*x-11;printf(“\ny=%f”,y);}第118頁(yè),共434頁(yè),2024年2月25日,星期天說(shuō)明:①
語(yǔ)句中的表達(dá)式可以是任意表達(dá)式:
if(x)y=1/x;elsey=10000;②一個(gè)if結(jié)構(gòu)不可分割:
if(x)y=1/x;
z=10;elsey=10000;③一個(gè)分支中包含多個(gè)語(yǔ)句時(shí),要用{}:
if(a<0){x=1;y=2;}else{x=10;y=20;}第119頁(yè),共434頁(yè),2024年2月25日,星期天分支程序設(shè)計(jì)舉例(基本技巧和算法)例:從鍵盤(pán)輸入三個(gè)整數(shù)到變量a,b,c,輸出其中最大的數(shù)。兩種典型算法:①枚舉法(將各種可能性枚舉出來(lái))。②選擇法(先假設(shè)后判斷更新)。
第120頁(yè),共434頁(yè),2024年2月25日,星期天選擇法main(){inta,b,c,max;scanf(“%d,%d,%d”,&a,&b,&c);
max=a;if(b>max)max=b;if(c>max)max=c;
printf(“\nmax=%d”,max);}}第121頁(yè),共434頁(yè),2024年2月25日,星期天
例:從鍵盤(pán)輸入三個(gè)整數(shù)到變量a,b,c,要求按從大到小的順序輸出。
兩種典型算法:①枚舉法(將各種可能的排列枚舉出來(lái))。②換位法(將a,b,c中的數(shù)據(jù)換位)。第122頁(yè),共434頁(yè),2024年2月25日,星期天換位法main(){inta,b,c,t;scanf(“%d,%d,%d”,&a,&b,&c);
if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(b<c){t=b;b=c;c=t;}printf(“\n%d,%d,%d”,a,b,c);}}358538553abc第123頁(yè),共434頁(yè),2024年2月25日,星期天2、if語(yǔ)句的嵌套在if語(yǔ)句中,又包含一個(gè)或多個(gè)if語(yǔ)句:if(score>=80)
if(score>=90)printf(“A”);elseprintf(“B”);else
if(score>=60)printf(“C”);elseprintf(“D”);注意else與if的匹配第124頁(yè),共434頁(yè),2024年2月25日,星期天3、條件運(yùn)算符如果兩個(gè)分支的內(nèi)容都是給同一個(gè)變量賦值,則可用簡(jiǎn)單的條件運(yùn)算符處理:
if(a>b)max=a;elsemax=b;可用:max=a>b?a:b;賦值運(yùn)算符右邊為一條件表達(dá)式。條件表達(dá)式的一般形式:
表達(dá)式1?表達(dá)式2:表達(dá)式3第125頁(yè),共434頁(yè),2024年2月25日,星期天條件表達(dá)式的執(zhí)行過(guò)程:a>b?a:b
優(yōu)先級(jí):低于關(guān)系運(yùn)算符,高于賦值運(yùn)算符。結(jié)合性:右結(jié)合性。
表達(dá)式1條件表達(dá)式取表達(dá)式3的值條件表達(dá)式取表達(dá)式2的值
非00第126頁(yè),共434頁(yè),2024年2月25日,星期天
例:求a,b,c中的最大值:max=a>b?(a>c?a:c):(b>c?b:c);第127頁(yè),共434頁(yè),2024年2月25日,星期天5.4switch語(yǔ)句(多分支)適用于根據(jù)一個(gè)表達(dá)式的值就可確定走哪個(gè)分支的情況。
switch(表達(dá)式)
{
常量表達(dá)式1:語(yǔ)句1
常量表達(dá)式2:語(yǔ)句2┋
常量表達(dá)式n:語(yǔ)句ndefault:語(yǔ)句n+1
}第128頁(yè),共434頁(yè),2024年2月25日,星期天例:成績(jī)分檔:switch(score/10){case10:printf(“A”);case9:printf(“B”);case8:printf(“C”);case7:printf(“E”);case6:printf(“F”);default:printf(“G”);}
注:應(yīng)使用break.第129頁(yè),共434頁(yè),2024年2月25日,星期天switch(score/10){case10:printf(“A”);break;case9:printf(“B”);break;case8:printf(“C”);break;case7:printf(“E”);break;case6:printf(“F”);break;default:printf(“G”);}第130頁(yè),共434頁(yè),2024年2月25日,星期天5.5程序舉例
(習(xí)題5.10)
有4個(gè)圓塔,圓心分別為:(2,2),(-2,2),(-2,-2),(2,-2),圓半徑為1。這4個(gè)塔的高度為10m,塔以外無(wú)建筑物。今輸入任一點(diǎn)的坐標(biāo),求該點(diǎn)的建筑高度(塔外的高度為0)。第131頁(yè),共434頁(yè),2024年2月25日,星期天
算法設(shè)計(jì):
條件“在某一圓內(nèi)”:“在圓1內(nèi)或在圓2內(nèi)或在圓3內(nèi)或在圓4內(nèi)”若設(shè)變量c1、c2、c3、c4分別代表是否在相應(yīng)的圓內(nèi),則以上條件為:c1||c2||c3||c4
10在某一圓內(nèi)0在圓外
(x,y)
h=第132頁(yè),共434頁(yè),2024年2月25日,星期天c1=(x-2)2+(y-2)2≤1c2=(x+2)2+(y-2)2≤1c3=(x+2)2+(y+2)2≤1c4=(x-2)2+(y+2)2≤1第133頁(yè),共434頁(yè),2024年2月25日,星期天main(){inth,c1,c2,c3,c4;floatx,y;scanf(“%f%f”,&x,&y);c1=(x-2)*(x-2)+(y-2)*(y-2)<=1;c2=(x+2)*(x+2)+(y-2)*(y-2)<=1;c3=(x+2)*(x+2)+(y+2)*(y+2)<=1;c4=(x-2)*(x-2)+(y+2)*(y+2)<=1;
if(c1||c2||c3||c4)h=10;elseh=0;printf(“\nh=%d”,h);}
第134頁(yè),共434頁(yè),2024年2月25日,星期天第六章循環(huán)控制
6.1概述
所謂循環(huán)控制,就是如何實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的控制問(wèn)題。有4種方法:①
用goto語(yǔ)句和if構(gòu)成循環(huán)。
②
用while語(yǔ)句。
③
用do-while語(yǔ)句。
④
用for語(yǔ)句。第135頁(yè),共434頁(yè),2024年2月25日,星期天6.2用goto語(yǔ)句和if語(yǔ)句構(gòu)成循環(huán)例:對(duì)于計(jì)算
s=1+2+3+4+5+6+7+8+9+100s1is+i→s
i+1→ii≤10
輸出syn第136頁(yè),共434頁(yè),2024年2月25日,星期天
s=0;i=1;
lable:s+=i;i++;if(i<=10)gotolable;
printf(“%d”,s);語(yǔ)句標(biāo)號(hào)
無(wú)條件轉(zhuǎn)向語(yǔ)句goto語(yǔ)句可以構(gòu)造循環(huán),但不主張用,因?yàn)樗菀灼茐慕Y(jié)構(gòu)化程序設(shè)計(jì)。
goto語(yǔ)句可以構(gòu)造循環(huán),但不主張用,因?yàn)樗菀灼茐慕Y(jié)構(gòu)化程序設(shè)計(jì)。第137頁(yè),共434頁(yè),2024年2月25日,星期天6.3while語(yǔ)句
while語(yǔ)句是專(zhuān)門(mén)用于實(shí)現(xiàn)循環(huán)控制的語(yǔ)句之一。其一般形式為:
while(表達(dá)式)語(yǔ)句
含義:當(dāng)表達(dá)式的值為非0時(shí),執(zhí)行循環(huán)體,否則執(zhí)行后續(xù)語(yǔ)句。語(yǔ)句關(guān)鍵
表達(dá)循環(huán)條件的表達(dá)式循環(huán)體
語(yǔ)句關(guān)鍵字第138頁(yè),共434頁(yè),2024年2月25日,星期天
執(zhí)行過(guò)程:
while(表達(dá)式)語(yǔ)句
表達(dá)式循環(huán)體0非0第139頁(yè),共434頁(yè),2024年2月25日,星期天i≤10?
s=0i=1s=s+ii=i+1例:用while語(yǔ)句實(shí)現(xiàn)前面算法:main(){inti=1,s=0;
while(i<=10){s=s+i;i++;
}printf(“\n%d”,s);}
注意與if語(yǔ)句的區(qū)別。循環(huán)體
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級(jí)英語(yǔ)上冊(cè)StarterUnit1Goodmorning練習(xí)新版人教新目標(biāo)版
- 2025版高考物理一輪復(fù)習(xí)課后集訓(xùn)24帶電粒子在復(fù)合場(chǎng)中的運(yùn)動(dòng)含解析
- 2025屆高考生物二輪復(fù)習(xí)大板塊練生命活動(dòng)的調(diào)節(jié)含解析
- 2023屆新高考新教材化學(xué)魯科版一輪學(xué)案-第7章第23講 化學(xué)反應(yīng)的限度
- 玉溪師范學(xué)院《兒童文學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 玉溪師范學(xué)院《地圖設(shè)計(jì)與編繪》2022-2023學(xué)年第一學(xué)期期末試卷
- 鹽城師范學(xué)院《中學(xué)思想政治教學(xué)論》2021-2022學(xué)年第一學(xué)期期末試卷
- 玉溪師范學(xué)院《教育知識(shí)與能力》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024汽車(chē)配件采購(gòu)合同模板
- 鹽城師范學(xué)院《素描含速寫(xiě)》2022-2023學(xué)年第一學(xué)期期末試卷
- 第二章作物需水量和灌溉用水量
- 深圳航空飛行品質(zhì)監(jiān)控系統(tǒng)(FOQA)需求規(guī)格說(shuō)明書(shū) V2.0
- 消防員培訓(xùn)匯總課件
- 帶強(qiáng)調(diào)事項(xiàng)段的保留意見(jiàn)的審計(jì)報(bào)告參考格式1400字
- 婦聯(lián)婚姻家庭矛盾糾紛化解工作匯報(bào)總結(jié)報(bào)告4篇
- 六年級(jí)數(shù)學(xué)老師家長(zhǎng)會(huì)課件PPT
- 非計(jì)劃性拔管的應(yīng)急預(yù)案
- 幼兒園課件:時(shí)鐘國(guó)王
- 湘美版高中美術(shù)-《變化中的審美》課件
- WSET二級(jí)及考試習(xí)題集錦
- 醫(yī)藥招商策略
評(píng)論
0/150
提交評(píng)論