C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(微課版) 課件匯 張寧 第1-6章 概述、數(shù)據(jù)類型運(yùn)算符和表達(dá)式-數(shù)組_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(微課版) 課件匯 張寧 第1-6章 概述、數(shù)據(jù)類型運(yùn)算符和表達(dá)式-數(shù)組_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(微課版) 課件匯 張寧 第1-6章 概述、數(shù)據(jù)類型運(yùn)算符和表達(dá)式-數(shù)組_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(微課版) 課件匯 張寧 第1-6章 概述、數(shù)據(jù)類型運(yùn)算符和表達(dá)式-數(shù)組_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(微課版) 課件匯 張寧 第1-6章 概述、數(shù)據(jù)類型運(yùn)算符和表達(dá)式-數(shù)組_第5頁(yè)
已閱讀5頁(yè),還剩211頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語(yǔ)言程序設(shè)計(jì)

第1章概述什么是計(jì)算機(jī)計(jì)算機(jī)是一種工具,計(jì)算機(jī)的所有“智能”都是人類賦予的。人們必須詳詳細(xì)細(xì)地告訴計(jì)算機(jī)“做什么”、“怎么做”,這種指揮計(jì)算機(jī)工作的過(guò)程就是——計(jì)算機(jī)程序。沒(méi)有程序,計(jì)算機(jī)就是一堆廢銅爛鐵,什么也不能做。計(jì)算機(jī)程序程序就是一系列的有序步驟。

洗菜

切菜

炒菜

出鍋?zhàn)霾说牟襟E——

計(jì)算機(jī)程序就是人類指揮計(jì)算機(jī)工作的有序步驟。

計(jì)算機(jī)程序是由一條條有序指令組成的,每條指令指揮計(jì)算機(jī)完成一個(gè)操作。指令指令指令指令何謂編寫(xiě)程序?打開(kāi)微信群;查看第一條聊天信息;if(本條信息是紅包){

點(diǎn)開(kāi)本條信息;點(diǎn)“開(kāi)”按鈕;}

else{

略過(guò)此信息;}查看下一條信息,重復(fù)此過(guò)程;獲得目的地坐標(biāo);獲得當(dāng)前位置坐標(biāo);搜索兩點(diǎn)最短路徑;將路徑用顏色標(biāo)注在地圖上;計(jì)算兩點(diǎn)距離;語(yǔ)音播報(bào):導(dǎo)航開(kāi)始,沿當(dāng)前位置向西南方向直行,全程大約800米…獲得當(dāng)前位置坐標(biāo);if(正沿路線前行)

前方大約有200米直行道路…;if(偏離路線)正在為您重新規(guī)劃路線…;if(計(jì)算距離小于50米)目的地在您右側(cè),本次導(dǎo)航結(jié)束;自動(dòng)微信搶紅包程序地圖導(dǎo)航程序編寫(xiě)程序和計(jì)算機(jī)語(yǔ)言編寫(xiě)程序(編程)就是人們針對(duì)某個(gè)問(wèn)題,事先設(shè)計(jì)操作步驟,并將操作步驟“告訴”計(jì)算機(jī),“指揮”計(jì)算機(jī)如何工作的過(guò)程。如何將怎么做“告訴”計(jì)算機(jī)呢?計(jì)算機(jī)語(yǔ)言編寫(xiě)程序要依照某種計(jì)算機(jī)語(yǔ)言,即要通過(guò)計(jì)算機(jī)能聽(tīng)懂的語(yǔ)言來(lái)告訴它怎么做。計(jì)算機(jī)語(yǔ)言人類的語(yǔ)言有很多種,計(jì)算機(jī)的語(yǔ)言也有很多種。

機(jī)器語(yǔ)言MOVAX,XMOVDX,X+2ADDAX,YADCDX,Y+2……匯編語(yǔ)言高級(jí)語(yǔ)言W=X+Y+24-Z;最接近人類的思維習(xí)慣

僅由0和1組成(二進(jìn)制代碼)英文助記符但只能用與機(jī)器語(yǔ)言相對(duì)應(yīng)的指令,難度很高高級(jí)語(yǔ)言又分很多種,如VisualBasic、Java、Fortran、Pascal、C

等。

計(jì)算機(jī)唯一能懂翻譯計(jì)算機(jī)唯一能懂機(jī)器語(yǔ)言程序的編譯和鏈接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程序的翻譯過(guò)程C語(yǔ)言源程序xxx.c

文本文件ASCII碼文件

人類可讀懂計(jì)算機(jī)不能直接運(yùn)行

xxx.obj可執(zhí)行程序xxx.exe編譯(compile)鏈接(link)二進(jìn)制文件未包含庫(kù)的機(jī)器語(yǔ)言程序人類不可讀懂計(jì)算機(jī)不能直接運(yùn)行

二進(jìn)制文件機(jī)器語(yǔ)言程序人類不可讀懂計(jì)算機(jī)可以直接運(yùn)行

目標(biāo)程序編譯系統(tǒng)MicrosoftVisualC++main(){ inta,b,c; a=10; b=20; c=a+b; printf("%d",c);}可執(zhí)行程序編譯(compile)鏈接(link)目標(biāo)程序編譯和鏈接的過(guò)程是由誰(shuí)來(lái)完成的呢?這是由編譯程序(或稱編譯器、編譯系統(tǒng))完成的——MicrosoftVisualC++。MicrosoftVisualC++不僅可進(jìn)行編譯和鏈接,同時(shí)它還有編輯、修改、調(diào)試和運(yùn)行程序等功能,也稱集成開(kāi)發(fā)環(huán)境。C語(yǔ)言源程序C語(yǔ)言程序的結(jié)構(gòu)C程序的結(jié)構(gòu)函數(shù)1(參數(shù)x){

語(yǔ)句;}main(){

語(yǔ)句;

語(yǔ)句;

語(yǔ)句;}函數(shù)2(參數(shù)x,參數(shù)y){

語(yǔ)句;

語(yǔ)句;}函數(shù)1函數(shù)2main函數(shù)……C程序語(yǔ)句1語(yǔ)句2語(yǔ)句3main函數(shù)預(yù)處理命令段落句子一篇文章main函數(shù)必須有,且只能有一個(gè);main函數(shù)可位于程序函數(shù)間的任意位置;main函數(shù)是程序的入口和出口;其他函數(shù)是由main函數(shù)調(diào)用執(zhí)行的函數(shù)1(參數(shù)x){

語(yǔ)句;}main(){

語(yǔ)句;

語(yǔ)句;

語(yǔ)句;}函數(shù)2(參數(shù)x,參數(shù)y){

語(yǔ)句;

語(yǔ)句;}main函數(shù)main函數(shù)主函數(shù)

錯(cuò)誤的執(zhí)行流程main必須小寫(xiě);()不能省略。預(yù)處理命令正確的執(zhí)行流程#include<stdio.h>main(){

