c++2 C++簡單程序設(shè)計課件_第1頁
c++2 C++簡單程序設(shè)計課件_第2頁
c++2 C++簡單程序設(shè)計課件_第3頁
c++2 C++簡單程序設(shè)計課件_第4頁
c++2 C++簡單程序設(shè)計課件_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1第二章C++簡單程序設(shè)計C++語言概述基本數(shù)據(jù)類型和表達(dá)式數(shù)據(jù)的輸入與輸出算法的基本控制結(jié)構(gòu)自定義數(shù)據(jù)類型深度探索

[下半場]2C++語言的產(chǎn)生C++是從C語言發(fā)展演變而來的,首先是一個更好的C引入了類的機制,最初的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++語言概述3C++的特點全面兼容C它保持了C的簡潔、高效和接近匯編語言等特點對C的類型系統(tǒng)進(jìn)行了改革和擴充C++也支持面向過程的程序設(shè)計,不是一個純正的面向?qū)ο蟮恼Z言支持面向?qū)ο蟮姆椒–++語言概述4C++程序?qū)嵗?-1//2_1.cpp#include<iostream>usingnamespacestd;intmain(){ cout<<"Hello!"<<endl; cout<<"Welcometoc++!"<<endl; return0;}//main運行結(jié)果:Hello!Welcometoc++!C++語言概述5C++字符集大小寫的英文字母:A~Z,a~z數(shù)字字符:0~9特殊字符:

! # % ^ & * _ + = - ~ < > / \ ‘

“ ; . , : ? ( ) [ ] { }C++語言概述6詞法記號關(guān)鍵字

C++預(yù)定義的單詞標(biāo)識符

程序員聲明的單詞,它命名程序正文中的一些實體文字

在程序中直接使用符號表示的數(shù)據(jù)操作符

用于實現(xiàn)各種運算的符號分隔符

(){},:;

用于分隔各個詞法記號或程序正文空白符 空格、制表符(TAB鍵產(chǎn)生的字符)、垂直制表符、換行符、回車符和注釋的總稱C++語言概述7標(biāo)識符的構(gòu)成規(guī)則以大寫字母、小寫字母或下劃線(_)開始??梢杂梢源髮懽帜浮⑿懽帜?、下劃線(_)或數(shù)字0~9組成。大寫字母和小寫字母代表不同的標(biāo)識符。C++語言概述8

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

——常量與變量#include<iostream>usingnamespacestd;intmain(){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;return0;}//main常量變量變量先聲明后使用符號常量基本數(shù)據(jù)類型和表達(dá)式9#include<iostream>usingnamespacestd;intmain(){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;return0;}//main

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

——整型數(shù)據(jù)shortunsignedshort2字節(jié)intunsignedint

4字節(jié)longunsignedlong4字節(jié)整型變量聲明基本數(shù)據(jù)類型和表達(dá)式整型變量整型常量10數(shù)據(jù)類型

—整型數(shù)據(jù)及取值范圍類型 說明符 位數(shù) 數(shù)值范圍 短整 short 16 -32768~32767基本 int 32 -231~(231-1)長整 long 32 -231~(231-1)無符號

unsignedshort 16 0~65535

unsigned[int] 32 0~(232-1)

unsignedlong 32 0~(232-1) 基本數(shù)據(jù)類型和表達(dá)式11#include<iostream>usingnamespacestd;intmain(){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;return0;}//main

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

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

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

1.7×10±30815位有效數(shù)字longdouble8字節(jié)

1.7×10±30815位有效數(shù)字實型變量默認(rèn)為double型后綴F(或f)

為float型后綴L(或l)

為longdouble

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

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

——字符型數(shù)據(jù)(一)字符常量單引號括起來的一個字符,

如:'a','D','?','$'字符變量用來存放字符常量

例:charc1,c2;

c1='a';

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

"a"

'a'所以:charc;

c="a";CHINA\0a

\0aPage13

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

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

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

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

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

只有false

和true

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

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

——變量初始化例:

inta=3;

doublef=3.56;

charc='a';

intc(5);Page15基本數(shù)據(jù)類型和表達(dá)式16數(shù)據(jù)類型

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

