版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
目錄第1章C++概述第2章數(shù)據(jù)類型、運算符和表達(dá)式第3章簡單的輸入/輸出第4章C++的流程控制第5章函數(shù)第6章編譯預(yù)處理第7章數(shù)組第8章結(jié)構(gòu)體、共同體和枚舉類型第9章指針和引用第10章類和對象第11章類和對象的其他特性第12章繼承和派生第13章多態(tài)性第14章輸入/輸出流第15章模板第一部分面向過程的程序設(shè)計第二部分面向?qū)ο蟮某绦蛟O(shè)計第2章
數(shù)據(jù)類型、運算符與表達(dá)式簡單地說:程序=數(shù)據(jù)結(jié)構(gòu)+算法C++程序的構(gòu)成:(1)數(shù)據(jù)描述(2)執(zhí)行步驟(算法)[例1.1]一個簡單的C++程序
#include<iostream.h>voidmain(void){
intnum,square;
cout<<"num=";
cin>>num;
square=num*num;
cout<<"num的平方為:"<<square
<<'\n';
}下面學(xué)習(xí):程序的各種語法元素……2.1保留字和標(biāo)識符2.1.1保留字(ReservedWordorKeyword)C++語言自身使用的,已有特殊含義和用途的英文單詞稱為保留字或關(guān)鍵字。如例1.1中的類型說明符int,用于定義整型變量。用戶不能將其作為自己的變量名或函數(shù)名使用。2.1.2標(biāo)識符標(biāo)識符(identifier):有效字符序列,用來標(biāo)識用戶自己定義的變量名、符號常量名、函數(shù)名、數(shù)組名、類型名、文件名等命名規(guī)則:只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線最大長度為1~247個字符。如:MyNameaverageGetDay
StudentName_aboveLotus_1_2_3
非法標(biāo)識符如:M.D.John$1233Dmax合法標(biāo)識符如:(有時用匈牙利命名法)例:#include<iostream.h>voidmain(void){
inta,b,sum;/*定義變量*/
a=123; b=456; sum=a+b;
cout<<"sumis"<<sum<<'\n';}保留字標(biāo)識符(變量名、函數(shù)名、對象名)常數(shù)2.2C++的基本數(shù)據(jù)類型數(shù)據(jù)類型基本類型導(dǎo)出類型整型實型字符型空類型(無值型)單精度型雙精度型數(shù)組類型指針類型結(jié)構(gòu)體類型共用體類型枚舉類型不論是變量還是常數(shù),在計算機(jī)內(nèi)部都要按照某種形式存放,存放形式由數(shù)據(jù)類型決定。類型標(biāo)識名稱占用字節(jié)數(shù)取值范圍char字符型1-128~127int
整型4-231~(231-1)float實型4-1038~1038double雙精度實型8-10308~10308以上基本類型數(shù)據(jù)占內(nèi)存字節(jié)不相同,因此數(shù)值范圍也不同,見表2-1及表2-2對基本類型,可以加修飾,如:
int
型int
占4字節(jié)short
int
占2字節(jié)long
int
占4字節(jié)int:signed
int
unsigned
int
shortint:signedshortint
unsignedshortintlongint:signedlongint
unsignedlongint最簡形式:intunsigned[int]shortunsignedshortlongunsignedlong再加修飾,如:注意:int
型變量與unsignedint
型變量的區(qū)別32位范圍
int
型:-231~(補(bǔ)碼)(231-1)符號位32位范圍unsignedint
型:0~(232-1)
無符號位2.3常量和變量2.3.1常量常量:在程序運行過程中,其值不能被改變的量#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④長整型與無符號型常數(shù)
12L,0234L,-0xABL
12U,0234U,0xABU2.實型常量(在內(nèi)存中以浮點形式存放)(均為十進(jìn)制,無數(shù)制區(qū)分)①小數(shù)形式:必須有小數(shù)點1.651..123②指數(shù)形式(也稱為科學(xué)表示法):如123000.0可寫為1.23e50.00368可寫為3.68E-3e或E前必須有數(shù)字,1000寫為1e3不能寫為e33.字符型常量用于表示ASCII字符,見附錄A。在內(nèi)存中存放對應(yīng)的ASCII碼值,如'a'的ASCII碼為97,則在內(nèi)存中用一個字節(jié)存放:在源程序中最基本的表示形式為:單引號括起來的一個字符,如:'a''A'
'?'01100001對于不可打印的字符,可以用轉(zhuǎn)義字符形式表示。注意:'\n'
與'n'
的區(qū)別!!!轉(zhuǎn)義字符:以反斜杠“\”引導(dǎo)的特殊形式的非顯示字符或表示特定意義的字符常量'\n'
'\t'
'\b'
'\\'
'\ddd'
'\xhh'
見表2-3注意:字母A的ASCII碼是(65)10=(101)8=(41)16在程序中表示字母A,可以有三種方法:'A''\101''\x41''\n'表示一個控制字符,'n'表示一個字母。4.字符串常量---用雙引號括起來的字符序列(在內(nèi)存中存放字符序列的ASCII碼值,最后加一個結(jié)尾標(biāo)志)如:"Howdoyoudo."
"CHINA"
"a"字符串結(jié)束標(biāo)志符是:'\0'注意:"a"和'a'是不同的。'C''H''I''N''A''\0'…...符號常量:用標(biāo)識符代表一個常量,必須先定義后使用。例:定義標(biāo)識符常量#definePRICE30#definePI3.1425926#defineS"China"constfloatpi=3.142.3.2符號常量例2.1符號常量的使用#include<iostream.h>#definePI3.1425926voidmain(void){ doubleangle,radian;
cin>>angle; radian=angle*PI/180;//角度→弧度
cout<<radian<<'\n';}好處:(1)提高程序的可讀性。(2)程序中使用多處,一改全改。2.3.3變量變量:其值可以改變的量。變量名:一個變量的符號名,由標(biāo)識符構(gòu)成。一個變量占據(jù)內(nèi)存一定的存儲單元,在存儲單元中存放該變量的值。inta,b;//定義2個整型變量a,bunsignedu;//定義1個無符號整型變量ufloatf;//定義1個單精度實型變量doubled;//定義1個雙精度實型變量charc1,c2,c3;//定義3個字符型變量c1,c2,c3
1.定義變量注意:(1)區(qū)別大小寫:如sum與Sum為不同的變量名。(2)先定義后使用:分配單元、確定類型、語法檢查(3)在一個程序單元中不能重復(fù)定義。(4)關(guān)鍵字(保留字)不能作為標(biāo)識符。(5)最大長度隨不同的C++語言系統(tǒng)而定:
VC++識別前247個字符,超過無效。(6)按義取名。2.變量賦初值給變量賦初值的方法有兩種:(1)變量定義后,用賦值語句賦初值。例如:inta,b;a=12;b=-24;charc1,c2;c1='A';c2='B';(2)在定義變量的同時,直接賦初值(稱為變量的初始化)。例如:inta=12,b=-24;charc1='A',c2='B';2.4基本運算符和表達(dá)式2.4.1C++運算符及表達(dá)式簡介完成對常量、變量作運算的符號稱為運算符。把參與運算的對象稱為操作數(shù)。操作數(shù)可以是常量和變量等。各種運算符見表2-4一元運算符、二元運算符、三元運算符2.4.2算術(shù)運算符和算術(shù)表達(dá)式基本算術(shù)運算符:+-*/%/整數(shù)運算時為整除,結(jié)果為整數(shù)。%(模運算或稱求余運算)必須為整型數(shù)據(jù)。例:7/3結(jié)果?7.0/3結(jié)果?7%3結(jié)果?22.333333……1由運算符和操作數(shù)構(gòu)成表達(dá)式:如:a+ba*(c+d)a*c+d2.4.3運算優(yōu)先級和結(jié)合性優(yōu)先級:對于同一表達(dá)式中出現(xiàn)多個運算符,先算哪一個。結(jié)合性:在兩種運算優(yōu)先級相同時,“自左向右”還是“自右向左”運算稱為結(jié)合性。如:算術(shù)運算符的優(yōu)先級與結(jié)合性優(yōu)先級:+-較低*/%較高結(jié)合性:"自左向右"例:表達(dá)式:6/3*2“自左向右”或“自右向左”運算結(jié)果不同2.4.4關(guān)系運算符和關(guān)系表達(dá)式“關(guān)系運算”實際上就是“比較運算”關(guān)系運算符及其優(yōu)先次序<<=>>===!=小于小于等于大于大于等于恒等于不等于優(yōu)先級相同(較高)優(yōu)先級相同(較低)關(guān)系運算符及其優(yōu)先級說明a==b<c等效于a==(b<c)
c>a+b
等效于c>(a+b)
算術(shù)關(guān)系(
<,<=,>和>=
)關(guān)系(
==和!=
)
高低關(guān)系表達(dá)式1.用關(guān)系運算符連接兩個表達(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á)式的值(運算結(jié)果)是邏輯值:“真”或“假”1
表示真
0表示假關(guān)系運算符的結(jié)合性:自左向右2.4.5邏輯運算符和邏輯表達(dá)式邏輯運算符及其優(yōu)先級:C++語言提供三種邏輯運算符:
&&
邏輯“與”
||
邏輯“或”
!
邏輯“非”雙目運算符即有兩個操作數(shù)如
a&&b單目運算符,即只有一個操作數(shù)。如
!
a邏輯運算的意義:a&&b當(dāng)a、b
均為真時,表達(dá)式的值才為真a||b當(dāng)a、b
均為假時,表達(dá)式的值才為假!a當(dāng)a為假,!a
為真;反之,當(dāng)a為真時,!a
的值為假邏輯運算“真值表”aba&&b
a||b!a00001010111001011110邏輯運算符的優(yōu)先次序:
!(非)
算術(shù)
關(guān)系
&&
||
邏輯表達(dá)式:用邏輯運算符將表達(dá)式連結(jié)起來
高
低(a>b)&&(x>y)a>b&&x>y(a==b)||(x==y)a==b||
x==y(!a)>b!a>b(2)C++編譯系統(tǒng)在給出邏輯運算結(jié)果時,
以數(shù)值1代表“真”以數(shù)值0
代表“假”(1)運算時,在判斷一個量是否為“真”時,
以非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á)式必須寫成
0<=x&&x<=10,而不能寫成
0<=x<=10。
為什么?2.4.6位運算符和位運算表達(dá)式
位運算是對整型數(shù)據(jù)的運算(可以操作到位),符號位參與運算,主要用于系統(tǒng)程序設(shè)計。位運算符共有6種:它們是:按位與(&)按位或(|)按位異或(^)按位取反(~)
左移(<<)
右移(>>)舉例:按位“與”例如:已知:chara=3,b=-2,c;
求:c=a&b;
此時,可將a、b、c看成是一個字節(jié)長度的整型數(shù)。a00000011&b11111110c00000010結(jié)果變量c的值為2。其它位運算,自學(xué)。
2.4.7自增、自減運算符和表達(dá)式使變量的值加1或減1的運算如:++i,--i在使用i之前加或減1i++,i--在使用i之后加或減1inti=3,j;j=++i;運算后i=
?,j=?inti=3,j;j=i++;運算后i=
?,j=?注意:只能用于變量,不能用于常量和表達(dá)式,如:3++;(a+b)++;錯誤i=
4,j=4i=
4,j=32.4.8賦值運算符和賦值表達(dá)式1.賦值運算符
“=”是賦值運算符,賦值表達(dá)式格式:<變量><賦值運算符><表達(dá)式>求解過程:求出<表達(dá)式>的值,賦給<變量>賦值表達(dá)式的值:為<變量>的值如:a=b+c<表達(dá)式>還可以是另一個賦值表達(dá)式,如:a=b=5a=5+(c=6)a=(b=4)+(c=6)如果a初值為2,表達(dá)式結(jié)果?結(jié)果為7如:a=33是最簡單的表達(dá)式i=i+1它不同于“等于號”注意優(yōu)先級與結(jié)合性
b=c=d=a+5自右向左表達(dá)式結(jié)果分別為:?511102.復(fù)合賦值運算符復(fù)合賦值運算符x*=y+8等價于x=x*(y+8)x%=3等價于x=x%3x/=9簡寫為:a+=3
a=a+3簡寫為:a-=b
a=a-b同理:賦值運算符以及復(fù)合賦值運算符的運算優(yōu)先級比算術(shù)運算符優(yōu)先級低,運算結(jié)合性為自右向左。等價于x=x/9例:a+=a-=a*a如果a初值為2,表達(dá)式結(jié)果?
a+=a-=a*a結(jié)果a的值為-4表達(dá)式的結(jié)果也為-42.4.9逗號運算符和逗號表達(dá)式逗號運算符:,
逗號表達(dá)式:<表達(dá)式1>,<表達(dá)式2>,…...,<表達(dá)式n>如:a=3*5,a*4,a+5逗號運算符優(yōu)先級最低,結(jié)合性:自左向右求解過程:依次計算<表達(dá)式1>、<表達(dá)式2>…...<表達(dá)式n>的值。逗號表達(dá)式的值:為<表達(dá)式n>的值運算結(jié)束后:a的值為15整個表達(dá)式的值為20a=3*5,a*4x=(a=3,6*3)賦值表達(dá)式x=a=3,6*3逗號表達(dá)式例:如下表達(dá)式,運算結(jié)束后a=?x=?表達(dá)式=?a=15,表達(dá)式=60a=3,x=18,表達(dá)式=18a=3,x=3,表達(dá)式=18逗號表達(dá)式2.4.10sizeof()運算符和表達(dá)式
例inti;doublex;
sizeof(int)
sizeof(i)
sizeof(double)
sizeof(x)格式:
sizeof(類型標(biāo)識/變量名)功能:求某類型變量所占字節(jié)數(shù)結(jié)果均為4結(jié)果均為8例:求<表達(dá)式1>&&<表達(dá)式2>2.4.11邏輯表達(dá)式運算優(yōu)化時的副作用從左向右掃描,計算<表達(dá)式1>,★當(dāng)<表達(dá)式1>為真時,繼續(xù)計算<表達(dá)式2>★當(dāng)<表達(dá)式1>為假時,即能確定整個表達(dá)式的值為假,則停止計算<表達(dá)式2>例:求
<表達(dá)式1>||<表達(dá)式2>從左向右掃描,計算<表達(dá)式1>,★當(dāng)<表達(dá)式1>為假時,繼續(xù)計算<表達(dá)式2>★當(dāng)<表達(dá)式1>為真時,即能確定整個表達(dá)式的值為真,則停止計算<表達(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賦值時的自動類型轉(zhuǎn)換如果賦值運算符兩側(cè)的類型不一致,則遵循以下幾條原則進(jìn)行類型轉(zhuǎn)換后賦值。1.整型變量←實型數(shù)據(jù),舍棄小數(shù)(無四舍五入)。inti=3.96;i為32.實型變量←整型數(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ù)有長有短。它們之間相互賦值,其實就是它們內(nèi)存數(shù)據(jù)之間的賦值,分兩種情況。下面以int
型數(shù)據(jù)與char型數(shù)據(jù)之間的賦值進(jìn)行說明:
將int
型變量賦給字符型變量時(長→短)方法:截取低位賦值例:signedcharc1=250;c1真值為-6
250為int型常數(shù),32位:0000……000011111010
c1:11111010將字符型變量賦給int
型變量時(短→長),又分成兩種情況:
①有符號的字符型數(shù)據(jù)→整型變量需符號位擴(kuò)展
例:charc1=15;inti;i=c1;
i為整型變量32位:0000……000000001111
c1(正號):00001111擴(kuò)展正號,結(jié)果i的真值為1515為整型常數(shù)32位:0000……000000001111
charc1=250;inti;i=c1;
i為整型變量32位:1111……111111111010
250為整型常數(shù)32位:0000……000011111010
c1(負(fù)號):11111010
擴(kuò)展負(fù)號,結(jié)果i的真值為-6②無符號的字符型數(shù)據(jù)→整型變量前面補(bǔ)0
unsignedcharc1=250;inti;i=c1;
i為整型變量32位:0000……000011111010
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年連云港客運從業(yè)資格證考試題
- 2025屆高考政治一輪復(fù)習(xí)專練:民事權(quán)利與義務(wù)(含解析)
- 人教部編版二年級語文上冊識字4《田家四季歌》精美課件
- 吉首大學(xué)《民族器樂合奏》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉首大學(xué)《法學(xué)概論A》2021-2022學(xué)年期末試卷
- 《機(jī)械設(shè)計》試題2
- 吉林藝術(shù)學(xué)院《造型基礎(chǔ)1》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林藝術(shù)學(xué)院《數(shù)字動畫導(dǎo)論》2021-2022學(xué)年第一學(xué)期期末試卷
- 餐飲合作分租協(xié)議書范本范本
- 2024年供水檢漏服務(wù)合同范本
- 物業(yè)保潔員勞務(wù)合同2篇
- 國有土地上房屋裝修備案申請表
- 二年級上冊音樂課件《小紅帽》(人音版)
- 2023年中級經(jīng)濟(jì)師考試真題及答案
- 重慶建筑工程資料全套表格年
- GB/T 23221-2008烤煙栽培技術(shù)規(guī)程
- GB/T 18284-2000快速響應(yīng)矩陣碼
- GB/T 16900-2008圖形符號表示規(guī)則總則
- 遼寧省遼南協(xié)作校2022-2023學(xué)年高二上學(xué)期期末考試語文答案 Word版含解析
- 中職英語統(tǒng)考復(fù)習(xí)講課教案
- DB11-T 1832.10-2022建筑工程施工工藝規(guī)程 第10部分:裝飾裝修工程
評論
0/150
提交評論