inta,b,c; a=10; b=20; c=a+b; printf("%d",c);}簡(jiǎn)單C程序?qū)嵗A(yù)處理命令main函數(shù)在學(xué)習(xí)之前,你能看出該程序的輸出結(jié)果嗎?程序的輸出結(jié)果為:30

C程序的語(yǔ)句#include<stdio.h>main(){

inta,b,c; a=10; b=20; c=a+b; printf("%d",c);}每條語(yǔ)句“告訴”計(jì)算機(jī)要執(zhí)行的一個(gè)操作(命令)每條語(yǔ)句結(jié)尾必須有一個(gè)“;”#include<stdio.h>main(){

inta,b,c;

a=10;b=20; c=a+b; printf("%d",c);}多條語(yǔ)句可寫(xiě)在一行中,一條語(yǔ)句也可寫(xiě)在多行#include<stdio.h>main(){

inta,b,c; a=10;

b=

20; c=a+b; printf("%d",c);}任何變量在使用前必須先定義

C程序格式自由,對(duì)程序中的空格、換行沒(méi)有過(guò)分講究但是堅(jiān)持適當(dāng)?shù)目s進(jìn)、空格、換行能使程序清晰易讀,是我們提倡的#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()寫(xiě)作main()顯然是錯(cuò)誤的。程序的注釋注釋main(){

inta,b,c; a=10; b=20; c=a+b; printf("%d",c);}/*本程序是計(jì)算一道小學(xué)生數(shù)學(xué)題的程序*/main(){

inta,b,c; a=10; /*小明有10支鉛筆*/ b=20; /*小紅有20支鉛筆*/ c=a+b; /*求二人共有多少鉛筆*/ printf("%d",c);}允許在程序中寫(xiě)語(yǔ)句外的任意內(nèi)容,這些內(nèi)容不是程序的一部分,不能被執(zhí)行,稱注釋。/*到*/之間(可多行)注釋:在運(yùn)行程序時(shí)計(jì)算機(jī)會(huì)將/*到*/之間的內(nèi)容全部忽略,有無(wú)注釋對(duì)程序的運(yùn)行沒(méi)有絲毫影響。注釋不能嵌套:c=a+b; /*求和(位于“/*”和“*/”之間的部分為注釋)*/此處不是注釋,為非法語(yǔ)句此處為注釋

標(biāo)識(shí)符、常量和變量標(biāo)識(shí)符的命名規(guī)則標(biāo)識(shí)符名很簡(jiǎn)單,字母數(shù)字下劃線。字母區(qū)分大小寫(xiě),非數(shù)打頭非關(guān)鍵。yes? 有?234a 數(shù)字開(kāi)頭yes/no 有/w.a 有.x-y 有-π 希臘字母β 希臘字母int 是關(guān)鍵字x1

不能用角標(biāo)非法的標(biāo)識(shí)符

a x sum nve ab1a1b2c3 _to file_5_2 Int INT B3 b3合法的標(biāo)識(shí)符

盡量做到

見(jiàn)名知意表示長(zhǎng)度的變量名用length

表示面積的變量名用area表示分?jǐn)?shù)的變量名用score

或chengji

C語(yǔ)言中的關(guān)鍵字:autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile

常量#include<stdio.h>main(){

inta,b,c; a=10; b=20; c=a+b; printf("%d",c);}如10、20,它們?cè)诔绦蜻\(yùn)行過(guò)程中值不會(huì)變化,故稱常量。常量就是直接寫(xiě)在程序里的數(shù)據(jù)值。

不止限于數(shù)值型的數(shù)據(jù)值,以后要學(xué)習(xí)的許多非數(shù)值型的數(shù)據(jù)值,如: 字符'a'、'b'、 字符串"hello"、

等,這些也都是常量。符號(hào)常量#definem100常量還包括用#define定義的符號(hào)常量。

定義了常量m,則程序段:a=m-10;b=m+8;printf("%d",m);其中的m和100是一個(gè)意思a為90,b為108,輸出100用#define命令可定義常量,因有#define的定義,m是常量,不是變量

使用常量的優(yōu)點(diǎn):提高可讀性,方便程序的維護(hù)修改。a=100-10;b=100+8;printf("%d",100);而以上程序需逐條修改100為200。很麻煩!

如果希望用200,只要修改定義的一處就可以了。200200200其中的m和200是一個(gè)意思a為190,b為208,輸出200m=200;200變量#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

同一個(gè)盒子可先后存放不同的東西,變量的值也可在程序運(yùn)行過(guò)程中發(fā)生變化,故稱變量。變量實(shí)際是內(nèi)存中的一塊存儲(chǔ)區(qū)域,存儲(chǔ)區(qū)域的名稱就是變量名,所存儲(chǔ)的內(nèi)容就是變量的值。變量的初始化(定義時(shí)賦初值)intsum=0; 變量定義時(shí)賦初值,sum立即為確定的值0intwidth,height; 一次定義多個(gè)變量,變量的值都不確定intprice,num=3; 僅num值為3,price的值不確定intsize=5+4; size值為9,可用表達(dá)式為變量賦初值intx=y=z=5;

intx=5,y=5,z=5;

在定義中不允許連續(xù)賦初值

inta,intb;

如果用逗號(hào),后面不要再寫(xiě)int,直接寫(xiě)變量名

inta;intb;如果后面也寫(xiě)int應(yīng)用分號(hào),這實(shí)際是兩條語(yǔ)句

C語(yǔ)言程序上機(jī)指導(dǎo)進(jìn)制轉(zhuǎn)換 1 0 1 1 1 0 1 1+) 0 0 1 0二進(jìn)制

二進(jìn)制

對(duì)應(yīng)十進(jìn)制

0

0 1

1 10

2 11

3 100

4 …

…計(jì)算機(jī)只能直接識(shí)別二進(jìn)制二進(jìn)制:0、1組成,逢二進(jìn)一

十進(jìn)制轉(zhuǎn)換為二進(jìn)制13(13)10=(

)2812411011101將十進(jìn)制數(shù)看作重物的重量用8、4、2、1四種重量的砝碼去“湊”出重物的重量。如果選用了一種砝碼就用1表示,未選用就用0表示,依次寫(xiě)出1或0就是對(duì)應(yīng)的二進(jìn)制。(降冪法)8124十進(jìn)制轉(zhuǎn)換為二進(jìn)制8(8)10=(

)21000(13)10=(

)211011000將十進(jìn)制數(shù)看作重物的重量用8、4、2、1四種重量的砝碼去“湊”出重物的重量。如果選用了一種砝碼就用1表示,未選用就用0表示,依次寫(xiě)出1或0就是對(duì)應(yīng)的二進(jìn)制。(降冪法)十進(jìn)制轉(zhuǎn)換為二進(jìn)制1178124(117)10=(

)2111010116326412801531211501510110二進(jìn)制轉(zhuǎn)換為十進(jìn)制(1101)2=(

)1081241101?8148+4+1=13

