基本數(shù)據(jù)類型與輸入輸出_第1頁
基本數(shù)據(jù)類型與輸入輸出_第2頁
基本數(shù)據(jù)類型與輸入輸出_第3頁
基本數(shù)據(jù)類型與輸入輸出_第4頁
基本數(shù)據(jù)類型與輸入輸出_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基本數(shù)據(jù)類型與輸入輸出第一頁,共二十六頁,2022年,8月28日標(biāo)識(shí)符的構(gòu)成規(guī)則以大寫字母、小寫字母或下劃線(_)開始。由以大寫字母、小寫字母、下劃線(_)或數(shù)字0~9組成。大寫字母和小寫字母代表不同的標(biāo)識(shí)符。標(biāo)識(shí)符不能使用關(guān)鍵字。例:

i jkmyStr Binary_Tree _123

以下的標(biāo)識(shí)符為非法的:

2_Treestruct -VV C++語言是大小寫敏感語言,所以以下均是一些合法的、且是不同的標(biāo)識(shí)符:

Friend FRIEND my_carmyCar(駱駝表示法)第二頁,共二十六頁,2022年,8月28日2.2基本的數(shù)據(jù)類型一個(gè)程序要運(yùn)行,就要先描述其算法;描述一個(gè)算法應(yīng)首先說明算法中要用到的數(shù)據(jù),數(shù)據(jù)以變量或常量的形式來描述。每個(gè)變量或常量都有數(shù)據(jù)類型。變量的數(shù)據(jù)類型的一個(gè)重要作用就是告訴編譯器要為變量分配多少個(gè)字節(jié)的內(nèi)存空間。如:在16位計(jì)算機(jī)中,int2個(gè)字節(jié)、float4、double8C++數(shù)據(jù)類型分為基本數(shù)據(jù)類型和非基本數(shù)據(jù)類型兩種:第三頁,共二十六頁,2022年,8月28日2.2基本的數(shù)據(jù)類型(續(xù))基本類型枚舉enum指針type*空類型void整型int字符型邏輯型bool實(shí)型(符點(diǎn))單精度float雙精度double數(shù)組type[]結(jié)構(gòu)struct聯(lián)合union數(shù)據(jù)類型單字符型char寬字符型wchar_t非基本類型類class注:關(guān)于基本數(shù)據(jù)類型在內(nèi)存中的描述可以看P14表2-2,程序中可用sizeof(數(shù)據(jù)類型)來確定某數(shù)據(jù)類型長度。第四頁,共二十六頁,2022年,8月28日2.2基本的數(shù)據(jù)類型(續(xù))C++還為基本數(shù)據(jù)類型預(yù)定義了4個(gè)類型修飾前綴它們分別是:

short //短整型,僅修飾int long //長型,修飾int,double

signed //有符號(hào),修飾char,int

unsigned //無符號(hào),修飾char,int注意:當(dāng)用修飾前綴來修飾int時(shí),允許省略關(guān)鍵字int。另外,關(guān)鍵字signed和unsigned還可以與long及short組合起來修飾整型數(shù)據(jù)。例:unsignedlongul; //ul被說明成一個(gè)無符號(hào)長整型量

longdoubleHuge; //Huge被說明成一個(gè)長的雙精度

//型量,其值可達(dá)-3.4E4932~1.1E4932第五頁,共二十六頁,2022年,8月28日2.3常量1、整型常量(整型常數(shù))(1)十進(jìn)制整型常量的表示形式與日常數(shù)學(xué)相同;(2)八進(jìn)制整型常量由字符0~7組成,起始字符必須是0;(3)十六進(jìn)制整型常量由字符0~9及a~f組成,起始的兩個(gè)字符必須是0x,其中,字母字符大小寫意義相同。例:

123//十進(jìn)制表示的壹百貳十叁

0173 //八進(jìn)制表示的壹百貳十叁

0x7b //十六進(jìn)制表示的壹百貳十叁第六頁,共二十六頁,2022年,8月28日2、實(shí)型常數(shù)實(shí)型數(shù)值常量僅用十進(jìn)制表示。(1)小數(shù)形式:數(shù)字和小數(shù)點(diǎn)組成。(必須要有小數(shù)點(diǎn))如:0.123,3.14159(2)指數(shù)形式:314159e-5。

注意:e和E之前要有數(shù)字,且E后的指數(shù)必須為整數(shù)。如:e3,1e3.5不是合法的指數(shù)形式。

2.3常量(續(xù))第七頁,共二十六頁,2022年,8月28日3、字符常量(1)字符常量由單個(gè)字符構(gòu)成,其基本表示形式為一對(duì)單引號(hào)括起來的一個(gè)字符。例:'a' 'M' '5' '$' ''注意:在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存儲(chǔ),即以整數(shù)表示。(2)轉(zhuǎn)義字符其表示方式為反斜杠“\”后跟一個(gè)無前綴0的八進(jìn)制或十六進(jìn)制常量,常量的值為欲表示之字符常量的ASCII碼。例:'A'、'\101'、'\x41'均表示字符常量A(字符常量A的ASCII碼值為65)。2.3常量(續(xù))第八頁,共二十六頁,2022年,8月28日(3)幾個(gè)特殊的轉(zhuǎn)義字符

