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

下載本文檔

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

文檔簡介

第二章 C+簡單程序設(shè)計 C+語言程序設(shè)計 2 本章主要內(nèi)容 C+語言概述 (熟悉) 基本數(shù)據(jù)類型和表達式 (重點) 數(shù)據(jù)的輸入與輸出 (熟悉) 算法的基本控制結(jié)構(gòu) (重點) 自定義數(shù)據(jù)類型 (了解) 3 C+語言的產(chǎn)生 C+出于 C而勝于 C 引入類機制,最初被稱為“帶類的 C” 1983年正式取名為 C+ 從 1989年開始 C+語言的標準化工作 1994年制定了 ANSI C+標準草案 1998年 11月被( ISO)批準為國際標準 C+語言概述 4 C+的誕生 C+的創(chuàng)始人: Bjarne stroustrup ( AT&T Bell實驗室) 5 C+的特點 全面兼容 C 它保持了 C的簡潔、高效和接近匯編語言等特點 對 C的類型系統(tǒng)進行了改革和擴充 C+也支持面向過程的程序設(shè)計,不是一個純正的面向?qū)ο蟮恼Z言 支持面向?qū)ο蟮姆椒?C+語言概述 6 C+程序?qū)嵗?例 2-1 /2_1.cpp #include using namespace std; int main() coutWelcome to c+!endl; return 0; 運行結(jié)果: Welcome to c+! C+語言概述 7 C+程序的組成 程序主體 函數(shù)、類(數(shù)據(jù)成員、成員函數(shù)) 程序總是從 main函數(shù)開始執(zhí)行,而不論 main函數(shù)在整個程序中的位置如何。 語句以英文分號結(jié)束;書寫格式自由 預(yù)處理命令 以 #開頭的語句 注釋 單行 / 多行 /* */ ( C語言原有的注釋方式) 8 C+字符集 大小寫的英文字母: A Z, a z 數(shù)字字符: 0 9 特殊字符: 空格 ! # % & * _(下劃線 ) + = - / ; . , : ? ( ) C+語言概述 9 詞法記號 關(guān)鍵字 C+預(yù)定義的單詞 標識符 程序員聲明的單詞,它命名程序正文中的一些實體 文字 在程序中直接使用符號表示的數(shù)據(jù) 操作符 用于實現(xiàn)各種運算的符號 分隔符 () , : ; 用于分隔各個詞法記號或程序正文 空白符 空格、制表符( TAB鍵產(chǎn)生的字符)、換行符( Enter鍵所產(chǎn)生的字符)和注釋的總稱 C+語言概述 10 標識符的構(gòu)成規(guī)則 以大寫字母、小寫字母或下劃線 _開始 可以由以大寫字母、小寫字母、下劃線_或數(shù)字 0 9組成。 大寫字母和小寫字母代表不同的標識符。 大小寫敏感 C+語言概述 11 用戶自定義標識符 合法的: apple、 _Student、 _123、 No1、 max_num 不合法的: 51job、 max-num、 abc$、 float、 true 良好的標識符命名習(xí)慣 1、 Unix常用的命名法 my_age、 num_of_student 2、 駝峰式命名法 myAge、 numOfStudent 3、 匈牙利標記法 iMyCar、 bIsRight 12 2.2 基本數(shù)據(jù)類型 什么是數(shù)據(jù)類型? 數(shù)據(jù)是程序處理的對象,根據(jù)其本身的特點進行分類,形成不同的數(shù)據(jù)類型。 例:數(shù)學(xué)中有自然數(shù)、整數(shù)、實數(shù) 基本數(shù)據(jù)類型 整型: int 字符型: char 實型:單精度 float、雙精度 double 邏輯型: bool 13 基本類型 有序型 字符型 (char) 整型 (int、 short、 long) 布爾型 (bool) 浮點型 單精度型 (float) 雙精度型 (double) 構(gòu)造類型 枚舉型 (enum) 數(shù)組 結(jié)構(gòu)體 (struct) 共用體 (union) 類 (class) 指針類型 14 修飾符 在 C+中描述為了更加準確的描述數(shù)據(jù)類型,提供了 4個關(guān)鍵字用來修飾基本的數(shù)據(jù)類型: 1、長型 long 2、短型 short 3、有符號 signed 4、無符號 unsigned 15 1、 short: 僅用來修飾 int, 稱為短整型 , 占 2字節(jié)內(nèi)存 , 也可直接簡寫為 short; 2、 long: 僅修飾 int和 double, 在不同的編譯環(huán)境中使用 long修飾的數(shù)據(jù)所占內(nèi)存不同 。 3、 unsigned: 用來修飾 char、 short和 int, 表示該數(shù)據(jù)類型為無符號數(shù) 。 4、 signed: 用來修飾 char、 short和 int, 表示該數(shù)據(jù)類型為有符號數(shù) , 為缺省設(shè)置 。 16 數(shù)據(jù)類型 整型數(shù)據(jù)及取值范圍 類型 說明符 位數(shù) 數(shù)值范圍 短整 short 16 -32768 32767 基本 int 32 -231 (231-1) 長整 long 32 -231 (231-1) 無符號 unsigned short 16 0 65535 unsigned int 32 0 (232-1) unsigned long 32 0 (232-1) 基本數(shù)據(jù)類型和表達式 17 數(shù)據(jù)類型和內(nèi)存空間 不同的數(shù)據(jù)類型,加上不同的修飾符,在內(nèi)存中占用的空間不同,其所能表示的數(shù)值范圍也不同。 內(nèi)存單元的單位是字節(jié),因此用來表示數(shù)據(jù)類型的長度的單位也是字節(jié)。 整型 int的長度等于機器的字長: 16位機: int=2字節(jié); 32位機: int=4字節(jié) 。 long int在 32位系統(tǒng)中一般為 4字節(jié),但在 64位系統(tǒng)一般位 8字節(jié)。 float和 double型數(shù)據(jù)的有效位數(shù)分別為 6位、 15位 18 unsigned int與 signed int的比較 指定為 signed的數(shù)據(jù)以補碼形式存放,存儲單元中的最高位 (bit)用來表示數(shù)值的符號。指定為 unsigned的數(shù)據(jù),全部二進制位都用來表示數(shù)值本身。例:短整型數(shù)據(jù)占兩個字節(jié) 19 float 4字節(jié) 精度: 3.4 10 38 6位有效數(shù)字 double 8字節(jié) 精度: 1.7 10 308 15位有效數(shù)字 long double 8字節(jié) 精度: 1.7 10 308 15位有效數(shù)字 數(shù)據(jù)類型 實型數(shù)據(jù) 實型常量: 1.23默認為 double型 1.23F或 1.23f為 float型 1.23L為 long double型 20 常量 1. 在程序運行過程中,值不能被改變的量稱為常量。 2. 文字常量是指可直接使用的常量。 3. 文字常量分為整形、實型、字符型和字符串型常量。 21 常量 1整型常量 ( 1)十進制整數(shù),如: 789, -456 ( 2)八進制整數(shù),如: 0102, -026 ( 3)十六進制整數(shù),如: 0x789, -0xAB ( 4)長整型與無符號型整數(shù) 長整型整數(shù),如: 12L, 0234L, -0xABl 無符號型整數(shù),如: 12U, 0234U,0xABU 22 常量 2實型常量 在內(nèi)存中以浮點形式存放,均為十進制數(shù),無數(shù)制區(qū)分。 ( 1)小數(shù)形式: 1.65, 1., .123 ( 2)指數(shù)形式: 1.23e5、 1.23e-5、 1e3 23 數(shù)據(jù)類型 字符型數(shù)據(jù) 字符常量 單引號括起來的一個字符, 如: a, D, ?, $ 字符變量 用來存放字符 例: char c1,c2; c1=a; c2=A; 字符數(shù)據(jù)在內(nèi)存中的存儲形式 以 ASCII碼存儲,占 1字節(jié),用 7個二進制位 基本數(shù)據(jù)類型和表達式 24 字符串常量 例 :CHINA a a 所以: char c; c=a; C H I N A 0 a 0 a 數(shù)據(jù)類型 字符型數(shù)據(jù) 基本數(shù)據(jù)類型和表達式 25 轉(zhuǎn)義字符 a 響鈴(喇叭聲) n 回車 t 向右跳過一個水平制表符 nnn 八進制數(shù)表示 注意 :每一位數(shù)字 n=、 、 =、 =、 、 =、 2、 =、 != 關(guān)系表達式的結(jié)果類型為 bool,只能為 true或 false 注意:不要把 = 當成等號用! 例:設(shè) int a=0; 則 a=0為 true ,而 a=0為 false 35 int a=1, b=2, c=3; cout(a=b)endl; cout(a!=b)endl; cout=b)endl; cout(ab)endl; coutba)3&2|84 true 例 3: 3&0&9 false 例 2、 3涉及 表達式短路 概念: 如果多個表達式用 & 或 | 連接,為了提高判斷效率,只要能夠確定表達式的結(jié)果,運行就不再繼續(xù)了。 例 4: 閏年的判別:設(shè)年份為 y,當下式為真時為閏年: y%4=0 & y%100 !=0 | y%400=0 38 增 1、減 1運算 運算符: +和 -分別表示將操作數(shù)增 1、減 1 操作對象:整型或字符型變量 根據(jù)操作數(shù)的位置不同,分為前置和后置兩種 +i 先自身加 1,再將加 1的值作為表達式的值 i+ 將 i作為表達式的值,然后自身再加 1。 -i 先自身減 1,再將加 1的值作為表達式的值 i- 將 i作為表達式的值,然后自身再減 1。 結(jié)合性:從右向左 39 #include using namespace std; void main() int i =1; couti=iendl; couti+: i+endl; couti=iendl; cout +i: +iendl; couti=iendl; 1 1 2 3 3 40 試一試 :運行結(jié)果是什么? #include using namespace std; int main() int i,j,x,y; i=j=1; x=(+i)+(+i); y=(j+)+(j+); coutijxyendl; coutx+x+endl; return 0; why? 1 2 41 賦值運算符和賦值表達式 賦值運算符: 就是 = 例如: float f=3.15 左值: 可以合法的放在 =左邊的操作數(shù) 右值: 可以合法的放在 =右邊的操作數(shù) 常量為右值 , 所以不能放在 =左邊被賦值; 變量既有左值又有右值 , 可以放在任何位置 。 左值是使用其地址 , 右值是使用其內(nèi)容 。 42 a=b=c=5 (賦值表達式值為 5, a, b, c值均為 5) a=5+(c=6) (表達式值為 11, a值為 11, c值為 6) a=(b=4)+(c=6) 表達式值為 10, a b c值為 10, 4, 6) 思考: 1) a=3,b=2; f=a=b; g=a=b; ( 連續(xù)賦值 ) f=? g=? 2) 執(zhí)行 (a=3*5)=4*3后 , a的值是多少 ? 寫成 a=3*5=4*3 可以嗎 ? 43 賦值表達式 C+將賦值表達式作為表達式的一種,使賦值操作不僅可以出現(xiàn)在賦值語句中,而且可以以表達式形式出現(xiàn)在其他語句(如輸出語句、循環(huán)語句等)中。這是 C+語言靈活性的一種表現(xiàn)。 注意:用 cout語句輸出一個賦值表達式的值時,要注意運算符與 的優(yōu)先級,保險的辦法是將該賦值表達式用括號括起來。 例:如果寫成 couta=b;將編譯出錯! 44 復(fù)合賦值運算 在 C+中可以將算術(shù)運算符和賦值運算符結(jié)合在一起進行運算 , 因此 C+還提供 10種復(fù)合的賦值運算符 +=, -=, *=, /= , %=等 。 好處:能產(chǎn)生質(zhì)量較高的目標代碼 。 例如: x+=y 相當于 x = x+y x-=y 相當于 x = x-y x*=y 相當于 x = x*y x/=y 相當于 x = x/y x%=y 相當于 x = x%y 注意: a*=x+2等價于 a=a*(x+2)而非 a=a*x+2 賦值號右端的表達式相當于帶括號的 45 賦值運算符和賦值表達式 復(fù)合的賦值運算符 有 10種復(fù)合運算符: +=, -=, *=, /=, %=, =,&=,=,|= 例 a+=3 等價于 a=a+3 x*=y+8 等價于 x=x*(y+8) 基本數(shù)據(jù)類型和表達式 46 逗號運算符與逗號表達式 逗號運算符 , 又叫 順序求值運算符 優(yōu)先級最低 。 格式: 表達式 1, 表達式 2, , 表達式 n; 依次計算表達式 1, 表達式 2, , 表達式 n的值 , 并將表達式 n的結(jié)果作為逗號表達式的結(jié)果 例 1:逗號表達式 a=3*5, a*4的值 ? 60 例 2: int a, b, c, x, y; a=3, b=4, c=a+b; x=b+c, a; x值為 11,表達式值為 3 y=(b+c, a) y和整個表達式值都為 3 47 x=(a=3, 6*3) a值為 3, x值為 18 x=a=3,6*a a值為 3, x值為 3 逗號表達式其實是把若干個表達式 串聯(lián) 起來。使用逗號表達式是想分別得到各個表達式的值,而并非一定需要得到和使用整個逗號表達式的值,逗號表達式最常用于 for循環(huán)語句中。 在用 cout輸出一個逗號表達式的值時,要將該逗號表達式用括號括起來,如 cout(3*5, 43-6*5, 67/3)b?a:b; 基本數(shù)據(jù)類型和表達式 49 sizeof 運算符 作用:獲取不同數(shù)據(jù)類型或表達式所占據(jù)的字節(jié)長度 格式: sizeof (類型名 ) 或 sizeof (表達式 ) 結(jié)果值: “類型名”所指定的類型或“表達式”的結(jié)果類型所占的字節(jié)數(shù)。 例: sizeof (char) sizeof(bool) sizeof(float) sizeof(int) 、 sizeof(short)、

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論