13二進(jìn)制轉(zhuǎn)換為十進(jìn)制(1010)2=(

)1081241010?8+2=10

1082八進(jìn)制、十六進(jìn)制與二進(jìn)制、十進(jìn)制的互換二進(jìn)制~八進(jìn)制的互換:3位并1位、1位拆3位;二進(jìn)制~十六進(jìn)制的互換:4位并1位、1位拆4位,其中10-15寫(xiě)作A-F(或a-f);十進(jìn)制~八/十六進(jìn)制、八進(jìn)制~十六進(jìn)制的互換:均先轉(zhuǎn)換為二進(jìn)制,以二進(jìn)制數(shù)為中介轉(zhuǎn)換即可,十進(jìn)制二進(jìn)制

八進(jìn)制十六進(jìn)制C語(yǔ)言程序設(shè)計(jì)

天津大學(xué)副教授張寧第2章數(shù)據(jù)類型運(yùn)算符和表達(dá)式第2章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2.算術(shù)運(yùn)算1.基本數(shù)據(jù)類型1)整型和浮點(diǎn)型(實(shí)型)數(shù)據(jù)

2)整型和浮點(diǎn)型(實(shí)型)的轉(zhuǎn)換3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)4.自增與自減運(yùn)算

5.逗號(hào)運(yùn)算6.位運(yùn)算3.賦值運(yùn)算

整型常量和浮點(diǎn)型常量涇渭分明整型常量浮點(diǎn)型(實(shí)型)常量整型常量表示法,十進(jìn)制數(shù)直接打,數(shù)前添零進(jìn)制八,十六進(jìn)制再加叉(x或X)。浮點(diǎn)小數(shù)莫忘點(diǎn)。指數(shù)E(e)挑兩邊全,E(e)后必須是整數(shù),前后兩邊緊相連。10

-247(十進(jìn)制)

前加0: 八進(jìn)制前加0x或0X: 十六進(jìn)制(不能寫(xiě)為二進(jìn)制)012100xA或0Xaa=018;八進(jìn)制數(shù)由0-7組成,不能含8、9

只能十進(jìn)制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整型變量和浮點(diǎn)型變量涇渭分明整型變量浮點(diǎn)型(實(shí)型)變量int

變量名1,變量名2,…;float

變量名1,變量名2,…;double

變量名1,變量名2,…;1)單精度型2)雙精度型1)基本型2)帶修飾詞short:短整型,占2字節(jié)(范圍約±3萬(wàn))long:長(zhǎng)整型,占4字節(jié)signed:有符號(hào)型(signed

可省略)unsigned:無(wú)符號(hào)型,不能存負(fù)數(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億編程時(shí)應(yīng)根據(jù)實(shí)際需要選用不同類型的變量應(yīng)根據(jù)需要選用不同類型、不同規(guī)格的變量:既滿足精度,又盡量避免大材小用。

定義變量保存地球到太陽(yáng)之間的距離:

1.495978707x1011

doubleem=1.495978707e11;

定義變量保存全班同學(xué)平均成績(jī)

floatscore;

定義變量保存宇宙間共有粒子數(shù)的估

計(jì)值:1080

doublennn=1E80;

定義變量保存某超市進(jìn)貨數(shù)量

intnumber;

定義變量保存人的年齡

unsignedintage;整型和實(shí)型數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)計(jì)算機(jī)內(nèi)存只能存儲(chǔ)0和1

123588976345整數(shù)例:8存作8的二進(jìn)制:

00000000…00001000實(shí)數(shù)小數(shù)×2指數(shù)轉(zhuǎn)換為二進(jìn)制存儲(chǔ)(補(bǔ)碼)3.142.08.122.5e-30.3E51.5小數(shù)部分和指數(shù)部分分別存儲(chǔ)4字節(jié)或8字節(jié)指數(shù)部分

小數(shù)部分(固定為1.f)符號(hào)位正數(shù):0

負(fù)數(shù):1

例:8.0變?yōu)?.0×23

再分別存1.0和3的二進(jìn)制存儲(chǔ)方式截然不同第2章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2.算術(shù)運(yùn)算1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)4.自增與自減運(yùn)算

5.逗號(hào)運(yùn)算6.位運(yùn)算3.賦值運(yùn)算

1)整型和浮點(diǎn)型(實(shí)型)數(shù)據(jù)2)整型和浮點(diǎn)型(實(shí)型)的轉(zhuǎn)換變量賦值的自動(dòng)類型轉(zhuǎn)換只能保存整數(shù),不能保存實(shí)數(shù)。inta;a=2.8;a:doubley;y=3;整型變量實(shí)型變量float、doubleint(或有int的修飾詞)只能保存實(shí)數(shù),不能保存整數(shù)。

y:變量定空間,塑身再搬遷。若為空間窄,舍點(diǎn)也情愿。23.0inta=1.2,b,c;

b=3.4;c=a+b;c的值為_(kāi)_______4floata=1.2,b;intc; b=3.4;c=a+b;c的值為_(kāi)_______4floata=1.2,b,c;

b=3.4;c=a+b;c的值為_(kāi)_______4.6常量的后綴L(或l)U(或u)F(或f)為了對(duì)應(yīng)變量的類型,常量也有類型:-65u在程序中直接寫(xiě)不帶小數(shù)點(diǎn)的整數(shù),默認(rèn)為基本型整型(int

型);帶小數(shù)點(diǎn)或E(e)的常量,默認(rèn)為雙精度實(shí)型(double

型)。若要改變常量的類型,可在常量后加后綴:整數(shù)后加L(l)表示常量為長(zhǎng)整型(long),實(shí)數(shù)后加L(l)表示常量為長(zhǎng)雙精度型(longdouble),二者在VC2010中與不加L(l)的效果都相同。

如:0L、125L、100000L、1.234567L只能加在整數(shù)后面,表示常量為無(wú)符號(hào)型,即非負(fù):如0U、6U、65535u可既用L又用U,表示常量為無(wú)符號(hào)長(zhǎng)整型,如:

0LU、6LU、65535lu表示常量為單精度型(float),加在整數(shù)后也表示為float型(不再為整數(shù))。例如:1.23f、356f,即有后綴F(f)時(shí),可不加小數(shù)點(diǎn),也表示實(shí)數(shù)。

第2章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2.算術(shù)運(yùn)算1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)

4)字符串型數(shù)據(jù)4.自增與自減運(yùn)算

5.逗號(hào)運(yùn)算6.位運(yùn)算3.賦值運(yùn)算

1)整型和浮點(diǎn)型(實(shí)型)數(shù)據(jù)2)整型和浮點(diǎn)型(實(shí)型)的轉(zhuǎn)換字符型量概述//類似QQ的程序main(){....;