\a //響鈴

\n //換行

\t //水平制表符

\v //垂直制表符

\b //退格

\r //回車

\\ //反斜杠(“\”)

\'' //雙引號(hào)(“''”)

\' //單引號(hào)(“'”)2.3常量(續(xù))第九頁,共二十六頁,2022年,8月28日4、字符串常量字符串常量是由一對(duì)雙引號(hào)括起來的字符序列,例如:

"HELLO"注意:C++語言所采用的字符串在串中不包含長度信息,而用一個(gè)ASCII值為0的字符來標(biāo)識(shí)串的結(jié)束位置。因此,串所占用的存儲(chǔ)空間比其實(shí)際字符個(gè)數(shù)要多一個(gè)字節(jié)。例如:上述字符串常量所占的內(nèi)存如下圖所示。特別注意:'\0'又叫字符串結(jié)束符,是C++約定的字符串結(jié)束符。2.3常量(續(xù))HELLO'\0'比較:(1)"\0"和'\0' (2)"0"和'0'第十頁,共二十六頁,2022年,8月28日5、枚舉常量枚舉常量可通過建立枚舉類型來定義。enum枚舉類型名{枚舉常量值列表};如:enumCOLOR{RED,BLUE,GREEN,WHITE,BLACK};注:(1)COLOR是類型名(自定義),不是變量。(2)RED、BLUE等都是枚舉常量,在內(nèi)存中以正數(shù)形式存儲(chǔ)。若無專門賦值,第一個(gè)枚舉值為0,第二個(gè)為1。(3)可以給枚舉常量賦值,enumCOLOR{RED=100,BLUE=20,GREEN};2.3常量(續(xù))第十一頁,共二十六頁,2022年,8月28日(1)變量定義變量就是其值可變的量。一個(gè)變量是一塊用標(biāo)識(shí)符(叫做變量名)所標(biāo)識(shí)的存儲(chǔ)單元,用于存放可由程序修改的值。C++語言中的變量必須“先定義,后使用”。定義變量也叫做說明(Declare)變量,說明變量的一般形式為:type var_name

<,var_name...>;type為數(shù)據(jù)類型;var_name為標(biāo)識(shí)符,即程序員為變量所取的名字。例:inti,j; //定義兩個(gè)整型變量

charch;//定義一個(gè)字符型變量

doubledfResult;//定義一個(gè)雙精度型變量2.4變量第十二頁,共二十六頁,2022年,8月28日變量具有4種基本屬性:

1.用變量名標(biāo)識(shí);

2.占據(jù)一定的存儲(chǔ)單元;

3.有且僅有一個(gè)值;

4.新值將取代舊值。2.4變量(續(xù))00000010001101110237}i20002001inti;i=0x0237;i=0x1356;第十三頁,共二十六頁,2022年,8月28日(2)變量賦值與初始化☆用賦值運(yùn)算符“=”給變量賦值

intwidth;width=5;☆定義時(shí)直接給變量一個(gè)初始值,稱為變量的初始化

intwidth=5;☆定義時(shí)可初始化多個(gè)變量

intwidth=5,length=10;☆定義時(shí)不需要對(duì)每個(gè)變量都初始化

doublearea,radius=23;2.4變量(續(xù))第十四頁,共二十六頁,2022年,8月28日(3)typedef

用typedef為一個(gè)已有的類型名提供一個(gè)別名。語法形式:typedef已有類型名

新類型名;例:typedefdoubleprofit;//定義double的別名

typedefintINT,integer;//定義int的兩個(gè)別名

INTa;//等價(jià)inta;注意:

typedef沒有實(shí)際定義一個(gè)新的數(shù)據(jù)類型,而為一個(gè)已有的類型名提供一個(gè)別名。2.4變量(續(xù))第十五頁,共二十六頁,2022年,8月28日2.5常量定義若程序中想讓變量的內(nèi)容初始化以后就保持不變,可以定義一個(gè)常量。語法形式:const

類型名標(biāo)識(shí)符=常量表達(dá)式;如:constfloatpi=3.1415926;注:(1)常量在定義時(shí)必須初始化;(2)程序中不能對(duì)常量重新賦值;(3)分配存儲(chǔ)空間第十六頁,共二十六頁,2022年,8月28日1、I/O書寫格式☆標(biāo)準(zhǔn)輸入流cin格式:

cin>>variable<>>variable...>;

其中,符號(hào)“>>”叫做抽取運(yùn)算符,它的作用是從輸入流

cin(缺省為控制臺(tái))中獲取一個(gè)與變量variable之類型相匹配的值,并將該值賦給變量variable。例:

cin>>i; cin>>x>>y>>z;

