c++數(shù)據(jù)類型、運算符和語句_第1頁
c++數(shù)據(jù)類型、運算符和語句_第2頁
c++數(shù)據(jù)類型、運算符和語句_第3頁
c++數(shù)據(jù)類型、運算符和語句_第4頁
c++數(shù)據(jù)類型、運算符和語句_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

知識回顧面向?qū)ο蟮幕靖拍睢獙ο?、類,封裝、繼承、多態(tài)性計算機信息的表示和儲存:主要有數(shù)值(如整數(shù)、浮點數(shù))和字符的表示程序的開發(fā)的一般過程:編輯、編譯、連接、調(diào)試1第二章C++簡單程序設(shè)計C++語言程序設(shè)計2本章主要內(nèi)容C++語言概述基本數(shù)據(jù)類型和表達式數(shù)據(jù)的輸入與輸出算法的基本控制結(jié)構(gòu)自定義數(shù)據(jù)類型3C++語言的產(chǎn)生C++是從C語言發(fā)展演變而來的,首先是一個更好的C引入了類的機制,最初的C++被稱為“帶類的C”1983年正式取名為C++從1989年開始C++語言的標準化工作于1994年制定了ANSIC++標準草案于1998年11月被國際標準化組織(ISO)批準為國際標準,成為目前的C++C++語言概述4C++的特點全面兼容C它保持了C的簡潔、高效和接近匯編語言等特點對C的類型系統(tǒng)進行了改革和擴充C++也支持面向過程的程序設(shè)計,不是一個純正的面向?qū)ο蟮恼Z言支持面向?qū)ο蟮姆椒–++語言概述5C++程序?qū)嵗?1)#include<iostream>usingnamespacestd;intmain(){intmax(intx,inty);//max函數(shù)聲明

inta,b,c;a=10;b=20;c=max(a,b);//調(diào)用max函數(shù)

cout<<"大的數(shù)是"<<c<<endl;//輸出流語句

return0;}intmax(intx,inty){intz;z=(x>y)?x:y;returnz;}C++語言概述6C++程序?qū)嵗?2)#include<iostream>usingnamespacestd;classmycdata{private:

intx,y;

intuser_max(){intz;z=(x>y)?x:y;returnz;}

public:

voidgetdata()

{cin>>x;

cin>>y;}voidshowmax()

{

intm=user_max();

cout<<"大的數(shù)是"<<m<<endl;}};C++語言概述intmain(){mycdatac1,c2;c1.getdata();c2.getdata();c1.showmax();c2.showmax();return0;}7從類型分為:整數(shù):有符號、無符號浮點數(shù):單精度、雙精度、長雙精度字符:字符型和無符號字符型

要求:清楚它們占的內(nèi)存長度和能夠表示的范圍例:(1)shorta,b;a=32767;b=a+2;b=?基本數(shù)據(jù)類型和表達式基本數(shù)據(jù)類型的分類(2)unsignedka,kb; for(kb=5;kb>=0;kb--) {

ka=kb; }

cout<<ka<<endl;(3)浮點數(shù)與0的比較;8從內(nèi)存值是否可改變分為:常量:即數(shù)值型常量和字符型常量,整型、浮點型常量、字符和字符串變量:與常量對應常變量:又稱只讀變量,如constfloata=1.69;將常量放在一個以變量命名的內(nèi)存中,而floata=1.69則為變量的賦值?;緮?shù)據(jù)類型和表達式9數(shù)據(jù)類型

——常量與變量#include<iostream>usingnamespacestd;int

main(void){constintPRICE=30;

intnum,total;floatv,r,h;num=10;total=num*PRICE;

cout<<total<<endl;r=2.5;h=3.2;v=3.14159*r*r*h;

cout<<v<<endl;}常量變量變量先聲明后使用符號常量Page10基本數(shù)據(jù)類型和表達式10#include<iostream>usingnamespacestd;int