發(fā)送"你好!";....;}現(xiàn)代計(jì)算機(jī)除能計(jì)算數(shù)值之外,還能處理文字。用QQ與好友聊天就是一個(gè)處理文字的例子。如何編寫(xiě)一個(gè)類似QQ的程序呢?文字型數(shù)據(jù)

用QQ收發(fā)消息時(shí),消息是文字的,而不是數(shù)值的如何用C語(yǔ)言表示文字型數(shù)據(jù)呢(用C語(yǔ)言怎樣說(shuō))?

先學(xué)習(xí)1個(gè)字符的文字——字符型數(shù)據(jù);再學(xué)習(xí)多個(gè)字符組成的文字——字符串。字符型常量單引號(hào)必須為英文,不分左右;單引號(hào)內(nèi)只能有字符,如'ab'錯(cuò)誤!''也錯(cuò)誤!每個(gè)字符常量占1個(gè)字節(jié)(8個(gè)bit位);單引號(hào)是定界符,它不屬于字符內(nèi)容;一個(gè)先考慮字符如何用C語(yǔ)言表示?例如要向好友發(fā)送一個(gè)字符‘a(chǎn)’,該如何做呢?main(){....;

發(fā)送a;....;}main(){....;

發(fā)送'a';....;}a為變量,發(fā)送的是a的值不是字符a本身用單引號(hào)括起,發(fā)送的才是字符a本身一個(gè)用單引號(hào)括起的一個(gè)

字符,是要處理的字符數(shù)據(jù),不是變量名,這稱字符型常量。'a'、'b'、'c'

'a'、'b'、'c'、'1'、'5'、'0'、','、'!'、'='、'+'、'#'、'$'、''(一個(gè)空格字符)

好友只能收到a,收不到單引號(hào)的哦!

字符型數(shù)據(jù)在計(jì)算機(jī)中如何存儲(chǔ)?計(jì)算機(jī)內(nèi)存由只能存儲(chǔ)0和1的存儲(chǔ)單元組成123588976345字符編號(hào)(整數(shù))'a''b''-''5''0''=''*''#''c'字符型數(shù)據(jù)ASCII碼(AmericanStandardCodeforInformationInterchange)例如:

'a'

編號(hào)為97,存作97的二進(jìn)制;

']'編號(hào)為93,存作93的二進(jìn)制。ASCII碼0~31,127:控制字符(不可顯示)32:空格字符''48~57:數(shù)字字符'0'~'9'按'0'-'9'的順序依次遞增排列;65~90:大寫(xiě)字母字符'A'~'Z'按字母表的順序依次遞增排列97~122:小寫(xiě)字母字符'a'~'z'按字母表的順序依次遞增排列標(biāo)準(zhǔn)ASCII碼0~127

附錄一*128~255為擴(kuò)展字符。對(duì)應(yīng)的大小寫(xiě)字母ASCII碼差32。?已知字符'A'的ASCII碼為65,則字符'B'的ASCII碼是

,字符'd'的ASCII碼是

。66100數(shù)字字符'0'的ASCII碼是

0嗎?數(shù)字字符'1'的ASCII碼是

1嗎?

字符型數(shù)據(jù)與整數(shù)的混用97整數(shù)'a'字符97的二進(jìn)制or字符與整數(shù)是混用的字符變作對(duì)應(yīng)的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><<>數(shù)字字符常量與整型常量的區(qū)別'5'

5

'5'的ASCII碼不是5!字符型常量,ASCII碼為53,存作53的二進(jìn)制;整型常量,直接存作

5的二進(jìn)制;完全不同'5'

-'0'='5'-48=+'0'=5+48=5

5

'5'

'9'

-'0'='9'-48=+'0'=9+48=9

9

'9'

'0'(48)字符對(duì)應(yīng)的一位整數(shù)數(shù)字字符魔術(shù)棒——轉(zhuǎn)義字符是唯一特殊的字符,并不表示\

本身,而是改變其后字符的原有含義轉(zhuǎn)義字符\換行符:'\n'跳格符:'\t'響鈴符:'\a'n換行符a響鈴符t跳格符'普通單引號(hào)定界符'普通斜杠字符轉(zhuǎn)義字符\'\' 錯(cuò)誤'\\' 表示\字符''' 錯(cuò)誤'\'' 表示'字符'\"' 表示"字符轉(zhuǎn)義字符(3)轉(zhuǎn)義字符用途

①可表示特殊字符(\'")。

②可表示不能顯示的控制字符。③可通過(guò)ASCII碼表示任意一個(gè)字符。ASCII碼的八進(jìn)制(1-3位)一個(gè)字符ASCII碼的十六進(jìn)制(1-2位)一個(gè)字符轉(zhuǎn)義字符(4)'\61''1''\101''A''\x41''A''\19'這使得一種字符可以有多種表示方法,如字符A可表示為:'A'、'\101'、'\x41''\012'、'\xA'、'\12'、'\x0A'換行符除可寫(xiě)為'\n'外,還有哪些表示法呢?(已知換行符的ASCII碼為10)八進(jìn)制數(shù)不能有數(shù)符8、9'\ddd'ddd為1~3位八進(jìn)制數(shù)。

表示ASCII碼的八進(jìn)制為ddd的字符。'\xhh'hh為1~2位十六進(jìn)制數(shù)(x必須小寫(xiě))。

表示ASCII碼的十六進(jìn)制為hh的字符。字符型變量字符型變量占1個(gè)字節(jié),保存一個(gè)字符(保存字符的ASCII碼)

c:charc;c='a';c=98;'a''b'

有符號(hào)

無(wú)符號(hào)

或省略signed

signedchar

變量名1,變量名2,…;可保存負(fù)數(shù),范圍:-128~127unsignedchar

變量名1,變量名2,…;不能保存負(fù)數(shù),范圍:0~255第2章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2.算術(shù)運(yùn)算1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)

4.自增與自減運(yùn)算

5.逗號(hào)運(yùn)算6.位運(yùn)算3.賦值運(yùn)算

