版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄第1章C++概述第2章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式第3章簡(jiǎn)單的輸入/輸出第4章C++的流程控制第5章函數(shù)第6章編譯預(yù)處理第7章數(shù)組第8章結(jié)構(gòu)體、共同體和枚舉類型第9章指針和引用第10章類和對(duì)象第11章類和對(duì)象的其他特性第12章繼承和派生第13章多態(tài)性第14章輸入/輸出流第15章模板第一部分面向過(guò)程的程序設(shè)計(jì)第二部分面向?qū)ο蟮某绦蛟O(shè)計(jì)第2章
數(shù)據(jù)類型、運(yùn)算符與表達(dá)式簡(jiǎn)單地說(shuō):程序=數(shù)據(jù)結(jié)構(gòu)+算法C++程序的構(gòu)成:(1)數(shù)據(jù)描述(2)執(zhí)行步驟(算法)[例1.1]一個(gè)簡(jiǎn)單的C++程序
#include<iostream.h>voidmain(void){
intnum,square;
cout<<"num=";
cin>>num;
square=num*num;
cout<<"num的平方為:"<<square
<<'\n';
}下面學(xué)習(xí):程序的各種語(yǔ)法元素……2.1保留字和標(biāo)識(shí)符2.1.1保留字(ReservedWordorKeyword)C++語(yǔ)言自身使用的,已有特殊含義和用途的英文單詞稱為保留字或關(guān)鍵字。如例1.1中的類型說(shuō)明符int,用于定義整型變量。用戶不能將其作為自己的變量名或函數(shù)名使用。2.1.2標(biāo)識(shí)符標(biāo)識(shí)符(identifier):有效字符序列,用來(lái)標(biāo)識(shí)用戶自己定義的變量名、符號(hào)常量名、函數(shù)名、數(shù)組名、類型名、文件名等命名規(guī)則:只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線最大長(zhǎng)度為1~247個(gè)字符。如:MyNameaverageGetDay
StudentName_aboveLotus_1_2_3
非法標(biāo)識(shí)符如:M.D.John$1233Dmax合法標(biāo)識(shí)符如:(有時(shí)用匈牙利命名法)例:#include<iostream.h>voidmain(void){
inta,b,sum;/*定義變量*/
a=123; b=456; sum=a+b;
cout<<"sumis"<<sum<<'\n';}保留字標(biāo)識(shí)符(變量名、函數(shù)名、對(duì)象名)常數(shù)2.2C++的基本數(shù)據(jù)類型數(shù)據(jù)類型基本類型導(dǎo)出類型整型實(shí)型字符型空類型(無(wú)值型)單精度型雙精度型數(shù)組類型指針類型結(jié)構(gòu)體類型共用體類型枚舉類型不論是變量還是常數(shù),在計(jì)算機(jī)內(nèi)部都要按照某種形式存放,存放形式由數(shù)據(jù)類型決定。類型標(biāo)識(shí)名稱占用字節(jié)數(shù)取值范圍char字符型1-128~127int
整型4-231~(231-1)float實(shí)型4-1038~1038double雙精度實(shí)型8-10308~10308以上基本類型數(shù)據(jù)占內(nèi)存字節(jié)不相同,因此數(shù)值范圍也不同,見(jiàn)表2-1及表2-2對(duì)基本類型,可以加修飾,如:
int
型int
占4字節(jié)short
int
占2字節(jié)long
int
占4字節(jié)int:signed
int
unsigned
int
shortint:signedshortint
unsignedshortintlongint:signedlongint
unsignedlongint最簡(jiǎn)形式:intunsigned[int]shortunsignedshortlongunsignedlong再加修飾,如:注意:int
型變量與unsignedint
型變量的區(qū)別32位范圍
int
型:-231~(補(bǔ)碼)(231-1)符號(hào)位32位范圍unsignedint
型:0~(232-1)
無(wú)符號(hào)位2.3常量和變量2.3.1常量常量:在程序運(yùn)行過(guò)程中,其值不能被改變的量#include<iostream.h>voidmain(void){
inta,b,sum;/*定義變量*/
a=123; b=456; sum=a+b;
cout<<"sumis"<<sum<<'\n';}常量(常數(shù))1.整型常量①十進(jìn)制整數(shù)123,-456②八進(jìn)制整數(shù)0123,-011③十六進(jìn)制整數(shù)0x123,-0xAB④長(zhǎng)整型與無(wú)符號(hào)型常數(shù)
12L,0234L,-0xABL
12U,0234U,0xABU2.實(shí)型常量(在內(nèi)存中以浮點(diǎn)形式存放)(均為十進(jìn)制,無(wú)數(shù)制區(qū)分)①小數(shù)形式:必須有小數(shù)點(diǎn)1.651..123②指數(shù)形式(也稱為科學(xué)表示法):如123000.0可寫(xiě)為1.23e50.00368可寫(xiě)為3.68E-3e或E前必須有數(shù)字,1000寫(xiě)為1e3不能寫(xiě)為e33.字符型常量用于表示ASCII字符,見(jiàn)附錄A。在內(nèi)存中存放對(duì)應(yīng)的ASCII碼值,如'a'的ASCII碼為97,則在內(nèi)存中用一個(gè)字節(jié)存放:在源程序中最基本的表示形式為:?jiǎn)我?hào)括起來(lái)的一個(gè)字符,如:'a''A'
'?'01100001對(duì)于不可打印的字符,可以用轉(zhuǎn)義字符形式表示。注意:'\n'
與'n'
的區(qū)別!!!轉(zhuǎn)義字符:以反斜杠“\”引導(dǎo)的特殊形式的非顯示字符或表示特定意義的字符常量'\n'
'\t'
'\b'
'\\'
'\ddd'
'\xhh'
見(jiàn)表2-3注意:字母A的ASCII碼是(65)10=(101)8=(41)16在程序中表示字母A,可以有三種方法:'A''\101''\x41''\n'表示一個(gè)控制字符,'n'表示一個(gè)字母。4.字符串常量---用雙引號(hào)括起來(lái)的字符序列(在內(nèi)存中存放字符序列的ASCII碼值,最后加一個(gè)結(jié)尾標(biāo)志)如:"Howdoyoudo."
"CHINA"
"a"字符串結(jié)束標(biāo)志符是:'\0'注意:"a"和'a'是不同的。'C''H''I''N''A''\0'…...符號(hào)常量:用標(biāo)識(shí)符代表一個(gè)常量,必須先定義后使用。例:定義標(biāo)識(shí)符常量#definePRICE30#definePI3.1425926#defineS"China"constfloatpi=3.142.3.2符號(hào)常量例2.1符號(hào)常量的使用#include<iostream.h>#definePI3.1425926voidmain(void){ doubleangle,radian;
cin>>angle; radian=angle*PI/180;//角度→弧度
cout<<radian<<'\n';}好處:(1)提高程序的可讀性。(2)程序中使用多處,一改全改。2.3.3變量變量:其值可以改變的量。變量名:一個(gè)變量的符號(hào)名,由標(biāo)識(shí)符構(gòu)成。一個(gè)變量占據(jù)內(nèi)存一定的存儲(chǔ)單元,在存儲(chǔ)單元中存放該變量的值。inta,b;//定義2個(gè)整型變量a,bunsignedu;//定義1個(gè)無(wú)符號(hào)整型變量ufloatf;//定義1個(gè)單精度實(shí)型變量doubled;//定義1個(gè)雙精度實(shí)型變量charc1,c2,c3;//定義3個(gè)字符型變量c1,c2,c3
1.定義變量注意:(1)區(qū)別大小寫(xiě):如sum與Sum為不同的變量名。(2)先定義后使用:分配單元、確定類型、語(yǔ)法檢查(3)在一個(gè)程序單元中不能重復(fù)定義。(4)關(guān)鍵字(保留字)不能作為標(biāo)識(shí)符。(5)最大長(zhǎng)度隨不同的C++語(yǔ)言系統(tǒng)而定:
VC++識(shí)別前247個(gè)字符,超過(guò)無(wú)效。(6)按義取名。2.變量賦初值給變量賦初值的方法有兩種:(1)變量定義后,用賦值語(yǔ)句賦初值。例如:inta,b;a=12;b=-24;charc1,c2;c1='A';c2='B';(2)在定義變量的同時(shí),直接賦初值(稱為變量的初始化)。例如:inta=12,b=-24;charc1='A',c2='B';2.4基本運(yùn)算符和表達(dá)式2.4.1C++運(yùn)算符及表達(dá)式簡(jiǎn)介完成對(duì)常量、變量作運(yùn)算的符號(hào)稱為運(yùn)算符。把參與運(yùn)算的對(duì)象稱為操作數(shù)。操作數(shù)可以是常量和變量等。各種運(yùn)算符見(jiàn)表2-4一元運(yùn)算符、二元運(yùn)算符、三元運(yùn)算符2.4.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式基本算術(shù)運(yùn)算符:+-*/%/整數(shù)運(yùn)算時(shí)為整除,結(jié)果為整數(shù)。%(模運(yùn)算或稱求余運(yùn)算)必須為整型數(shù)據(jù)。例:7/3結(jié)果?7.0/3結(jié)果?7%3結(jié)果?22.333333……1由運(yùn)算符和操作數(shù)構(gòu)成表達(dá)式:如:a+ba*(c+d)a*c+d2.4.3運(yùn)算優(yōu)先級(jí)和結(jié)合性優(yōu)先級(jí):對(duì)于同一表達(dá)式中出現(xiàn)多個(gè)運(yùn)算符,先算哪一個(gè)。結(jié)合性:在兩種運(yùn)算優(yōu)先級(jí)相同時(shí),“自左向右”還是“自右向左”運(yùn)算稱為結(jié)合性。如:算術(shù)運(yùn)算符的優(yōu)先級(jí)與結(jié)合性優(yōu)先級(jí):+-較低*/%較高結(jié)合性:"自左向右"例:表達(dá)式:6/3*2“自左向右”或“自右向左”運(yùn)算結(jié)果不同2.4.4關(guān)系運(yùn)算符和關(guān)系表達(dá)式“關(guān)系運(yùn)算”實(shí)際上就是“比較運(yùn)算”關(guān)系運(yùn)算符及其優(yōu)先次序<<=>>===!=小于小于等于大于大于等于恒等于不等于優(yōu)先級(jí)相同(較高)優(yōu)先級(jí)相同(較低)關(guān)系運(yùn)算符及其優(yōu)先級(jí)說(shuō)明a==b<c等效于a==(b<c)
c>a+b
等效于c>(a+b)
算術(shù)關(guān)系(
<,<=,>和>=
)關(guān)系(
==和!=
)
高低關(guān)系表達(dá)式1.用關(guān)系運(yùn)算符連接兩個(gè)表達(dá)式如:a>b,a+b>b+c,'a'<'b'等
inta=1,b=2,c=3;則表達(dá)式
a>b
的值為
0則表達(dá)式
b<a+c
的值為
12.關(guān)系表達(dá)式的值(運(yùn)算結(jié)果)是邏輯值:“真”或“假”1
表示真
0表示假關(guān)系運(yùn)算符的結(jié)合性:自左向右2.4.5邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符及其優(yōu)先級(jí):C++語(yǔ)言提供三種邏輯運(yùn)算符:
&&
邏輯“與”
||
邏輯“或”
!
邏輯“非”雙目運(yùn)算符即有兩個(gè)操作數(shù)如
a&&b單目運(yùn)算符,即只有一個(gè)操作數(shù)。如
!
a邏輯運(yùn)算的意義:a&&b當(dāng)a、b
均為真時(shí),表達(dá)式的值才為真a||b當(dāng)a、b
均為假時(shí),表達(dá)式的值才為假!a當(dāng)a為假,!a
為真;反之,當(dāng)a為真時(shí),!a
的值為假邏輯運(yùn)算“真值表”aba&&b
a||b!a00001010111001011110邏輯運(yùn)算符的優(yōu)先次序:
!(非)
算術(shù)
關(guān)系
&&
||
邏輯表達(dá)式:用邏輯運(yùn)算符將表達(dá)式連結(jié)起來(lái)
高
低(a>b)&&(x>y)a>b&&x>y(a==b)||(x==y)a==b||
x==y(!a)>b!a>b(2)C++編譯系統(tǒng)在給出邏輯運(yùn)算結(jié)果時(shí),
以數(shù)值1代表“真”以數(shù)值0
代表“假”(1)運(yùn)算時(shí),在判斷一個(gè)量是否為“真”時(shí),
以非0
代表“真”以0代表“假”例如:已知a=4 則!a的值是0已知a=0,b=5 則a&&b
的值是0 則a||b
的值是1 則!a&&b
的值是1注意:注意:在C++程序中,欲表示數(shù)學(xué)關(guān)系
0≤x≤10
,C++的邏輯表達(dá)式必須寫(xiě)成
0<=x&&x<=10,而不能寫(xiě)成
0<=x<=10。
為什么?2.4.6位運(yùn)算符和位運(yùn)算表達(dá)式
位運(yùn)算是對(duì)整型數(shù)據(jù)的運(yùn)算(可以操作到位),符號(hào)位參與運(yùn)算,主要用于系統(tǒng)程序設(shè)計(jì)。位運(yùn)算符共有6種:它們是:按位與(&)按位或(|)按位異或(^)按位取反(~)
左移(<<)
右移(>>)舉例:按位“與”例如:已知:chara=3,b=-2,c;
求:c=a&b;
此時(shí),可將a、b、c看成是一個(gè)字節(jié)長(zhǎng)度的整型數(shù)。a00000011&b11111110c00000010結(jié)果變量c的值為2。其它位運(yùn)算,自學(xué)。
2.4.7自增、自減運(yùn)算符和表達(dá)式使變量的值加1或減1的運(yùn)算如:++i,--i在使用i之前加或減1i++,i--在使用i之后加或減1inti=3,j;j=++i;運(yùn)算后i=
?,j=?inti=3,j;j=i++;運(yùn)算后i=
?,j=?注意:只能用于變量,不能用于常量和表達(dá)式,如:3++;(a+b)++;錯(cuò)誤i=
4,j=4i=
4,j=32.4.8賦值運(yùn)算符和賦值表達(dá)式1.賦值運(yùn)算符
“=”是賦值運(yùn)算符,賦值表達(dá)式格式:<變量><賦值運(yùn)算符><表達(dá)式>求解過(guò)程:求出<表達(dá)式>的值,賦給<變量>賦值表達(dá)式的值:為<變量>的值如:a=b+c<表達(dá)式>還可以是另一個(gè)賦值表達(dá)式,如:a=b=5a=5+(c=6)a=(b=4)+(c=6)如果a初值為2,表達(dá)式結(jié)果?結(jié)果為7如:a=33是最簡(jiǎn)單的表達(dá)式i=i+1它不同于“等于號(hào)”注意優(yōu)先級(jí)與結(jié)合性
b=c=d=a+5自右向左表達(dá)式結(jié)果分別為:?511102.復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符x*=y+8等價(jià)于x=x*(y+8)x%=3等價(jià)于x=x%3x/=9簡(jiǎn)寫(xiě)為:a+=3
a=a+3簡(jiǎn)寫(xiě)為:a-=b
a=a-b同理:賦值運(yùn)算符以及復(fù)合賦值運(yùn)算符的運(yùn)算優(yōu)先級(jí)比算術(shù)運(yùn)算符優(yōu)先級(jí)低,運(yùn)算結(jié)合性為自右向左。等價(jià)于x=x/9例:a+=a-=a*a如果a初值為2,表達(dá)式結(jié)果?
a+=a-=a*a結(jié)果a的值為-4表達(dá)式的結(jié)果也為-42.4.9逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符:,
逗號(hào)表達(dá)式:<表達(dá)式1>,<表達(dá)式2>,…...,<表達(dá)式n>如:a=3*5,a*4,a+5逗號(hào)運(yùn)算符優(yōu)先級(jí)最低,結(jié)合性:自左向右求解過(guò)程:依次計(jì)算<表達(dá)式1>、<表達(dá)式2>…...<表達(dá)式n>的值。逗號(hào)表達(dá)式的值:為<表達(dá)式n>的值運(yùn)算結(jié)束后:a的值為15整個(gè)表達(dá)式的值為20a=3*5,a*4x=(a=3,6*3)賦值表達(dá)式x=a=3,6*3逗號(hào)表達(dá)式例:如下表達(dá)式,運(yùn)算結(jié)束后a=?x=?表達(dá)式=?a=15,表達(dá)式=60a=3,x=18,表達(dá)式=18a=3,x=3,表達(dá)式=18逗號(hào)表達(dá)式2.4.10sizeof()運(yùn)算符和表達(dá)式
例inti;doublex;
sizeof(int)
sizeof(i)
sizeof(double)
sizeof(x)格式:
sizeof(類型標(biāo)識(shí)/變量名)功能:求某類型變量所占字節(jié)數(shù)結(jié)果均為4結(jié)果均為8例:求<表達(dá)式1>&&<表達(dá)式2>2.4.11邏輯表達(dá)式運(yùn)算優(yōu)化時(shí)的副作用從左向右掃描,計(jì)算<表達(dá)式1>,★當(dāng)<表達(dá)式1>為真時(shí),繼續(xù)計(jì)算<表達(dá)式2>★當(dāng)<表達(dá)式1>為假時(shí),即能確定整個(gè)表達(dá)式的值為假,則停止計(jì)算<表達(dá)式2>例:求
<表達(dá)式1>||<表達(dá)式2>從左向右掃描,計(jì)算<表達(dá)式1>,★當(dāng)<表達(dá)式1>為假時(shí),繼續(xù)計(jì)算<表達(dá)式2>★當(dāng)<表達(dá)式1>為真時(shí),即能確定整個(gè)表達(dá)式的值為真,則停止計(jì)算<表達(dá)式2>課堂練習(xí)intx,y,z,w;輸出結(jié)果?x=y=z=1;w=++x||++y&&++z;cout<<x<<'\t'<<y<<'\t'<<z<<'\n';cout<<w<<'\n';輸出:21112.5類型轉(zhuǎn)換2.5.1賦值時(shí)的自動(dòng)類型轉(zhuǎn)換如果賦值運(yùn)算符兩側(cè)的類型不一致,則遵循以下幾條原則進(jìn)行類型轉(zhuǎn)換后賦值。1.整型變量←實(shí)型數(shù)據(jù),舍棄小數(shù)(無(wú)四舍五入)。inti=3.96;i為32.實(shí)型變量←整型數(shù)據(jù),數(shù)值不變,有效數(shù)位增加。floatf=23;f為23.0doubled=23;d為23.03.整型數(shù)據(jù)之間相互賦值
整型數(shù)據(jù)類型有:[signed]charunsignedchar[signed]shortunsignedshort[signed]intunsignedint[signed]longunsignedlong各種類型的整型數(shù)占用的字節(jié)數(shù)是不同的,其二進(jìn)制位數(shù)有長(zhǎng)有短。它們之間相互賦值,其實(shí)就是它們內(nèi)存數(shù)據(jù)之間的賦值,分兩種情況。下面以int
型數(shù)據(jù)與char型數(shù)據(jù)之間的賦值進(jìn)行說(shuō)明:
將int
型變量賦給字符型變量時(shí)(長(zhǎng)→短)方法:截取低位賦值例:signedcharc1=250;c1真值為-6
250為int型常數(shù),32位:0000……000011111010
c1:11111010將字符型變量賦給int
型變量時(shí)(短→長(zhǎng)),又分成兩種情況:
①有符號(hào)的字符型數(shù)據(jù)→整型變量需符號(hào)位擴(kuò)展
例:charc1=15;inti;i=c1;
i為整型變量32位:0000……000000001111
c1(正號(hào)):00001111擴(kuò)展正號(hào),結(jié)果i的真值為1515為整型常數(shù)32位:0000……000000001111
charc1=250;inti;i=c1;
i為整型變量32位:1111……111111111010
250為整型常數(shù)32位:0000……000011111010
c1(負(fù)號(hào)):11111010
擴(kuò)展負(fù)號(hào),結(jié)果i的真值為-6②無(wú)符號(hào)的字符型數(shù)據(jù)→整型變量前面補(bǔ)0
unsignedcharc1=250;inti;i=c1;
i為整型變量32位:0000……000011111010
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物流行業(yè)設(shè)計(jì)師工作總結(jié)
- 全球石油庫(kù)存數(shù)據(jù)透明度報(bào)告(英文版)
- 美食店服務(wù)員的服務(wù)感悟
- 服裝定制行業(yè)裁板師培訓(xùn)心得
- 【八年級(jí)下冊(cè)歷史】單元測(cè)試 第五、六單元測(cè)試題
- 2024年設(shè)備監(jiān)理師考試題庫(kù)附參考答案【基礎(chǔ)題】
- 2024年計(jì)算機(jī)網(wǎng)絡(luò)實(shí)習(xí)心得體會(huì)
- 2024年給圖形做標(biāo)記教案
- 2024年煤礦安全質(zhì)量標(biāo)準(zhǔn)化標(biāo)準(zhǔn)
- 《橋小腦角占位》課件
- 高中數(shù)學(xué)家長(zhǎng)會(huì)課件:夯實(shí)數(shù)學(xué)基礎(chǔ)培養(yǎng)數(shù)學(xué)思維
- 2024年中國(guó)遠(yuǎn)洋海運(yùn)集團(tuán)招聘筆試參考題庫(kù)附帶答案詳解
- 2024年貴州能源集團(tuán)電力投資有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 生殖免疫學(xué)教案課件
- 沙糖桔互聯(lián)網(wǎng)創(chuàng)業(yè)計(jì)劃書(shū)
- 胃結(jié)石演示課件
- 書(shū)法知識(shí)之章法布局
- 2023乙型肝炎病毒標(biāo)志物臨床應(yīng)用專家共識(shí)(完整版)
- 23J916-1:住宅排氣道(一)
- 儲(chǔ)能項(xiàng)目用戶側(cè)投資測(cè)算表
- 月日上午王一凡把問(wèn)題當(dāng)做教育的資源 優(yōu)秀獎(jiǎng)
評(píng)論
0/150
提交評(píng)論