main(void){constintPRICE=30;

intnum,total;floatv,r,h;num=10;total=num*PRICE;

cout<<total<<endl;r=2.5;h=3.2;v=3.14159*r*r*h;

cout<<v<<endl;}數(shù)據(jù)類型

——整型數(shù)據(jù)整型常量shortunsignedshort2字節(jié)int、unsignedint

4字節(jié)longunsignedlong4字節(jié)整型變量整型變量聲明基本數(shù)據(jù)類型和表達式11#include<iostream>usingnamespacestd;int

main(void){constintPRICE=30;

intnum,total;floatv,r,h;num=10;total=num*PRICE;

cout<<total<<endl;r=2.5;h=3.2;v=3.14159*r*r*h;

cout<<v<<endl;}

數(shù)據(jù)類型

——實型數(shù)據(jù)實型常量float4字節(jié)

3.4×10±387位有效數(shù)字double8字節(jié)

1.7×10±30815位有效數(shù)字longdouble

8字節(jié)

1.7×10±30815位有效數(shù)字實型變量缺省為double型后綴F(或f)

為float型后綴L(或l)

為longdouble

型基本數(shù)據(jù)類型和表達式12

數(shù)據(jù)類型

——字符型數(shù)據(jù)(一)字符常量單引號括起來的一個字符,如:'a','D','?','$'字符變量用來存放字符常量

例:charc1,c2;

c1='a';

c2='A';字符數(shù)據(jù)在內(nèi)存中的存儲形式以ASCII碼存儲,占1字節(jié),用7個二進制位Page13基本數(shù)據(jù)類型和表達式13字符數(shù)據(jù)的使用方法字符數(shù)據(jù)和整型數(shù)據(jù)之間可以運算。字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值。字符串常量例:"CHINA"

"a"

'a'判斷是否正確:charc;

c="a";CHINA\0a

\0aPage14

數(shù)據(jù)類型

——字符型數(shù)據(jù)(二)基本數(shù)據(jù)類型和表達式14數(shù)據(jù)類型

——布爾型數(shù)據(jù)布爾型變量的說明:

例:boolflag;布爾型數(shù)據(jù)的取值:

只有false

和true

兩個值基本數(shù)據(jù)類型和表達式15數(shù)據(jù)類型

—混合運算時的類型轉(zhuǎn)換不同類型數(shù)據(jù)進行混合運算時,C++編譯器會自動進行類型轉(zhuǎn)換。為了避免不同的數(shù)據(jù)類型在運算中出現(xiàn)類型問題,應盡量使用同種類型數(shù)據(jù)??梢圆捎脧娭祁愋娃D(zhuǎn)換:例如:

floatc;

inta,b;

c=float(a)/float(b);或c=(float)a/(float)b;

基本數(shù)據(jù)類型和表達式16定義和聲明的定義和區(qū)別

inti;externinti;基本數(shù)據(jù)類型和表達式17變量的定義數(shù)據(jù)類型與“模子”變量標識符的命名規(guī)則:1.只能使用26個英文字母的大小寫和數(shù)字之外和下劃線,不能使用C++關(guān)鍵字,如for,if,case等不可作標識符,不能包括.;,”’+-之類的特殊符號;中間不能有空格。2.標識符中字母區(qū)分大小寫,但最好不要出現(xiàn)僅靠大小寫區(qū)分的標識符。3.第一個字符必須是字母或下劃線,不能以數(shù)字開頭。4.不要太長,能直觀反映類型、意義。18變量的存儲類型auto屬于一時性存儲,其存儲空間可以被若干變量多次覆蓋使用。register存放在通用寄存器中。extern在所有函數(shù)和程序段中都可引用。static在內(nèi)存中是以固定地址存放的,在整個程序運行期間都有效?;緮?shù)據(jù)類型和表達式19局部變量:自動變量和靜態(tài)局部變量全局變量:外部變量和靜態(tài)外部變量變量的作用域基本數(shù)據(jù)類型和表達式20#include<iostream>#include<string>usingnamespacestd;staticintj;voidfunc1(){ staticinti=0; i++;};voidfunc2(){ j=0; j++;};Intmain(){intk;for(k=0;k<5;k++)