注意后一種用法:在響應(yīng)串聯(lián)方式的輸入時(shí),所輸入的各數(shù)值必須用空白字符(空格鍵、Tab鍵或回車鍵)分隔開來。2.5I/O流控制第十七頁,共二十六頁,2022年,8月28日☆標(biāo)準(zhǔn)輸出流cout格式:

cout<<expression<<<expression…>;

其中,符號(hào)“<<”叫做插入運(yùn)算符,它的作用是向輸出流

cout中傳遞表達(dá)式expression的值。例:cout<<2*3; cout<<2<<""<<3;注意:在串聯(lián)方式輸出中,各表達(dá)式常常需要人為地加上某些分隔符號(hào),比如上面第二個(gè)輸出中實(shí)際上是輸出了3個(gè)常量:2、3以及由兩個(gè)空格構(gòu)成的字符串常量,字符串常量在這里起到分隔兩個(gè)數(shù)值的作用。若無該字符串常量,則輸出將變成:232.5I/O流控制(續(xù))第十八頁,共二十六頁,2022年,8月28日2、使用流控制符(在頭文件iomanip.h定義)流的默認(rèn)格式不滿足要求,則要用控制符對(duì)I/O流的格式進(jìn)行控制。如:C++默認(rèn)的浮點(diǎn)數(shù)輸出是6位有效位,想讓小數(shù)點(diǎn)后保留2位,怎么辦?(1)控制浮點(diǎn)數(shù)值顯示☆

setprecision(n):控制輸出流顯示浮點(diǎn)數(shù)的有效位數(shù)☆

setprecision(n)與setiosflags(ios::fixed)控制小數(shù)點(diǎn)右邊的數(shù)字個(gè)數(shù);這里setiosflags(ios::fixed)是用定點(diǎn)方式表示實(shí)數(shù)。☆

setiosflags(ios::scientific)控制指數(shù)表示法的小數(shù)位數(shù)。2.5I/O流控制(續(xù))第十九頁,共二十六頁,2022年,8月28日//*********************//**ch2_1.cpp**//*********************#include<iostream.h>#include<iomanip.h>//要用到格式控制符voidmain(){doubleamount=22.0/7;cout<<amount<<endl;cout<<setprecision(0)<<amount<<endl<<setprecision(1)<<amount<<endl<<setprecision(2)<<amount<<endl<<setprecision(3)<<amount<<endl<<setprecision(4)<<amount<<endl;

2.5I/O流控制(續(xù))第二十頁,共二十六頁,2022年,8月28日

cout<<setiosflags(ios::fixed);cout<<setprecision(8)<<amount<<endl;cout<<setiosflags(ios::scientific)<<amount<<endl;cout<<setprecision(6);//重新設(shè)置成原默認(rèn)設(shè)置}注:(1)浮點(diǎn)數(shù)表示輸出中,setprecision(n)表示有效位數(shù),有效位數(shù)最小為1;(2)定點(diǎn)表示的輸出中,setprecision(n)表示小數(shù)位數(shù)。(3)指數(shù)形式輸出中,setprecision(n)表示小數(shù)位數(shù)。(4)小數(shù)位數(shù)截短顯示時(shí),進(jìn)行4舍5入。2.5I/O流控制(續(xù))第二十一頁,共二十六頁,2022年,8月28日(2)設(shè)置值的輸出寬度:setw(n)控制符☆

實(shí)際輸出值的寬度大于n,按實(shí)際寬度輸出☆實(shí)際輸出值的寬度小于n,在輸出值前補(bǔ)空格,如:

cout<<setw(8)<<10<<20<<endl;結(jié)果為:□□□□□□1020☆若要每個(gè)值的寬度都為8,則每個(gè)值都要設(shè)置。

cout<<setw(8)<<10 <<setw(8)<<20<<endl;2.5I/O流控制(續(xù))第二十二頁,共二十六頁,2022年,8月28日(3)設(shè)置填充字符setw可用來確定顯示的寬度,用空格來補(bǔ)充。用setfill控制符確定一個(gè)的別的填充符號(hào)。2.5I/O流控制(續(xù))//*********************//**ch2_3.cpp**//*********************#include<iostream.h>#include<iomanip.h>voidmain(){cout<<setfill('*')<<setw(2)<<21<<endl<<setw(3)<<21<<endl<<setw(4)<<21<<endl;cout<<setfill('');//恢復(fù)默認(rèn)設(shè)置}第二十三頁,共二十六頁,2022年,8月28日(4)左右對(duì)齊輸出

setiosflags(ios::left)和setiosflags(ios::right)控制輸出左右對(duì)齊。2.5I/O流控制(續(xù))//*********************//**ch2_4.cpp**//*********************#include<iostream.h>#include<iomanip.h>voidmain(){cout<<setiosflags(ios::right)<<setw(5)<<1<<setw(5)<<2<<setw(5)<<3<<endl;cout<<setiosflags(ios::left)<<setw(5)<<1<<setw(5)<<2<<setw(5)<<3<<endl;}第二十四頁,共二十六頁,2022年,8月28日(5)顯示小數(shù)點(diǎn)和符號(hào)如cout<<10.0/5<

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論