




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計
第1章概述第2章數(shù)據(jù)類型運算符和表達式第3章順序結構第4章選擇結構第5章循環(huán)結構第6章數(shù)組第7章函數(shù)第8章指針第9章字符串第10章變量的作用域、存儲類別和編譯預處理第11章自定義類型第12章文件全套可編輯PPT課件
本課件是可編輯的正常PPT課件C語言程序設計
第1章概述本課件是可編輯的正常PPT課件什么是計算機計算機是一種工具,計算機的所有“智能”都是人類賦予的。人們必須詳詳細細地告訴計算機“做什么”、“怎么做”,這種指揮計算機工作的過程就是——計算機程序。沒有程序,計算機就是一堆廢銅爛鐵,什么也不能做。本課件是可編輯的正常PPT課件計算機程序程序就是一系列的有序步驟。
洗菜
切菜
炒菜
出鍋做菜的步驟——
計算機程序就是人類指揮計算機工作的有序步驟。
計算機程序是由一條條有序指令組成的,每條指令指揮計算機完成一個操作。指令指令指令指令本課件是可編輯的正常PPT課件何謂編寫程序?打開微信群;查看第一條聊天信息;if(本條信息是紅包){
點開本條信息;點“開”按鈕;}
else{
略過此信息;}查看下一條信息,重復此過程;獲得目的地坐標;獲得當前位置坐標;搜索兩點最短路徑;將路徑用顏色標注在地圖上;計算兩點距離;語音播報:導航開始,沿當前位置向西南方向直行,全程大約800米…獲得當前位置坐標;if(正沿路線前行)
前方大約有200米直行道路…;if(偏離路線)正在為您重新規(guī)劃路線…;if(計算距離小于50米)目的地在您右側,本次導航結束;自動微信搶紅包程序地圖導航程序本課件是可編輯的正常PPT課件編寫程序和計算機語言編寫程序(編程)就是人們針對某個問題,事先設計操作步驟,并將操作步驟“告訴”計算機,“指揮”計算機如何工作的過程。如何將怎么做“告訴”計算機呢?計算機語言編寫程序要依照某種計算機語言,即要通過計算機能聽懂的語言來告訴它怎么做。本課件是可編輯的正常PPT課件計算機語言人類的語言有很多種,計算機的語言也有很多種。
機器語言MOVAX,XMOVDX,X+2ADDAX,YADCDX,Y+2……匯編語言高級語言W=X+Y+24-Z;最接近人類的思維習慣
僅由0和1組成(二進制代碼)英文助記符但只能用與機器語言相對應的指令,難度很高高級語言又分很多種,如VisualBasic、Java、Fortran、Pascal、C
等。
計算機唯一能懂翻譯本課件是可編輯的正常PPT課件計算機唯一能懂機器語言本課件是可編輯的正常PPT課件程序的編譯和鏈接本課件是可編輯的正常PPT課件main(){ inta,b,c; a=10; b=20; c=a+b; printf("%d",c);}main(){
inta,b,c; a=10; b=20; c=a+b; printf("%d",c);}C程序的翻譯過程C語言源程序xxx.c
文本文件ASCII碼文件
人類可讀懂計算機不能直接運行
xxx.obj可執(zhí)行程序xxx.exe編譯(compile)鏈接(link)二進制文件未包含庫的機器語言程序人類不可讀懂計算機不能直接運行
二進制文件機器語言程序人類不可讀懂計算機可以直接運行
目標程序本課件是可編輯的正常PPT課件編譯系統(tǒng)MicrosoftVisualC++main(){ inta,b,c; a=10; b=20; c=a+b; printf("%d",c);}可執(zhí)行程序編譯(compile)鏈接(link)目標程序編譯和鏈接的過程是由誰來完成的呢?這是由編譯程序(或稱編譯器、編譯系統(tǒng))完成的——MicrosoftVisualC++。MicrosoftVisualC++不僅可進行編譯和鏈接,同時它還有編輯、修改、調(diào)試和運行程序等功能,也稱集成開發(fā)環(huán)境。C語言源程序本課件是可編輯的正常PPT課件C語言程序的結構本課件是可編輯的正常PPT課件C程序的結構函數(shù)1(參數(shù)x){
語句;}main(){
語句;
語句;
語句;}函數(shù)2(參數(shù)x,參數(shù)y){
語句;
語句;}函數(shù)1函數(shù)2main函數(shù)……C程序語句1語句2語句3main函數(shù)預處理命令段落句子一篇文章本課件是可編輯的正常PPT課件main函數(shù)必須有,且只能有一個;main函數(shù)可位于程序函數(shù)間的任意位置;main函數(shù)是程序的入口和出口;其他函數(shù)是由main函數(shù)調(diào)用執(zhí)行的函數(shù)1(參數(shù)x){
語句;}main(){
語句;
語句;
語句;}函數(shù)2(參數(shù)x,參數(shù)y){
語句;
語句;}main函數(shù)main函數(shù)主函數(shù)
錯誤的執(zhí)行流程main必須小寫;()不能省略。預處理命令正確的執(zhí)行流程本課件是可編輯的正常PPT課件#include<stdio.h>main(){
inta,b,c; a=10; b=20; c=a+b; printf("%d",c);}簡單C程序實例預處理命令main函數(shù)在學習之前,你能看出該程序的輸出結果嗎?程序的輸出結果為:30
本課件是可編輯的正常PPT課件C程序的語句#include<stdio.h>main(){
inta,b,c; a=10; b=20; c=a+b; printf("%d",c);}每條語句“告訴”計算機要執(zhí)行的一個操作(命令)每條語句結尾必須有一個“;”#include<stdio.h>main(){
inta,b,c;
a=10;b=20; c=a+b; printf("%d",c);}多條語句可寫在一行中,一條語句也可寫在多行#include<stdio.h>main(){
inta,b,c; a=10;
b=
20; c=a+b; printf("%d",c);}任何變量在使用前必須先定義
C程序格式自由,對程序中的空格、換行沒有過分講究但是堅持適當?shù)目s進、空格、換行能使程序清晰易讀,是我們提倡的#include<stdio.h>main(){
inta,b,c; a=10; b=20; c=a+b; printf("%d",c);}#include<stdio.h>main(){inta,b,c; a=10; b=20;c=a+b;printf("%d",c);}有些位置不能隨便添加空格,如在單詞之間。如main()寫作main()顯然是錯誤的。本課件是可編輯的正常PPT課件程序的注釋本課件是可編輯的正常PPT課件注釋main(){
inta,b,c; a=10; b=20; c=a+b; printf("%d",c);}/*本程序是計算一道小學生數(shù)學題的程序*/main(){
inta,b,c; a=10; /*小明有10支鉛筆*/ b=20; /*小紅有20支鉛筆*/ c=a+b; /*求二人共有多少鉛筆*/ printf("%d",c);}允許在程序中寫語句外的任意內(nèi)容,這些內(nèi)容不是程序的一部分,不能被執(zhí)行,稱注釋。/*到*/之間(可多行)注釋:在運行程序時計算機會將/*到*/之間的內(nèi)容全部忽略,有無注釋對程序的運行沒有絲毫影響。注釋不能嵌套:c=a+b; /*求和(位于“/*”和“*/”之間的部分為注釋)*/此處不是注釋,為非法語句此處為注釋
本課件是可編輯的正常PPT課件標識符、常量和變量本課件是可編輯的正常PPT課件標識符的命名規(guī)則標識符名很簡單,字母數(shù)字下劃線。字母區(qū)分大小寫,非數(shù)打頭非關鍵。yes? 有?234a 數(shù)字開頭yes/no 有/w.a 有.x-y 有-π 希臘字母β 希臘字母int 是關鍵字x1
不能用角標非法的標識符
a x sum nve ab1a1b2c3 _to file_5_2 Int INT B3 b3合法的標識符
盡量做到
見名知意表示長度的變量名用length
表示面積的變量名用area表示分數(shù)的變量名用score
或chengji
C語言中的關鍵字:autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile
本課件是可編輯的正常PPT課件常量#include<stdio.h>main(){
inta,b,c; a=10; b=20; c=a+b; printf("%d",c);}如10、20,它們在程序運行過程中值不會變化,故稱常量。常量就是直接寫在程序里的數(shù)據(jù)值。
不止限于數(shù)值型的數(shù)據(jù)值,以后要學習的許多非數(shù)值型的數(shù)據(jù)值,如: 字符'a'、'b'、 字符串"hello"、
等,這些也都是常量。本課件是可編輯的正常PPT課件符號常量#definem100常量還包括用#define定義的符號常量。
定義了常量m,則程序段:a=m-10;b=m+8;printf("%d",m);其中的m和100是一個意思a為90,b為108,輸出100用#define命令可定義常量,因有#define的定義,m是常量,不是變量
使用常量的優(yōu)點:提高可讀性,方便程序的維護修改。a=100-10;b=100+8;printf("%d",100);而以上程序需逐條修改100為200。很麻煩!
如果希望用200,只要修改定義的一處就可以了。200200200其中的m和200是一個意思a為190,b為208,輸出200m=200;200本課件是可編輯的正常PPT課件變量#include<stdio.h>main(){
inta,b,c; a=10; b=20; c=a+b; printf("%d",c);}程序例中的a、b、c都是變量。什么是變量呢?
a
10b
20c
30變量——盒子,可保存數(shù)據(jù)盒子的名字——變量名a、b、c
盒子里的內(nèi)容——變量的值10、20、30
同一個盒子可先后存放不同的東西,變量的值也可在程序運行過程中發(fā)生變化,故稱變量。變量實際是內(nèi)存中的一塊存儲區(qū)域,存儲區(qū)域的名稱就是變量名,所存儲的內(nèi)容就是變量的值。本課件是可編輯的正常PPT課件變量的初始化(定義時賦初值)intsum=0; 變量定義時賦初值,sum立即為確定的值0intwidth,height; 一次定義多個變量,變量的值都不確定intprice,num=3; 僅num值為3,price的值不確定intsize=5+4; size值為9,可用表達式為變量賦初值intx=y=z=5;
intx=5,y=5,z=5;
在定義中不允許連續(xù)賦初值
inta,intb;
如果用逗號,后面不要再寫int,直接寫變量名
inta;intb;如果后面也寫int應用分號,這實際是兩條語句
本課件是可編輯的正常PPT課件C語言程序上機指導本課件是可編輯的正常PPT課件進制轉換本課件是可編輯的正常PPT課件 1 0 1 1 1 0 1 1+) 0 0 1 0二進制
二進制
對應十進制
0
0 1
1 10
2 11
3 100
4 …
…計算機只能直接識別二進制二進制:0、1組成,逢二進一
本課件是可編輯的正常PPT課件十進制轉換為二進制13(13)10=(
)2812411011101將十進制數(shù)看作重物的重量用8、4、2、1四種重量的砝碼去“湊”出重物的重量。如果選用了一種砝碼就用1表示,未選用就用0表示,依次寫出1或0就是對應的二進制。(降冪法)本課件是可編輯的正常PPT課件8124十進制轉換為二進制8(8)10=(
)21000(13)10=(
)211011000將十進制數(shù)看作重物的重量用8、4、2、1四種重量的砝碼去“湊”出重物的重量。如果選用了一種砝碼就用1表示,未選用就用0表示,依次寫出1或0就是對應的二進制。(降冪法)本課件是可編輯的正常PPT課件十進制轉換為二進制1178124(117)10=(
)2111010116326412801531211501510110本課件是可編輯的正常PPT課件二進制轉換為十進制(1101)2=(
)1081241101?8148+4+1=13
13本課件是可編輯的正常PPT課件二進制轉換為十進制(1010)2=(
)1081241010?8+2=10
1082本課件是可編輯的正常PPT課件八進制、十六進制與二進制、十進制的互換二進制~八進制的互換:3位并1位、1位拆3位;二進制~十六進制的互換:4位并1位、1位拆4位,其中10-15寫作A-F(或a-f);十進制~八/十六進制、八進制~十六進制的互換:均先轉換為二進制,以二進制數(shù)為中介轉換即可,十進制二進制
八進制十六進制本課件是可編輯的正常PPT課件C語言程序設計
第2章數(shù)據(jù)類型運算符和表達式本課件是可編輯的正常PPT課件第2章數(shù)據(jù)類型、運算符和表達式2.算術運算1.基本數(shù)據(jù)類型1)整型和浮點型(實型)數(shù)據(jù)
2)整型和浮點型(實型)的轉換3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)4.自增與自減運算
5.逗號運算6.位運算3.賦值運算
本課件是可編輯的正常PPT課件整型常量和浮點型常量涇渭分明整型常量浮點型(實型)常量整型常量表示法,十進制數(shù)直接打,數(shù)前添零進制八,十六進制再加叉(x或X)。浮點小數(shù)莫忘點。指數(shù)E(e)挑兩邊全,E(e)后必須是整數(shù),前后兩邊緊相連。10
-247(十進制)
前加0: 八進制前加0x或0X: 十六進制(不能寫為二進制)012100xA或0Xaa=018;八進制數(shù)由0-7組成,不能含8、9
只能十進制E(或e)代表×10小數(shù)形式:3.14-2.012..36指數(shù)形式:0.21E5-35.8e-21e011.01.a=0175;a=125;a=0x7d;5.6Ee38E1.5本課件是可編輯的正常PPT課件整型變量和浮點型變量涇渭分明整型變量浮點型(實型)變量int
變量名1,變量名2,…;float
變量名1,變量名2,…;double
變量名1,變量名2,…;1)單精度型2)雙精度型1)基本型2)帶修飾詞short:短整型,占2字節(jié)(范圍約±3萬)long:長整型,占4字節(jié)signed:有符號型(signed
可省略)unsigned:無符號型,不能存負數(shù)
占4字節(jié),范圍±1038
,7位有效數(shù)字占8字節(jié),范圍±10308
,15位有效數(shù)字a:inta;a=1;1a=10000;10000
1.23E50b:floatb=1.5;1.5b=5.25e-8;5.25e-8doublex=2.0,y;y:b=0.001234567;0.001234567b=0.00123456789;0.001234568
y=1.23E50;x:2.0signedshortintm;shortintm;signedlongintn;longn;unsignedshortintd;unsignedintk;在VC2010中占4字節(jié),可表示范圍±21億本課件是可編輯的正常PPT課件編程時應根據(jù)實際需要選用不同類型的變量應根據(jù)需要選用不同類型、不同規(guī)格的變量:既滿足精度,又盡量避免大材小用。
定義變量保存地球到太陽之間的距離:
1.495978707x1011
米
doubleem=1.495978707e11;
定義變量保存全班同學平均成績
floatscore;
定義變量保存宇宙間共有粒子數(shù)的估
計值:1080
doublennn=1E80;
定義變量保存某超市進貨數(shù)量
intnumber;
定義變量保存人的年齡
unsignedintage;本課件是可編輯的正常PPT課件整型和實型數(shù)據(jù)在計算機中的存儲計算機內(nèi)存只能存儲0和1
123588976345整數(shù)例:8存作8的二進制:
00000000…00001000實數(shù)小數(shù)×2指數(shù)轉換為二進制存儲(補碼)3.142.08.122.5e-30.3E51.5小數(shù)部分和指數(shù)部分分別存儲4字節(jié)或8字節(jié)指數(shù)部分
小數(shù)部分(固定為1.f)符號位正數(shù):0
負數(shù):1
例:8.0變?yōu)?.0×23
再分別存1.0和3的二進制存儲方式截然不同本課件是可編輯的正常PPT課件第2章數(shù)據(jù)類型、運算符和表達式2.算術運算1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)4.自增與自減運算
5.逗號運算6.位運算3.賦值運算
1)整型和浮點型(實型)數(shù)據(jù)2)整型和浮點型(實型)的轉換本課件是可編輯的正常PPT課件變量賦值的自動類型轉換只能保存整數(shù),不能保存實數(shù)。inta;a=2.8;a:doubley;y=3;整型變量實型變量float、doubleint(或有int的修飾詞)只能保存實數(shù),不能保存整數(shù)。
y:變量定空間,塑身再搬遷。若為空間窄,舍點也情愿。23.0inta=1.2,b,c;
b=3.4;c=a+b;c的值為________4floata=1.2,b;intc; b=3.4;c=a+b;c的值為________4floata=1.2,b,c;
b=3.4;c=a+b;c的值為________4.6本課件是可編輯的正常PPT課件常量的后綴L(或l)U(或u)F(或f)為了對應變量的類型,常量也有類型:-65u在程序中直接寫不帶小數(shù)點的整數(shù),默認為基本型整型(int
型);帶小數(shù)點或E(e)的常量,默認為雙精度實型(double
型)。若要改變常量的類型,可在常量后加后綴:整數(shù)后加L(l)表示常量為長整型(long),實數(shù)后加L(l)表示常量為長雙精度型(longdouble),二者在VC2010中與不加L(l)的效果都相同。
如:0L、125L、100000L、1.234567L只能加在整數(shù)后面,表示常量為無符號型,即非負:如0U、6U、65535u可既用L又用U,表示常量為無符號長整型,如:
0LU、6LU、65535lu表示常量為單精度型(float),加在整數(shù)后也表示為float型(不再為整數(shù))。例如:1.23f、356f,即有后綴F(f)時,可不加小數(shù)點,也表示實數(shù)。
本課件是可編輯的正常PPT課件第2章數(shù)據(jù)類型、運算符和表達式2.算術運算1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)
4)字符串型數(shù)據(jù)4.自增與自減運算
5.逗號運算6.位運算3.賦值運算
1)整型和浮點型(實型)數(shù)據(jù)2)整型和浮點型(實型)的轉換本課件是可編輯的正常PPT課件字符型量概述//類似QQ的程序main(){....;
發(fā)送"你好!";....;}現(xiàn)代計算機除能計算數(shù)值之外,還能處理文字。用QQ與好友聊天就是一個處理文字的例子。如何編寫一個類似QQ的程序呢?文字型數(shù)據(jù)
用QQ收發(fā)消息時,消息是文字的,而不是數(shù)值的如何用C語言表示文字型數(shù)據(jù)呢(用C語言怎樣說)?
先學習1個字符的文字——字符型數(shù)據(jù);再學習多個字符組成的文字——字符串。本課件是可編輯的正常PPT課件單引號必須為英文,不分左右;單引號內(nèi)只能有字符,如'ab'錯誤!''也錯誤!每個字符常量占1個字節(jié)(8個bit位);單引號是定界符,它不屬于字符內(nèi)容;字符型常量一個先考慮字符如何用C語言表示?例如要向好友發(fā)送一個字符‘a(chǎn)’,該如何做呢?main(){....;
發(fā)送a;....;}main(){....;
發(fā)送'a';....;}a為變量,發(fā)送的是a的值不是字符a本身用單引號括起,發(fā)送的才是字符a本身一個用單引號括起的一個
字符,是要處理的字符數(shù)據(jù),不是變量名,這稱字符型常量。'a'、'b'、'c'
'a'、'b'、'c'、'1'、'5'、'0'、','、'!'、'='、'+'、'#'、'$'、''(一個空格字符)
好友只能收到a,收不到單引號的哦!
本課件是可編輯的正常PPT課件字符型數(shù)據(jù)在計算機中如何存儲?計算機內(nèi)存由只能存儲0和1的存儲單元組成123588976345字符編號(整數(shù))'a''b''-''5''0''=''*''#''c'字符型數(shù)據(jù)ASCII碼(AmericanStandardCodeforInformationInterchange)例如:
'a'
編號為97,存作97的二進制;
']'編號為93,存作93的二進制。本課件是可編輯的正常PPT課件ASCII碼標準ASCII碼0~127
0~31,127:控制字符(不可顯示)32:空格字符''48~57:數(shù)字字符'0'~'9'按'0'-'9'的順序依次遞增排列;65~90:大寫字母字符'A'~'Z'按字母表的順序依次遞增排列97~122:小寫字母字符'a'~'z'按字母表的順序依次遞增排列附錄一*128~255為擴展字符。對應的大小寫字母ASCII碼差32。?已知字符'A'的ASCII碼為65,則字符'B'的ASCII碼是
,字符'd'的ASCII碼是
。66100數(shù)字字符'0'的ASCII碼是
0嗎?數(shù)字字符'1'的ASCII碼是
1嗎?
本課件是可編輯的正常PPT課件字符型數(shù)據(jù)與整數(shù)的混用97整數(shù)'a'字符97的二進制or字符與整數(shù)是混用的字符變作對應的ASCII碼
'C'+1 'D'-'C' '7'+'1' 'a' 'A' '' 'a' '1' 'A' 'a' 65
='D'=68=68-67=1=55+49=104='h';≠'8'97>6532<9749<6597>65><<>本課件是可編輯的正常PPT課件數(shù)字字符常量與整型常量的區(qū)別'5'
5
'5'的ASCII碼不是5!字符型常量,ASCII碼為53,存作53的二進制;整型常量,直接存作
5的二進制;完全不同'5'
-'0'='5'-48=+'0'=5+48=5
5
'5'
'9'
-'0'='9'-48=+'0'=9+48=9
9
'9'
'0'(48)字符對應的一位整數(shù)數(shù)字字符本課件是可編輯的正常PPT課件魔術棒——轉義字符是唯一特殊的字符,并不表示\
本身,而是改變其后字符的原有含義轉義字符\換行符:'\n'跳格符:'\t'響鈴符:'\a'n換行符a響鈴符t跳格符'普通單引號定界符'普通斜杠字符轉義字符\'\' 錯誤'\\' 表示\字符''' 錯誤'\'' 表示'字符'\"' 表示"字符本課件是可編輯的正常PPT課件轉義字符(3)轉義字符用途
①可表示特殊字符(\'")。
②可表示不能顯示的控制字符。③可通過ASCII碼表示任意一個字符。ASCII碼的八進制(1-3位)一個字符ASCII碼的十六進制(1-2位)一個字符本課件是可編輯的正常PPT課件轉義字符(4)'\61''1''\101''A''\x41''A''\19'這使得一種字符可以有多種表示方法,如字符A可表示為:'A'、'\101'、'\x41''\012'、'\xA'、'\12'、'\x0A'換行符除可寫為'\n'外,還有哪些表示法呢?(已知換行符的ASCII碼為10)八進制數(shù)不能有數(shù)符8、9'\ddd'ddd為1~3位八進制數(shù)。
表示ASCII碼的八進制為ddd的字符。'\xhh'hh為1~2位十六進制數(shù)(x必須小寫)。
表示ASCII碼的十六進制為hh的字符。本課件是可編輯的正常PPT課件字符型變量字符型變量占1個字節(jié),保存一個字符(保存字符的ASCII碼)
c:charc;c='a';c=98;'a''b'
有符號
無符號
或省略signed
signedchar
變量名1,變量名2,…;可保存負數(shù),范圍:-128~127unsignedchar
變量名1,變量名2,…;不能保存負數(shù),范圍:0~255本課件是可編輯的正常PPT課件第2章數(shù)據(jù)類型、運算符和表達式2.算術運算1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)
4.自增與自減運算
5.逗號運算6.位運算3.賦值運算
1)整型和浮點型(實型)數(shù)據(jù)2)整型和浮點型(實型)的轉換本課件是可編輯的正常PPT課件字符串型數(shù)據(jù)羊肉串"iPhone"雙引號括起(英文雙引號,不分左右),0~多個字符字符串:由一個個的單個字符組成——一串字符。字符串常量"BMWZ4""$12.5""a"""空串本課件是可編輯的正常PPT課件在內(nèi)存中的存儲方式每字符占1個字節(jié)連續(xù)存儲,多占1個字節(jié)存'\0'。
"iPhone""BMWZ4""$12.5""a"""空串'B''M''W''''Z''4''\0''$''1''2''.''5''\0''a''\0''\0''i''P''h''o''n''e''\0'本課件是可編輯的正常PPT課件字符串的長度長度66510"m\n"2"m\\n"'m''\\''n''\0'3"m\\\n"'m''\\''\n''\0'3"iPhone""BMWZ4""$12.5""a"""空串'B''M''W''''Z''4''\0''$''1''2''.''5''\0''a''\0''\0''i''P''h''o''n''e''\0'所包含的字符個數(shù)(不含'\0',但計空格)'m''\n''\0'"m\\\n""m\\n""m\n"本課件是可編輯的正常PPT課件字符常量和字符串常量的區(qū)別字符常量字符串常量引號單引號雙引號字符個數(shù)只能含1個字符(轉義字符形式上多個實際仍為1個)可含0~多個字符能否能將值賦給char型變量)可以不可以有無對應變量有字符型變量無字符串型變量占用內(nèi)存字節(jié)數(shù)一律1個字節(jié)字符串字符數(shù)(長度)+1沒有字符串變量不能企圖將字符串常量賦值給字符型的變量charc;c="abcde";本課件是可編輯的正常PPT課件字符串常量的簡單輸出#include<stdio.h>main(){ printf("*****\n"); printf("*****\n"); printf("*★*★**\n"); printf("*★**\n"); printf(">>>------Iloveyou!------>*\n"); printf("***\n"); printf("*★**\n"); printf("***\n"); printf("***\n"); printf("**\n");}printf("nihao!"); /*在屏幕原樣輸出nihao!*/printf("\101"); /*在屏幕輸出A,即僅包含1個字符A的字符串*/注意先關閉當前的解決方案,或重新開啟VS2010,再新建項目。程序中引號之內(nèi)的空格不是可有可無的,引號之內(nèi)空格的有無雖然都沒有語法錯誤,但會影響輸出結果。本課件是可編輯的正常PPT課件第2章數(shù)據(jù)類型、運算符和表達式2.算術運算
1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)4.自增與自減運算
5.逗號運算6.位運算3.賦值運算
1)整型和浮點型(實型)數(shù)據(jù)2)整型和浮點型(實型)的轉換本課件是可編輯的正常PPT課件算術運算符17%5 值為23%10 值為30%10 值為0-5%3 值為-25%-3 值為2%:運算量必須為整型或字符型50.823%9+(加,或正號)-
(減,或負號)*(乘)/(除)%(取余數(shù),求模)優(yōu)先級先乘除,后加減
*/%優(yōu)先級相同,高于+-
doubled=1.0;printf("%d",d%10);求余%嚴,整符才能算?!馈痢卤菊n件是可編輯的正常PPT課件算術表達式表達式的大、中、小括號一律使用小括號(),如:c*(a/(b+c))(1+((2+3)*4-8)/2+5)*2其中最內(nèi)層()表示小括號,向外逐層分別表示中括號、大括號…;還可繼續(xù)在外層嵌套(),()的層數(shù)理論上沒有限制。10+20(a*2)/b(x+r)*8-(a+b)/10sin(x)+sin(y)5a×b a?ba±b a÷b2ab 2(a+b)a2c*[a/(b+c)]運算符與數(shù)據(jù)組成表達式。如用單引號或雙引號括起來的就不是運算符,也不是表達式了:'+'、'-'不是運算符,是字符型常量"5+2"不是表達式,是字符串常量本課件是可編輯的正常PPT課件第②類自動類型轉換所有表達式都有一個值及類型。低類型轉換為高類型:char→int→float
→double特殊:所有浮點數(shù)必然都轉換為double再運算(即使兩個float型量的運算也都先轉換為double)表達式的值:就是表達式的運算結果;表達式的類型:兩個運算量類型一致時,與兩個運算量的類型一致。兩個運算量類型不一致時,表達式的類型與其中較高類型運算量的類型一致(較低類型運算量先被自動轉換為高類型再運算)。類型不怕亂,結果向高看。2.4+1.6
結果為double型4.0,結果不能為int型的42.4+3 結果為double型為5.4,結果不能為整數(shù)5本課件是可編輯的正常PPT課件area:
12兩類自動類型轉換綜合練習類型不怕亂,結果向高看。變量定空間,塑身再搬遷。若為空間窄,舍點也情愿。第①類(變量賦值)第②類(運算過程中)兩類自動類型轉換:intv=2;doublet=2.8;ints;s=v*t;double:2.0double:5.6
s:
5①②就“變量”就“高”main(){
doublepai=3.14;
intarea,r=2;area=r*r*pai;printf("%d",area);}int:4
double:4.0double:12.56
①②12本課件是可編輯的正常PPT課件整數(shù)除法5/2 結果為2不是2.55.0/2 結果為2.55/2.0 結果為2.55.0/2.0 結果為2.51/2 結果為0不是0.51./2 結果為0.5-20/7 的結果為-2若有變量intx=3510;則表達式x/1000*1000的值是?如已定義float型的變量a,b,c,則表達式(a+b+c)/2與1/2*(a+b+c)等效嗎?整數(shù)除法:兩個整數(shù)相除,結果只取商的整數(shù)部分;只有兩個運算數(shù)至少有一個為實數(shù),結果才為實數(shù)。(答案:3000)5/2int:?int:25.0/2double:2.0double:2.5答案:不等效!后者必為0。但等效形式可寫為:1.0/2*(a+b+c)或1/2.0*(a+b+c)或1.0/2.0*(a+b+c)整數(shù)整除商,小數(shù)門外攔。本課件是可編輯的正常PPT課件強制類型轉換強制類型轉換:floatx=4.5,y=2.1;(int)(x+y)的值為:6 先求和,再將“和”轉換(int)x+y的值為:6.1 先把x轉換后再求和(類型說明符)量類型說明符為int、long、unsigned、float、double、char等。功能是強制把“量”臨時轉換為類型說明符的類型(轉換后精度可能會受損,如將實數(shù)強制轉換為int、將double強制轉換為float都受損)
。(int)3.8值為3floatf=5.75;則(int)f的值為
5,而f的值仍為5.75。括起類型字,臨時強轉換。本課件是可編輯的正常PPT課件算術運算小結和練習類型不怕亂,結果向高看。整數(shù)整除商,小數(shù)門外攔。求余%嚴,整符才能算。括起類型字,臨時強轉換。表達式(int)((double)(3/2)+0.5+(int)1.99*2)的值是_______表達式(int)((double)(3/2)+0.5+(int)1.99*2)
的值是_______311.0123.5本課件是可編輯的正常PPT課件四舍五入公式若x是實數(shù)(單精度或雙精度),把x四舍五入保留小數(shù)點后d位的計算公式是:(int)(x*10d+0.5)/10d
除數(shù)的10d必須加“.0”若有floatx=123.4567,y;要將x四舍五入保留小數(shù)點后2位,將結果存入變量y中的表達式語句是:y=(int)(x*100+0.5)/100.0;y=(int)(x*100.0+0.5)/100.0;y=(int)(12345.67+0.5)/100.0;y=(int)12346.17/100.0;y=12346/100.0;y=12346.0/100.0;y=123.46;如將最后的除法寫作“/100”,則y中的值為123.0是錯誤的。y=12346/100;y=123;y=123.0;本課件是可編輯的正常PPT課件取整數(shù)的個、十、百、千位……#include<stdio.h>main(){ intn=1234;
intge,shi,bai,qian; ge=n%10; shi=n/10%10; bai=n/100%10; qian=n/1000; printf("%d\n",ge); printf("%d\n",shi); printf("%d\n",bai); printf("%d\n",qian);}4321取一個整數(shù)x的個位:
x%10 如1234%10得到4取十位、百位、千位…都轉換為“取個位”的問題。取十位:①先縮小10倍生成新數(shù),原數(shù)的十位成為新數(shù)的個位②然后取新數(shù)的個位
(x/10)
%10 如1234/10%10得到3取百位:①先縮小100倍生成新數(shù),原數(shù)的百位成為新數(shù)的個位②然后取新數(shù)的個位
(x/100)
%10 如1234/100%10得到2……取最高位時,生成的新數(shù)只有一位,不再
%10
也是可以的。取整數(shù)x的個位:x%10取整數(shù)x的十位:x/10%10取整數(shù)x的百位:x/100%10取整數(shù)x的千位:x/1000%10……取最高位時,/n后可不再%10。本課件是可編輯的正常PPT課件第2章數(shù)據(jù)類型、運算符和表達式2.算術運算1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)4.自增與自減運算
5.逗號運算6.位運算3.賦值運算
1)整型和浮點型(實型)數(shù)據(jù)2)整型和浮點型(實型)的轉換本課件是可編輯的正常PPT課件賦值運算符a=10;a:10走,進去?、俨煌跀?shù)學上的等號,它沒有相等的含義。=不是相等,而是賦值。②是把右邊的內(nèi)容賦予左邊,而不是相反。③賦值后右邊內(nèi)容不變。例:intx=10,y=20;x=y;賦值后x、y均為20。④“=”左邊必須是變量,不能是常量也不能是表達式。a=a+1;a+1求值
走,進去!a:x+1=3;3x+1求值
嘿,搞什么嘛,這里不能裝東西!111011=走,進去!===本課件是可編輯的正常PPT課件賦值表達式+-*/%
運算符a+10a=10int:12a:2int:1010=
表達式5*(b=10+20)的值是
。=運算符的優(yōu)先級相當?shù)?,排在C語言所有運算符的倒數(shù)第二位。150同時:b被賦值變?yōu)?0表達式x=(a=5)+(b=8)的值是
。13賦值表達式也有表達式的值和類型,均與賦值后左邊變量的值和類型相同。=的兩個作用1表達式求值;
改變=左邊變量的值。
2+、-、*、/、%的一個作用1表達式求值;
同時:a被賦值為5,b被賦值為8,x被賦值為133058本課件是可編輯的正常PPT課件賦值表達式(2)
同優(yōu)先級運算符,從左到右運算——“從左到右”的結合性+-*/%
都是“從左到右”的1+2-3+4+5
同優(yōu)先級運算符,從右到左運算——“從右到左”的結合性=
是“從右到左”的x=y=25;x=25;x、y均被賦值為25定義變量時賦初值不能寫為連等的形式intx=y=25;25同時:y被賦值為2525同時:x被賦值為2525是剛才表達式計算的結果值本課件是可編輯的正常PPT課件已知整型變量n的值為8,求表達式n+=n*=n-2的值:
,表達式求值后n的值為
。
復合的賦值運算符
a+=5
a=a+5
r%=p
r=r%p
x*=y+7
x=x*(y+7)右邊要加()復合的賦值運算符與賦值運算
符(=)相同:優(yōu)先級倒數(shù)第二,
“從右到左”的結合性。n+=n*=n-2n+=n*=6n:848n*=6n=n*6n=4848n+=48n=n+48n=9696969696左邊也必須是變量。+-*/%=運算符+=-=*=/=%=
48同時:n被賦值為96同時:n被賦值為48n+=n*=n-2本課件是可編輯的正常PPT課件復合的賦值運算符(2)a+=b+c+=12;b+c=b+c+12a+=b+c+=12;b+c+12
b+c求值嘿,搞什么嘛,這里不能裝東西!走,進去!=a=7+1=b;a=7+1=b;b8
嘿,搞什么嘛,這里不能裝東西!走,進去!=8=b本課件是可編輯的正常PPT課件第2章數(shù)據(jù)類型、運算符和表達式2.算術運算1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)4.自增與自減運算
5.逗號運算6.位運算3.賦值運算
1)整型和浮點型(實型)數(shù)據(jù)2)整型和浮點型(實型)的轉換本課件是可編輯的正常PPT課件計數(shù)器按一次,計數(shù)+1
自增和自減運算+-*/%=+=-=*=/=%=
運算符++--
i=i+1;i:56
7i=i+1;j=j-1;j:109
8
j=j-1;自增運算符++:使變量的值自增1(結果仍存回該變量)自減運算符--:使變量的值自減1(結果仍存回該變量)單目運算優(yōu)先級很高,僅次于括號()
i++;或
++i;
i++;或
++i;
j--;或
--j;
j--;或
--j;本課件是可編輯的正常PPT課件都使i自增1,這一點沒有區(qū)別自增和自減運算設i=5;j=10;i:5j:10表達式i+j表達式的值計算表達式后變量的值15i仍為5j仍為10i++++i56i變?yōu)?i變?yōu)?j----j109j變?yōu)? j變 為9i++
++i
j--
--j
表達式
表達式
表達式
表達式
i+j
表達式表達式的值區(qū)別表達式的值區(qū)別+1后i的值-1后j的值都使j自減1,這一點沒有區(qū)別-1前j的值+1前i的值++在先,先加后用;++在后,后加先用;--在先,先減后用;--在后,后減先用。本課件是可編輯的正常PPT課件自增和自減運算(2)=的兩個作用1表達式求值;
改變=左邊變量的值。
2+、-、*、/、%的一個作用1表達式求值;
++、--也有兩個作用1表達式求值;
改變變量的值。
2表達式i+j表達式的值計算表達式后變量的值15i仍為5j仍為10i++++i56i變?yōu)?i變?yōu)?j----j109j變?yōu)? j變 為9+1后i的值-1后j的值-1前j的值+1前i的值++--
會改變運算量的值,也不能用于常量、表達式,只能用于變量!如5++錯誤--(a*b)錯誤本課件是可編輯的正常PPT課件自增和自減運算(3)inta=1,b;b=5-a++; 執(zhí)行后,b值為
,a值為
。等價于b=5-a;a=a+1;
inta=1,b;b=5-++a; 執(zhí)行后,b值為
,a值為
。a:1b:?a:1b:?1244222332inta=3,b=4;intx,y;x=a+++b++;y=a+++(++b);a:3b:43445x:?y:?7456610執(zhí)行后,x值為7,y值為10等價于a=a+1;b=5-a;本課件是可編輯的正常PPT課件第2章數(shù)據(jù)類型、運算符和表達式2.算術運算1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)4.自增與自減運算
5.逗號運算6.位運算3.賦值運算
1)整型和浮點型(實型)數(shù)據(jù)2)整型和浮點型(實型)的轉換本課件是可編輯的正常PPT課件5
逗號運算符和逗號表達式逗號運算符優(yōu)先級最低(倒數(shù)第一),結合順序為自左至右。表達式1,表達式2,表達式3逗號運算符① 依次從左到右分別計算各個表達式的值② 整個“逗號表達式”的值為其中最后一個表達式(上例為表達式3)的值。表達式1;表達式2;表達式3;取剛才表達式3的值;相當于一小段程序
1+1,2+3表達式的值為5x=5,5+2,x-3表達式的值為2(x被賦值為5,必須依次計算)x=(a=1,b=3,++b,a+b);此為賦值語句,x被賦值為5a:1b:341345x:5本課件是可編輯的正常PPT課件3
如有inta=2,b=4,c=6,x,y;1)若執(zhí)行y=((x=a+b),(b+c));
后,x值為
6
,y值為
10
;2)若執(zhí)行y=(x=a+b),(b+c);
后,x值為
6
,y值為
6
。y=(6,10);y=10;y=((x=6),10);逗號表達式(2)y=6,10;6,10;10(被丟棄)y=(x=6),10;設變量已正確定義為整型,則表達式n=i=2,++i,i++的值為_______。n:2i:234
233本課件是可編輯的正常PPT課件第2章數(shù)據(jù)類型、運算符和表達式2.算術運算1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)4.自增與自減運算
5.逗號運算6.位運算3.賦值運算
1)整型和浮點型(實型)數(shù)據(jù)2)整型和浮點型(實型)的轉換本課件是可編輯的正常PPT課件位在我心中——位運算二進制1001011010100110101001…位(bit)位運算就是在二進制位的基礎上的運算①數(shù)據(jù)必須轉換為二進制才能進行;②只能對整型數(shù)據(jù)和字符型數(shù)據(jù)進行。2個條件+-*/%=+=-=*=/=%=
++--運算符&
|^~<<>>6個運算本課件是可編輯的正常PPT課件①按位與&參與運算的兩個數(shù)取二進制,然后將對應的各二進制位相“與”:只有對應的兩個二進制位都為1時,結果位才為1,有一個為0結果位為0。
0000
1001
(9的二進制)
&)
0000
0101
(5的二進制)
“按位與&”
與“邏輯與&&”不同
9&5表達式的值為:1
0000
0001
(1的二進制)
按位與常用來將一個數(shù)的二進制的某些位清0或保留某些位。本課件是可編輯的正常PPT課件②按位或|
0000
1001
(9的二進制)
|)
0000
0101
(5的二進制)
9|5表達式的值為:13
0000
1101
(13的二進制)
按位或常用來將一個數(shù)的二進制的某些位強制設為1?!鞍次换騶”
與“邏輯或||”不同
參與運算的兩個數(shù)取二進制,然后將對應的各二進制位相“或”:對應的兩個二進制位有一個為1,結果位就為1;都為0時結果位才為0。本課件是可編輯的正常PPT課件
0000
1001
(9的二進制)
^)
0000
0101
(5的二進制)
^)
0000
0101
(5的二進制)
③按位異或^參與運算的兩個數(shù)取二進制,然后將對應的各二進制位相“異或”:對應的兩個二進制位不同時結果位為1;相同時結果位為0。^性質(zhì)1:任何數(shù)與它本身做按位異或,結果為0。^性質(zhì)2:a^k^k=a??筛鶕?jù)這個性質(zhì)對數(shù)據(jù)加密。9^5表達式的值為:12
0000
1100
(12的二進制)
0000
1001
(9的二進制)95
0000
1001
(9的二進制)
|)
0000
1001
(9的二進制)
0000
0000
(0的二進制)
9^9表達式的值為:0
本課件是可編輯的正常PPT課件④按位求反~~是單目運算符,類似于負號(-),它只能后面跟一個數(shù)據(jù):
將數(shù)據(jù)轉換為二進制后,將各二進制位“反過來”,即0變?yōu)?、1變?yōu)?。補碼:計算機中的數(shù)據(jù)是轉換為二進制后再轉換為補碼存儲的,所有的位運算包括~都是以補碼的形式進行的。正數(shù)的補碼和原碼相同;負數(shù)的補碼為該數(shù)絕對值的二進制按位取反后再加1。將補碼再按位取反后再加1又可得回該數(shù)的絕對值。
有符號數(shù)二進制的最高位為符號位(負數(shù)為1正數(shù)為0),因此上述~9的結果是個負數(shù),關于補碼的細節(jié)不必深究。~)
00001001
(9的二進制)
~9表達式的值為:-10
1111
0110
(-10的二進制補碼)
本課件是可編輯的正常PPT課件⑤按位左移<<把<<左邊的數(shù)的各二進制位整體左移若干位,由<<右邊的數(shù)指定要移動的位數(shù)。移出的位(高位)將被丟棄,移進位(低位)補0。3<<4表達式的值為:48000000113的二進制000048的二進制一個數(shù)左移
i位,相當于乘以2的i次方x<<ix*2i例如3<<43*24。本課件是可編輯的正常PPT課件⑥按位右移>>把>>左邊的數(shù)的各二進制位整體右移若干位,由>>右邊的數(shù)指定要移動的位數(shù),移出的位(低位)將被丟棄,移進的位(高位)一般補0。15>>2表達式的值為:30000111115的二進制003的二進制一個數(shù)右移
i位,相當于除以2的i次方(除不盡時直接舍去小數(shù)部分)x>>ix/2i例如15>>215/22。本課件是可編輯的正常PPT課件C語言程序設計
第3章順序結構本課件是可編輯的正常PPT課件語句空語句看作一條語句,什么也不做,起占位作用
;
a=1; b=2; c=3;{
}有;無;復合語句由{}
括起的若干條語句組成,整體看作一條語句。main(){
inta,b,c; {
{a=1;b=2;c=3; } a++; b++; }
printf("%d%d%d",a,b,c);}
{ }
{
}一條語句一條語句一條語句一條語句一條語句一條語句一條語句一條語句一條語句233a:
b:c:
a:1b:2c:323本課件是可編輯的正常PPT課件輸入和輸出輸出輸入計算機主機鍵盤鼠標打印機顯示器本課件是可編輯的正常PPT課件輸入輸出庫函數(shù)和包含文件#include<stdio.h>#include"stdio.h"或:C語言程序的輸入/輸出操作,都要通過庫函數(shù)完成。庫函數(shù),顧名思義,就是“倉庫”里的函數(shù)
拿到倉庫的“鑰匙”在C語言要使用“庫函數(shù)”,要首先用#include將一些文件包含到我們的程序中來,文件的后綴一般為.h,稱頭文件。
本課件是可編輯的正常PPT課件putchar()函數(shù)——單字符輸出#include<stdio.h>main(){
}putchar();括號里寫要輸出的字符本課件是可編輯的正常PPT課件getchar()函數(shù)——單字符輸入#include<stdio.h>main(){
}getchar();函數(shù)值(返回值)為讀入的字符本課件是可編輯的正常PPT課件我有私人警察——格式輸出函數(shù)printf()直接在printf函數(shù)的()內(nèi)寫出一個""引起的字符串,屏幕上就會原樣輸出該字符串。#include<stdio.h>main(){
}printf("想說啥就說啥");本課件是可編輯的正常PPT課件我有私人警察——格式輸出函數(shù)printf()printf()函數(shù)的完整使用形式是:printf("格式控制字符串",數(shù)據(jù)1,數(shù)據(jù)2,數(shù)據(jù)3,...);#include<stdio.h>main(){
inta=65; /*a的值為十進制65,八進制101,十六進制41*/
printf("%d",a); /*屏幕輸出:65
*/ printf("%c",a)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單人住宿改造方案(3篇)
- 公司疫情防御管理制度
- 廠內(nèi)特種機械管理制度
- 工廠改造防塵方案(3篇)
- 推銷計劃方案文案(3篇)
- 工地現(xiàn)場垃圾管理制度
- 華為軟件資產(chǎn)管理制度
- DB62T 4316-2021 岷山貓尾草規(guī)范
- DB62T 4462-2021 小麥品種 蘭天33號
- 小型活動安保方案(3篇)
- DB3709-T 007-2022醫(yī)養(yǎng)結合機構老年人健康檔案管理規(guī)范
- DBJ53T-19-2007加芯攪拌樁技術規(guī)程
- (新版)舟艇駕駛理論考試題庫500題(單選、判斷題)
- 華北理工大學藥物分析教案
- (高職)統(tǒng)計學原理(第七版)電子課件教學PPT(完整版)
- 安徽省2022年中考地理真題試卷(圖片版含答案)
- 林地征占用自查報告
- 感悟親情作文指導
- 幼兒園辦園標準
- DLT 596-2021 電力設備預防性試驗規(guī)程
- 無機化學第4版下冊(吉大宋天佑)2019
評論
0/150
提交評論