1)整型和浮點(diǎn)型(實(shí)型)數(shù)據(jù)2)整型和浮點(diǎn)型(實(shí)型)的轉(zhuǎn)換字符串型數(shù)據(jù)羊肉串"iPhone"雙引號(hào)括起(英文雙引號(hào),不分左右),0~多個(gè)字符字符串:由一個(gè)個(gè)的單個(gè)字符組成——一串字符。字符串常量"BMWZ4""$12.5""a"""空串在內(nèi)存中的存儲(chǔ)方式每字符占1個(gè)字節(jié)連續(xù)存儲(chǔ),多占1個(gè)字節(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'字符串的長(zhǎng)度長(zhǎng)度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'所包含的字符個(gè)數(shù)(不含'\0',但計(jì)空格)'m''\n''\0'"m\\\n""m\\n""m\n"字符常量和字符串常量的區(qū)別字符常量字符串常量引號(hào)單引號(hào)雙引號(hào)字符個(gè)數(shù)只能含1個(gè)字符(轉(zhuǎn)義字符形式上多個(gè)實(shí)際仍為1個(gè))可含0~多個(gè)字符能否能將值賦給char型變量)可以不可以有無(wú)對(duì)應(yīng)變量有字符型變量無(wú)字符串型變量占用內(nèi)存字節(jié)數(shù)一律1個(gè)字節(jié)字符串字符數(shù)(長(zhǎng)度)+1沒(méi)有字符串變量不能企圖將字符串常量賦值給字符型的變量charc;c="abcde";字符串常量的簡(jiǎn)單輸出#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個(gè)字符A的字符串*/注意先關(guān)閉當(dāng)前的解決方案,或重新開(kāi)啟VS2010,再新建項(xiàng)目。程序中引號(hào)之內(nèi)的空格不是可有可無(wú)的,引號(hào)之內(nèi)空格的有無(wú)雖然都沒(méi)有語(yǔ)法錯(cuò)誤,但會(huì)影響輸出結(jié)果。第2章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2.算術(shù)運(yùn)算

1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)4.自增與自減運(yùn)算

5.逗號(hào)運(yùn)算6.位運(yùn)算3.賦值運(yùn)算

1)整型和浮點(diǎn)型(實(shí)型)數(shù)據(jù)2)整型和浮點(diǎn)型(實(shí)型)的轉(zhuǎn)換算術(shù)運(yùn)算符17%5 值為23%10 值為30%10 值為0-5%3 值為-25%-3 值為2%:運(yùn)算量必須為整型或字符型50.823%9+(加,或正號(hào))-

(減,或負(fù)號(hào))*(乘)/(除)%(取余數(shù),求模)優(yōu)先級(jí)先乘除,后加減

*/%優(yōu)先級(jí)相同,高于+-

doubled=1.0;printf("%d",d%10);

求余%嚴(yán),整符才能算?!馈痢滤阈g(shù)表達(dá)式表達(dá)式的大、中、小括號(hào)一律使用小括號(hào)(),如:c*(a/(b+c))(1+((2+3)*4-8)/2+5)*2其中最內(nèi)層()表示小括號(hào),向外逐層分別表示中括號(hào)、大括號(hào)…;還可繼續(xù)在外層嵌套(),()的層數(shù)理論上沒(méi)有限制。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)]運(yùn)算符與數(shù)據(jù)組成表達(dá)式。如用單引號(hào)或雙引號(hào)括起來(lái)的就不是運(yùn)算符,也不是表達(dá)式了:'+'、'-'不是運(yùn)算符,是字符型常量"5+2"不是表達(dá)式,是字符串常量第②類自動(dòng)類型轉(zhuǎn)換所有表達(dá)式都有一個(gè)值及類型。低類型轉(zhuǎn)換為高類型:char→int→float

→double特殊:所有浮點(diǎn)數(shù)必然都轉(zhuǎn)換為double再運(yùn)算(即使兩個(gè)float型量的運(yùn)算也都先轉(zhuǎn)換為double)表達(dá)式的值:就是表達(dá)式的運(yùn)算結(jié)果;表達(dá)式的類型:兩個(gè)運(yùn)算量類型一致時(shí),與兩個(gè)運(yùn)算量的類型一致。兩個(gè)運(yùn)算量類型不一致時(shí),表達(dá)式的類型與其中較高類型運(yùn)算量的類型一致(較低類型運(yùn)算量先被自動(dòng)轉(zhuǎn)換為高類型再運(yùn)算)。類型不怕亂,結(jié)果向高看。2.4+1.6

結(jié)果為double型4.0,結(jié)果不能為int型的42.4+3 結(jié)果為double型為5.4,結(jié)果不能為整數(shù)5area:

12兩類自動(dòng)類型轉(zhuǎn)換綜合練習(xí)類型不怕亂,結(jié)果向高看。變量定空間,塑身再搬遷。若為空間窄,舍點(diǎn)也情愿。第①類(變量賦值)第②類(運(yùn)算過(guò)程中)兩類自動(dòng)類型轉(zhuǎn)換: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整數(shù)除法5/2 結(jié)果為2不是2.55.0/2 結(jié)果為2.55/2.0 結(jié)果為2.55.0/2.0 結(jié)果為2.51/2 結(jié)果為0不是0.51./2 結(jié)果為0.5-20/7 的結(jié)果為-2若有變量intx=3510;則表達(dá)式x/1000*1000的值是?如已定義float型的變量a,b,c,則表達(dá)式(a+b+c)/2與1/2*(a+b+c)等效嗎?整數(shù)除法:兩個(gè)整數(shù)相除,結(jié)果只取商的整數(shù)部分;只有兩個(gè)運(yùn)算數(shù)至少有一個(gè)為實(shí)數(shù),結(jié)果才為實(shí)數(shù)。(答案:3000)5/2int:?int:25.0/2double:2.0double:2.5答案:不等效!后者必為0。但等效形式可寫(xiě)為:1.0/2*(a+b+c)或1/2.0*(a+b+c)或1.0/2.0*(a+b+c)整數(shù)整除商,小數(shù)門(mén)外攔。強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換:floatx=4.5,y=2.1;(int)(x+y)的值為:6 先求和,再將“和”轉(zhuǎn)換(int)x+y的值為:6.1 先把x轉(zhuǎn)換后再求和(類型說(shuō)明符)量類型說(shuō)明符為int、long、unsigned、float、double、char等。功能是強(qiáng)制把“量”臨時(shí)轉(zhuǎn)換為類型說(shuō)明符的類型(轉(zhuǎn)換后精度可能會(huì)受損,如將實(shí)數(shù)強(qiáng)制轉(zhuǎn)換為int、將double強(qiáng)制轉(zhuǎn)換為float都受損)

。(int)3.8值為3floatf=5.75;則(int)f的值為

5,而f的值仍為5.75。括起類型字,臨時(shí)強(qiáng)轉(zhuǎn)換。算術(shù)運(yùn)算小結(jié)和練習(xí)類型不怕亂,結(jié)果向高看。整數(shù)整除商,小數(shù)門(mén)外攔。求余%嚴(yán),整符才能算。括起類型字,臨時(shí)強(qiáng)轉(zhuǎn)換。表達(dá)式(int)((double)(3/2)+0.5+(int)1.99*2)的值是_______表達(dá)式(int)((double)(3/2)+0.5+(int)1.99*2)

的值是_______311.0123.5四舍五入公式若x是實(shí)數(shù)(單精度或雙精度),把x四舍五入保留小數(shù)點(diǎn)后d位的計(jì)算公式是:(int)(x*10d+0.5)/10d

