




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1C語言發(fā)展C程序形式和程序執(zhí)行過程C程序的結(jié)構(gòu)
回顧上節(jié)課內(nèi)容2什么是C語言:人和計算機交換信息所用的語言,稱為計算機語言。用計算機語言編寫的代碼稱為程序;用高級語言編寫的程序稱為源程序;且源程序必須通過編譯和連接后,才能被計算機執(zhí)行。
機器語言;0,1代碼編程匯編語言;助記符編程高級語言;自然語言編程,如C語言等3C程序的編輯、編譯、連接和運行過程:編輯
編譯
連接
運行注:C程序源文件的擴展名是.cabc.objabc.cabc.exe輸出結(jié)果4程序的結(jié)構(gòu)C程序由函數(shù)構(gòu)成。一個函數(shù)由兩個部分組成:函數(shù)首部(說明部分)函數(shù)名、類型、參數(shù)及類型說明
函數(shù)體
{……}變量的定義及執(zhí)行部分書寫格式自由:一般用小寫字母,語句以分號結(jié)束,分號是語句的必要組成部分,一行上可以寫幾條語句,一條語句也可以寫在幾行上。5程序的結(jié)構(gòu)(續(xù))C程序總是從main函數(shù)開始執(zhí)行,并且一定有且僅有一個主函數(shù),主函數(shù)名必須是main。
C語言本身不帶輸入輸出語句,必須通過調(diào)用庫函數(shù)來實現(xiàn)輸入輸出。以/*……*/之間的內(nèi)容是注釋,不影響程序的執(zhí)行,可增加程序的可讀性。6
本講內(nèi)容1.各種數(shù)據(jù)類型的常量與變量2.運算符和表達式7C語言里常用的數(shù)據(jù)類型有整型、實型、字符型、數(shù)組、結(jié)構(gòu)體類型、指針類型等。數(shù)據(jù)類型豐富是C語言的特點之一。如:3.1數(shù)據(jù)類型int整型 char字符型float浮點型
8例1:編程:輸出5和6的和與平均值(保留兩位小數(shù))。
#include<stdio.h>main(){inta,b,sum;/*定義變量a,b,sum為整形*/floatav;/*定義變量av為實型*/a=5;b=6;sum=a+b;/*計算a+b的值,并賦值給sum*/av=sum/2;/*計算平均值*/printf(“sum=%d,av=%.2f\n”,sum,av);/*輸出*/}結(jié)果:sum=11,av=5.00注意:在處理數(shù)據(jù)和輸出數(shù)據(jù)時,一定要選用合適的數(shù)據(jù)類型和正確的輸出格式說明。93.1.1
常量與變量例2:編寫輸出1000和100的和與差的程序。
#include<stdio.h>#defineABC1000/*定義符號常量*/main(){ints;/*定義變量s為整形*/s=ABC+100;/*相當于s=1000+100*/printf(“sum=%d”,s);/*輸出和*/
s=ABC-100;printf(“差=%d\n”,s);/*輸出差*/}10常量與變量概念常量:在程序運行過程中其值不能變的量。包括直接常量和符號常量。
符號常量的定義:
#define標識符常量變量:程序運行過程中其值可以改變的量,系統(tǒng)為程序中的每一個變量開辟一個存儲單元,如:例2中的s
11變量名字母開頭,后跟字母、數(shù)字和下劃線組成。C語言中的關鍵字不能作為變量名。說明變量必須先定義后使用;變量中存放的只能是數(shù)據(jù),而且只能是一個數(shù)據(jù),往變量中存放數(shù)據(jù)的操作稱為賦值;12變量的“名”和變量的“值”不同,變量的“名”是該變量所代表的存儲單元的標志,而變量的“值”是指存儲單元中的內(nèi)容。如:inta;執(zhí)行a=5;執(zhí)行a=10;
定義a第一次賦值第二次賦值a的值不定
5
1013整型常量
基本型–32768---32767
有符號型短整型-32768----32676整型常量長整型-231-----231-1
無符號基本型0--65535
無符號型無符號短整型0—65535
無符號長整型0---232-114三種形式表示:十進制:如123600八進制:以0開始,如0123十六進制:以0x開始,如0x123整型常量15定義格式:int變量名1[=常量1],變量名2[=常量2],…;long變量名1[=常量1],變量名2[=常量2],…;如:inta,b=9;longs=1;整型變量16實型常量表示形式:小數(shù)形式
1.01.+12.0-12.00.0指數(shù)形式
1e31.8e-3-123E-6-.1E-3指數(shù)只能是整數(shù),而尾數(shù)則可以是整數(shù)也可以是小數(shù),無論指數(shù)或尾數(shù)均不能省略例如:1e、E.5、E-3
非法實型常量的類型:默認為double型,后面加F(或f),則強調(diào)表示該數(shù)是float類型例如:3.5f、1e2F
實型數(shù)據(jù)類型17實型變量1)實型數(shù)據(jù)在內(nèi)存中的存放形式:一個實型數(shù)據(jù)一般在內(nèi)存中占4個字節(jié)(32位)。
2)實型變量的分類實型變量分為:單精度(float)、雙精度(double)。18實型變量定義:
類型說明符變量名標識符,變量名標識符,...例如:floatx,y;(x,y為單精度實型量)
doublea,b,c;(a,b,c為雙精度實型量)
說明
(1).實型常數(shù)不分單、雙精度,都按雙精度double型處理。
(2).實型常量可以賦值給一個float、double、longdouble型變量。根據(jù)變量的類型截取實型常量中相應的有效數(shù)字。
決定分配字節(jié)數(shù)和數(shù)的表示范圍合法標識符19字符型數(shù)據(jù)類型
字符常量單引號括起來的單個可視字符例如:'a'、'A'、'+'、'3'、''等轉(zhuǎn)義字符常量單引號括起來的\與可視字符組合,例如:20字符常量還有另外一種形式
——轉(zhuǎn)義字符形式。
轉(zhuǎn)義字符功能ASCII記號轉(zhuǎn)義字符
功
能ASCII記號
\a 響鈴
BEL\\反斜杠字?\ \b 退格
BS\‘
單引號字符
'\f走紙換頁
FF\“
雙引號字符
"\n 換行
NL\? 問號
? \r 回車
CR\ooo 1~3位8進制數(shù)
ooo\t橫向跳格
HT\xhh 1~2位16進制數(shù)
hh\v縱向跳格
VT21雙引號括起來的字符序列。如"Howareyou","0"等字符串在存儲時末尾被自動加上字符‘\0’字符常量與只包含一個字符的字符串常量的區(qū)別字符串常量
22字符串的存儲C語言規(guī)定:在存儲字符串常量時,由系統(tǒng)在字符串的末尾自動加一個‘\0’作為字符串的結(jié)束標志。注意:在源程序中書寫字符串常量時,不必加結(jié)束字符‘\0’,否則畫蛇添足。
如果有一個字符串為“CHINA”,則它在內(nèi)存中的實際存儲如下所示:最后一個字符'\0'是系統(tǒng)自動加上的,它占用6字節(jié)而非5字節(jié)內(nèi)存空間。CHINA\023綜上所述,字符常量'A'與字符串常量"A"是兩回事:(1)定界符不同:字符常量使用單引號,而字符串常量使用雙引號;
(2)字符常量只能是單個字符,字符串常量則可以含一個或多個字符。(3)可以把一個字符常量賦予一個字符變量,但不能把一個字符串常量賦予一個字符變量。(4)字符常量占一個字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字符數(shù)加1。增加的一個字節(jié)存放字符‘\0’(ASCII值為0),這是字符串的結(jié)束標志。24字符型變量中存放ASCII字符集中的任何一個字符,字符變量在內(nèi)存中占一個字節(jié)。定義格式:
char變量名1,變量名2,…;
如:
chara,b;a=97-32;b=a+2;
字符型變量
252)特性字符數(shù)據(jù)在內(nèi)存中存儲的是字符的ASCII碼──一個無符號整數(shù),其形式與整數(shù)的存儲形式一樣,所以C語言允許字符型數(shù)據(jù)與整型數(shù)據(jù)之間通用。(1)一個字符型數(shù)據(jù),既可以字符形式輸出,也可以整數(shù)形式輸出。
/*程序功能:用字符形式和整數(shù)形式輸出字符變量*/
main()
{charch1,ch2;
ch1='a';ch2='b';printf(“ch1=%c,ch2=%c\n”,ch1,ch2);
printf(“ch1=%d,ch2=%d\n”,ch1,ch2);
}
程序運行結(jié)果:
ch1=a,ch2=b
ch1=97,ch2=9826基本數(shù)據(jù)類型(TurboC編譯系統(tǒng))類型符號關鍵字數(shù)的表示范圍所占位數(shù)整型字符型實型有無(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-21億~21億16unsigned
int0~65535320~42億unsigned
longunsigned
short160~65535有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127無unsignedchar80~255說明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機器硬件不同而不同,上表以IBMPC機為例:27變量的初始化:
允許在說明變量的時候?qū)ψ兞抠x初值。例如:inta=5,b=10+2;doublex=23.568,y;charch1='a',ch2=66,ch3='\142';表示定義變量并對變量存儲單元賦值。錯誤的初始化:
inta=3+b,b=5;
floatm=n=23.16;28
圖中橫向向左的箭頭表示必定的轉(zhuǎn)換(不必考慮其它運算對象)。如字符數(shù)據(jù)參與運算必定轉(zhuǎn)化為整數(shù),float型數(shù)據(jù)在運算時一律先轉(zhuǎn)換為雙精度型,以提高運算精度(即使是兩個float型數(shù)據(jù)相加,也先都轉(zhuǎn)換為double型,然后再相加)。(4)賦值運算,如果賦值號“=”兩邊的數(shù)據(jù)類型不同,賦值號右邊的類型轉(zhuǎn)換為左邊的類型。這種轉(zhuǎn)換是截斷型的轉(zhuǎn)換,不會四舍五入。各類數(shù)值型數(shù)據(jù)間的混合運算:29強制轉(zhuǎn)換強制轉(zhuǎn)換是通過類型轉(zhuǎn)換運算符來實現(xiàn)。一般形式:(類型說明符)表達式功能:把表達式的結(jié)果強制轉(zhuǎn)換為類型說明符所表示的類型。(int)a將a的結(jié)果強制轉(zhuǎn)換為整型量。(int)(x+y)將x+y的結(jié)果強制轉(zhuǎn)換為整型量。(float)a+b將a的內(nèi)容強制轉(zhuǎn)換為浮點數(shù),再與b相加說明:(1)類型說明和表達式都需要加括號(單個變量可以不加括號)(2)無論隱式轉(zhuǎn)換,強制轉(zhuǎn)換都是臨時轉(zhuǎn)換,不改變數(shù)據(jù)本身的類型和值。30強制類型轉(zhuǎn)換main(){floatf=5.75;printf("(int)f=%d\n",(int)f);/*將f的結(jié)果強制轉(zhuǎn)換為整型,輸出*/printf("f=%f\n",f);/*輸出f的值*/}結(jié)果:(int)f=5f=5.750000311.算術(shù)運算符和算術(shù)表達式2.賦值運算符和賦值表達式3.關系運算符和關系表達式4.邏輯運算符和邏輯表達式5.條件運算符和條件表達式6.逗號運算符和逗號表達式7.不同類型數(shù)據(jù)的混合運算運算符和表達式32第一節(jié)算術(shù)運算符和算術(shù)表達式基本的算術(shù)運算符自增和自減運算符33算術(shù)運算符和算術(shù)表達式C語言提供了算術(shù)運算符+(加法運算或正號運算符)-(減法運算或負號運算符)*(乘法運算符)/(除法運算符)%(求余運算符,或稱模運算符)34算術(shù)運算符和算術(shù)表達式說明:兩個整數(shù)相除結(jié)果為整數(shù),如8/5的結(jié)果為1,舍去小數(shù)部分。如果參加運算的兩個數(shù)中有一個數(shù)為實數(shù),則結(jié)果是double型。求余運算要求%兩側(cè)都是整型數(shù)據(jù)。35算術(shù)運算符和算術(shù)表達式算術(shù)表達式用算術(shù)運算符和括號將運算量連接起來的式子稱為算術(shù)表達式。如:-2+19.0/2*5%8運算符有優(yōu)先級和結(jié)合性,在求表達式的值時,要按照優(yōu)先級的高低依次計算,如果運算符兩側(cè)優(yōu)先級相同,則按規(guī)定的結(jié)合方向進行。結(jié)合性從左到右36算術(shù)運算符和算術(shù)表達式優(yōu)先級-(負號運算符)*/%
+-(加減運算符)
我最高!
我最低!37自增和自減運算符++運算符的作用是使變量的值增1。--運算符的作用是使變量的值減1。常見的用法有:++i,--i在使用i前,先使i的值加1i++,i--在使用i后,先使i的值加138例題已知i=5j=i++;j=?i=?j=++i;j=?i=?566639自增和自減運算符注意:
1自增和自減運算符只能用于變量,表達式(x+y)++是不合法的。2自增和自減運算符的結(jié)合方向是“自右向左”。如表達式-i++等價于-(i++)。具有一定的二義性,使用時請慎重!如:設i原值是3,則(i++)+(i++)+(i++)的值可能是9,也可能是1240
回顧上節(jié)課內(nèi)容各種數(shù)據(jù)類型的常量與變量運算符和表達式41例inti;i=2.56;結(jié)果i=2例
floatf;inti;i=10;f=i;f=10.0計算a=(b=10)/(c=2)值表達式值5,a=5,b=10,c=242算術(shù)運算符和表達式基本算術(shù)運算符:+-*/%結(jié)合方向:從左向右優(yōu)先級:->*/%>+-
說明:“-”可為單目運算符時,右結(jié)合性兩整數(shù)相除,結(jié)果為整數(shù)%要求兩側(cè)均為整型數(shù)據(jù)例5/2=2-5/2.0=-2.5例5%2=1
-5%2=-11%10=
1
5%1=
05.5%2
()43自增、自減運算符++--作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1)例j=3;k=++j;j=3;k=j++;j=3;printf(“%d”,++j);j=3;printf(“%d”,j++);a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;
說明:++--不能用于常量和表達式,如5++,(a+b)++++--結(jié)合方向:自右向左優(yōu)先級:-++-------->*/%----->+-
例-i++-(i++)i=3;printf(“%d”,-i++);-3441.算術(shù)運算符和算術(shù)表達式2.賦值運算符和賦值表達式3.關系運算符和關系表達式4.邏輯運算符和邏輯表達式5.條件運算符和條件表達式6.逗號運算符和逗號表達式運算符和表達式45第二節(jié)賦值運算符和賦值表達式賦值運算符賦值表達式賦值運算符的結(jié)合性46賦值運算符簡單的賦值運算符復合的賦值運算符=+=-=*=%=/=47賦值運算符簡單的賦值就是把一個表達式的值賦給一個變量。例如:
i=5;
i=j+1;48
i+=2等價于i=i+2a*=b+5等價于a=a*(b+5)x%=3等價于x=x%3賦值運算符在賦值符“=”之前加上其它運算符,可以構(gòu)成復合的運算符。例如:C語言采用這種復合運算符,一是為了簡化程序,使程序精煉;二是為了提高編譯效率。49賦值表達式由賦值運算符將一個變量和一個表達式連接起來的式子稱為賦值表達式。形式:
〈變量〉〈賦值運算符〉〈表達式〉
例如:x=3;y=x+3。對賦值表達式求解的過程是:將賦值運算符右側(cè)的表達式的值賦給左側(cè)的變量。賦值表達式的值就是被賦值的變量的值。50結(jié)合性
例如:
a=(b=8)
賦值運算符的結(jié)合性從右向左51下面程序段的輸出結(jié)果是:inta=5,b=5;a%=b+=a+=(a+b);printf(“a=%d,b=%d”,a,b);
練習1:a=15,b=2052下面程序段的輸出結(jié)果是:inta=10,b=10;a+=b-=a*=b/=3;printf(“a=%d,b=%d”,a,b);
練習2:a=3,b=-2753第三節(jié)關系運算符和關系表達式關系運算符優(yōu)先級
<<=>>=
==!=高低54關系運算符算術(shù)運算符關系運算符賦值運算符高低55關系表達式概念用關系運算符將兩個表達式(可以是算術(shù)表達式、關系表達式、賦值表達式或邏輯表達式)連接起來的式子,稱為關系表達式。關系表達式的值為邏輯值“真”或“假”,以1代表“真”,以0代表“假”。例如關系表達式“8==4”的值為“假”,表達式的值為0。關系表達式“5>0”的值為“真”,表達式的值為1。56關系運算符的結(jié)合性結(jié)合性從左向右57第四節(jié)邏輯運算符和邏輯表達式邏輯運算符優(yōu)先級
!(邏輯非)
&&(邏輯與)
||(邏輯或)
58邏輯運算的真值表
ab !a !b a&&b a||b 真 真 假 假 真 真 真 假 假 真 假 真 假 真 真 假 假 真 假 假 真 真 假 假
59
?。ǚ牵└咚阈g(shù)運算符關系運算符
&&||
賦值運算符低邏輯運算符例如:x<y&&m<n
a==b||c==d
!a&&b>c
等效于(x<y)&&(m<n)等效于(a==b)||(c==d)等效于(!a)&&(b>c)60邏輯表達式邏輯表達式的值是一個邏輯量“真”或“假”。C語言編譯系統(tǒng)在給出邏輯結(jié)果時,以數(shù)值1代表“真”,以0代表“假”;但是在判斷一個量是否為“真”時,以非0代表“真”,以0代表“假”。例如:
若x=10,則!x的值為
若a=3,b=2,則a&&b的值為
5&&0||8的值為01161邏輯運算符的結(jié)合性結(jié)合性從左向右例如:
5>3&&4||8<4的結(jié)果為
162邏輯運算符的特點特點在邏輯表達式的求解中并不是所有的運算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運算符才能求出表達式的解時,才執(zhí)行下一個運算符。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 相機代保管協(xié)議書
- 互聯(lián)網(wǎng)基金銷售行業(yè)深度調(diào)研及發(fā)展項目商業(yè)計劃書-20250408-160213
- 高科技家紡技術(shù)行業(yè)深度調(diào)研及發(fā)展項目商業(yè)計劃書
- 生物醫(yī)用可吸收膜材料行業(yè)跨境出海項目商業(yè)計劃書
- 互聯(lián)網(wǎng)基金投資組合企業(yè)制定與實施新質(zhì)生產(chǎn)力項目商業(yè)計劃書-20250408-160329
- 洗車店租賃協(xié)議書
- 健康拌面速食站行業(yè)跨境出海項目商業(yè)計劃書
- 鄉(xiāng)村綠色農(nóng)產(chǎn)品直銷行業(yè)跨境出海項目商業(yè)計劃書
- 納米多孔金屬材料行業(yè)跨境出海項目商業(yè)計劃書
- 生物制氫技術(shù)產(chǎn)業(yè)化行業(yè)跨境出海項目商業(yè)計劃書
- 卵巢非良性腫瘤生育力保護及保存中國專家共識(2024年版)解讀
- 醫(yī)學唇部護理
- 腦膠質(zhì)瘤的治療:替莫唑胺-蒂清
- DL∕T 1746-2017 變電站端子箱
- 廣東省市政基礎設施工程竣工驗收技術(shù)資料統(tǒng)一用表(2019版)(下冊)
- 江蘇省蘇州市常熟市2023-2024學年五年級下學期數(shù)學期末檢測
- 江蘇省南京市鼓樓區(qū)2023-2024學年五年級下學期期末數(shù)學試卷
- YB/T 6328-2024 冶金工業(yè)建構(gòu)筑物安全運維技術(shù)規(guī)范(正式版)
- DZ∕T 0148-2014 水文水井地質(zhì)鉆探規(guī)程(正式版)
- 弘揚非遺傳統(tǒng)文化-評書2
- 《商業(yè)文化與素養(yǎng)》教案全套 第一周專題一認知商業(yè)文化1-第十八周專題六自我管理3
評論
0/150
提交評論