{

func1();

func2();

}return0;}說出運行結(jié)果,即i和j的值靜態(tài)局部和全局變量的區(qū)別21算術(shù)運算符與算術(shù)表達式基本算術(shù)運算符

+-*/(若整數(shù)相除,結(jié)果取整)%(取余,操作數(shù)為整數(shù))優(yōu)先級與結(jié)合性先乘除,后加減,同級自左至右++,--(自增、自減)例:i++;--j;Page22基本數(shù)據(jù)類型和表達式22賦值運算符和賦值表達式

簡單的賦值運算符"="舉例

n=n+5表達式的類型

等號左邊對象的類型表達式的值

等號左邊對象被賦值后的值Page23基本數(shù)據(jù)類型和表達式23賦值運算符和賦值表達式

復合的賦值運算符有10種復合運算符:

+=,-=,*=,/=,%=,

<<=,>>=,&=,^=,|=例

a+=3

等價于a=a+3

x*=y+8

等價于x=x*(y+8)基本數(shù)據(jù)類型和表達式24賦值運算符和賦值表達式

——賦值表達式舉例a=5 表達式值為5a=b=c=5

表達式值為5,a,b,c均為5a=5+(c=6)

表達式值為11,a為11,c為6a=(b=4)+(c=6)

表達式值為10,a為10,b為4,c為6a=(b=10)/(c=2)

表達式值為5,a為5,b為10,c為2a+=a-=a*a相當于

a=a+(a=a-a*a)Page25基本數(shù)據(jù)類型和表達式25逗號運算和逗號表達式格式表達式1,表達式2求解順序及結(jié)果先求解1,再求解2,最終結(jié)果為表達式2的值例a=3*5,a*4

最終結(jié)果為60Page26基本數(shù)據(jù)類型和表達式26關(guān)系運算與關(guān)系表達式關(guān)系運算是比較簡單的一種邏輯運算,優(yōu)先次序為:

<<=>>===!=

優(yōu)先級相同(高)優(yōu)先級相同(低)關(guān)系表達式是一種最簡單的邏輯表達式其結(jié)果類型為bool,值只能為true

或false。例如:a>b,c<=a+b,x+y==3基本數(shù)據(jù)類型和表達式27邏輯運算與邏輯表達式邏輯運算符

!(非)&&(與)||(或)

優(yōu)先次序:高→低邏輯表達式

例如:(a>b)&&(x>y)

其結(jié)果類型為bool,值只能為true

或false基本數(shù)據(jù)類型和表達式28條件運算符與條件表達式一般形式表達式1?表達式2:表達式3表達式1必須是bool

類型執(zhí)行順序先求解表達式1,若表達式1的值為true,則求解表達式2,表達式2的值為最終結(jié)果若表達式1的值為false,則求解表達式3,表達式3的值為最終結(jié)果例:x=a>b?a:b;基本數(shù)據(jù)類型和表達式29條件運算符與條件表達式注意:條件運算符優(yōu)級高于賦值運算符,低于邏輯運算符表達式2、3的類型可以不同,條件表達式的最終類型為2和3中較高的類型。例:x=a>b?a:b;基本數(shù)據(jù)類型和表達式①②30位運算——按位與(&)運算規(guī)則將兩個運算量的每一個位進行邏輯與操作舉例:計算3&53:000000115:(&)000001013&5:00000001用途:將某一位置0,其它位不變。例如:

將char

型變量a

的最低位置

0:

a=a&0376;取指定位。

例如:有charc;inta;

取出a的低字節(jié),置于

