![PPT03-1第三章-流程設(shè)計(jì)-之C語(yǔ)言基本元素_第1頁(yè)](http://file4.renrendoc.com/view/3a7cb838dc5a83f0ed82c68527a89c94/3a7cb838dc5a83f0ed82c68527a89c941.gif)
![PPT03-1第三章-流程設(shè)計(jì)-之C語(yǔ)言基本元素_第2頁(yè)](http://file4.renrendoc.com/view/3a7cb838dc5a83f0ed82c68527a89c94/3a7cb838dc5a83f0ed82c68527a89c942.gif)
![PPT03-1第三章-流程設(shè)計(jì)-之C語(yǔ)言基本元素_第3頁(yè)](http://file4.renrendoc.com/view/3a7cb838dc5a83f0ed82c68527a89c94/3a7cb838dc5a83f0ed82c68527a89c943.gif)
![PPT03-1第三章-流程設(shè)計(jì)-之C語(yǔ)言基本元素_第4頁(yè)](http://file4.renrendoc.com/view/3a7cb838dc5a83f0ed82c68527a89c94/3a7cb838dc5a83f0ed82c68527a89c944.gif)
![PPT03-1第三章-流程設(shè)計(jì)-之C語(yǔ)言基本元素_第5頁(yè)](http://file4.renrendoc.com/view/3a7cb838dc5a83f0ed82c68527a89c94/3a7cb838dc5a83f0ed82c68527a89c945.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章流程控制C程序的基本構(gòu)成要素——常量(constant)變量(variable)表達(dá)式(expression)賦值(assignment)輸入輸出(input&output)3.1變量及變量聲明3.1.1變量變量(variable):在程序執(zhí)行期間值可變的數(shù)據(jù)對(duì)象。
值:在程序執(zhí)行的某一時(shí)刻變量所具有的值;屬性——
名字(name) 類型(type) 作用域(scope) 存儲(chǔ)區(qū)(storagearea) 地址(address)
重要!
2.7183v:0F000:變量地址變量名變量值變量的存儲(chǔ)區(qū)
設(shè)有變量v,分配在內(nèi)存0F000開始的一塊存儲(chǔ)區(qū)中,現(xiàn)行值為2.7183,如圖所示。3.1.2變量聲明
屬性由變量聲明規(guī)定。
一個(gè)變量聲明的形式如下:
Tid,id=初值,...,id;
1.id是標(biāo)識(shí)符,代表相應(yīng)變量的名字;
2.T是類型,可以是任何一種類型符;注意!
3.變量聲明位置決定了它的作用域變量聲明例子:inti,j,k;
charc;intt;floatamount,total;
boolflag;enum{red,blue,green}color;
3.1.3變量形態(tài)變量作為程序語(yǔ)言的一個(gè)成分,在程序中有三種出現(xiàn)狀態(tài):
1.在變量聲明中出現(xiàn)2.為變量賦值時(shí)出現(xiàn)3.引用性出現(xiàn)
在變量聲明中出現(xiàn)程序開始執(zhí)行的時(shí)刻一直到給該變量賦值之前該變量是沒有值的,稱該變量為“值無定義的”。例如有變量聲明:charc;則引進(jìn)字符型變量,在程序開始執(zhí)行時(shí)c是“值無定義的”,它還沒有值。c:為變量賦值時(shí)出現(xiàn)
這種出現(xiàn)狀態(tài)為變量賦以一個(gè)它值域之內(nèi)的(即所屬類型的)一個(gè)數(shù)據(jù)。一旦為變量賦值,該變量就變成了“值有定義的”。例如:變量c若給它賦值'P'后,它便是“值有定義的”,并且值為'P'。
P若再給它賦值'S',則c的值就變成了'S',這時(shí)原來的值'P'便已丟失。S
3.1.4變量地址 在C程序中,經(jīng)常使用一個(gè)變量的存儲(chǔ)區(qū)及其地址。因此C給出一個(gè)運(yùn)算符 & 例如:變量v,運(yùn)算&v 將得到v的地址0F000。 該地址也稱為v的指針, 運(yùn)算符&也稱為求指針運(yùn)算符, 運(yùn)算&v也稱為求v的指針。3.1.5變量初始化變量賦初值(Initialization)在定義變量的同時(shí)對(duì)變量賦值(初始化)舉例inta=2*3;
/*相當(dāng)于inta;a=6;*/inta,b=3;
/*對(duì)b賦初值,a沒有初值*/intb,c,a=b=c=100;
/*對(duì)三個(gè)變量賦同樣的初值*/變量使用前,一般應(yīng)先對(duì)它賦值ints=0;//求和變量s;1.一切變量都必須聲明;
2.在同一作用域內(nèi),不許重名;
3.變量的聲明必須出現(xiàn)在使用之前;4.在變量聲明中給變量賦初值處,相應(yīng)常量表達(dá)式必須是可計(jì)算的。3.2表達(dá)式3.2.1表達(dá)式的結(jié)構(gòu) 表達(dá)式(expression)是C程序完成各類運(yùn)算的主要部分,由運(yùn)算符和運(yùn)算分量組成的符合語(yǔ)法規(guī)則的式子。<表達(dá)式>→<基本表達(dá)式>▌<后綴表達(dá)式>▌<一元表達(dá)式>▌<二元表達(dá)式>▌<條件表達(dá)式>▌<邏輯表達(dá)式>▌<賦值表達(dá)式>▌<順序表達(dá)式><基本表達(dá)式>→<標(biāo)識(shí)符>▌<字面常量>▌<(表達(dá)式)>(1)基本表達(dá)式——C表達(dá)式的最底層:
標(biāo)識(shí)符 字面常量(直接變量)cf.符號(hào)常量 括號(hào)表達(dá)式由基本表達(dá)式(運(yùn)算分量)和運(yùn)算符相互組合可以構(gòu)成各種復(fù)雜的表達(dá)式。例如:
x,max,min//基本表達(dá)式;
(x+y)、(r-s)//用括號(hào)括上的基本表達(dá)式;
r=(x+y)*5<=(r-s)/8//若干基本表達(dá)式+運(yùn)算符
C運(yùn)算符(按優(yōu)先級(jí)從高到低)運(yùn)算符的結(jié)合方向規(guī)則單目運(yùn)算符的結(jié)合方向都是“從右向左”!、~、++、--、+(正號(hào))、-(負(fù)號(hào))*(指針運(yùn)算符)、&(地址運(yùn)算符)sizeof、(type)賦值運(yùn)算符的結(jié)合方向是“從右向左”三目運(yùn)算符的結(jié)合方向是“從右向左”唯一的三目運(yùn)算符:條件運(yùn)算符?:其他運(yùn)算符的結(jié)合方向都是“從左向右”1.自增、自減運(yùn)算符形式++i,--i 使用i之前,先使i的值加/減1i++,
i--
使用i之后,再使i的值加/減1說明++i和--i的值是加/減1之后i的值i++和i--的值是加/減1之前i的值++和--只能用于變量,不能用于常量和表達(dá)式++和--的結(jié)合方向是“自右向左”自增、自減運(yùn)算符舉例inti=3,j,a,b=1,c=2;j=++i;
/*i=i+1,j=i,i=4,j=4*/j=i++;
/*j=i,i=i+1,i=5,j=4*/j=-i++; /*-(i++),i=6,j=-5*/j=i++*2;
/*(i++)*2,i=7,j=12*/a=(b+c)++;
/*非法!!!
*/a=34++;
/*非法!!!
*/2.逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符,exp1,exp2逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低,“自左向右”結(jié)合逗號(hào)表達(dá)式的值是exp2的值exp1和exp2都可以又是“逗號(hào)表達(dá)式”把多個(gè)表達(dá)式組合成一個(gè)表達(dá)式使用舉例x=(a=3,6*a)
/*a=3,x=18*/x=a=3,6*a
/*a=3,x=3*/在書寫C表達(dá)式時(shí)必須注意與通常數(shù)學(xué)表達(dá)式的區(qū)別:
1.所有字符必須寫在一條水平線上,上角標(biāo)下角標(biāo)分?jǐn)?shù)線等。
2.a×b、ab、a·ba*b3.除了下標(biāo)使用方括號(hào)以外,其他括號(hào)必須用圓括號(hào)。
4.a<y<b (a<y)&&(y<b)5.由兩個(gè)(或以上)字符構(gòu)成的運(yùn)算符,中間不許夾有空格等分隔符。
6.適當(dāng)加括號(hào)是好習(xí)慣。3.2.2表達(dá)式的計(jì)算表達(dá)式的計(jì)算順序是不確定的。大致遵循如下規(guī)則:1.先計(jì)算優(yōu)先級(jí)高的運(yùn)算符規(guī)定的運(yùn)算。2.若兩個(gè)運(yùn)算符同級(jí)且相鄰,則應(yīng)按運(yùn)算符結(jié)合律的規(guī)定從左向右或從右向左計(jì)算。我們已經(jīng)學(xué)習(xí)了: 算術(shù)運(yùn)算符(+、-、*、/、%)、 關(guān)系運(yùn)算符(<、>、<=、>=)、 判等運(yùn)算符(==、!=)、 邏輯運(yùn)算符(!、&&、||)、 求變量指針運(yùn)算符(&)。算術(shù)2.關(guān)系、判等3.邏輯
算術(shù)表達(dá)式的優(yōu)先級(jí)高于關(guān)系表達(dá)式,關(guān)系表達(dá)式的優(yōu)先級(jí)高于判等表達(dá)式,判等表達(dá)式的優(yōu)先級(jí)高于邏輯表達(dá)式。在算術(shù)表達(dá)式中, 乘法運(yùn)算(*、/、%)高于加法運(yùn)算(+、-)在邏輯表達(dá)式中,
非運(yùn)算(?。﹥?yōu)先級(jí)最高, 與運(yùn)算(&&)其次,
或運(yùn)算(||)優(yōu)先級(jí)最低。
高低布爾型結(jié)果運(yùn)算布爾型結(jié)果運(yùn)算算術(shù)型結(jié)果運(yùn)算在關(guān)系、判等表達(dá)式中,優(yōu)先級(jí)相等例子——:短路表達(dá)式a.設(shè)
intu=20、v=30、w=40、x=20、y=50計(jì)算如下算式:
u+20>v||w==0||x<y||v+w/3>x||x+y>u+v+w當(dāng)計(jì)算出u+20>v的值為true后,整個(gè)表達(dá)式為真。b.設(shè)
intn=3,m=6;if(n>4&&m++<10)n=3>4為false,所以,整個(gè)表達(dá)式為假。邏輯表達(dá)式隨堂練
例1:名稱預(yù)測(cè)正確性邏輯表達(dá)式
有人在賽前預(yù)測(cè)A、B、C、D、E、F六名選手在百科知識(shí)大賽中會(huì)按照順序分獲第一到第六名,結(jié)果證實(shí)這個(gè)人猜對(duì)了三個(gè)人的名次。例2:誰在哪一排全班同學(xué)排成六排,A、B、C、D、E、F六名分站第一排到第六排,已知A不在第一排,A和B前后相鄰,C在D前面,E在B前兩排,C在F后四排。問A、B、C、D、E、F六名同學(xué)各在哪一排。3.3語(yǔ)句程序?qū)?shù)據(jù)的操作,表示為語(yǔ)句(statement)。
空語(yǔ)句;表達(dá)式語(yǔ)句(cf.表達(dá)式)返回語(yǔ)句returnbreak語(yǔ)句continue語(yǔ)句goto語(yǔ)句復(fù)合語(yǔ)句
{…}
if語(yǔ)句分支語(yǔ)句
switch語(yǔ)句
do語(yǔ)句重復(fù)性語(yǔ)句
while語(yǔ)句
for語(yǔ)句簡(jiǎn)單語(yǔ)句結(jié)構(gòu)語(yǔ)句語(yǔ)句cf.表達(dá)式表達(dá)式語(yǔ)句x=a+bx=a+b;3.4賦值 最基本的操作——帶賦值運(yùn)算符的表達(dá)式語(yǔ)句。一般形式:v=e;
其中:
=是賦值運(yùn)算符。v—左值(變量),作為賦值運(yùn)算符左端的運(yùn)算分量。e—右值是一個(gè)表達(dá)式,作為賦值運(yùn)算符右端的運(yùn)算分量,能計(jì)算出一個(gè)值。下述語(yǔ)句正確:
firstnumber=1;circumference=2*pi*radius;nextnumber=nextnumber+1;下述形式錯(cuò)誤:
1=firstnumber;
tength*width=area;3.5類型轉(zhuǎn)換 各種不同類型變量是有區(qū)別的。對(duì) 聯(lián)合運(yùn)算、參數(shù)結(jié)合參數(shù)類型需轉(zhuǎn)換。 在C中進(jìn)行混合運(yùn)算遵循一個(gè)隱式轉(zhuǎn)換規(guī)則。除此之外,C還提供顯式強(qiáng)制類型轉(zhuǎn)換運(yùn)算。
雙、三目運(yùn)算隱式轉(zhuǎn)換規(guī)則: 向類型高的運(yùn)算分量轉(zhuǎn)換,短→長(zhǎng)、整數(shù)→浮點(diǎn)、有符號(hào)→無符號(hào)。longdouble↑double↑float↑unsignedlonglong↑longlong↑unsignedlong↑long↑unsignedint←unsignedchar、unsignedshort↑int←char、short
橫向的箭頭表示向左轉(zhuǎn)換。
縱向箭頭表示向上轉(zhuǎn)換。強(qiáng)制類型轉(zhuǎn)換 形式——(類型名) 該運(yùn)算把右側(cè)的運(yùn)算分量強(qiáng)制轉(zhuǎn)換為括號(hào)內(nèi)的類型。比如:(char)(‘A’+’0’)char類型的小寫’q’(int)5.2/2int類型的2 (float)5/2float類型的2.5使用強(qiáng)制類型轉(zhuǎn)換要注意:
1.類型名必須用括號(hào)括上;
2.熟練使用括號(hào),eg.
若把(char)(‘A’+’0’)寫成(char)‘A’+’0’,則得int類型的113。floatx=2.8,y=3.7,z;inta,b,c,d=5,e=2;a=(int)x+y; /*a=5,2+3.7=>5*/b=(int)(x+y); /*b=6,(int)(6.5)*/c=(int)x;printf("x=%f,c=%d\n",x,c);
/*x=2.800000,c=2*/z=(float)d/e;
/*z=2.5*/例子3.6基本輸入輸出頭文件#include<stdio.h>輸入輸出函數(shù)字符輸出函數(shù) putchar字符輸入函數(shù)
getchar格式輸出函數(shù) printf格式輸入函數(shù)
scanf字符串輸出函數(shù) puts字符串輸入函數(shù) gets3.6.1getchar、putchar
1.getchar函數(shù)說明intgetchar(void);從標(biāo)準(zhǔn)輸入設(shè)備輸入一個(gè)字符需要輸入回車后,函數(shù)才返回參數(shù)說明無參數(shù)返回值若成功,返回輸入字符的ASCII碼值若失敗,返回EOF(EndofFile)2.putchar函數(shù)說明——
intputchar(intc);輸出一個(gè)字符到標(biāo)準(zhǔn)輸出設(shè)備
返回值——若成功,返回輸出字符的ASCII碼值若失敗,返回EOF(EndofFile)getchar函數(shù)舉例intc;c=getchar(); /*輸入'a'后回車*/putchar(c); /*輸出?*/c=getchar(); /*是否需要輸入?
*/printf("c=%d\n",c); /*輸出c=?*/c=getchar(); /*輸入'abcd'后回車*/putchar(c); /*輸出?*/putchar(getchar()); /*輸出?*/putchar函數(shù)舉例intc,i;putchar('a'); /*輸出'a'*/putchar('\n'); /*輸出換行符*/putchar(101); /*輸出'e'*/putchar('\101'); /*輸出'A'*/3.7.3格式輸入 標(biāo)準(zhǔn)函數(shù)scanf是C提供的格式輸入函數(shù),調(diào)用它的一般格式是:scanf(<格式控制>,<輸入列表>)
注:輸入字符存放于鍵盤緩沖區(qū)內(nèi),輸入以回車結(jié)束輸入列表輸入列表由逗號(hào)“,”分隔開的若干輸入表項(xiàng)組成;每個(gè)輸入表項(xiàng)是一個(gè)變量的指針(變量的地址)。運(yùn)算符“&”是求變量指針的運(yùn)算。所以輸入列表一般應(yīng)該有形式
&v1,&v2,&v3,…,&vn其中v1,v2,…,vn是n個(gè)變量。格式控制格式控制是一個(gè)常量字符串。其中含有各種以百分號(hào)開始的格式控制符,下表列出常用的scanf函數(shù)格式控制符。例:“%d%c%f%d”鍵盤上輸入數(shù)據(jù)為
1234123e+2987函數(shù)調(diào)用
scanf(“%d%c%f%d”,&i,&ch,&v,&k)結(jié)果:變量i——整型1234;
ch——字符型空格(ASCII碼32);
v——浮點(diǎn)型12300;
k——整型987。函數(shù)scanf舉例inti,j;charc;scanf("%d%d",&i,&j);/*"23"or"2<TAB>3"or"2<Enter>3"*/scanf("i=%d,j=%d",&i,&j);
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年春八年級(jí)歷史下冊(cè) 第11課 城鄉(xiāng)人民生存狀態(tài)的滄桑巨變說課稿1(pdf) 川教版
- Unit 2 Understanding each other Project 說課稿-2023-2024學(xué)年高中英語(yǔ)牛津譯林版(2020)選擇性必修第四冊(cè)
- Unit 6 Meet my family Part B Let's talk Let's learn大單元整體說課稿表格式-2024-2025學(xué)年人教PEP版英語(yǔ)四年級(jí)上冊(cè)
- 2024年秋七年級(jí)生物上冊(cè) 3.5.2 綠色植物的呼吸作用說課稿 (新版)新人教版001
- 葡萄園立柱施工方案
- 2023三年級(jí)數(shù)學(xué)下冊(cè) 三 美麗的街景-兩位數(shù)乘兩位數(shù)信息窗1 美麗的街燈第2課時(shí)說課稿 青島版六三制
- 預(yù)制水泥臨時(shí)圍墻施工方案
- 臨時(shí)合同范例復(fù)制
- 西安電動(dòng)推拉雨棚施工方案
- 2024秋一年級(jí)語(yǔ)文上冊(cè) 漢語(yǔ)拼音 11 ie üe er說課稿 新人教版
- 2024美團(tuán)簡(jiǎn)化版商家合作合同標(biāo)準(zhǔn)文本一
- 2025年貴州黔源電力股份有限公司招聘筆試參考題庫(kù)含答案解析
- 《休閑食品加工技術(shù)》 課件 1 休閑食品生產(chǎn)與職業(yè)生活
- 春季開學(xué)安全第一課
- 2025年新生兒黃疸診斷與治療研究進(jìn)展
- 廣東大灣區(qū)2024-2025學(xué)年度高一上學(xué)期期末統(tǒng)一測(cè)試英語(yǔ)試題(無答案)
- 2025年四川中煙工業(yè)限責(zé)任公司招聘110人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 課題申報(bào)書:數(shù)智賦能高職院校思想政治理論課“金課”實(shí)踐路徑研究
- 公司安全生產(chǎn)事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)工作制度
- H3CNE認(rèn)證考試題庫(kù)官網(wǎng)2022版
- 感統(tǒng)訓(xùn)練培訓(xùn)手冊(cè)(適合3-13歲兒童)
評(píng)論
0/150
提交評(píng)論