版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C++語言程序設(shè)計第十一組C++語言程序設(shè)計第二章基本數(shù)據(jù)類型與表達式C++語言程序設(shè)計1目錄C++語言程序設(shè)計2“C++的詞法記號和標識符基本數(shù)據(jù)類型變量和常量運算符和表達式C語言的輸入輸出C++的輸入輸出基本知識等于號和雙等于號sizeof運算符輸出的格式控制使用string類型處理字符串編程技能磁盤文件是什么刨根問底C++語言程序設(shè)計3基本知識a2.1C++的詞法記號和標識符
字符集英文字母:A~Z,a~z數(shù)字字符:0~9特殊字符:+-*/%^=<>!#&|_~ \‘“;.,()[] {}空格C++語言程序設(shè)計42.1C++的詞法記號和標識符
關(guān)鍵字是C++預(yù)先定義好的標識符,在程序中具有特殊作用。C++關(guān)鍵字:C++語言程序設(shè)計5auto bool break case catch charclass const const_cast continue default deletedo double dynamic_cast else enum explicitexport extern false float for friendgoto if inline int long mutablenamespace new operator private protected publicregister reinterpret_cast return short signed sizeofstatic static_cast struct switch template thisthrow true try typedef typeid typenameunion unsigned using virtual void volatilewhile2.1C++的詞法記號和標識符
標識符是程序員聲明的單詞,它命名程序正文中的一些實體,如函數(shù)名、變量名、類名、對象名等。C++標識符的構(gòu)成規(guī)則不能是C++的關(guān)鍵字;第一個字符必須是大寫、小寫字母或下劃線;不包含空格和“+、-、;”等特殊字符;為方便輸入,長度一般不超過31個字符聲明標識符時,做到“見名識意”,可以提高程序的可讀性C++語言程序設(shè)計6例如:合法的標識符:apple、_Student、_123、no1、max_num不合法的標識符:51job、maxnum、-abc注意:C++的標識符是大小寫敏感的,例:myName≠myNAME2.1C++的詞法記號和標識符
分隔符不表示實際的操作,僅用于構(gòu)造程序C++分隔符:(){} , : ;例如:“;”用來作為一句完整語句的結(jié)束C++語言程序設(shè)計72.1C++的詞法記號和標識符
空白是指制表符、空格、空行,用于分隔單詞在C++語句中經(jīng)常出現(xiàn)空白,通常都忽略不計在C++程序中適當(dāng)使用空白,可以提高程序的可讀性C++語言程序設(shè)計82.2基本數(shù)據(jù)類型
數(shù)據(jù)類型數(shù)據(jù)根據(jù)其本身的特點進行分類,從而形成不同的數(shù)據(jù)類型不同類型的數(shù)據(jù)有不同的表示和處理方法C++的數(shù)據(jù)類型決定了:數(shù)據(jù)表示形式數(shù)據(jù)的存儲空間對數(shù)據(jù)可以進行哪些運算以及及運算規(guī)則C++語言程序設(shè)計92.2基本數(shù)據(jù)類型
C++的數(shù)據(jù)類型基本數(shù)據(jù)類型自定義數(shù)據(jù)類型C++的基本數(shù)據(jù)類型,可用來表示整數(shù)、實數(shù)、單個字符以及邏輯值根據(jù)數(shù)據(jù)特點,指定數(shù)據(jù)類型整數(shù):數(shù)值的取值范圍、是否需要存放負數(shù)實數(shù):數(shù)值的取值范圍、有效數(shù)字位數(shù)C++語言程序設(shè)計102.2基本數(shù)據(jù)類型
實數(shù):單精度浮點型:float雙精度浮點型:double擴展精度浮點型:longdouble單個字符字符型:char邏輯值邏輯型:boolC++語言程序設(shè)計112.2基本數(shù)據(jù)類型
C++語言程序設(shè)計12類
型長度(字節(jié))取值范圍說
明char/signedchar1?128~127有符號字符unsignedchar10~255無符號字符shortint/short2?32
768~32
767短整型unsignedshortint20~65
535無符號短整型int/signedint4?231~231?1整型unsignedint40~232?1無符號整型long/longint4?231~231?1長整型unsignedlong40~232?1無符號長整型float4?3.4×1038~3.4×1038浮點型double8?1.7×10308~1.7×10308雙精度型longdouble8?1.7×10308~1.7×10308長雙精度型數(shù)據(jù)類型決定了存放數(shù)據(jù)的內(nèi)存空間的大?。ㄗ止?jié)數(shù))內(nèi)存空間大小用字節(jié)(Byte)數(shù)表示1Byte=8bit特定類型的數(shù)據(jù)所占字節(jié)數(shù)還和所使用的計算機系統(tǒng)以及編譯器有關(guān)不同類型的數(shù)據(jù)所能表示的數(shù)據(jù)取值范圍不同不同類型的數(shù)據(jù)采用不同的存儲格式有符號整型:補碼浮點數(shù)型:IEEE754標準字符型:ASCII碼2.2基本數(shù)據(jù)類型
C++語言程序設(shè)計13數(shù)據(jù)是程序處理的對象程序在運行中通過變量和常量來操作數(shù)據(jù)變量:在整個程序運行期間,其存儲的值可以改變的量常量:程序運行期間,其值不可以改變的量符號常量:用符號表示的常量常數(shù)(字面常量):是指程序中直接寫出的數(shù)據(jù)2.3變量和常量
C++語言程序設(shè)計14變量在整個程序運行期間,其存儲的值可以改變的量實質(zhì):內(nèi)存中的一個地址空間,對該地址空間中的數(shù)據(jù)可以進行存儲、讀取定義變量的語法格式
數(shù)據(jù)類型變量名1,變量名2,……變量名n;2.3變量和常量
C++語言程序設(shè)計15例如:定義各種類型的變量int num;floatf;charch;shorts;doublearea,length; 2.2基本數(shù)據(jù)類型
定義變量的實質(zhì)例如:intnum;用于為變量分配內(nèi)存空間根據(jù)數(shù)據(jù)類型int,從地址0xXXXXXXXX開始,為變量num分配4個字節(jié)單元變量num的取值范圍為?231~231?1編程時,可以直接使用變量名num對存儲在該內(nèi)存空間的數(shù)據(jù),也就是變量值進行存取C++語言程序設(shè)計16關(guān)于變量的幾點說明在C++程序中使用變量,必須“先定義或聲明,后使用”,而且只能定義一次定義變量的位置,C++中沒有要求,放在第一次使用該變量之前的任何位置均可以定義變量時,需要指明該變量的數(shù)據(jù)類型和名稱數(shù)據(jù)類型:決定變量的存儲方式和可以進行的操作變量名:用來區(qū)分不同的變量,使用它可直接存取變量的值變量名是標識符,要遵循標識符定義的規(guī)則2.3變量和常量
C++語言程序設(shè)計17變量的賦值使用賦值運算符“=”可以將一個值賦給變量例如:
unsignedshortintage; age=18;變量的初始化定義變量時,給它指定一個初始值例如:
unsignedshortintage=18;或者unsignedshortintage(18); charch1=‘a(chǎn)’,ch2=‘b’;或者charch1(‘a(chǎn)’),ch2(‘b’);2.3變量和常量
C++語言程序設(shè)計18提示:變量可以被多次賦值變量初始化只能做一次例:賦值運算符的使用2.3變量和常量
C++語言程序設(shè)計19運行結(jié)果:myAge=18myAge=20//變量的賦值#include<iostream>usingnamespacestd;intmain(){
intmyAge=18;
//變量的初始化 cout<<"myAge="<<endl;
myAge=20;
//變量的賦值 cout<<"myAge="<<endl; return0;}typedef關(guān)鍵字用來定義類型的別名語法形式:typedef原類型名
新類型名;例如:typedefunsignedshortintUINT16;
UINT16i;注意:typedef語句并沒有定義一個新的數(shù)據(jù)類型,只是聲明了原有數(shù)據(jù)類型的一個別名用途:簡化復(fù)雜的類型定義,便于理解、使用允許一種類型用于多個目的2.3變量和常量
C++語言程序設(shè)計20符號常量定義格式const數(shù)據(jù)類型常量名=初始值;例如:
constdoublePI=3.14159;關(guān)于常量的幾點說明
常量在程序運行過程中不能夠被改變常量在定義的時候必須進行初始化
不能對常量進行賦值操作例如:constdoublePI;PI=3.14159;2.3變量和常量
C++語言程序設(shè)計21錯誤!C語言中定義符號常量使用預(yù)處理指令#define指令形式:#define符號常量名數(shù)據(jù)值例如:#definePI3.14159注意:因為不是C++語句,所以行末沒有“;”
2.3變量和常量
C++語言程序設(shè)計22提示:程序中盡可能使用符號常量,盡量避免直接使用有特殊意義的常數(shù),以提高程序的可讀性和可維護性整型常數(shù)十進制:直接寫出的整數(shù),例如:231、-4569、0八進制:以數(shù)字0開頭的整數(shù),例如:0123八進制數(shù)的有效數(shù)字為:0~7無正負號十六進制:以0x或0X開頭的整數(shù),例如:0x123十六進制數(shù)的有效數(shù)字為:0~9、A~F(a~f)無正負號整型常數(shù)默認是int類型可以用后綴字母U或u表示無符號型:例如:65536U可以用后綴字母L或l表示長整型:123L2.3變量和常量
C++語言程序設(shè)計23浮點型常數(shù)小數(shù)形式:由數(shù)字和小數(shù)點組成,例如:0.123、234.0、12.56指數(shù)形式:表示為:aEb(aeb)
,代表數(shù)值:a
×
10b例如:1.23E-1、234e1、0.1256E2a、b都不可以省略b必須是整數(shù)浮點型常數(shù)默認是double類型可以用后綴字母F或f表示float類型,例如:12.56f可以用后綴字母L或l表示longdouble,例如:0.1256E2L2.3變量和常量
C++語言程序設(shè)計24字符常數(shù)字符型數(shù)據(jù)占用一個字節(jié),采用ASCII編碼字符常數(shù)采用單引號作為界定符字符常數(shù)包括:可顯示字符,可直接表示,例如:’A’、’?’、’0’等不可顯示的控制字符,采用轉(zhuǎn)義字符序列表示,例如:’\n’、’\t’、’\a’等有特殊用途的字符,采用轉(zhuǎn)義字符序列表示,
例如:’\\’、’\’’、’\”’2.3變量和常量
C++語言程序設(shè)計25轉(zhuǎn)義字符以\開頭的字符序列,用來表示一個特定字符C++中的轉(zhuǎn)義字符2.3變量和常量
C++語言程序設(shè)計26字符形式ASCII碼含
義\a0x07響鈴\n0x0A換行\(zhòng)t0x09制表符(橫向跳格)\v0x0B豎向跳格\b0x08退格\r0x0D回車\\0x5C反斜線\\"0x22雙引號\'0x27單引號\oooo是八進制數(shù)任意ASCII字符\xhhh是十六進制數(shù)任意ASCII字符例:打印特殊字符2.3變量和常量
C++語言程序設(shè)計27//打印特殊字符#include<iostream>usingnamespacestd;intmain(){ cout<<"輸出字母:"<<'a'<<'\a'<<endl; cout<<"輸出字母:"<<'n'<<'\n'; return0;}運行結(jié)果:輸出字母:a(蜂鳴器響一聲)
輸出字母:n(換行)任何ASCII字符的統(tǒng)一表示使用轉(zhuǎn)義字符‘\ooo’,其中o表示1~3位八進制數(shù)使用轉(zhuǎn)義字符’\xhh’,其中h表示1~2位十六進制數(shù)ASCII碼表例如:實現(xiàn)前例的輸出還可以寫為cout<<"輸出字母:"<<'\x61'<<'\x7'<<endl;cout<<"輸出字母:"<<'\x6E'<<'\xA';2.3變量和常量
C++語言程序設(shè)計28字符數(shù)據(jù)的存儲在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存儲ASCII碼值可看成是單字節(jié)整數(shù)C++中字符數(shù)據(jù)和整數(shù)可以相互賦值例:字符數(shù)據(jù)和整型數(shù)據(jù)的轉(zhuǎn)換注意:變量的數(shù)據(jù)類型決定如何解讀內(nèi)存中的數(shù)據(jù)2.3變量和常量
C++語言程序設(shè)計29//字符數(shù)據(jù)和整型數(shù)據(jù)的轉(zhuǎn)換#include<iostream>usingnamespacestd;intmain(){ intn='a'; charch=97; cout<<"按整數(shù)輸出內(nèi)容:"<<n<<endl; cout<<"按字符輸出內(nèi)容:"<<ch<<endl; return0;}運行結(jié)果:按整數(shù)輸出內(nèi)容:97按字符輸出內(nèi)容:a字符串常量由一對雙引號括起來的字符序列例如:“Helloworld!““C++程序設(shè)計”字符串常量的存儲除了存儲所包含的字符外,還存儲一個結(jié)束標志’\0’‘\0’:ASCII碼值為0的字符——結(jié)束符例如:“WORLD!”2.3變量和常量
C++語言程序設(shè)計30WORLD!\0注意:字符串常量和字符型數(shù)據(jù)存儲的區(qū)別“A”:‘A’:A\0A請思考:字符串常量“\x07Operating\tsystem”
中有幾個字符?顯示結(jié)果?邏輯常數(shù)邏輯常數(shù)只有兩個false:表示“假”true:表示“真”邏輯型數(shù)據(jù)的存儲占用一個字節(jié)單元false:存放為0true:存放為1邏輯常數(shù)的顯示false:顯示為0true:顯示為12.3變量和常量
C++語言程序設(shè)計31例如:
boolexchanged=false; exchanged=true;表達式操作數(shù)與運算符(操作符)序列表達式的值:運算結(jié)果例如:3.2 //簡單表達式,值為3.22+3 //常量表達式,值為5a //簡單表達式,值為變量a的值x=(a+b)*c //較為復(fù)雜的表達式y(tǒng)=x=a+b //表達式是可以嵌套的2.4運算符和表達式
C++語言程序設(shè)計32語句由表達式和結(jié)尾的“;”組成一個C++語句例如:x=(a+b)*c; y=x=a+b;空語句單獨出現(xiàn)的分號可用于滿足程序特定語法規(guī)則的要求2.4運算符和表達式
C++語言程序設(shè)計33語句塊(復(fù)合語句)
由{}括起來的語句序列屬于同一個邏輯關(guān)系的多條語句組成語句塊,以滿足程序特定語法規(guī)則的要求
例如:實現(xiàn)將變量x和y交換的語句塊{ inttemp=x; x=y; y=temp;}2.4運算符和表達式
C++語言程序設(shè)計34運算符
C++提供了豐富的運算符運算符的含義:取決于操作數(shù)的類型當(dāng)操作數(shù)為基本數(shù)據(jù)類型時,C++定義了操作符的運算規(guī)則C++支持運算符重載
運算符的優(yōu)先級和結(jié)合性優(yōu)先級:決定了運算順序,例如:1+2*3結(jié)合性:優(yōu)先級相同的運算按照結(jié)合性來確定運算順序,例如:1+2+3使用圓括號可以改變運算順序,例如:(1+2)*32.4運算符和表達式
C++語言程序設(shè)計352.4運算符和表達式
C++語言程序設(shè)計36運算符分類——根據(jù)操作數(shù)個數(shù)一元操作符:僅需要一個操作數(shù)的運算符,例如:+二元操作符:需要兩個操作數(shù)的運算符,例如:+三元操作符:需要三個操作數(shù)的運算符,只有條件運算符:?:運算符分類——根據(jù)運算性質(zhì)賦值運算符、算術(shù)運算符、復(fù)合賦值運算符、關(guān)系運算符、邏輯運算符、位運算符、條件運算符、逗號運算符……2.4運算符和表達式
C++語言程序設(shè)計37賦值運算符“=”是賦值運算符例如:f=3.15、x=y表達式的值:左邊操作數(shù)的值左值和右值左值:可以出現(xiàn)在“=”左邊或右邊右值:只能出現(xiàn)在“=”的右邊變量——左值常量——右值帶有運算符的表達式——一般只能是右值2.4運算符和表達式
C++語言程序設(shè)計38注意:賦值運算符“=”不等同于數(shù)學(xué)意義上的等于號“=”賦值運算符優(yōu)先級“=”具有較低級別的優(yōu)先級“=”的結(jié)合性為:右結(jié)合2.4運算符和表達式
C++語言程序設(shè)計39例如:floatx,y;inta,b;constfloatPI=3.14;x=3.5; //正確y=x; //正確a=b=100; //正確PI=x; //錯誤3.5=x; //錯誤y+2=x-10; //錯誤算術(shù)運算符一元:+(正號)、-(負號)、++(自增)、--(自減)二元:+(加)、-(減)、*(乘)、/(除)%(取余)“/”除法運算符根據(jù)操作數(shù)的類型,決定運算規(guī)則例如:5/2,表達式的值為:25.0/2.0,表達式的值為:2.5“%”取余運算符只能對整數(shù)類型進行操作余數(shù)的符號由被除數(shù)決定2.4運算符和表達式
C++語言程序設(shè)計40例:“/”和“%”運算符的使用2.4運算符和表達式
C++語言程序設(shè)計41運行結(jié)果:a=-4b=3a/b=-1(float)a/b=-1.33333a%b=-1b%a=0//“/”和“%”運算符的使用#include<iostream>usingnamespacestd;intmain(){inta=-4,b=3;cout<<"a="<<a<<"b="<<b<<endl;cout<<"a/b="<<a/b<<endl;cout<<"(float)a/b="<<(float)a/b<<endl;cout<<"a%b="<<a%b<<endl;cout<<"b%a="<<b%a<<endl;return0;}
++(自增)--(自減)運算符操作數(shù)加1(減1)的簡短實現(xiàn)方式,例如:i=i+1(i=i-1)分為:前置自增(自減),例如:++i(--i)后置自增(自減),例如:i++(i--)前置自增(自減)操作數(shù)加1(減1),表達式的值為操作數(shù)修改后的值后置自增(自減)操作數(shù)加1(減1),表達式的值為操作數(shù)修改前的值2.4運算符和表達式
C++語言程序設(shè)計42例:“++”前、后置自增運算符對比2.4運算符和表達式
C++語言程序設(shè)計43運行結(jié)果:i=1,j=1i=2,j=2a=2,b=1//“++”前、后置自增運算符對比#include<iostream>usingnamespacestd;intmain(){ inti=0,j=0,a,b;
++i; j++; cout<<"i="<<i<<",j="<<j<<endl;
a=++i; b=j++; cout<<"i="<<i<<",j="<<j<<endl; cout<<"a="<<a<<",b="<<b<<endl; return0;}復(fù)合賦值運算符將算術(shù)運算符和賦值運算符結(jié)合包括:+=、-=、*=、/=、%=語法格式:aopb,相當(dāng)于:a=aopbop: +,-,*,/、%算術(shù)運算優(yōu)先級2.4運算符和表達式
C++語言程序設(shè)計44+(正號)、-(負號)、++、--*、/、%+(加)、-(減)+=、-=、*=、/=、%=高低例如:x*=y+8相當(dāng)于:x=(x*(y+8))算術(shù)運算的溢出問題算術(shù)運算時,如果運算結(jié)果超出了其類型能夠表示的的數(shù)值范圍,就會產(chǎn)生溢出溢出時,運算結(jié)果是錯誤的,但編譯器不會發(fā)現(xiàn)溢出錯誤溢出的解決:選擇表示數(shù)值范圍更大的數(shù)據(jù)類型2.4運算符和表達式
C++語言程序設(shè)計45例如:shortinti=20000,j=30000,k;cout<<(k=i+j)<<endl; 運行結(jié)果:
-15536溢出了!例如:inti=20000,j=30000,k;cout<<(k=i+j)<<endl; 運行結(jié)果:50000修改為關(guān)系運算符包括:>(大于)、>=(大于等于)、<(小于)、<=(小于等于)==(等于)、!=(不等于)關(guān)系表達式的值:bool值true:運算符指定的關(guān)系成立false:運算符指定的關(guān)系不成立2.4運算符和表達式
C++語言程序設(shè)計46例如:inta=1,b=2,c=3; cout<<(a==b)<<endl;//false,顯示為:0cout<<(a!=b)<<endl;//true,顯示為:1cout<<(a>=b)<<endl;//false,顯示為:0cout<<(a<b)<<endl; //true,顯示為:1boold;d=(a>b)==(c>a+5);//d的值為:truecout<<d<<endl; //顯示為:1邏輯運算符包括:!(邏輯非)、&&(邏輯與)、||(邏輯或)操作數(shù):bool型表達式的值:bool值!:操作數(shù)的值為true,則為:false;操作數(shù)的值為false,則為:true&&:兩個操作數(shù)的值都為true,則為:true;否則為:false||:兩個操作數(shù)的值都為false,則為:false;否則為:true2.4運算符和表達式
C++語言程序設(shè)計47邏輯表達式求值策略當(dāng)左操作數(shù)可以決定邏輯表達式的值時,則不會再去計算右操作數(shù)應(yīng)用:將簡單的關(guān)系表達式連接起來,構(gòu)成的邏輯表達式可以表達更復(fù)雜的條件2.4運算符和表達式
C++語言程序設(shè)計48例如要表示條件:a>b>c邏輯表達式為:(a>b)&&(b>c)關(guān)系、邏輯運算的優(yōu)先級2.4運算符和表達式
C++語言程序設(shè)計49!<、<=、>、>===、!=&&||高低例如:
inta=1,b=2,x=3,y=4;boold;d=a<b&&x>y; //計算過程cout<<d<<endl;//顯示為:0位運算符對整型數(shù)按二進制位進行位操作包括:~(位求反)、&(位與)、|(為或)、^(位異或)、
<<(左移)、>>(右移)操作數(shù):整數(shù)
按位求反運算“~”將操作數(shù)的每一個二進制位按位取反2.4運算符和表達式
C++語言程序設(shè)計50例如:
unsignedchara=0x97;a=~a;1001011101101000按位與運算“&”兩個操作數(shù)對應(yīng)的位進行與運算:如果對應(yīng)的位都為1,則該位
操作結(jié)果為:1,否則為:02.4運算符和表達式
C++語言程序設(shè)計51例如:
unsignedchara=0x97;unsignedcharb=0x78;unsignedcharr=a&b;100101110111100001010000按位或運算“|”兩個操作數(shù)對應(yīng)的位進行或運算:如果對應(yīng)的位都為0,則該位
操作結(jié)果為:0,否則為:12.4運算符和表達式
C++語言程序設(shè)計52例如:
unsignedchara=0x97;unsignedcharb=0x70;unsignedcharr=a&b;100101110111000011110111按位異或運算“^”兩個操作數(shù)對應(yīng)的位進行異或運算:如果對應(yīng)的位只有一個為1,則操作結(jié)果為:1,否則為:02.4運算符和表達式
C++語言程序設(shè)計53例如:
unsignedchara=0x97;unsignedcharb=0x70;unsignedcharr=a&b;100101110111000011000111左移運算“<<”將左操作數(shù)向左移動若干位(由右操作數(shù)指定),
最低位移入:0,移出的最高位丟棄2.4運算符和表達式
C++語言程序設(shè)計54例如:
unsignedchara=7;a<<1;a<<2;000001110000111000011100右移運算“>>”將左操作數(shù)向右移動若干位(由右操作數(shù)指定),左操作數(shù)為無符號數(shù):最高位移入“0”,移出的最低位丟棄左操作數(shù)為有符號數(shù):最高位移入“符號位”,移出的位丟棄2.4運算符和表達式
C++語言程序設(shè)計55例如:
unsignedchara=8;a<<1;a<<2;000010000000010000000010例如:
chara=-8;a<<1;a<<2;111110001111110011111110復(fù)合賦值運算符將位運算符和賦值運算符結(jié)合包括:&=、|=、^=、<<=、>>=語法格式:aopb,
相當(dāng)于:a=aopbop: &,|,^,<<、>>2.4運算符和表達式
C++語言程序設(shè)計56~<<、>>&^|&=、^=、|=、<<=、>>=高低位運算優(yōu)先級位運算應(yīng)用舉例位運算:提供了對整數(shù)每一個二進制位的設(shè)置和檢驗功能實現(xiàn)掩碼運算掩碼:是一個位模式,它表示從一個整數(shù)的二進制位集合中
選出一組位
例如:掩碼0xff,它表示從一個整數(shù)中選取
它的最低8位二進制位采用位與運算實現(xiàn)比較兩個整數(shù)是否相等采用位異或運算運算結(jié)果為0,則相等,否則不相等
2.4運算符和表達式
C++語言程序設(shè)計57例如:unsignedinta=0x1234;cout<<hex<<(a&0xff)<<endl;運行結(jié)果:34(十六進制)例如:unsignedchara,b;a=b=0x56;cout<<(a^b)<<endl;運行結(jié)果:0條件運算符“?:”C++中唯一的三元操作符語法格式:表達式1?表達式2:表達式3計算表達式1的值,如果結(jié)果為true,則計算并返回表達式2的值,
否則,計算并返回表達式2的值2.4運算符和表達式
C++語言程序設(shè)計58例如:intx=0,y=1;cout<<(x>y?x:y)<<endl;運行結(jié)果:1逗號運算符“,”語法格式:表達式1,表達式2,……表達式n順序計算表達式1,表達式2,……,表達式n的值,并將
表達式n的值作為逗號表達式的值2.4運算符和表達式
C++語言程序設(shè)計59例如:inta,b,c,d; d=(a=1,b=2,c=a+b,a+b+c);cout<<d<<endl;運行結(jié)果:6運算符優(yōu)先級總結(jié)每一類型運算符優(yōu)先級不同類型運算符優(yōu)先級使用圓括號“()”可以打破
優(yōu)先級的限制2.4運算符和表達式
C++語言程序設(shè)計60一元算術(shù)運算符、邏輯非二元算術(shù)運算符位移位運算符關(guān)系運算符位運算符邏輯運算符條件操作符賦值、復(fù)合賦值運算符逗號運算符高低數(shù)據(jù)類型轉(zhuǎn)換當(dāng)表達式中出現(xiàn)多種數(shù)據(jù)類型的混合運算時,往往需要進行類型轉(zhuǎn)換表達式中的類型轉(zhuǎn)換分為:隱式類型轉(zhuǎn)換強制類型轉(zhuǎn)換隱式類型轉(zhuǎn)換當(dāng)表達式中需要進行數(shù)據(jù)類型轉(zhuǎn)換時,編譯器按照相關(guān)轉(zhuǎn)換規(guī)則自動執(zhí)行的類型轉(zhuǎn)換強制類型轉(zhuǎn)換在表達式中使用強制類型轉(zhuǎn)換操作符實現(xiàn)的類型轉(zhuǎn)換2.4運算符和表達式
C++語言程序設(shè)計61隱式類型轉(zhuǎn)換算術(shù)運算的轉(zhuǎn)換基本原則將精度較低、范圍較小的類型轉(zhuǎn)換成精度較高、范圍較大的類型同一種精度的無符號數(shù)和有符號數(shù),有符號數(shù)轉(zhuǎn)換成無符號數(shù)例如:5.0/2賦值運算的轉(zhuǎn)換基本原則如果兩個操作數(shù)的類型不一致,則將右操作數(shù)
的類型轉(zhuǎn)換成左操作數(shù)的類型2.4運算符和表達式
C++語言程序設(shè)計62例如:inti;i=3.15;cout<<i<<endl; //運行結(jié)果:3隱式類型轉(zhuǎn)換邏輯運算的轉(zhuǎn)換基本原則邏輯運算符要求操作數(shù)為bool類型,如果操作數(shù)為其他類型,則轉(zhuǎn)換成bool類型
0轉(zhuǎn)換成false,非0轉(zhuǎn)換成true例如:3&&0bool類型轉(zhuǎn)換為整數(shù)的基本原則
true轉(zhuǎn)換成1,將false轉(zhuǎn)換成02.4運算符和表達式
C++語言程序設(shè)計63C語言的強制類型轉(zhuǎn)換運算符“()”語法格式:類型名(表達式)或者(類型名)表達式2.4運算符和表達式
C++語言程序設(shè)計64例如:inti=97;doublef=3.15;cout<<char(i)<<““<<(int)f<<endl;運行結(jié)果:a3C++的強制類型轉(zhuǎn)換運算符static_cast<類型名>語法格式:static_cast<類型名>
(表達式)2.4運算符和表達式
C++語言程序設(shè)計65例如:inti=97;doublef=3.15;cout<<static_cast<char>(i)<<““<<static_cast<int>(f)<<endl;運行結(jié)果:a3關(guān)于強制類型轉(zhuǎn)換說明
如果強制由高精度的數(shù)據(jù)類型轉(zhuǎn)換至低精度的數(shù)據(jù)類型,數(shù)據(jù)精度將受到損失,從這個意義上說,強制類型轉(zhuǎn)換是一種不安全的類型轉(zhuǎn)換在C++編程時建議使用static_cast運算符進行強制類型轉(zhuǎn)換基本數(shù)據(jù)類型之間的強制轉(zhuǎn)換都是允許的對于不允許進行的類型轉(zhuǎn)換,
當(dāng)使用static_cast運算符時,編譯時會報錯
當(dāng)使用C語言的強制類型轉(zhuǎn)換運算符時,編譯不會報錯,但運行時會出錯2.4運算符和表達式
C++語言程序設(shè)計66關(guān)于輸入輸出
標準輸入設(shè)備:一般指鍵盤用于向程序輸入數(shù)據(jù)標準輸出設(shè)備一般指顯示器用于顯示程序的執(zhí)行結(jié)果C語言沒有輸入輸出語句,而是使用庫函數(shù)實現(xiàn)輸入輸出基本輸出庫函數(shù):putchar、printf基本輸入庫函數(shù):getchar、scanf2.5C語言的輸入輸出
C++語言程序設(shè)計67putchar函數(shù)功能:向顯示器輸出一個字符例:字符輸出待輸出的字符寫在小括號里小括號里的內(nèi)容是參數(shù)列表
2.5C語言的輸入輸出
C++語言程序設(shè)計68//字符輸出#include<stdio.h>intmain(){charc='A';
putchar(c);
putchar('\n'); putchar('A');putchar(65);return0;}運行結(jié)果:AAAprintf函數(shù)功能:將數(shù)據(jù)按照一定的格式輸出到
顯示器例:字符串輸出小括號里的內(nèi)容為參數(shù)列表雙引號里的內(nèi)容照原樣輸出2.5C語言的輸入輸出
C++語言程序設(shè)計69//輸出字符串#include<stdio.h>intmain(){printf(“helloworld!\n”);return0;}運行結(jié)果:helloworld!例:輸出整數(shù)和小數(shù)小括號里的內(nèi)容格式控制串和參數(shù)列表,多個參數(shù)用逗號分隔%d表示輸出整數(shù),用變量age的值替換,顯示到屏幕%f表示顯示小數(shù),用常數(shù)3.14159替換,顯示到屏幕雙引號里的其他內(nèi)容照原樣輸出2.5C語言的輸入輸出
C++語言程序設(shè)計70//輸出整數(shù)和小數(shù)#include<stdio.h>intmain(){intage=19;printf("Iam%d.\n",age);printf("PI=%f,Iam%d.\n",3.14159,age);return0;}運行結(jié)果:Iam19.PI=3.141590,Iam19.getchar函數(shù)功能:返回從鍵盤讀取的一個字符例:字符輸入
2.5C語言的輸入輸出
C++語言程序設(shè)計71//字符輸入#include<stdio.h>intmain(){charc;printf("請輸入一個字符:
");c=getchar();printf("輸入字符為:%c\n",c);return0;}運行結(jié)果:請輸入一個字符:A輸入字符為:Ascanf函數(shù)功能:進行格式化輸入例:輸入整數(shù)和小數(shù)&是取地址運算符scanf的格式控制串里不要加多余的空格或’\n’scanf的格式控制串里也可以寫成“%d,%f”,則輸入數(shù)據(jù)時,也需用逗號分隔2.5C語言的輸入輸出
C++語言程序設(shè)計72//輸入整數(shù)和小數(shù)#include<stdio.h>intmain(){intage;floatweight;printf("inputageandweight:");scanf("%d%f",&age,&weight);printf("age=%d,weight=%f.\n",age,weight);return0;}運行結(jié)果:inputageandweight:1955age=19,weight=55.000000.格式轉(zhuǎn)換說明符在printf和scanf的格式控制串中,用來指明了輸入輸出數(shù)據(jù)的類型信息常用的轉(zhuǎn)換說明符2.5C語言的輸入輸出
C++語言程序設(shè)計73類型字符含
義d十進制數(shù)o八進制數(shù)x十六進制數(shù)u無符號十進制數(shù)i整型f實型的小數(shù)形式e實型的指數(shù)形式gf和e的較短形式c字符s字符串l或h放在任何整數(shù)轉(zhuǎn)換說明符之前,用于輸入輸出short或long類型數(shù)據(jù)l或L放在任何浮點轉(zhuǎn)換說明符之前,用于輸入輸出double或longdouble類型數(shù)據(jù)C++的輸入輸出
C++沒有輸入輸出語句,而是使用iostream類庫實現(xiàn)輸入輸出使用iostream庫中標準輸入流對象cin,實現(xiàn)從鍵盤讀取數(shù)據(jù)使用iostream庫中標準輸出流對象cout,將數(shù)據(jù)輸出到屏幕上2.6C++的輸入輸出
C++語言程序設(shè)計74標準輸入流標準輸入流對象cin:負責(zé)從鍵盤讀取數(shù)據(jù)提取操作符“>>”:從cin提取數(shù)據(jù)存入到變量中語法格式:cin>>變量1>>變量2……>>變量n;“>>”可以連續(xù)使用變量的數(shù)據(jù)類型不必一致,“>>”可以識別變量的類型2.6C++的輸入輸出
C++語言程序設(shè)計75例:計算從鍵盤輸入的兩個整數(shù)的和要求實際鍵入的數(shù)據(jù)和變量的類型一致注意:如果數(shù)據(jù)類型不匹配,提取操作會終止如果從鍵盤輸入一個字符給整型變量,則提取操作終止2.6C++的輸入輸出
C++語言程序設(shè)計76//計算從鍵盤輸入的兩個整數(shù)的和#include<iostream>usingnamespacestd;intmain(){intsum=0,value1,value2;cout<<"請輸入兩個整數(shù):";cin>>value1>>value2;sum=value1+value2;cout<<"sumis:"<<sum<<endl;return0;}運行結(jié)果:請輸入兩個整數(shù):12sumis:3標準輸出流標準輸出流對象cout:負責(zé)將程序中的數(shù)據(jù)顯示到屏幕上插入操作符“<<”:將程序中的數(shù)據(jù)寫入cout語法格式:cout<<表達式1<<表達式2……<<表達式n;“<<”可以連續(xù)使用“<<”可以識別數(shù)據(jù)的類型,并顯示出來例如:cout<<“Helloworld!\n”; //在屏幕上顯示字符串常量2.6C++的輸入輸出
C++語言程序設(shè)計77例:cout的使用2.6C++的輸入輸出
C++語言程序設(shè)計78//cout的使用#include<iostream>usingnamespacestd;intmain(){inta,b;charch;
cout<<“請按順序輸入兩個整數(shù)和一個字符:\n";cin>>a>>b>>ch;
cout<<"a="<<a<<"b="<<b
<<"ch="<<ch<<endl;
return0;}運行結(jié)果:請按順序輸入兩個整數(shù)和一個字符:12aa=1b=2ch=aC++語言程序設(shè)計79編程技能aC++中,等于號“=”用于賦值運算例如:inta=5; //變量的定義及初始化a=a+3; //表示讀取變量a的當(dāng)前值,加上3,然后再賦值給變量aC++中,雙等于號“==”用于判斷兩個數(shù)是否相等如果相等,則計算結(jié)果為true,顯示為1如果不相等,則計算結(jié)果為false,顯示為0注意:不能用雙等于號判斷兩個浮點數(shù)是否相等原因:浮點數(shù)在計算機中存儲時不是精確存儲(一)
等于號和雙等于號C++語言程序設(shè)計80sizeof運算符用來確定
數(shù)據(jù)類型或數(shù)據(jù)的長度語法形式:
sizeof(數(shù)據(jù)類型名)
sizeof(表達式)(二)sizeof運算符
C++語言程序設(shè)計81//輸出數(shù)據(jù)類型、數(shù)據(jù)的長度#include<iostream>usingnamespacestd;intmain(){cout<<"char:"<<sizeof(char)<<"字節(jié)\n";cout<<"int:"<<sizeof(int)<<"字節(jié)\n";cout<<"float:"<<sizeof(float)<<"字節(jié)\n";cout<<"double:"<<sizeof(double)<<“字節(jié)\n";cout<<"bool:"<<sizeof(bool)<<"字節(jié)\n";inta=5;cout<<"變量a:"<<sizeof(a)<<"字節(jié)\n";return0;}使用printf輸出時,可以指定顯示寬度(三)
輸出的格式控制C++語言程序設(shè)計82//指定顯示寬度#include<stdio.h>intmain(){printf("number:%4d,OK\n",3);printf("number:%4d,OK\n",33);printf("number:%4d,OK\n",333);return0;}使用printf輸出時,可以指定顯示寬度(三)
輸出的格式控制C++語言程序設(shè)計83//指定顯示寬度#include<stdio.h>intmain(){printf("number:%04d,OK\n",3);printf("number:%04d,OK\n",33);printf("number:%04d,OK\n",333);return0;}使用printf輸出時,可以指定小數(shù)點后的位數(shù)例如:printf(“x=%.2f\n”,3.14159);
//顯示為:x=3.14C++使用操控符控制輸入輸出的格式操控符的說明包含在頭文件iomanip中操控符可以直接嵌入在輸入輸出語句中實現(xiàn)格式控制使用setw(intn)操縱符設(shè)置域?qū)抯etw(0)按數(shù)據(jù)實際寬度輸出如果所設(shè)置域?qū)捫∮跀?shù)據(jù)寬度,則按數(shù)據(jù)實際寬度輸出setiosflags(ios::left)、setiosflags(ios::right):設(shè)置數(shù)據(jù)對齊方式默認:右對齊setfill(charc):設(shè)置填充字符默認:空格(三)
輸出的格式控制C++語言程序設(shè)計84(三)
輸出的格式控制C++語言程序設(shè)計85例如:cout<<setw(8)<<‘a(chǎn)’<<setw(8)<<‘b’<<endl;顯示為:ab例如:cout<<setfill(‘*’)<<setw(8)<<‘a(chǎn)’<<setw(8)<<‘b’<<endl;顯示為:*******a*******b例如:cout<<setiosflags(ios::left)<<setfill(‘*’)<<setw(8)<<‘a(chǎn)’<<setw(8)<<‘b’<<endl;顯示為:a*******b*******使用setprecision(intn)可以控制顯示浮點數(shù)的數(shù)字個數(shù)C++默認輸出浮點數(shù)的有效位為6位setprecision(0)按默認輸出使用setiosflags(ios::fixed)設(shè)置用定點方式表示浮點數(shù)默認設(shè)置為顯示6位有效小數(shù)使用setprecision(intn)可以設(shè)置小數(shù)的數(shù)字個數(shù)使用setiosflags(ios::scientific)設(shè)置用指數(shù)方式表示浮點數(shù)默認設(shè)置為顯示6位有效小數(shù)使用setprecision(intn)可以設(shè)置小數(shù)的數(shù)字個數(shù)使用操縱符將小數(shù)截短顯示時,將進行四舍五入處理(三)
輸出的格式控制C++語言程序設(shè)計86(三)
輸出的格式控制C++語言程序設(shè)計87例如:doublef=17/7.0;cout<<f<<endl;cout<<setprecision(3)<<f<<endl;顯示為:2.425872.43例如:doublef=17/7.0;cout<<f<<endl;cout<<setiosflags(ios::fixed)<<setprecision(3)<<f<<endl;顯示為:2.425872.429例如:doublef=170/7.0;cout<<f<<endl;cout<<setiosflags(ios::scientific)<<setprecision(3)<<f<<endl;顯示為:24.25872.429e+001C++字符串存儲和處理C++基本數(shù)據(jù)類型中沒有字符串類型C語言:字符數(shù)組、字符指針使用C++標準模板庫(STL)中的string類型string類型的說明包含在頭文件string中string類型支持長度可變的字符串,處理字符串更方便、安全(四)使用string類型處理字符串C++語言程序設(shè)計88string對象的定義和初始化使用string類型,要包含頭文件string#include<string>使用舉例: stringstr1; //定義string對象str1 stringstr2(“Hello”); //定義string對象str2,并初始化
stringstr3=str2; //定義string對象str3,并初始化string對象的初始化還有其他方法(四)使用string類型處理字符串C++語言程序設(shè)計89string對象的輸入輸出屏幕顯示:
使用cout和“<<”鍵盤輸入:
使用cin和“>>”例:string
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025企業(yè)管理資料范本附件應(yīng)屆畢業(yè)生聘用合同
- 2025年出口合同范本
- 2025國有土地使用權(quán)出讓合同(宗地)
- 挖掘少數(shù)民族醫(yī)藥資源促進健康產(chǎn)業(yè)發(fā)展
- 課題申報參考:空間視角下當(dāng)代德國的家國反思及啟示
- 安全知識普及類APP的內(nèi)容策劃與制作研究
- 激發(fā)員工創(chuàng)造力提升企業(yè)競爭力
- 智慧辦公在農(nóng)業(yè)科技園區(qū)的應(yīng)用及趨勢
- 2025年人教五四新版九年級科學(xué)下冊月考試卷含答案
- 2024 四川公務(wù)員考試行測真題(綜合管理崗)
- 四川省成都市武侯區(qū)2023-2024學(xué)年九年級上學(xué)期期末考試化學(xué)試題
- 2024年秋季人教版七年級上冊生物全冊教學(xué)課件(2024年秋季新版教材)
- 環(huán)境衛(wèi)生學(xué)及消毒滅菌效果監(jiān)測
- 2024年共青團入團積極分子考試題庫(含答案)
- 碎屑巖油藏注水水質(zhì)指標及分析方法
- 【S洲際酒店婚禮策劃方案設(shè)計6800字(論文)】
- 鐵路項目征地拆遷工作體會課件
- 醫(yī)院死亡報告年終分析報告
- 中國教育史(第四版)全套教學(xué)課件
- 2023年11月英語二級筆譯真題及答案(筆譯實務(wù))
- 上海民辦楊浦實驗學(xué)校初一新生分班(摸底)語文考試模擬試卷(10套試卷帶答案解析)
評論
0/150
提交評論