c中:c=a&0377;基本數(shù)據(jù)類型和表達式31位運算——按位或(|)運算規(guī)則將兩個運算量的每一個位進行邏輯或操作舉例:計算3|53:000000115:(|)000001013|5:00000111用途:將某些位置1,其它位不變。

例如:將int

型變量a

的低字節(jié)置

1

a=a|0xff;基本數(shù)據(jù)類型和表達式32位運算——按位異或(^)運算規(guī)則兩個操作數(shù)進行異或:

若對應位相同,則結(jié)果該位為0,

若對應位不同,則結(jié)果該位為1,舉例:計算071^052071: 00111001052:(^)00101010071^052: 00010011基本數(shù)據(jù)類型和表達式33位運算——按位異或(^)用途:使特定位翻轉(zhuǎn)(與0異或保持原值,與1異或取反)例如:要使01111010

低四位翻轉(zhuǎn):

01111010(^) 00001111 01110101基本數(shù)據(jù)類型和表達式34位運算——取反(~)單目運算符,對一個二進制數(shù)按位取反。例:025:0000000000010101~025:1111111111101010基本數(shù)據(jù)類型和表達式35位運算——移位左移運算(<<)左移后,低位補0,高位舍棄。右移運算(>>)右移后,低位:舍棄

高位:無符號數(shù):補0

有符號數(shù):補“符號位”基本數(shù)據(jù)類型和表達式36運算符優(yōu)先級括號++,--,sizeof*,/,%+,-==,!=位運算&&||?:賦值運算逗號運算低高基本數(shù)據(jù)類型和表達式37混合運算時數(shù)據(jù)類型的轉(zhuǎn)換

——隱含轉(zhuǎn)換一些二元運算符(算術(shù)運算符、關(guān)系運算符、邏輯運算符、位運算符和賦值運算符)要求兩個操作數(shù)的類型一致。在算術(shù)運算和關(guān)系運算中如果參與運算的操作數(shù)類型不一致,編譯系統(tǒng)會自動對數(shù)據(jù)進行轉(zhuǎn)換(即隱含轉(zhuǎn)換),基本原則是將低類型數(shù)據(jù)轉(zhuǎn)換為高類型數(shù)據(jù)。

charshortintunsignedlongunsignedlongfloatdouble

低高基本數(shù)據(jù)類型和表達式38混合運算時數(shù)據(jù)類型的轉(zhuǎn)換

——隱含轉(zhuǎn)換當參與運算的操作數(shù)必須是bool型時,如果操作數(shù)是其它類型,編譯系統(tǒng)會自動將非0數(shù)據(jù)轉(zhuǎn)換為true,0轉(zhuǎn)換為false。位運算的操作數(shù)必須是整數(shù),當二元位運算的操作數(shù)是不同類型的整數(shù)時,也會自動進行類型轉(zhuǎn)換,賦值運算要求左值與右值的類型相同,若類型不同,編譯系統(tǒng)會自動將右值轉(zhuǎn)換為左值的類型?;緮?shù)據(jù)類型和表達式39混合運算時數(shù)據(jù)類型的轉(zhuǎn)換

——強制類型轉(zhuǎn)換語法形式:類型說明符(表達式)或(類型說明符)表達式強制類型轉(zhuǎn)換的作用是將表達式的結(jié)果類型轉(zhuǎn)換為類型說明符所指定的類型?;緮?shù)據(jù)類型和表達式40語句聲明語句表達式語句選擇語句循環(huán)語句跳轉(zhuǎn)語句復合語句標號語句

41表達式語句格式:表達式;表達式語句與表達式的區(qū)別:表達式可以包含在其它表達式中,而語句不可。例:if((a=b)>0)t=a;不可寫為:if((a=b;)>0)t=a;語句42復合語句將多個語句用一對大括號包圍,便構(gòu)成一個復合語句例如{ sum=sum+i; i++;} 語句43簡單的輸入、輸出向標準輸出設(shè)備(顯示器)輸出例:intx;

cout<<“x=“<<x;從標準輸入設(shè)備(鍵盤)輸入例:intx;