floatc;

inta,b;

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

基本數(shù)據(jù)類型和表達(dá)式17變量的存儲類型auto屬于一時性存儲,其存儲空間可以被若干變量多次覆蓋使用。register存放在通用寄存器中。extern在所有函數(shù)和程序段中都可引用。static在內(nèi)存中是以固定地址存放的,在整個程序運行期間都有效?;緮?shù)據(jù)類型和表達(dá)式18算術(shù)運算符與算術(shù)表達(dá)式基本算術(shù)運算符

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

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

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

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

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

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

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

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

a+=3

等價于a=a+3

x*=y+8

等價于x=x*(y+8)基本數(shù)據(jù)類型和表達(dá)式21賦值運算符和賦值表達(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)Page21基本數(shù)據(jù)類型和表達(dá)式22逗號運算和逗號表達(dá)式格式表達(dá)式1,表達(dá)式2求解順序及結(jié)果先求解1,再求解2,最終結(jié)果為表達(dá)式2的值例a=3*5,a*4

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

<<=>>===!=

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

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

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

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

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

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

或false基本數(shù)據(jù)類型和表達(dá)式25邏輯運算與邏輯表達(dá)式“&&”

的“短路特性”表達(dá)式1&&表達(dá)式2先求解表達(dá)式1若表達(dá)式1的值為false,則最終結(jié)果為false,不再求解表達(dá)式2若表達(dá)式1的結(jié)果為true,則求解表達(dá)式2,以表達(dá)式2的結(jié)果作為最終結(jié)果“||”也具有類似的特性基本數(shù)據(jù)類型和表達(dá)式26條件運算符與條件表達(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á)式27條件運算符與條件表達(dá)式注意:條件運算符優(yōu)先級高于賦值運算符,低于邏輯運算符表達(dá)式2、3的類型可以不同,條件表達(dá)式的最終類型為2和3中較高的類型。例:x=a>b?a:b;基本數(shù)據(jù)類型和表達(dá)式①②28sizeof運算符語法形式

sizeof(類型名)

或sizeof表達(dá)式結(jié)果值:

“類型名”所指定的類型或“表達(dá)式”的結(jié)果類型所占的字節(jié)數(shù)。例:sizeof(short)sizeofx基本數(shù)據(jù)類型和表達(dá)式29位運算——按位與(&)運算規(guī)則將兩個運算量的每一個位進(jìn)行邏輯與操作舉例:計算3&53:000000115:(&)000001013&5:00000001用途:將某一位置0,其他位不變。例如:

將char型變量a的最低位置0:

a=a&0xfe;取指定位。

例如:有charc;inta;

取出a的低字節(jié),置于c中:c=a&0xff;基本數(shù)據(jù)類型和表達(dá)式30位運算——按位或(|)運算規(guī)則將兩個運算量的每一個位進(jìn)行邏輯或操作舉例:計算3|53:000000115:(|)000001013|5:00000111用途:將某些位置1,其他位不變。

例如:將int

型變量a

的低字節(jié)置

1

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

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

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

低四位翻轉(zhuǎn):

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

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

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

char,short,int,unsigned,long,unsignedlong,float,double

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

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

——顯式轉(zhuǎn)換語法形式(3種):類型說明符(表達(dá)式)(類型說明符)表達(dá)式類型轉(zhuǎn)換操作符<類型說明符>(表達(dá)式)類型轉(zhuǎn)換操作符可以是:

const_cast、dynamic_cast、

reinterpret_cast、static_cast顯式類型轉(zhuǎn)換的作用是將表達(dá)式的結(jié)果類型轉(zhuǎn)換為類型說明符所指定的類型。例:int(z),(int)z,static_cast<int>(z)

三種完全等價基本數(shù)據(jù)類型和表達(dá)式39語句空語句聲明語句表達(dá)式語句選擇語句循環(huán)語句跳轉(zhuǎn)語句復(fù)合語句標(biāo)號語句