除數(shù)的10d必須加“.0”若有floatx=123.4567,y;要將x四舍五入保留小數(shù)點(diǎn)后2位,將結(jié)果存入變量y中的表達(dá)式語(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;如將最后的除法寫(xiě)作“/100”,則y中的值為123.0是錯(cuò)誤的。y=12346/100;y=123;y=123.0;取整數(shù)的個(gè)、十、百、千位……#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取一個(gè)整數(shù)x的個(gè)位:

x%10 如1234%10得到4取十位、百位、千位…都轉(zhuǎn)換為“取個(gè)位”的問(wèn)題。取十位:①先縮小10倍生成新數(shù),原數(shù)的十位成為新數(shù)的個(gè)位②然后取新數(shù)的個(gè)位

(x/10)

%10 如1234/10%10得到3取百位:①先縮小100倍生成新數(shù),原數(shù)的百位成為新數(shù)的個(gè)位②然后取新數(shù)的個(gè)位

(x/100)

%10 如1234/100%10得到2……取最高位時(shí),生成的新數(shù)只有一位,不再

%10

也是可以的。取整數(shù)x的個(gè)位:x%10取整數(shù)x的十位:x/10%10取整數(shù)x的百位:x/100%10取整數(shù)x的千位:x/1000%10……取最高位時(shí),/n后可不再%10。第2章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2.算術(shù)運(yùn)算1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)4.自增與自減運(yùn)算

5.逗號(hào)運(yùn)算6.位運(yùn)算3.賦值運(yùn)算

1)整型和浮點(diǎn)型(實(shí)型)數(shù)據(jù)2)整型和浮點(diǎn)型(實(shí)型)的轉(zhuǎn)換賦值運(yùn)算符a=10;a:10走,進(jìn)去?、俨煌跀?shù)學(xué)上的等號(hào),它沒(méi)有相等的含義。=不是相等,而是賦值。②是把右邊的內(nèi)容賦予左邊,而不是相反。③賦值后右邊內(nèi)容不變。例:intx=10,y=20;x=y;賦值后x、y均為20。④“=”左邊必須是變量,不能是常量也不能是表達(dá)式。a=a+1;a+1求值

走,進(jìn)去!a:x+1=3;3x+1求值

嘿,搞什么嘛,這里不能裝東西!111011=走,進(jìn)去!===賦值表達(dá)式+-*/%

運(yùn)算符a+10a=10int:12a:2int:1010=

表達(dá)式5*(b=10+20)的值是

。=運(yùn)算符的優(yōu)先級(jí)相當(dāng)?shù)停旁贑語(yǔ)言所有運(yùn)算符的倒數(shù)第二位。150同時(shí):b被賦值變?yōu)?0表達(dá)式x=(a=5)+(b=8)的值是

。13賦值表達(dá)式也有表達(dá)式的值和類型,均與賦值后左邊變量的值和類型相同。=的兩個(gè)作用1表達(dá)式求值;

改變=左邊變量的值。

2+、-、*、/、%的一個(gè)作用1表達(dá)式求值;

同時(shí):a被賦值為5,b被賦值為8,x被賦值為133058賦值表達(dá)式(2)

同優(yōu)先級(jí)運(yùn)算符,從左到右運(yùn)算——“從左到右”的結(jié)合性+-*/%

都是“從左到右”的1+2-3+4+5

同優(yōu)先級(jí)運(yùn)算符,從右到左運(yùn)算——“從右到左”的結(jié)合性=

是“從右到左”的x=y=25;x=25;x、y均被賦值為25定義變量時(shí)賦初值不能寫(xiě)為連等的形式intx=y=25;25同時(shí):y被賦值為2525同時(shí):x被賦值為2525是剛才表達(dá)式計(jì)算的結(jié)果值已知整型變量n的值為8,求表達(dá)式n+=n*=n-2的值:

,表達(dá)式求值后n的值為

。

復(fù)合的賦值運(yùn)算符

a+=5

a=a+5

r%=p

r=r%p

x*=y+7

x=x*(y+7)右邊要加()復(fù)合的賦值運(yùn)算符與賦值運(yùn)算

符(=)相同:優(yōu)先級(jí)倒數(shù)第二,

“從右到左”的結(jié)合性。n+=n*=n-2n+=n*=6n:848n*=6n=n*6n=4848n+=48n=n+48n=9696969696左邊也必須是變量。+-*/%=運(yùn)算符+=-=*=/=%=

48同時(shí):n被賦值為96同時(shí):n被賦值為48n+=n*=n-2復(fù)合的賦值運(yùn)算符(2)a+=b+c+=12;b+c=b+c+12a+=b+c+=12;b+c+12

b+c求值嘿,搞什么嘛,這里不能裝東西!走,進(jìn)去!=a=7+1=b;a=7+1=b;b8

嘿,搞什么嘛,這里不能裝東西!走,進(jìn)去!=8=b第2章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2.算術(shù)運(yùn)算1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)4.自增與自減運(yùn)算

5.逗號(hào)運(yùn)算6.位運(yùn)算3.賦值運(yùn)算

1)整型和浮點(diǎn)型(實(shí)型)數(shù)據(jù)2)整型和浮點(diǎn)型(實(shí)型)的轉(zhuǎn)換計(jì)數(shù)器按一次,計(jì)數(shù)+1

自增和自減運(yùn)算+-*/%=+=-=*=/=%=

運(yùn)算符++--

i=i+1;i:56

7i=i+1;j=j-1;j:109

8

j=j-1;自增運(yùn)算符++:使變量的值自增1(結(jié)果仍存回該變量)自減運(yùn)算符--:使變量的值自減1(結(jié)果仍存回該變量)單目運(yùn)算優(yōu)先級(jí)很高,僅次于括號(hào)()

i++;或

++i;

i++;或

++i;

j--;或

--j;

j--;或

--j;都使i自增1,這一點(diǎn)沒(méi)有區(qū)別自增和自減運(yùn)算設(shè)i=5;j=10;i:5j:10表達(dá)式i+j表達(dá)式的值計(jì)算表達(dá)式后變量的值15i仍為5j仍為10i++++i56i變?yōu)?i變?yōu)?j----j109j變?yōu)? j變 為9i++

++i

j--

--j

表達(dá)式

表達(dá)式

表達(dá)式

表達(dá)式

i+j

表達(dá)式表達(dá)式的值區(qū)別表達(dá)式的值區(qū)別+1后i的值-1后j的值都使j自減1,這一點(diǎn)沒(méi)有區(qū)別-1前j的值+1前i的值++在先,先加后用;++在后,后加先用;--在先,先減后用;--在后,后減先用。自增和自減運(yùn)算(2)=的兩個(gè)作用1表達(dá)式求值;

改變=左邊變量的值。

2+、-、*、/、%的一個(gè)作用1表達(dá)式求值;