cin>>x;44順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)算法的基本控制結(jié)構(gòu)45for語句語法形式for(表達式1;表達式2;表達式3)語句

循環(huán)前先求解為true時執(zhí)行循環(huán)體每次執(zhí)行完循環(huán)體后求解算法的基本控制結(jié)構(gòu)46while語句形式while(表達式)語句

可以是復合語句,其中必須含有改變條件表達式值的語句。執(zhí)行順序先判斷表達式的值,為true時,再執(zhí)行語句。算法的基本控制結(jié)構(gòu)47do-while語句一般形式do語句while(表達式)可以是復合語句,其中必須含有改變條件表達式值的語句。執(zhí)行順序先執(zhí)行循環(huán)體語句,后判斷條件。

表達式為true時,繼續(xù)執(zhí)行循環(huán)體與while語句的比較:While語句執(zhí)行順序

先判斷表達式的值,為true時,再執(zhí)行語句算法的基本控制結(jié)構(gòu)48對比下列程序:程序2:inti=1;intsum=0;while(i<=100){if(i%3!=0)sum+=i;i++;}算法的基本控制結(jié)構(gòu)程序3:inti=1;intsum=0;do{if(i%3!=0)sum+=i;i++;}while(i<=100);49程序1:inti;intsum=0;for(i=1;i<=100;i++){if(i%3!=0)sum+=i;}49循環(huán)結(jié)構(gòu)與選擇結(jié)構(gòu)相互嵌套#include<iostream>usingnamespacestd;intmain(){

intn;

for(n=100;n<=200;n++) {if(n%3!=0)

cout<<n; }

return0;}算法的基本控制結(jié)構(gòu)50讀入一系列整數(shù),統(tǒng)計出正整數(shù)個數(shù)i和負整數(shù)個數(shù)j,讀入0則結(jié)束。算法的基本控制結(jié)構(gòu)51分析:需要讀入一系列整數(shù),但是整數(shù)個數(shù)不定,要在每次讀入之后進行判斷,因此使用while循環(huán)最為合適。循環(huán)控制條件應該是n!=0。由于要判斷數(shù)的正負并分別進行統(tǒng)計,所以需要在循環(huán)內(nèi)部嵌入選擇結(jié)構(gòu)。算法的基本控制結(jié)構(gòu)52#include<iostream>usingnamespacestd;intmain(){inti=0,j=0,n;

cout<<"請輸入若干整數(shù)(輸入0則結(jié)束):";

cin>>n;while(n!=0){if(n>0)i++;elsej++;

cin>>n;}

cout<<"正整數(shù)個數(shù):"<<i<<"負整數(shù)個數(shù):"<<j<<endl;return0;}5353break和continue語句break語句使程序從循環(huán)體和switch語句內(nèi)跳出,繼續(xù)執(zhí)行邏輯上的下一條語句。不宜用在別處。continue語句結(jié)束本次循環(huán),接著判斷是否執(zhí)行下一次循環(huán)。算法的基本控制結(jié)構(gòu)54if(表達式)語句例:if(x>y)cout<<x;if(表達式)語句1else語句2例:if(x>y)cout<<x;elsecout<<y;if(表達式1)語句1

elseif(表達式2)語句2

elseif(表達式3)語句3

else語句n

if語句

——三種形式算法的基本控制結(jié)構(gòu)55一般形式if()if()語句1else語句2elseif()語句3else語句4注意語句1、2、3、4可以是復合語句,每層的if與else配對,或用{}來確定層次關(guān)系。if語句

——嵌套算法的基本控制結(jié)構(gòu)56一般形式switch(表達式){case常量表達式1:語句1case常量表達式2:語句2┆case常量表達式n:語句ndefault:語句n+1}switch語句執(zhí)行順序以case中的常量表達式值為入口標號,由此開始順序執(zhí)行。因此,每個case分支最后應該加break語句。每個

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論