40表達(dá)式語句格式:表達(dá)式;表達(dá)式語句與表達(dá)式的區(qū)別:表達(dá)式可以包含在其他表達(dá)式中,而語句不可。例如:if((a=b)>0)t=a;不可寫為:if((a=b;)>0)t=a;語句41復(fù)合語句將多個語句用一對大括號包圍,便構(gòu)成一個復(fù)合語句例如{ sum=sum+i; i++;} 語句42簡單的輸入、輸出向標(biāo)準(zhǔn)輸出設(shè)備(顯示器)輸出例:intx;cout<<"x="<<x;從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)輸入例:intx;cin>>x;數(shù)據(jù)的輸入與輸出43簡單的I/O控制格式[例子代碼]dec:十進(jìn)制hex:十六進(jìn)制oct:八進(jìn)制setprecision(int):小數(shù)位數(shù)(含小數(shù)點)setw(int):設(shè)置域?qū)抴s:提取空白符(常用于過濾輸入流的前導(dǎo)空白)ends:插入空字符(串結(jié)束符‘\0’)數(shù)據(jù)的輸入與輸出44順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)算法的基本控制結(jié)構(gòu)45如何解決分支問題?例2-2輸入一個年份,判斷是否閏年。算法的基本控制結(jié)構(gòu)46#include<iostream>usingnamespacestd;intmain(){ intyear;boolIsLeapYear;cout<<"Entertheyear:";cin>>year; IsLeapYear=((year%4==0&&

year%100!=0)||(year%400==0));

if(IsLeapYear) cout<<year<<"isaleapyear“<<endl;

else

cout<<year<<"isnotaleapyear“<<endl; return0;}//main47運行結(jié)果:Entertheyear:20002000isaleapyear48if(表達(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語句nif語句

——三種形式算法的基本控制結(jié)構(gòu)49如何解決多分問題?例2-3輸入兩個整數(shù),比較兩個數(shù)的大小。算法的基本控制結(jié)構(gòu)50#include<iostream>usingnamespacestd;intmain(){ intx,y; cout<<"Enterxandy:"; cin>>x>>y; if(x!=y) if(x>y) cout<<"x>y"<<endl; else cout<<"x<y"<<endl; else cout<<"x=y"<<endl; return0;}//main51運行結(jié)果1:Enterxandy:58x<y運行結(jié)果2:Enterxandy:88x=y運行結(jié)果3:Enterxandy:128x>y52一般形式if()if()語句1else語句2elseif()語句3else語句4注意語句1、2、3、4可以是復(fù)合語句,每層的if與else配對,或用{}來確定層次關(guān)系。if語句

——嵌套算法的基本控制結(jié)構(gòu)53特殊的多分支結(jié)構(gòu)例2-4輸入一個0~6的整數(shù),轉(zhuǎn)換成星期輸出。算法的基本控制結(jié)構(gòu)54#include<iostream>usingnamespacestd;intmain(){ intday; cin>>day; switch(day){case0:cout<<"Sunday"<<endl;break;case1:cout<<"Monday"<<endl;break;case2:cout<<"Tuesday"<<endl;break;case3:cout<<"Wednesday"<<endl;break;case4:cout<<"Thursday"<<endl;break;case5:cout<<"Friday"<<endl;break;case6:cout<<"Saturday"<<endl;break;default:cout<<"DayoutofrangeSunday..Saturday"<<endl;break; }//endswitch return0;}//main55一般形式switch(表達(dá)式){case常量表達(dá)式1:語句1case常量表達(dá)式2:語句2┆case常量表達(dá)式n:語句ndefault:語句n+1}switch語句執(zhí)行順序以case中的常量表達(dá)式值為入口標(biāo)號,由此開始順序執(zhí)行。因此,每個case分支最后應(yīng)該加break語句。每個常量表達(dá)式的值不能相同,次序不影響執(zhí)行結(jié)果??梢允嵌鄠€語句,但不必用{}??梢允钦汀⒆址?、枚舉型算法的基本控制結(jié)構(gòu)56使用switch語句應(yīng)注意的問題case分支可包含多個語句,且不用{}。表達(dá)式、判斷值都是int型或char型。若干分支執(zhí)行內(nèi)容相同可共用一組語句。算法的基本控制結(jié)構(gòu)57如何有效地完成重復(fù)工作例2-5求自然數(shù)1~10之和分析:本題需要用累加算法,累加過程是一個循環(huán)過程,可以用while語句實現(xiàn)。算法的基本控制結(jié)構(gòu)58#include<iostream>usingnamespacestd;intmain(){inti=1,sum=0;