++、--也有兩個(gè)作用1表達(dá)式求值;

改變變量的值。

2表達(dá)式i+j表達(dá)式的值計(jì)算表達(dá)式后變量的值15i仍為5j仍為10i++++i56i變?yōu)?i變?yōu)?j----j109j變?yōu)? j變 為9+1后i的值-1后j的值-1前j的值+1前i的值++--

會(huì)改變運(yùn)算量的值,也不能用于常量、表達(dá)式,只能用于變量!如5++錯(cuò)誤--(a*b)錯(cuò)誤自增和自減運(yùn)算(3)inta=1,b;b=5-a++; 執(zhí)行后,b值為

,a值為

。等價(jià)于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等價(jià)于a=a+1;b=5-a;第2章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2.算術(shù)運(yùn)算1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)4.自增與自減運(yùn)算

5.逗號(hào)運(yùn)算6.位運(yùn)算3.賦值運(yùn)算

1)整型和浮點(diǎn)型(實(shí)型)數(shù)據(jù)2)整型和浮點(diǎn)型(實(shí)型)的轉(zhuǎn)換5

逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符優(yōu)先級(jí)最低(倒數(shù)第一),結(jié)合順序?yàn)樽宰笾劣?。表達(dá)式1,表達(dá)式2,表達(dá)式3逗號(hào)運(yùn)算符① 依次從左到右分別計(jì)算各個(gè)表達(dá)式的值② 整個(gè)“逗號(hào)表達(dá)式”的值為其中最后一個(gè)表達(dá)式(上例為表達(dá)式3)的值。表達(dá)式1;表達(dá)式2;表達(dá)式3;取剛才表達(dá)式3的值;相當(dāng)于一小段程序

1+1,2+3表達(dá)式的值為5x=5,5+2,x-3表達(dá)式的值為2(x被賦值為5,必須依次計(jì)算)x=(a=1,b=3,++b,a+b);此為賦值語(yǔ)句,x被賦值為5a:1b:341345x:53

如有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);逗號(hào)表達(dá)式(2)y=6,10;6,10;10(被丟棄)y=(x=6),10;設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為_(kāi)______。n:2i:234

233第2章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2.算術(shù)運(yùn)算1.基本數(shù)據(jù)類型3)字符型數(shù)據(jù)4)字符串型數(shù)據(jù)4.自增與自減運(yùn)算

5.逗號(hào)運(yùn)算6.位運(yùn)算3.賦值運(yùn)算

1)整型和浮點(diǎn)型(實(shí)型)數(shù)據(jù)2)整型和浮點(diǎn)型(實(shí)型)的轉(zhuǎn)換位在我心中——位運(yùn)算二進(jìn)制1001011010100110101001…位(bit)位運(yùn)算就是在二進(jìn)制位的基礎(chǔ)上的運(yùn)算①數(shù)據(jù)必須轉(zhuǎn)換為二進(jìn)制才能進(jìn)行;②只能對(duì)整型數(shù)據(jù)和字符型數(shù)據(jù)進(jìn)行。2個(gè)條件+-*/%=+=-=*=/=%=

++--運(yùn)算符&

|^~<<>>6個(gè)運(yùn)算①按位與&參與運(yùn)算的兩個(gè)數(shù)取二進(jìn)制,然后將對(duì)應(yīng)的各二進(jìn)制位相“與”:只有對(duì)應(yīng)的兩個(gè)二進(jìn)制位都為1時(shí),結(jié)果位才為1,有一個(gè)為0結(jié)果位為0。

0000

1001

(9的二進(jìn)制)

&)

0000

0101

(5的二進(jìn)制)

“按位與&”

與“邏輯與&&”不同

9&5表達(dá)式的值為:1

0000

0001

(1的二進(jìn)制)

按位與常用來(lái)將一個(gè)數(shù)的二進(jìn)制的某些位清0或保留某些位。②按位或|

0000

1001

(9的二進(jìn)制)

|)

0000

0101

(5的二進(jìn)制)

9|5表達(dá)式的值為:13

0000

1101

(13的二進(jìn)制)

按位或常用來(lái)將一個(gè)數(shù)的二進(jìn)制的某些位強(qiáng)制設(shè)為1?!鞍次换騶”

與“邏輯或||”不同

參與運(yùn)算的兩個(gè)數(shù)取二進(jìn)制,然后將對(duì)應(yīng)的各二進(jìn)制位相“或”:對(duì)應(yīng)的兩個(gè)二進(jìn)制位有一個(gè)為1,結(jié)果位就為1;都為0時(shí)結(jié)果位才為0。

0000

1001

(9的二進(jìn)制)

^)

0000

0101

(5的二進(jìn)制)

^)

0000

0101

(5的二進(jìn)制)

③按位異或^參與運(yùn)算的兩個(gè)數(shù)取二進(jìn)制,然后將對(duì)應(yīng)的各二進(jìn)制位相“異或”:對(duì)應(yīng)的兩個(gè)二進(jìn)制位不同時(shí)結(jié)果位為1;相同時(shí)結(jié)果位為0。^性質(zhì)1:任何數(shù)與它本身做按位異或,結(jié)果為0。^性質(zhì)2:a^k^k=a。可根據(jù)這個(gè)性質(zhì)對(duì)數(shù)據(jù)加密。9^5表達(dá)式的值為:12

0000

1100

(12的二進(jìn)制)

0000

1001

(9的二進(jìn)制)95

0000

1001

(9的二進(jìn)制)

|)

0000

1001

(9的二進(jìn)制)

0000

0000

(0的二進(jìn)制)

9^9表達(dá)式的值為:0

④按位求反~~是單目運(yùn)算符,類似于負(fù)號(hào)(-),它只能后面跟一個(gè)數(shù)據(jù):

將數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制后,將各二進(jìn)制位“反過(guò)來(lái)”,即0變?yōu)?、1變?yōu)?。補(bǔ)碼:計(jì)算機(jī)中的數(shù)據(jù)是轉(zhuǎn)換為二進(jìn)制后再轉(zhuǎn)換為補(bǔ)碼存儲(chǔ)的,所有的位運(yùn)算包括~都是以補(bǔ)碼的形式進(jìn)行的。正數(shù)的補(bǔ)碼和原碼相同;負(fù)數(shù)的補(bǔ)碼為該數(shù)絕對(duì)值的二進(jìn)制按位取反后再加1。將補(bǔ)碼再按位取反后再加1又可得回該數(shù)的絕對(duì)值。

有符號(hào)數(shù)二進(jìn)制的最高位為符號(hào)位(負(fù)數(shù)為1正數(shù)為0),因此上述~9的結(jié)果是個(gè)負(fù)數(shù),關(guān)于補(bǔ)碼的細(xì)節(jié)不必深究。~)

00001001

(9的二進(jìn)制)

~9表達(dá)式的值為:-10

