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

下載本文檔

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

文檔簡介

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

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

ka=kb; }

cout<<ka<<endl;(3)浮點(diǎn)數(shù)與0的比較;8從內(nèi)存值是否可改變分為:常量:即數(shù)值型常量和字符型常量,整型、浮點(diǎn)型常量、字符和字符串變量:與常量對應(yīng)常變量:又稱只讀變量,如constfloata=1.69;將常量放在一個(gè)以變量命名的內(nèi)存中,而floata=1.69則為變量的賦值?;緮?shù)據(jù)類型和表達(dá)式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;}常量變量變量先聲明后使用符號(hào)常量Page10基本數(shù)據(jù)類型和表達(dá)式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ù)類型和表達(dá)式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í)型數(shù)據(jù)實(shí)型常量float4字節(jié)

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

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

8字節(jié)

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

為float型后綴L(或l)

為longdouble

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

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

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

例:charc1,c2;

c1='a';

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

"a"

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

c="a";CHINA\0a

\0aPage14

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

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

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

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

只有false

和true

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

—混合運(yùn)算時(shí)的類型轉(zhuǎn)換不同類型數(shù)據(jù)進(jìn)行混合運(yùn)算時(shí),C++編譯器會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換。為了避免不同的數(shù)據(jù)類型在運(yùn)算中出現(xiàn)類型問題,應(yīng)盡量使用同種類型數(shù)據(jù)??梢圆捎脧?qiáng)制類型轉(zhuǎn)換:例如:

floatc;

inta,b;

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

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

inti;externinti;基本數(shù)據(jù)類型和表達(dá)式17變量的定義數(shù)據(jù)類型與“模子”變量標(biāo)識(shí)符的命名規(guī)則:1.只能使用26個(gè)英文字母的大小寫和數(shù)字之外和下劃線,不能使用C++關(guān)鍵字,如for,if,case等不可作標(biāo)識(shí)符,不能包括.;,”’+-之類的特殊符號(hào);中間不能有空格。2.標(biāo)識(shí)符中字母區(qū)分大小寫,但最好不要出現(xiàn)僅靠大小寫區(qū)分的標(biāo)識(shí)符。3.第一個(gè)字符必須是字母或下劃線,不能以數(shù)字開頭。4.不要太長,能直觀反映類型、意義。18變量的存儲(chǔ)類型auto屬于一時(shí)性存儲(chǔ),其存儲(chǔ)空間可以被若干變量多次覆蓋使用。register存放在通用寄存器中。extern在所有函數(shù)和程序段中都可引用。static在內(nèi)存中是以固定地址存放的,在整個(gè)程序運(yùn)行期間都有效。基本數(shù)據(jù)類型和表達(dá)式19局部變量:自動(dòng)變量和靜態(tài)局部變量全局變量:外部變量和靜態(tài)外部變量變量的作用域基本數(shù)據(jù)類型和表達(dá)式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;}說出運(yùn)行結(jié)果,即i和j的值靜態(tài)局部和全局變量的區(qū)別21算術(shù)運(yùn)算符與算術(shù)表達(dá)式基本算術(shù)運(yùn)算符

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

簡單的賦值運(yùn)算符"="舉例

n=n+5表達(dá)式的類型

等號(hào)左邊對象的類型表達(dá)式的值

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

復(fù)合的賦值運(yùn)算符有10種復(fù)合運(yùn)算符:

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

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

a+=3

等價(jià)于a=a+3

x*=y+8

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

——賦值表達(dá)式舉例a=5 表達(dá)式值為5a=b=c=5

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

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

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

表達(dá)式值為5,a為5,b為10,c為2a+=a-=a*a相當(dāng)于

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

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

<<=>>===!=

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

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

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

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

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

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

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

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

將char

型變量a

的最低位置

0:

a=a&0376;取指定位。

例如:有charc;inta;

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

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

例如:將int

型變量a

的低字節(jié)置

1

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

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

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

低四位翻轉(zhuǎn):

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

高位:無符號(hào)數(shù):補(bǔ)0

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

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

charshortintunsignedlongunsignedlongfloatdouble

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

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

——強(qiáng)制類型轉(zhuǎn)換語法形式:類型說明符(表達(dá)式)或(類型說明符)表達(dá)式強(qiáng)制類型轉(zhuǎn)換的作用是將表達(dá)式的結(jié)果類型轉(zhuǎn)換為類型說明符所指定的類型。基本數(shù)據(jù)類型和表達(dá)式40語句聲明語句表達(dá)式語句選擇語句循環(huán)語句跳轉(zhuǎn)語句復(fù)合語句標(biāo)號(hào)語句

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

cout<<“x=“<<x;從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)輸入例:intx;

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

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

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

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

先判斷表達(dá)式的值,為true時(shí),再執(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)計(jì)出正整數(shù)個(gè)數(shù)i和負(fù)整數(shù)個(gè)數(shù)j,讀入0則結(jié)束。算法的基本控制結(jié)構(gòu)51分析:需要讀入一系列整數(shù),但是整數(shù)個(gè)數(shù)不定,要在每次讀入之后進(jìn)行判斷,因此使用while循環(huán)最為合適。循環(huán)控制條件應(yīng)該是n!=0。由于要判斷數(shù)的正負(fù)并分別進(jìn)行統(tǒng)計(jì),所以需要在循環(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ù)個(gè)數(shù):"<<i<<"負(fù)整數(shù)個(gè)數(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(表達(dá)式)語句例:if(x>y)cout<<x;if(表達(dá)式)語句1else語句2例:if(x>y)cout<<x;elsecout<<y;if(表達(dá)式1)語句1

elseif(表達(dá)式2)語句2

elseif(表達(dá)式3)語句3

else語句n

if語句

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論