while(i<=10){sum+=i;//相當(dāng)于sum=sum+i;i++;

}//endwhilecout<<"sum="<<sum<<endl; return0;運行結(jié)果:}//main

sum=55

59while語句形式while(表達(dá)式)語句

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

輸入一個整數(shù),將各位數(shù)字反轉(zhuǎn)后輸出。算法的基本控制結(jié)構(gòu)61#include<iostream>usingnamespacestd;intmain(){ intn,right_digit,newnum=0; cout<<"Enterthenumber:"; cin>>n;

cout<<"Thenumberinreverseorderis";

do{ right_digit=n%10; cout<<right_digit; n/=10;//相當(dāng)于n=n/10

}while(n!=0);cout<<endl; return0;}//main62運行結(jié)果:Enterthenumber:365Thenumberinreverseorderis56363do-while語句一般形式do語句while(表達(dá)式)可以是復(fù)合語句,其中必須含有改變條件表達(dá)式值的語句。執(zhí)行順序先執(zhí)行循環(huán)體語句,后判斷條件。

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

先判斷表達(dá)式的值,為true時,再執(zhí)行語句算法的基本控制結(jié)構(gòu)對比下列程序:程序1:#include<iostream>usingnamespacestd;intmain(){inti,sum=0;cin>>i;while(i<=10){sum+=i;i++;}//endwhilecout<<"sum="<<sum<<endl;return0;}//main算法的基本控制結(jié)構(gòu)程序2:#include<iostream>usingnamespacestd;intmain(){inti,sum=0;cin>>i;do{sum+=i;i++;}while(i<=10);

cout<<"sum="<<sum<<endl;return0;}//main6465for語句語法形式for(初始語句;表達(dá)式1;表達(dá)式2)語句

循環(huán)前先求解為true時執(zhí)行循環(huán)體每次執(zhí)行完循環(huán)體后求解算法的基本控制結(jié)構(gòu)66例2-8輸入一個整數(shù),求出它的所有因子。算法的基本控制結(jié)構(gòu)67#include<iostream>usingnamespacestd;intmain(){ intn; cout<<"Enterapositiveinteger:"; cin>>n; cout<<"Number"<<n<<"Factors"; for(intk=1;k<=n;k++) if(n%k==0) cout<<k<<"";cout<<endl;return0;}//main68運行結(jié)果1:Enterapositiveinteger:36Number36Factors123469121836運行結(jié)果2:Enterapositiveinteger:7Number7Factors1769例2-9編寫程序輸出以下圖案*************************算法的基本控制結(jié)構(gòu)70#include<iostream>usingnamespacestd;intmain(){ constintN=4; for(inti=1;i<=N;i++){//輸出前4行圖案

for(intj=1;j<=30;j++) cout<<''; //在圖案左側(cè)空30列

for(intj=1;j<=8-2*i;j++) cout<<''; for(intj=1;j<=2*i-1;j++) cout<<'*'; cout<<endl; }//endfori71

//輸出后3行圖案