1111

0110

(-10的二進(jìn)制補(bǔ)碼)

⑤按位左移<<把<<左邊的數(shù)的各二進(jìn)制位整體左移若干位,由<<右邊的數(shù)指定要移動(dòng)的位數(shù)。移出的位(高位)將被丟棄,移進(jìn)位(低位)補(bǔ)0。3<<4表達(dá)式的值為:48000000113的二進(jìn)制000048的二進(jìn)制一個(gè)數(shù)左移

i位,相當(dāng)于乘以2的i次方x<<ix*2i例如3<<43*24。⑥按位右移>>把>>左邊的數(shù)的各二進(jìn)制位整體右移若干位,由>>右邊的數(shù)指定要移動(dòng)的位數(shù),移出的位(低位)將被丟棄,移進(jìn)的位(高位)一般補(bǔ)0。15>>2表達(dá)式的值為:30000111115的二進(jìn)制003的二進(jìn)制一個(gè)數(shù)右移

i位,相當(dāng)于除以2的i次方(除不盡時(shí)直接舍去小數(shù)部分)x>>ix/2i例如15>>215/22。C語(yǔ)言程序設(shè)計(jì)

天津大學(xué)副教授張寧第3章順序結(jié)構(gòu)語(yǔ)句空語(yǔ)句看作一條語(yǔ)句,什么也不做,起占位作用

;

a=1; b=2; c=3;{

}有;無(wú);復(fù)合語(yǔ)句由{}

括起的若干條語(yǔ)句組成,整體看作一條語(yǔ)句。main(){

inta,b,c; {

{a=1;b=2;c=3; } a++; b++; }

printf("%d%d%d",a,b,c);}

{ }

{

}一條語(yǔ)句一條語(yǔ)句一條語(yǔ)句一條語(yǔ)句一條語(yǔ)句一條語(yǔ)句一條語(yǔ)句一條語(yǔ)句一條語(yǔ)句233a:

b:c:

a:1b:2c:323輸入和輸出輸出輸入計(jì)算機(jī)主機(jī)鍵盤(pán)鼠標(biāo)打印機(jī)顯示器輸入輸出庫(kù)函數(shù)和包含文件#include<stdio.h>#include"stdio.h"或:C語(yǔ)言程序的輸入/輸出操作,都要通過(guò)庫(kù)函數(shù)完成。庫(kù)函數(shù),顧名思義,就是“倉(cāng)庫(kù)”里的函數(shù)

拿到倉(cāng)庫(kù)的“鑰匙”在C語(yǔ)言要使用“庫(kù)函數(shù)”,要首先用#include將一些文件包含到我們的程序中來(lái),文件的后綴一般為.h,稱頭文件。

putchar()函數(shù)——單字符輸出#include<stdio.h>main(){

}putchar();括號(hào)里寫(xiě)要輸出的字符getchar()函數(shù)——單字符輸入#include<stdio.h>main(){

}getchar();函數(shù)值(返回值)為讀入的字符我有私人警察——格式輸出函數(shù)printf()直接在printf函數(shù)的()內(nèi)寫(xiě)出一個(gè)""引起的字符串,屏幕上就會(huì)原樣輸出該字符串。#include<stdio.h>main(){

}printf("想說(shuō)啥就說(shuō)啥");我有私人警察——格式輸出函數(shù)printf()printf()函數(shù)的完整使用形式是:printf("格式控制字符串",數(shù)據(jù)1,數(shù)據(jù)2,數(shù)據(jù)3,...);#include<stdio.h>main(){

inta=65; /*a的值為十進(jìn)制65,八進(jìn)制101,十六進(jìn)制41*/

printf("%d",a); /*屏幕輸出:65

*/ printf("%c",a); /*屏幕輸出:A*/ printf("%o",a); /*屏幕輸出:101*/ printf("%#o",a); /*屏幕輸出:0101*/ printf("%x",a); /*屏幕輸出:41*/ printf("%#x",a); /*屏幕輸出:0x41*/}printf()函數(shù)的完整使用形式是:printf("格式控制字符串",數(shù)據(jù)1,數(shù)據(jù)2,數(shù)據(jù)3,...);我有私人警察——格式輸出函數(shù)printf()#include<stdio.h>main(){

inta=65;

printf("a");

/*屏幕輸出:a*/ printf("我現(xiàn)有%d元",a);

/*屏幕輸出:我現(xiàn)有65元*/}我有私人警察——格式輸出函數(shù)printf()格式字串控全體,數(shù)據(jù)替換百分比(%)。字符c,整數(shù)d,小數(shù)f指數(shù)e,歐(o)八叉(x)六u無(wú)號(hào),字串s要牢記。間數(shù)全寬點(diǎn)小數(shù),負(fù)號(hào)表示左對(duì)齊。#include<stdio.h>main(){

char

a='C';

charb='V';

printf("%c%c++\n",b,a);

/*輸出VC++*/ printf("%c%d++",b,a);

/*

輸出V67++

*/}我是快樂(lè)的快遞員——格式輸入函數(shù)scanf

scanf()函數(shù)的完整使用形式是:scanf("格式控制字符串",變量1的地址,變量2的地址,變量3的地址,...);#include<stdio.h>main(){ inta,b,c; printf("inputa,b,c\n"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d", a,b,c);}scanf,鍵盤(pán)輸入,后為地址,不能輸出。間數(shù)寬度,%c全讀,非格式符,麻煩用戶。我是快樂(lè)的快遞員——格式輸入函數(shù)scanf

若有程序inta;charb;floatc;scanf("%d%c%f",&a,&b,&c);當(dāng)程序運(yùn)行后輸入1234a1230.26<回車(chē)>則:a=

,b=

,c=

。1234'a'1230.26

C語(yǔ)言常用數(shù)學(xué)庫(kù)函數(shù)(包含math.h)函數(shù)功能用法舉例sqrt(x)求x的算術(shù)平方根,x≥0sqrt(2)abs(x)求x(整數(shù))的絕對(duì)值abs(-5)fabs(x)求x(實(shí)數(shù))的絕對(duì)值fabs(-2.5)log(x)求自然對(duì)數(shù)ln(x)log(2)exp(x)求ex的值exp(2)pow(x,y)求xy的值,注意x^y是“按位異或”不是求xypow(2,3)sin(x)求x的正弦值,x單位為弧度sin(30*3.14/180)cos(x)求x的余弦值,x單位為弧度cos(3.14)tan(x)求x的正切值,x單位為弧度tan(1.3)asin(x)求sin-1(x)的值(弧度),-1≤x≤1asin(1)acos(x)求cos-1(x)的值(弧度),-1≤x≤1acos(0)atan(x)求tan-1(x)的值(弧度)atan(-82.24)C語(yǔ)言程序設(shè)計(jì)

天津大學(xué)副教授張寧第4

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論