C++簡單程序設(shè)計
第二章 C+簡單程序設(shè)計 C+語言程序設(shè)計 2 本章主要內(nèi)容 C+語言概述 (熟悉) 基本數(shù)據(jù)類型和表達式 (重點) 數(shù)據(jù)的輸入與輸出 (熟悉) 算法的基本控制結(jié)構(gòu) (重點) 自定義數(shù)據(jù)類型 (了解) 3 C+語言的產(chǎn)生 C+出于 引入類機制,最初被稱為“帶類的 C” 1983年正式取名為 C+ 從 1989年開始 C+語言的標準化工作 1994年制定了 +標準草案 1998年 11月被( 準為國際標準 C+語言概述 4 C+的誕生 C+的創(chuàng)始人: 5 C+的特點 全面兼容 C 它保持了 效和接近匯編語言等特點 對 C+也支持面向過程的程序設(shè)計,不是一個純正的面向?qū)ο蟮恼Z言 支持面向?qū)ο蟮姆椒?C+語言概述 6 C+程序?qū)嵗?例 2# " ; ., : ? ( ) C+語言概述 9 詞法記號 關(guān)鍵字 C+預定義的單詞 標識符 程序員聲明的單詞,它命名程序正文中的一些實體 文字 在程序中直接使用符號表示的數(shù)據(jù) 操作符 用于實現(xiàn)各種運算的符號 分隔符 () , : ; 用于分隔各個詞法記號或程序正文 空白符 空格、制表符( 換行符( 注釋的總稱 C+語言概述 10 標識符的構(gòu)成規(guī)則 以大寫字母、小寫字母或下劃線 _開始 可以由以大寫字母、小寫字母、下劃線_或數(shù)字 0 9組成。 大寫字母和小寫字母代表不同的標識符。 大小寫敏感 C+語言概述 11 用戶自定義標識符 合法的: _123、 不合法的: 51 良好的標識符命名習慣 1、 、 駝峰式命名法 、 匈牙利標記法 2 本數(shù)據(jù)類型 什么是數(shù)據(jù)類型? 數(shù)據(jù)是程序處理的對象,根據(jù)其本身的特點進行分類,形成不同的數(shù)據(jù)類型。 例:數(shù)學中有自然數(shù)、整數(shù)、實數(shù) 基本數(shù)據(jù)類型 整型: 字符型: 型:單精度 精度 邏輯型: 3 基本類型 有序型 字符型 (整型 ( 布爾型 (浮點型 單精度型 (雙精度型 (構(gòu)造類型 枚舉型 (數(shù)組 結(jié)構(gòu)體 (共用體 (類 (指針類型 14 修飾符 在 C+中描述為了更加準確的描述數(shù)據(jù)類型,提供了 4個關(guān)鍵字用來修飾基本的數(shù)據(jù)類型: 1、長型 2、短型 3、有符號 、無符號 5 1、 僅用來修飾 稱為短整型 , 占 2字節(jié)內(nèi)存 , 也可直接簡寫為 2、 僅修飾 在不同的編譯環(huán)境中使用 3、 用來修飾 表示該數(shù)據(jù)類型為無符號數(shù) 。 4、 用來修飾 表示該數(shù)據(jù)類型為有符號數(shù) , 為缺省設(shè)置 。 16 數(shù)據(jù)類型 整型數(shù)據(jù)及取值范圍 類型 說明符 位數(shù) 數(shù)值范圍 短整 6 32767 基本 2 (231長整 2 (231無符號 6 0 65535 32 0 (2322 0 (232 基本數(shù)據(jù)類型和表達式 17 數(shù)據(jù)類型和內(nèi)存空間 不同的數(shù)據(jù)類型,加上不同的修飾符,在內(nèi)存中占用的空間不同,其所能表示的數(shù)值范圍也不同。 內(nèi)存單元的單位是字節(jié),因此用來表示數(shù)據(jù)類型的長度的單位也是字節(jié)。 整型 16位機: 字節(jié); 32位機: 字節(jié) 。 2位系統(tǒng)中一般為 4字節(jié),但在 64位系統(tǒng)一般位 8字節(jié)。 位、 15位 18 指定為 儲單元中的最高位 (來表示數(shù)值的符號。指定為 部二進制位都用來表示數(shù)值本身。例:短整型數(shù)據(jù)占兩個字節(jié) 19 4字節(jié) 精度: 10± 38 6位有效數(shù)字 字節(jié) 精度: 10± 308 15位有效數(shù)字 8字節(jié) 精度: 10± 308 15位有效數(shù)字 數(shù)據(jù)類型 實型數(shù)據(jù) 實型常量: 20 常量 1. 在程序運行過程中,值不能被改變的量稱為常量。 2. 文字常量是指可直接使用的常量。 3. 文字常量分為整形、實型、字符型和字符串型常量。 21 常量 1整型常量 ( 1)十進制整數(shù),如: 789, ( 2)八進制整數(shù),如: 0102, ( 3)十六進制整數(shù),如: 0( 4)長整型與無符號型整數(shù) 長整型整數(shù),如: 12L, 0234L, 無符號型整數(shù),如: 12U, 0234U,02 常量 2實型常量 在內(nèi)存中以浮點形式存放,均為十進制數(shù),無數(shù)制區(qū)分。 ( 1)小數(shù)形式: 1., 2)指數(shù)形式: 13 數(shù)據(jù)類型 字符型數(shù)據(jù) 字符常量 單引號括起來的一個字符, 如: a, D, ?, $ 字符變量 用來存放字符 例: c1,a; A; 字符數(shù)據(jù)在內(nèi)存中的存儲形式 以 1字節(jié),用 7個二進制位 基本數(shù)據(jù)類型和表達式 24 字符串常量 例 :""a" a 所以: c; c="a" C H I N A 0 a 0 a 數(shù)據(jù)類型 字符型數(shù)據(jù) 基本數(shù)據(jù)類型和表達式 25 轉(zhuǎn)義字符 a 響鈴(喇叭聲) n 回車 t 向右跳過一個水平制表符 進制數(shù)表示 注意 :每一位數(shù)字 n=、 >、 =、 >、 =b)b>a)3&&2|8 i =1; i,j,x,y; i=j=1; x=(+i)+(+i); y=(j+)+(j+); ,&=,=,|= 例 a+=3 等價于 a=a+3 x*=y+8 等價于 x=x*(y+8) 基本數(shù)據(jù)類型和表達式 46 逗號運算符與逗號表達式 逗號運算符 , 又叫 "順序求值運算符 " 優(yōu)先級最低 。 格式: 表達式 1, 表達式 2, , 表達式 n; 依次計算表達式 1, 表達式 2, , 表達式 并將表達式 例 1:逗號表達式 a=3*5, a*4的值 ? 60 例 2: a, b, c, x, y; a=3, b=4, c=a+b; x=b+c, a; 1,表達式值為 3 y=(b+c, a) 47 x=(a=3, 6*3) , 8 x=a=3,6*a , 逗號表達式其實是把若干個表達式 "串聯(lián) "起來。使用逗號表達式是想分別得到各個表達式的值,而并非一定需要得到和使用整個逗號表達式的值,逗號表達式最常用于 在用 將該逗號表達式用括號括起來,如 a:b; 基本數(shù)據(jù)類型和表達式 49 算符 作用:獲取不同數(shù)據(jù)類型或表達式所占據(jù)的字節(jié)長度 格式: 類型名 ) 或 表達式 ) 結(jié)果值: “類型名”所指定的類型或“表達式”的結(jié)果類型所占的字節(jié)數(shù)。 例: 、 較 0+50 位運算 按位與( &) 運算規(guī)則 將兩個運算量的每一個位進行邏輯與操作 舉例: 計算 3 & 5 3: 0 0 0 0 0 0 1 1 5: (&) 0 0 0 0 0 1 0 1 3 & 5: 0 0 0 0 0 0 0 1 基本數(shù)據(jù)類型和表達式 51 位運算 按位或( |) 運算規(guī)則 將兩個運算量的每一個位進行邏輯或操作 舉例: 計算 3 | 5 3: 0 0 0 0 0 0 1 1 5: (|) 0 0 0 0 0 1 0 1 3 | 5: 0 0 0 0 0 1 1 1 基本數(shù)據(jù)類型和表達式 52 按位取反運算 按位取反是一個一元運算符 , 它的作用是將兩個操作數(shù)對應的每一位分別進行取反操作 。 具體運算規(guī)則: 1=0, 0=1。 例如:計算 5 5: 0 0 0 0 0 1 0 1 5: 1 1 1 1 1 0 1 0 比較: !0與 0的區(qū)別: ) a; b= a=b; ) )t=a; a=b;)>0)t=a; 返回語句 達式 空語句 只有語句結(jié)束符 ""的語句 控制語句的種類: 分支、循環(huán)、轉(zhuǎn)向 67 復合語句 將多個語句用一對大括號包圍,便構(gòu)成一個復合語句 例如 i; i+; 68 據(jù)的輸入輸出 向標準輸出設(shè)備(顯示器)輸出 例: x; x; 1) 從鍵盤輸入時默認的分隔符為空格 , 也可以用回車 、 2) 不許在 例:逗號 69 順序結(jié)構(gòu) 分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 算法的基本控制結(jié)構(gòu) 70 選擇結(jié)構(gòu) 1、 沒有 2、 雙分支 3、 多分支 4、 句的嵌套 71 句 1、沒有 例:比較 x和 果 則輸出 x>y ) 4=0 && 100 != 0 | 400=0) 0&& ch x; x; if(x>=90) 0) 0) if(x>=0) if(x!=0) y=1; y=0; y=或者 : y= (x>=0)?(x!=0)?1:0:81 例:輸出 a,b,# a,b,c; a>>b>>c; a>b) a>c) a>c?a:c):(b>c?b:c ) ); 82 if句 注意:二義性 a= b=1, c=2; a>x; x/10) 0: : > : y,m,d; y>>m; m) : 0:2: d=31;:1: d=30;: d=(y%4=0&&y%100!=0|y%400=0)?29:28; i=1; i , i=1; i 2; ch k=1, , n; " n; k=1,n; " n; i,); i; i i, ); i; i; i+; i i=1;i ; i=1;i=1 ; i=1; i=1; i 同時省略 i=1; i n, k; n; n; n=100; n i=0,j=0,n; n; n!=0 ) if(n>0) i+; if(n>n ; 00 ) = i; 118 例 2:判斷輸出結(jié)果? # ; i=1; i i=0;i> m >> n; r = m % n; 0 != r ) m = n; n = r; r = m % n; "最大公約數(shù): "<< n << 121 122 為一個已有的數(shù)據(jù)類型另外命名 語法格式 已有類型名 新類型名表 ; 例如 i1,a; v; 自定義數(shù)據(jù)類型 123 類型別名 為已有的數(shù)據(jù)類型定義一個同義詞 , 或者叫做別名 。 例如: 關(guān)鍵字 數(shù)據(jù)類型 別名賦值 注意: 124 本章小結(jié) 主要內(nèi)容 C+語言概述、基本數(shù)據(jù)類型和表達式、數(shù)據(jù)的輸入與輸出、算法的基本控制結(jié)構(gòu)、自定義數(shù)據(jù)類型 達到的目標 掌握 C+語言的基本概念和基本語句,能夠編寫簡單的程序段。