for(inti=1;i<=N-1;i++){ for(intj=1;j<=30;j++) cout<<''; //在圖案左側(cè)空30列

for(intj=1;j<=7-2*i;j++)cout<<'*';cout<<endl; }//endfori return0;}//main72循環(huán)結(jié)構(gòu)與選擇結(jié)構(gòu)相互嵌套#include<iostream>usingnamespacestd;intmain(){ for(intn=100;n<=200;n++){if(n%3!=0) cout<<n; }//endforreturn0;}//main算法的基本控制結(jié)構(gòu)73例2-10讀入一系列整數(shù),統(tǒng)計出正整數(shù)個數(shù)i和負(fù)整數(shù)個數(shù)j,讀入0則結(jié)束。分析:需要讀入一系列整數(shù),但是整數(shù)個數(shù)不定,要在每次讀入之后進(jìn)行判斷,因此使用while循環(huán)最為合適。循環(huán)控制條件應(yīng)該是n!=0。由于要判斷數(shù)的正負(fù)并分別進(jìn)行統(tǒng)計,所以需要在循環(huán)內(nèi)部嵌入選擇結(jié)構(gòu)。算法的基本控制結(jié)構(gòu)74#include<iostream>usingnamespacestd;intmain(){ inti=0,j=0,n; cout<<"Entersomeintegersplease(enter0toquit):" <<endl; cin>>n; while(n!=0){ if(n>0)i+=1; if(n<0)j+=1; cin>>n; }//endwhile cout<<"Countofpositiveintegers:"<<i<<endl; cout<<"Countofnegativeintegers:"<<j<<endl; return0;}75break和continue語句break語句使程序從循環(huán)體和switch語句內(nèi)跳出,繼續(xù)執(zhí)行邏輯上的下一條語句。不宜用在別處。continue語句結(jié)束本次循環(huán),接著判斷是否執(zhí)行下一次循環(huán)。算法的基本控制結(jié)構(gòu)76typedef語句為一個已有的數(shù)據(jù)類型另外命名語法形式typedef已有類型名新類型名表;例如typedefdoubleArea,Volume;typedefintNatural;Naturali1,i2;Areaa;Volumev;自定義數(shù)據(jù)類型77枚舉類型—enum只要將需要的變量值一一列舉出來,便構(gòu)成了一個枚舉類型。枚舉類型的聲明形式如下:enum枚舉類型名{變量值列表};例如:enumWeekday{SUN,MON,TUE,WED,THU,FRI,SAT};自定義數(shù)據(jù)類型78枚舉類型—enum枚舉類型應(yīng)用說明:對枚舉元素按常量處理,不能對它們賦值。例如,不能寫:SUN=0;枚舉元素具有默認(rèn)值,它們依次為:0,1,2,。也可以在聲明時另行指定枚舉元素的值,如:enumWeekday{SUN=7,MON=1,TUE,WED,THU,FRI,SAT};枚舉值可以進(jìn)行關(guān)系運算。整數(shù)值不能直接賦給枚舉變量,如需

要將整數(shù)賦值給枚舉變量,應(yīng)進(jìn)行強

制類型轉(zhuǎn)換。自定義數(shù)據(jù)類型79例2-11設(shè)某次體育比賽的結(jié)果有四種可能:勝(WIN)、負(fù)(LOSE)、平局(TIE)、比賽取消(CANCEL),編寫程序順序輸出這四種情況。分析:由于比賽結(jié)果只有四種可能,所以可以聲明一個枚舉類型,聲明一個枚舉類型的變量來存放比賽結(jié)果。自定義數(shù)據(jù)類型80#include<iostream>usingnamespacestd;enumGameResult{WIN,LOSE,TIE,CANCEL};intmain(){ GameResultresult; enumGameResultomit=CANCEL; for(intcount=WIN;count<=CANCEL;count++){ result=GameResult(count); if(result==omit) cout<<"Thegamewascancelled"<<endl; else{ cout<<"Thegamewasplayed"; if(result==WIN) cout<<"andwewon!"; if(result==LOSE) cout<<"andwelost."; cout<<endl; } } return0;}81運行結(jié)果

Thegamewasplayedandwewon!Thegamewasplayedandwelost.ThegamewasplayedThegamewascancelled變量是如何工作的?站在目標(biāo)代碼的角度上看問題變量具有兩個重要屬性——數(shù)據(jù)類型和變量名它們都用文字表示,便于人們理解,但不便于CPU識別,因此它們不能出現(xiàn)在目標(biāo)代碼中;下面將討論它們在目標(biāo)代碼中的表示方式。82深度探索變量是如何工作的?變量名源代碼中,變量依靠變量名來標(biāo)識;目標(biāo)代碼中,變量依靠地址來標(biāo)識,每個變量的地址互不相同。83深度探索inta,b;intmain()

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論