




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
青少年信息奧賽C語言基礎(chǔ)演示文稿當(dāng)前第1頁\共有89頁\編于星期二\15點C++程序?qū)嵗?#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"Hello!\n";cout<<"WelcometoC++!\n";return0;}運行結(jié)果:Hello!WelcometoC++!當(dāng)前第2頁\共有89頁\編于星期二\15點C++字符集C++字符集是C++程序中可以使用的基本符號大小寫的英文字母:A~Z,a~z數(shù)字字符:0~9特殊字符:例如空格 ! # % ^ & *
_(下劃線) + = - ~ < > / \ ‘
“ ; . , () [] {}當(dāng)前第3頁\共有89頁\編于星期二\15點C++詞法記號(類似單詞)關(guān)鍵字
C++預(yù)定義的單詞標(biāo)識符 程序員聲明的單詞,它命名程序正文中的一些實體文字 在程序中直接使用符號表示的數(shù)據(jù)操作符 用于實現(xiàn)各種運算的符號分隔符 如{};
用于分隔各個詞法記號或程序正文空白符 空格、制表符(TAB鍵產(chǎn)生的字符)、 換行符(Enter鍵所產(chǎn)生的字符)和注釋的總稱當(dāng)前第4頁\共有89頁\編于星期二\15點C++字符集類似英語的字母或者漢語的筆畫。C++的詞法符號類似英語的單詞或漢語的字。C++程序類似英語的十四行詩或者漢語的詩詞歌賦。C++字符集、詞法符號、程序關(guān)系當(dāng)前第5頁\共有89頁\編于星期二\15點C++詞法記號——關(guān)鍵字關(guān)鍵字又稱保留字,是C++預(yù)定義的單詞關(guān)鍵字是C++中具有固定意義的一批英文單詞或其縮寫,有專門的用途,用在固定的位置,不能移作它用。C++中共有74個關(guān)鍵字/保留字,每一個都有自己的故事。
當(dāng)前第6頁\共有89頁\編于星期二\15點C++常用關(guān)鍵字及分類數(shù)據(jù)類型說明符與修飾符boolcharwchar_tclassconstdoubleenumfloatintlongshortsignedstructunionunsignedvoidvolatile存儲類型說明符autoexterninlineregisterstatic訪問說明符friendprivateprotectedpublic其它說明符asmoperatortemplatethistypedefvirtual語句與標(biāo)號breakcasecatchcontinuedefaultdoelseforgotoifreturnswitchthrowtrywhile
運算符及邏輯值deletefalsenewsizeoftrue當(dāng)前第7頁\共有89頁\編于星期二\15點C++詞法記號——標(biāo)識符構(gòu)成規(guī)則:以大寫字母、小寫字母或下劃線(_)開始,由大寫字母、小寫字母、下劃線(_)或數(shù)字0~9組成。注意事項標(biāo)識符區(qū)分大小寫標(biāo)識符長度任意(取決于操作系統(tǒng))提倡使用“見名知義”的標(biāo)識符避免使用系統(tǒng)已定義的標(biāo)識符(系統(tǒng)保留字)當(dāng)前第8頁\共有89頁\編于星期二\15點例:判斷下面哪些是合法的標(biāo)識符:MyFile94SalarySalary94Salary94amount$amountvoid
f3.5Num_of_Student
當(dāng)前第9頁\共有89頁\編于星期二\15點C++程序?qū)嵗?#include<bits/stdc++.h>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;}當(dāng)前第10頁\共有89頁\編于星期二\15點數(shù)據(jù)類型數(shù)據(jù)類型告訴我們存儲單元中的數(shù)據(jù)的形式,及可以對存儲單元中的數(shù)據(jù)執(zhí)行哪些操作。C++的數(shù)據(jù)類型可以分為基本類型、構(gòu)造類型、指針類型、空類型(void)四個大類。當(dāng)前第11頁\共有89頁\編于星期二\15點基本數(shù)據(jù)類型數(shù)據(jù)類型關(guān)鍵字字節(jié)數(shù)數(shù)值范圍字符型char1-128~127整型int4-2147483648~2147483647單精度浮點型float4±(3.4E-38~3.4E38)雙精度符點型double8±(1.7E-308~1.7E308布爾型bool1true,false當(dāng)前第12頁\共有89頁\編于星期二\15點類型修飾符C++還允許在基本數(shù)據(jù)類型前加上類型修飾符,來更具體地表示數(shù)據(jù)類型。C++的類型修飾符包括:
signed 有符號unsigned 無符號short 短型long 長型
當(dāng)前第13頁\共有89頁\編于星期二\15點數(shù)據(jù)類型標(biāo)識符字節(jié)數(shù)數(shù)值范圍常量寫法舉例Char1-128~127‘A’,‘0’,’\n’signedchar1-128~12756unsignedchar10~255100short[int]2-32768~32767100signedshort[int]2-32768~32767-3456unsignedshort[int]20~655350xffint4-2147483648~21474836471000signedint4-2147483648~2147483647-123456unsignedint40~42949672950xffff當(dāng)前第14頁\共有89頁\編于星期二\15點數(shù)據(jù)類型標(biāo)識符字節(jié)數(shù)數(shù)值范圍常量寫法舉例long[int]4-2147483648~2147483647-123456longlong8-2^63~2^63-1-3246unsignedlong[int]40~4294967295123456float4±(3.4E-38~3.4E38)2.35,-53.231,3E-2Double8±(1.7E-308~1.7E308)12.354,-2.5E10longdouble10±(1.2E-4932~1.2E4932)8.5E-300當(dāng)前第15頁\共有89頁\編于星期二\15點說明:(1)表中帶[]的部分表示是可以省略的,如short[int]可以寫為shortint或簡寫為short,二者的含義是相同的。(2)四種修飾符都可以用來修飾整型。用signed修飾的類型的值可以為正數(shù)或負(fù)數(shù),用unsigned修飾的類型的值只能為正數(shù)。(3)用short修飾的類型,其值一定不大于對應(yīng)的整數(shù),用long修飾的類型,其值一定不小于對應(yīng)的整數(shù)。當(dāng)前第16頁\共有89頁\編于星期二\15點C++的構(gòu)造類型是基本類型的組合,包括數(shù)組、結(jié)構(gòu)體和聯(lián)合體等指針類型是對基本類型或構(gòu)造類型的地址進行操作的一種數(shù)據(jù)類型??疹愋?void)是什么也沒有的一種特殊數(shù)據(jù)類型,僅用在有限的一些情況下,通常用作無返回值函數(shù)的返回類型。有時也被歸類到基本類型當(dāng)前第17頁\共有89頁\編于星期二\15點常量在C++語言中,數(shù)據(jù)分為常量和變量兩大類。由于程序中的數(shù)據(jù)是有類型的,所以常量和變量都是有類型之分的。。常量按照不同的數(shù)據(jù)類型可以分為:字符型常量、整型常量、浮點型常量,以及字符串常量等。程序是根據(jù)程序中常量的書寫格式來區(qū)分它是哪種類型常量的。當(dāng)前第18頁\共有89頁\編于星期二\15點整型常量在程序中書寫整型常量時,沒有小數(shù)部分。用戶可根據(jù)需要分別可以用十進制、八進制和十六進制的形式書寫:十進制格式:由數(shù)字0至9和正、負(fù)號組成,書寫時直接寫出數(shù)字,如:123,-516,+1000等。八進制格式:以數(shù)字0開頭的數(shù)字(0至7)序列,0111,010007,0177777等。十六進制格式:以0x或0X開頭的數(shù)字(數(shù)字0至9、字母A至Z)序列,如0x78AC,0xFFFF等。當(dāng)前第19頁\共有89頁\編于星期二\15點浮點型常量
只能用十進制來表示??梢杂眯?shù)或指數(shù)形式表示,不分單精度和雙精度類型。如:34.5,.345,1.5e-3當(dāng)前第20頁\共有89頁\編于星期二\15點字符型常量
(1)用一對單引號括起來的一個字符,單引號只是字符與其他部分的分割符,不是字符的一部分,并且,不能用雙引號代替單引號。在單引號中的字符不能是單引號或反斜杠。如:
‘a(chǎn)’,‘A’,‘#’合法的字符常量‘’’,‘\’非法的字符常量
“A”不代表字符常量(2)另一種表示字符常量的方法是使用轉(zhuǎn)義字符。C++規(guī)定,采用反斜杠后跟一個字母來代表一個控制字符,具有新的含義。當(dāng)前第21頁\共有89頁\編于星期二\15點C++中常用的轉(zhuǎn)義字符轉(zhuǎn)義字符含義ASCII碼值(十進制)\a響鈴(BEL)7\b退格(BS)8\n換行(LF)10\r回車(CR)13\t水平制表(HT)9\v垂直制表(VT)11\\反斜杠92\’單引號39\”雙引號34\0空格符(NULL)0\ddd任意字符3位八進制數(shù)\xhh任意字符2位十六進制數(shù)當(dāng)前第22頁\共有89頁\編于星期二\15點字符串常量
用一對雙引號括起來的一個或多個字符的序列稱為字符串常量或字符串。字符串以雙引號為定界符,雙引號不作為字符串的一部分。如:“Hello”,“GoodMorning!”
,“Isay:\“Goodbye!\””
字符串中的字符數(shù)稱為該字符串的長度,在存儲時,系統(tǒng)自動在字符串的末尾加以字符串結(jié)束標(biāo)志,即轉(zhuǎn)義字符‘\0’。當(dāng)前第23頁\共有89頁\編于星期二\15點符號常量常量也可用一個標(biāo)識符來代表,稱為符號常量。如:#definePRICE30intmain(){cout<<PRICE<<endl;return0;}使用符號常量應(yīng)注意以下幾個方面:(1)它不同于變量,在作用域內(nèi)其值不能改變和賦值。如:在上例中如再用PRICE=40;這一語句進行賦值則是錯誤的。(2)符號常量名一般用大寫,而變量名用小寫,以示區(qū)別。當(dāng)前第24頁\共有89頁\編于星期二\15點在程序中的常量有以下三種表示方法:(1)在程序中直接寫入常量(詞法記號中的文字)如:-200,3.4E-10,‘A’,‘1’,0x120,045,5.35,1000l(2)利用#define定義宏常量(符號常量)一般格式:#define宏名常數(shù)如:#definePI3.14…………s=2*PI*r;…………程序中常量的表示方法當(dāng)前第25頁\共有89頁\編于星期二\15點(3)利用const定義正規(guī)常數(shù)(常變量)格式:const數(shù)據(jù)類型標(biāo)識符常量名=常量值;說明:①const必須放在被修飾類型符和類型名前面②數(shù)據(jù)類型是一個可選項,用來指定常數(shù)值的數(shù)據(jù)類型,如果省略了該數(shù)據(jù)類型,那么編譯程序認(rèn)為它是int類型如:constinta=10;表示定義了一個初始值為10的整型常量,它在程序中不可改變,但可用于表達(dá)式的計算中當(dāng)前第26頁\共有89頁\編于星期二\15點1.變量的概念及特點程序中的變量是用于保存程序運算過程中所需要的原始數(shù)據(jù)、中間運算結(jié)果和最終結(jié)果的,因此,每一變量就相當(dāng)于一個容器,對應(yīng)著計算機內(nèi)存中的某一塊存儲單元。變量的值具有以下兩個特點:(1)“一充即無”:即將一個新數(shù)據(jù)存放到一個變量中時,該變量中原來的值消失,變量的值變成了新值。如:執(zhí)行完語句inti;i=10;i=20;后i的值為20,而不是10。變量當(dāng)前第27頁\共有89頁\編于星期二\15點(2)“取之不盡”:可將某個變量的值與程序中的其它數(shù)據(jù)進行各種運算,在運算過程中,如果沒有改變該變量的值時,那么,不管用該變量的值進行多少次運算,其值始終保持不變。如:語句inti,j,k;i=10;j=i+10;k=i+j*5;其中,i的值可無限制地多次使用,但它的值始終保持值10,因為在程序中沒有改變變量i的值。當(dāng)前第28頁\共有89頁\編于星期二\15點2.定義變量(變量聲明)
程序中的每一變量,都要先定義,后使用。定義變量一般有以下三種格式:數(shù)據(jù)類型標(biāo)識符變量名;數(shù)據(jù)類型標(biāo)識符變量名=初始化值;數(shù)據(jù)類型標(biāo)識符變量名1[=初始值1],變量名2[=初始值2],……;當(dāng)前第29頁\共有89頁\編于星期二\15點如:chara;
//定義字符型變量ainti=1000; //定義整型變量i,i的初始值為1000;floata=2,b=3,c;/*定義浮點型變量a、b、c,且a、
b的初始值分別為2、3。*/
當(dāng)前第30頁\共有89頁\編于星期二\15點3.定義變量的位置在程序中的不同位置采用不同的變量定義方式,決定了該變量具有不同的特點。變量的定義一般可有以下三種位置:(1)在函數(shù)體內(nèi)部在函數(shù)體內(nèi)部定義的變量稱為局部變量,這種局部變量只在進入定義它的函數(shù)體時起作用,離開該函數(shù)體后該變量就消失(被釋放),即不再起作用。因此,不同函數(shù)體內(nèi)部可以定義相同名稱的變量,而互不干擾。如:當(dāng)前第31頁\共有89頁\編于星期二\15點voidfunc1(){inty;y=2;}voidfunc2(){inty;y=-100;}當(dāng)前第32頁\共有89頁\編于星期二\15點(2)形式參數(shù)當(dāng)定義一個有參函數(shù)時,函數(shù)名后面括號內(nèi)的變量,統(tǒng)稱為形式參數(shù)。如:intis_in(char*a,charb){while(*a)if(*a==b)return1;elsea++;return0;}當(dāng)前第33頁\共有89頁\編于星期二\15點(3)全局變量:在所有函數(shù)體外部定義的變量,其作用范圍是整個程序,并在整個程序運行期間有效。如:intcount; //定義count變量是全局變量voidfunc1();voidfunc2();intmain(){count=10;func1();}當(dāng)前第34頁\共有89頁\編于星期二\15點voidfunc1(){inttemp;temp=count;func2();printf(“countis%d”,count);//輸出10}voidfunc2(){intcount;for(count=1;count<5;count++)putchar(‘.’);}當(dāng)前第35頁\共有89頁\編于星期二\15點變量小結(jié)變量有“三要素”:變量名:標(biāo)識符,要正確、有意義;變量的類型:C++支持的數(shù)據(jù)類型變量的值:可變,在某一時刻是一個確定值;變量要“先說明后使用”變量在一個函數(shù)中不能被定義兩次程序中的變量一定要賦初值(初始化)inta=3;a=3;cin>>a變量名一般要以小寫字母開頭,且見名知義。
當(dāng)前第36頁\共有89頁\編于星期二\15點算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符就是對數(shù)據(jù)進行算術(shù)運算,如:加、減、乘、除等,是在程序中使用最多的一種運算符,C++的算術(shù)運算符如表所示。運算符和表達(dá)式當(dāng)前第37頁\共有89頁\編于星期二\15點運算符功能數(shù)據(jù)類型例子-負(fù)號數(shù)值x=-y;+加數(shù)值z=x+y;-減數(shù)值z=x-y;*乘數(shù)值z=x*y/除數(shù)值z=x/y;%求余整數(shù)z=x%y++自加數(shù)值z++或++zC++的算術(shù)運算符
--自減數(shù)值z--或--z當(dāng)前第38頁\共有89頁\編于星期二\15點(1+x)/(3*x)(((2*x-3)*x+2)*x)-53.14*sqrt(r)b*b-4.0*a*c當(dāng)前第39頁\共有89頁\編于星期二\15點算術(shù)運算符注意事項算術(shù)運算符/有整除和一般除法兩種功能。如果兩個操作數(shù)都是整數(shù),/的功能就是整除,否則就是一般除法。例如:
3/2=13/2.0=1.53.0/2=1.5a++與++a(a--與--a)
a++的功能是:a的值增1,a++的值是a增加前的值;
++a的功能是:a的值增1,++a的值是a增加后的值;
++a可以用作左值,即能放在賦值號的左邊。當(dāng)前第40頁\共有89頁\編于星期二\15點賦值運算符和賦值表達(dá)式賦值運算符的功能將某個數(shù)據(jù)的值賦給某個變量。格式:變量名賦值運算符表達(dá)式說明:(1)被賦值的目標(biāo),即賦值運算符左邊的量必須是變量,而不能是常量或表達(dá)式。當(dāng)前第41頁\共有89頁\編于星期二\15點(2)C++中的賦值運算符表(3)要注意區(qū)分賦值運算符“=”與數(shù)學(xué)上的“等號”間的區(qū)別賦值運算符例子等價形式=x=x+yx=x+y+=x+=y+zx=x+(y+z)-=x-=y+zx=x-(y+z)*=x*=y+zx=x*(y+z)/=x/=y+zx=x/(y+z)%=x%=y+zx=x%(y+z)當(dāng)前第42頁\共有89頁\編于星期二\15點關(guān)系運算符和關(guān)系表達(dá)式關(guān)系運算符就是對兩個量之間進行比較的運算符。關(guān)系運算符含義例子<小于i>10<=小于或等于(x+y)*2<=100>大于x+y>z>=大于或等于x-y>=a*b+2==等于x+y==a+b!=不等于x-y!=0當(dāng)前第43頁\共有89頁\編于星期二\15點
由關(guān)系運算符將兩個表達(dá)式連接形成的運算式子是關(guān)系表達(dá)式,一個關(guān)系表達(dá)式的值是一個邏輯值,當(dāng)為真時,值為1,為假時,值為0。如:假設(shè)a=1,b=20,c=3,則a<b 表達(dá)式成立,其值為1b==c 表達(dá)式不成立,其值為0(a+b)!=c 表達(dá)式成立,其值為1當(dāng)前第44頁\共有89頁\編于星期二\15點邏輯運算符和邏輯表達(dá)式邏輯運算符是對兩個邏輯量間進行運算的運算符。邏輯運算符含義例子!邏輯非!(x>10)&&邏輯與(i>1)&&(i<10)||邏輯或(c==0)||(c==9)當(dāng)前第45頁\共有89頁\編于星期二\15點注意:(1)C或C++中在給出一個邏輯表達(dá)式的最終計算結(jié)果值時,用1表示真,用0表示假。但在進行邏輯運算的過程中,凡是遇到非零值時就當(dāng)真值參加運算,遇到0值時就當(dāng)假值參加運算。如:inta=10,b=15,c=14;則(a+6)&&(b>c)的值為1(真)。當(dāng)前第46頁\共有89頁\編于星期二\15點(2)在邏輯表達(dá)式的求值過程中,并不是所有的邏輯運算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運算符才能求出表達(dá)式的值時,才執(zhí)行該運算符。①a&&b&&c只有a為真時,才需要判別b的值,只有a和b的值都為真時才需要判別c的值。如:inti=10;則表達(dá)式i&&(i=0)&&(++i)的值為0(假),該表達(dá)式運算結(jié)束后,變量i的值為0,而不是1。當(dāng)前第47頁\共有89頁\編于星期二\15點②a||b||c只要a為真,就不必須判斷b和c;只有a為假,才判別b;a和b都為假才判別c。如:inti=1,j;則表達(dá)式i++||i++||i++的值為1(真),運算結(jié)束后,變量i的值為2,而不是4。當(dāng)前第48頁\共有89頁\編于星期二\15點intn=3,m=6;if((n>4)&&(m++<10)) cout<<“mshouldnotchanged.\n”;cout<<“m=“<<m<<endl;當(dāng)前第49頁\共有89頁\編于星期二\15點③對于數(shù)學(xué)上的表示多個數(shù)據(jù)間進行比較的表達(dá)式,在C++中要拆寫成多個條件并用邏輯運算符連接形成一個邏輯表達(dá)式。如:在數(shù)學(xué)上,要表示一個變量a的值處于-1和-9之間時,可以用-9<a<-1。但在C++語言中必須寫成(a>-9)&&(a<-1),而不能寫成-9<a<-1。因為,假設(shè)變量a當(dāng)前的值為-5,它的值確實處在-1和-9之間,但在C++語言中求-9<a<-1時,從左向右進行計算,先計算-9<a,得1(真),此時該表達(dá)式可簡化為1<-1,結(jié)果為0(假)。因此必須寫成(a>-9)&&(a<-1)的形式。當(dāng)前第50頁\共有89頁\編于星期二\15點條件運算符在C++中只提供了一個三目運算符—即條件運算符“?:”,其一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3條件運算的規(guī)則是:首先判斷表達(dá)式1的值,若其值為真(非0),則取表達(dá)式2的值為整個表達(dá)式的值;若其值為假(0),則取表達(dá)式3的值為整個表達(dá)式的值。如:若a=3,b=4,則條件表達(dá)式a>b?a:b的值為4當(dāng)前第51頁\共有89頁\編于星期二\15點條件表達(dá)式可以嵌套:x>y?”greatthan”:x==y?”equalto”:”lessthan”它等價于:(x>y)?”greatthan”:((x==y)?”equalto”:”lessthan”)在條件表達(dá)式中,如果后面兩個表達(dá)式的值類型相同,均為左值,則該條件表達(dá)式的值為左值表達(dá)式。intx=5;longa,b;(x?a:b)=1;(x?x:a)=2;//error:x和a不同類型(x==2?1:a)=3;//error:1非左值當(dāng)前第52頁\共有89頁\編于星期二\15點位運算符1.位運算符及其運算規(guī)則所謂位運算符是指能進行二進制位運算的運算符。C++提供的位運算符:運算符含義例子&按位與i&128|按位或j|64^按位異或j^12~按位取反~j<<按位左移i<<2>>按位右移j>>2當(dāng)前第53頁\共有89頁\編于星期二\15點位運算的運算規(guī)則為:(1)按位與&:兩個運算量相應(yīng)的位都是1,則該位的結(jié)果值為1,否則為0;(2)按位或|:兩個運算量相應(yīng)的位只要有一個是1,則該位的結(jié)果值為1,否則為0;(3)按位異或^:兩個運算量相應(yīng)的位不同,則該位的結(jié)果值為1,否則為0;(4)按位取反~:將運算量的每一位取反。當(dāng)前第54頁\共有89頁\編于星期二\15點(5)按位左移<<:將操作數(shù)中的每一位向左移動指定的位數(shù),移出的位被舍棄,空出的位補0。(6)按位右移>>:將操作數(shù)中的每一位向右移動指定的位數(shù),移出的位被舍棄,空出的位補0或補符號位。當(dāng)前第55頁\共有89頁\編于星期二\15點例子如:a=5,b=6,則:a0000010100000101
00000101b&00000110|00000110
^00000110~00000110 00000100 00000111 00000011
11111001即:a&b=4,a|b=7,a^b=3,~b=249。
當(dāng)前第56頁\共有89頁\編于星期二\15點2.復(fù)合位運算符位運算符與賦值運算符結(jié)合可以形成復(fù)合位運算符。運算符例子等價形式&=x&=y+zx=x&(y+z)|=x|=x+2x=x|(x+2)^=x^=yx=x^y<<=x<<=y+zx=x<<(y+z)>>=x>>=y+zx=x>>(y+z)當(dāng)前第57頁\共有89頁\編于星期二\15點逗號運算符逗號運算符的運算優(yōu)先級是最低的。一般形式為:表達(dá)式1,表達(dá)式2,……,表達(dá)式N在計算逗號表達(dá)式的值時,按從左至右的順序依次分別計算各個表達(dá)式的值,而整個逗號表達(dá)式的值和類型是由最右邊的表達(dá)式?jīng)Q定。如:有語句inta=3,b=4;則表達(dá)式a++,b++,a+b的值為9。再如:設(shè)有inti;則表達(dá)式i=1,i++==2?i+1:i+4的值為6。當(dāng)前第58頁\共有89頁\編于星期二\15點該運算符的功能是將某一數(shù)據(jù)從一種數(shù)據(jù)類型向另一種數(shù)據(jù)類型進行轉(zhuǎn)換。其使用的一般形式:數(shù)據(jù)類型標(biāo)識符(表達(dá)式)(數(shù)據(jù)類型標(biāo)識符)表達(dá)式如:inti=2;
floata,b;
a=float(i);
//將變量i的類型強制轉(zhuǎn)換為浮點型,并將其值賦給變量a
b=(float)i;
//將變量i的類型強制轉(zhuǎn)換為浮點型,并將其值賦給變量b強制類型轉(zhuǎn)換運算符當(dāng)前第59頁\共有89頁\編于星期二\15點每個運算符都有自己優(yōu)先級和結(jié)合性。當(dāng)一個表達(dá)式中包含多個運算符時,要確定運算的結(jié)果,必須首先確定運算的先后順序,即運算符的優(yōu)先級和結(jié)合性。C++中運算符的優(yōu)先級和結(jié)合性如表2.11所示。
運算符的優(yōu)先級與結(jié)合性當(dāng)前第60頁\共有89頁\編于星期二\15點優(yōu)先級運算符結(jié)合性1()::[]->..*->*自左至右2!~++--+-*&(類型)sizeofnew[]delete[]自右至左3*/%自左至右4+-自左至右5<<>>自左至右6<<=>>=自左至右7==!=自左至右8&自左至右9^自左至右10|自左至右11&&自左至右12||自左至右13?:自右至左14=+=-=*=/=%=<<=>>=&=^=|=自右至左15,自左至右C++中運算符的優(yōu)先級和結(jié)合性當(dāng)前第61頁\共有89頁\編于星期二\15點
輸出流對象輸出數(shù)據(jù)的語句格式為:
cout<<數(shù)據(jù)1<<數(shù)據(jù)2<<……<<數(shù)據(jù)n;說明:(1)cout是系統(tǒng)預(yù)定義的一個標(biāo)準(zhǔn)輸出設(shè)備(一般代表顯示器);“<<”是輸出操作符,用于向cout輸出流中插入數(shù)據(jù)。(2)cout的作用是向標(biāo)準(zhǔn)輸出設(shè)備上輸出數(shù)據(jù),被輸出的數(shù)據(jù)可以是常量、已有值的變量或是一個表達(dá)式。數(shù)據(jù)的輸出cout當(dāng)前第62頁\共有89頁\編于星期二\15點(3)可以在cout輸出流中插入C++中的轉(zhuǎn)義字符。如:cout<<“Inputthevalueofa:\n";cout<<a;
表示輸出完字符串Inputthevalueofa:后,在下一行輸出變量a的值。(4)可以將多個被輸出的數(shù)據(jù)寫在一個cout中,各輸出項間用“<<”操作符隔開即可,但要注意cout首先按從右向左的順序計算出各輸出項的值,然后再輸出各項的值。當(dāng)前第63頁\共有89頁\編于星期二\15點如:cout<<"valueofa:"<<a<<"valueofb:"<<b<<"Theresultis:"<<sqrt(a*a+b*b);再如:設(shè)變量i的值為10,則cout<<i<<","<<i++<<","<<i++;的輸出結(jié)果為:12,11,10(5)一個cout語句也可拆成若干行書寫,但注意語句結(jié)束符“;”只能寫在最后一行上。如:對于上面的語句也可寫成如下形式:當(dāng)前第64頁\共有89頁\編于星期二\15點cout<<"valueofa:"http://注意行末無分號
<<a<<"valueofb:"<<b<<"Theresultis:"<<sqrt(a*a+b*b);//在此處書寫分號當(dāng)前第65頁\共有89頁\編于星期二\15點(6)在cout中,實現(xiàn)輸出數(shù)據(jù)換行功能的方法:既可使用轉(zhuǎn)義字符“\n”,也可使用表示行結(jié)束的流操作endl。如:cout<<"ThisisfirstLine.\n"<<"Thisissecondline.";上面語句可等價地寫為:cout<<"ThisisfirstLine."<<endl<<"Thisissecondline.";當(dāng)前第66頁\共有89頁\編于星期二\15點(7)在cout中還可以使用流控制符控制數(shù)據(jù)的輸出格式。I/O流的常用控制符控制符功能dec十進制數(shù)輸出hex十六進制數(shù)輸出oct八進制數(shù)輸出setfill(c)在給定的輸出域?qū)挾葍?nèi)填充字符csetprecision(n)設(shè)顯示小數(shù)精度為n位setw(n)設(shè)域?qū)挒閚個字符setiosflags(ios::fixed)固定的浮點顯示當(dāng)前第67頁\共有89頁\編于星期二\15點setiosflags(ios::scientific)指數(shù)顯示setiosflags(ios::left)左對齊setiosflags(ios::right)右對齊setiosflags(ios::skipws)忽略前導(dǎo)空白setiosflags(ios::uppercase)十六進制數(shù)大寫輸出setiosflags(ios::lowercase)十六進制數(shù)小寫輸出setiosflags(ios::showbase)按十六/八進制輸出數(shù)據(jù)時,前面顯示前導(dǎo)符0x/0;當(dāng)前第68頁\共有89頁\編于星期二\15點①設(shè)置域?qū)挘核^域?qū)捑褪潜惠敵鰯?shù)據(jù)所占的輸出寬度(單位是字符數(shù))。設(shè)置域?qū)捒梢允褂昧骺刂品鹲etw(n)和cout的方法cout.width(n)
其中n為正整數(shù),表示域?qū)?。但是,cout.width(n)和setw(n)二者都只對下一個被輸出的數(shù)據(jù)有作用,若一個輸出語句內(nèi)有多個被輸出的數(shù)據(jù),而要保持一定格式域?qū)挄r,需要在每一輸出數(shù)據(jù)前加上cout.width(n)或setw(n)。
當(dāng)前第69頁\共有89頁\編于星期二\15點
此外,當(dāng)參數(shù)n的值比實際被輸出數(shù)據(jù)的寬度大時,則在給定的域?qū)拑?nèi),數(shù)據(jù)靠右輸出,不足部分自動填充空格符;若被輸出數(shù)據(jù)的實際寬度比n值大時,則數(shù)據(jù)所占的實際位數(shù)輸出數(shù)據(jù),設(shè)置域?qū)挼膮?shù)n不再起作用。當(dāng)前第70頁\共有89頁\編于星期二\15點例cout流控制符setw的使用。#include<bits/stdc++.h>usingnamespacestd;intmain(){inta=21,b=999;cout<<setw(3)<<a<<setw(4)<<a<<setw(5)<<a<<endl;cout.width(3);cout<<b;cout.width(4);cout<<b;return0;}當(dāng)前第71頁\共有89頁\編于星期二\15點其輸出結(jié)果是:︼21︼︼21︼︼︼21//程序中第一個cout的輸出結(jié)果999︼999當(dāng)前第72頁\共有89頁\編于星期二\15點②設(shè)置域內(nèi)填充字符:在默認(rèn)情況下,當(dāng)被輸出的數(shù)據(jù)未占滿域?qū)挄r,會自動在域內(nèi)靠左邊填充相應(yīng)個數(shù)的空格符。但我們也可以設(shè)置在域內(nèi)填充其他的字符,方法是利用cout的fill方法cout.fill(c)或setfill(c)。cout.fill(c)上和setfill(c)可以對所有被輸出的數(shù)據(jù)起作用。當(dāng)前第73頁\共有89頁\編于星期二\15點例在例2-2的基礎(chǔ)上增加域內(nèi)填充字符的功能。#include<bits/stdc++.h>usingnamespacestd;intmain(){inta=21,b=999;cout.fill(‘#’);//設(shè)置域內(nèi)填充字符為#字符cout<<setw(3)<<a<<setw(4)<<a<<setw(5)<<a<<endl;當(dāng)前第74頁\共有89頁\編于星期二\15點cout<<setw(3)<<b<<setw(4)<<b<<setw(5)<<b<<endl;cout.fill(‘%’);//將域內(nèi)填充字符改為%字符cout<<setw(3)<<a+b<<setw(4)<<a+b<<setw(5)<<a+b<<endl;return0;}當(dāng)前第75頁\共有89頁\編于星期二\15點其輸出結(jié)果是:#21##21###21//程序中第一個cout的輸出結(jié)果,未占滿域?qū)挼牟糠痔畛?字符。999#999##999//程序中第二個cout的輸出結(jié)果10201020%1020//程序中第三個cout的輸出結(jié)果,未占滿域?qū)挼牟糠痔畛?字符。當(dāng)前第76頁\共有89頁\編于星期二\15點③設(shè)置輸出數(shù)據(jù)的進位計數(shù)制:在默認(rèn)情況下,被輸出的數(shù)據(jù)按十進制格式輸出。但可以使用流控制符hex和oct控制數(shù)據(jù)的輸出格式為十六進制和八進制,一旦設(shè)置成某種進位計數(shù)制后,數(shù)據(jù)的輸出就以該種數(shù)制為主,可利用流控制符dec將數(shù)制重新成十進制。當(dāng)前第77頁\共有89頁\編于星期二\15點inta=21,b=999;cout<<setw(3)<<setfill('#')<<hex<<a<<endl;cout<<setw(3)<<b<<endl;cout<<setw(3)<<setfill('#')<<oct<<b<<endl;cout<<setw(3)<<b<<setw(4)<<b<<setw(5)<<b<<endl;cout<<setw(3)<<setfill('#')<<dec<<a<<endl;cout<<setw(3)<<b<<setw(4)<<b<<setw(5)<<b<<endl;當(dāng)前第78頁\共有89頁\編于星期二\15點程序的輸出結(jié)果為:#15//以十六進制格式輸出數(shù)據(jù)3e7#25//以八進制格式輸出數(shù)據(jù)1747#21//以十進制格式輸出數(shù)據(jù)999當(dāng)前第79頁\共有89頁\編于星期二\15點④設(shè)置浮點數(shù)的輸出格式:對于浮點數(shù),既可以用小數(shù)格式輸出,也可以用指數(shù)格式輸出。這可以分別通過setiosflags(ios::fixed)和setiosflags(ios::scientific)來控制。當(dāng)前第80頁\共有89頁\編于星期二\15
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共圖書館文獻信息共享服務(wù)協(xié)議
- 游樂場項目設(shè)施損害預(yù)防和賠償責(zé)任協(xié)議
- 混凝土澆筑施工合同
- 健康咨詢與專業(yè)治療免責(zé)協(xié)議書
- 建筑行業(yè)工程安全風(fēng)險免責(zé)協(xié)議
- 2024-2025學(xué)年高二數(shù)學(xué)湘教版選擇性必修第二冊教學(xué)課件 第3章-3.1條件概率與時間的獨立性-3.1.3乘法公式3.1.4全概率公式3.1.5貝葉斯公式
- 歷史人物故事分享:初中歷史課程教案
- 企業(yè)采購成本控制實踐案例分析
- 旅游規(guī)劃與管理領(lǐng)域真題詳解及試題預(yù)測
- 項目任務(wù)分配表格
- 心腦血管疾病的危險因素與管理1
- 第一單元練習(xí)卷(單元測試)2023-2024學(xué)年統(tǒng)編版語文六年級下冊
- 2016年4月自考00040法學(xué)概論試題及答案
- 2024中國碳普惠發(fā)展與實踐案例研究報告
- 2024年中國檢驗認(rèn)證集團招聘筆試參考題庫附帶答案詳解
- 人教版九年級數(shù)學(xué)下冊《第二十六章反比例函數(shù)》測試卷單元測試卷-帶有參考答案
- 公園售票員管理制度
- 本科:交通管理專業(yè)培養(yǎng)方案(管理學(xué)院)
- 《汽車電子電氣系統(tǒng)構(gòu)造與拆裝》課件 項目三 起動系統(tǒng)檢修
- 《安徒生童話》閱讀指導(dǎo)課件
- 沉淀滴定法(應(yīng)用化學(xué)課件)
評論
0/150
提交評論