




已閱讀5頁,還剩530頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C程序設計 主講 江小輝 教材 參考書與課時安排 教材C程序設計 第二版 譚浩強編著清華大學出版社參考書C語言程序設計教程譚浩強高等教育出版社C高級實用程序設計王士元清華大學出版社C程序設計試題匯編譚浩強清華大學出版社課時安排64學時 熟記C語言的基本概念熟悉TurboC的上機操作環(huán)境會讀 會編 會調試C程序學習要點熟記C語言的語法學會算法分析與算法設計 課程目的 課程要求 課前請做好預習保持課堂安靜 頭腦清醒 思維活躍認真 獨立 按時完成并提交作業(yè)重視上機實踐 有效利用寶貴的上機時間 目錄 第1章C語言概述 C語言程序設計第一章C語言概述 1 1C語言發(fā)展歷史程序設計語言的發(fā)展 CPU指令系統(tǒng) 由0 1序列構成的指令碼組成如 10000000加10010000減 用助記符號描述的指令系統(tǒng) 可進行地址 位操作如ADDA B編寫系統(tǒng)軟件 直接對硬件操作 可讀性 移植性差 C語言程序設計第一章C語言概述 可讀性 移植性好 編寫應用程序一般較難實現(xiàn)匯編語言的某些功能如 地址和位的操作 C語言兼有高級和低級語言的功能適合寫系統(tǒng)軟件和應用軟件又稱中級語言 C語言發(fā)展過程產生背景ALGOL60 CPL語言 BCPL B語言 寫UNIX系統(tǒng)產生過程時間 1972 1973地點 美國貝爾實驗室目的 UNIX操作系統(tǒng)設計人 Ken Thompson和Dennis M RitchieC標準標準C 1978年K R合著 TheCProgrammingLanguage ANSIC 1983年87ANSIC 1987年1990年國際標準的ANSIC 1994年再次修訂 C版本MicrosoftC或稱MS CTurboC或稱TC C語言程序設計第一章C語言概述 1 2C語言的特點語言簡潔 緊湊 靈活運算符豐富數據結構 數據類型豐富鏈表 樹 棧程序設計結構化 模塊化結構化控制語句 if else while switch for函數作為模塊單位語法不嚴格 程序設計自由度大可以訪問內存地址 進行位運算生成目標代碼質量高可移植性好 C語言程序設計第一章C語言概述 32個關鍵字 由系統(tǒng)定義 不能重作其它定義 autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhileTurboC擴充了11個關鍵字 asm cs ds es sscdeclfarhugeinterruptnearpascal注意 在C語言中 關鍵字都是小寫的 C語言程序設計第一章C語言概述 C語言簡潔 緊湊 使用方便 靈活 ANSIC一共只有32個關鍵字 見365頁附錄B 9種控制語句 if else for while do while continuebreakswitchgotoreturn C語言程序設計第一章C語言概述 C語言有9種控制語句 程序書寫形式自由 主要用小寫字母表示 壓縮了一切不必要的成分 C語言程序設計第一章C語言概述 表1 1C語言與Pascal語言比較 通過表1 1我們可以得出結論 C比Pascal簡練 因此源程序更短 編程效率高 34種運算符 算術運算符 關系運算符 邏輯運算符 位運算符 賦值運算符 及其擴展條件運算符 逗號運算符 指針運算符 求字節(jié)數 sizeof強制類型轉換 類型 分量運算符 下標運算符 其它 注意 各種運算符混合使用 其優(yōu)先級與結合方法是難點 可先預習 C語言程序設計第一章C語言概述 C語言運算符豐富 附錄C C語言程序設計第一章C語言概述 C語言數據結構豐富 1 3簡單的C程序介紹 example1 1ThefirstCProgram includevoidmain printf Thisisacprogram n C語言程序設計第一章C語言概述 輸出 Thisisacprogram 例1 1第一個程序Thisisacprogram printf語句中的 n 是換行符 例1 2求倆個數的和 example1 1calculatethesumofaandb include Thisisthemainprogram voidmain inta b sum 定義變量 a 10 b 24 sum add a b printf sum d n sum Thisfunctioncalculatesthesumofxandy intadd intx inty intz z x y return z 運行結果 sum 34 C語言程序設計第一章C語言概述 printf語句中的 d 是表示 十進制整數類型 C語言程序設計第一章C語言概述 例1 3從鍵盤輸入兩個整數 輸出其中較大的數 includevoidmain intmax intx inty inta b c scanf d d scanf語句中 a 的含義是 取地址 輸入 10 20 輸出 max 20 聲明部分 定義變量 調用max函數 返回值賦給c 定義max子函數 函數值 形參x y為整型 通過max函數將z值帶回調用處 C語言格式特點習慣用小寫字母 大小寫敏感不使用行號 無程序行概念可使用空行和空格常用鋸齒形書寫格式 C語言程序設計第一章C語言概述 main main inti j sum sum 0 for i 1 i 10 i for j 1 j 10 j sum i j printf d n sum 優(yōu)秀程序員的素質之一 使用TAB縮進 對齊有足夠的注釋有合適的空行 C語言結構特點函數與主函數程序由一個或多個函數組成必須有且只能有一個主函數main 可以放在程序中任一位置程序執(zhí)行從main開始 在main中結束 其它函數通過嵌套調用得以執(zhí)行 程序語句C程序由語句組成用 作為語句終止符注釋 為注釋 不能嵌套不產生編譯代碼 例 Thisisthemain ofexample1 1 編譯預處理命令 C語言程序設計第一章C語言概述 1 4C程序的上機步驟C程序開發(fā)步驟 file exe C語言程序設計第一章C語言概述 程序代碼的錄入 生成源程序 c 語法分析查錯 翻譯生成目標程序 obj 與其它目標程序或庫鏈接裝配 生成可執(zhí)行程序 exe TurboC集成開發(fā)環(huán)境配置要求UNIX PC DOS MS DOS UCDOS操作系統(tǒng)硬盤容量約2M 448KRAM運行空間安裝TurboC創(chuàng)建子目錄Install若不是可安裝盤 將文件拷貝到對應的目錄下 C語言程序設計第一章C語言概述 進入TurboCD TC TC exe 主控菜單文件操作FILE NewLoadSaveWriteto編輯操作EDIT 插入 修改塊查找 替換編譯鏈接COMPILELINKMAKE執(zhí)行RUN退出TurboCAlt xAlt F Q幫助HelpF1Ctrl F1 C語言程序設計第一章C語言概述 基本操作 F10 調用主菜單F2 存盤F3 打開F1 幫助信息Alt F9 CompileCtrl F9 RunAlt F5 UserScreenAlt X 退出Tc 常用熱鍵 文本編輯 移動光標PgUp PgDn 上下翻頁Ctrl PgUp Ctrl PgDn 文件首尾Home行首End行尾DdeleteInsertBkspace 塊操作 Ctrl KB 塊開始標記Ctrl KK 塊結束標記Ctrl KC 塊拷貝Ctrl KV 塊移動Ctrl KY 塊刪除Ctrl KH 塊隱藏 程序調試 F8 StepoverF7 TraceintoF4 GotoCursorCtrl F7 AddWatchCtrl F8 ToggleBreakpointCtrl F2 ProgramReset 窗口操作 F5 窗口縮放F6 窗口切換 C語言程序設計第一章C語言概述 課后作業(yè)預習 題解與上機指導 一書中P181 199頁的14 3 14 10節(jié)P236頁實驗1教材P12 1 5 1 6 1 7 1 8題 注意 有關設計程序的作業(yè) 必須經過上機調試 C語言程序設計第一章C語言概述 算法的概念 簡單算法舉例 算法的特性 怎樣表示一個算法 第2章程序的靈魂 算法 C語言程序設計第二章程序的靈魂 算法 結構化程序設計方法 C語言程序設計第二章程序的靈魂 算法 程序包括的內容 數據結構 數據的類型和組織形式算法 操作步驟的描述 NikiklausWirth提出 教材認為 程序 算法 數據結構 程序設計方法 語言工具和環(huán)境 靈魂 加工對象 工具 C語言程序設計第二章程序的靈魂 算法 2 1算法的概念為解決一個問題而采取的方法和步驟 就成為算法 例如 歌曲的樂譜 建造房子等 算法核心是解決 做什么 和 怎么做 的問題 P15頁的例2 1 求1 5之積 可以有多種方法 一般采用簡單和運算步驟少的 準確 高效計算機算法類別數值運算算法非數值運算算法 C語言程序設計第二章程序的靈魂 算法 2 2簡單算法舉例例2 1方法1 累乘方法2 用循環(huán)結構解決 靈活 通用 例2 2通過循環(huán)選擇打印例2 3判斷閏年例2 4累加求級數的和 循環(huán)改變正負號和分母加1 例2 5判斷素數 課后認真思考 加深什么是算法的概念 C語言程序設計第二章程序的靈魂 算法 2 3算法的特性有窮性 在合理范圍內可完成確定性 無歧義性有零個或多個輸入 從外界得到信息有一個或多個輸出 問題的答案有效性 每步有確定的結果 C語言程序設計第二章程序的靈魂 算法 2 4怎樣表示一個算法自然語言表示2 2節(jié)例 易懂 文字冗長 易歧義性流程圖表示用流程圖符號構成 直觀 易懂N S流程圖表示偽代碼表示計算機語言表示 順序結構選擇結構循環(huán)結構 C語言程序設計第二章程序的靈魂 算法 傳統(tǒng)流程圖流向混亂 可讀性差 所以應該采用結構化流程圖 結構化程序設計基本思想 任何程序都可以用三種基本結構表示 限制使用無條件轉移語句 goto 結構化程序 由三種基本結構反復嵌套構成的程序優(yōu)點 結構清晰 易讀 提高程序設計質量和效率 三種基本結構順序結構 C語言程序設計第二章程序的靈魂 算法 選擇結構 二分支選擇結構 多分支選擇結構 C語言程序設計第二章程序的靈魂 算法 循環(huán)結構 當型循環(huán)結構 直到型循環(huán)結構 注 A B A1 An可以是一個簡單語句 也可以是一個基本結構 C語言程序設計第二章程序的靈魂 算法 三種基本結構的共同特點 只有一個入口 只有一個出口 結構內的每一部分都有機會被執(zhí)行到 結構內不存在 死循環(huán) C語言程序設計第二章程序的靈魂 算法 2 5結構化程序設計方法結構化程序 用三種基本結構組成的程序基本設計思路 復雜問題分解成幾個最基本問題 再分別處理 采用的方法 自頂向下 逐步細化 模塊化設計 復雜問題按功能分成多個子模塊結構化編碼 正確采用三種基本結構實現(xiàn) C語言程序設計第二章程序的靈魂 算法 課后作業(yè)P36頁習題 2 4 2 8 結合實驗指導讀懂答案 用N S圖表示2 4題中 用傳統(tǒng)流程圖求解以下問題 將一個16進制數轉化為10進制數復習二進制的基本概念 計算機文化基礎 一書中P27 33頁 第3章數據類型 運算符與表達式 C語言程序設計第三章程序的靈魂 算法 C的數據類型 常量與變量 整型數據 實型數據 字符型數據 變量賦初值 各種數值型數據間的混合運算 算術運算符和算術表達式 賦值運算符和賦值表達式 逗號運算符和逗號表達式 C語言程序設計第三章程序的靈魂 算法 3 1C的數據類型 數據類型決定 1 數據占內存字節(jié)數2 數據取值范圍3 可以進行的操作 C語言程序設計第三章程序的靈魂 算法 常量和符號常量定義 程序運行過程中 其值不能被改變的量 常數 分類 直接常量 符號常量 3 2常量與變量 C語言程序設計第三章程序的靈魂 算法 符號常量 用標識符代表常量一般用大寫字母 PRICE PI定義格式 define符號常量常量其值在作用域內不能改變和再賦值 例3 1符號常量舉例 definePRICE30 includevoidmain intnum total num 10 total num PRICE printf total d n total 符號常量的優(yōu)點是 見名知意 一改全改 C語言程序設計第三章程序的靈魂 算法 變量定義 其值可以改變的量 定義格式 數據類型變量名 變量應該有名字 并在內存中占據一定的存儲單元 變量名和變量值有不同的含義變量名實為一個符號地址 例變量的使用main inta a 3 printf a d a C語言程序設計第三章程序的靈魂 算法 標識符定義 標識變量名 符號常量名 函數名 數組名 文件名的字符串序列 名字 命名規(guī)則 只能由字母 數字 下劃線組成 且第一個字符必須是字母或下劃線大小寫字母含義不同 一般用小寫不能使用關鍵字TC允許最長32個字符 建議長度不超過8個字符使用 先定義 后使用 標識符應該 見名知意 如total max標識符應該 不宜混淆 如l與1 O與0 這些標識符合法嗎 1A M D John 123 33 Tatol int max C語言程序設計第三章程序的靈魂 算法 3 3整型數據整型常量 整常數 的三種表示方法十進制整數 由數字0 9和正負號表示 如123 456 0八進制整數 由數字0開頭 后跟數字0 7表示 如0123 011十六進制整數 由0 x開頭 后跟0 9 a f A F表示 如0 x123 0 xff C語言程序設計第三章程序的靈魂 算法 補充知識 字節(jié)和位內存以字節(jié)為單元組成每個字節(jié)有一個地址一個字節(jié)一般由8個二進制位組成每個二進位的值是0或1 C語言程序設計第三章程序的靈魂 算法 數值的表示方法 原碼 反碼和補碼原碼 最高位為符號位 其余各位為數值本身的絕對值反碼 正數 反碼與原碼相同負數 符號位為1 其余位對原碼取反補碼 正數 原碼 反碼 補碼相同負數 最高位為1 其余位為原碼取反 再對整個數加1 9 5 49 7 16 14 12 C語言程序設計第三章程序的靈魂 算法 負數補碼轉換成十進制數 最高位不動 其余位取反加1 例補碼 11111001取反 10000110加1 10000111 7 C語言程序設計第三章程序的靈魂 算法 整型變量整型數據在內存中的存放形式數據在內存中以二進制補碼形式存放每一個整型變量在內存中占2個字節(jié)10的原碼反碼補碼 10的原碼取絕對值反碼補碼 整數的最左二進制位是符號位 0正 1負 C語言程序設計第三章程序的靈魂 算法 整型變量的分類三類整型變量 整數類型和取值范圍 C語言程序設計第三章程序的靈魂 算法 整型變量的定義先定義后使用 強制類型定義inta b 指定變量a b為整型 unsignedshortc d 指定變量c d為無符號短整型 longe f 指定變量e f為長整型 例3 2整型變量的定義與使用 includevoidmain inta b c d unsignedu a 12 b 24 u 10 c a u d b u printf a u d b u d n c d 指定abcd為整型變量 指定u為無符號整型變量 定義放在函數開頭的聲明部分 不同類型混合運算 類型自動轉換 結果 a u 22 b u 14 定義與賦值同時進行 inta 12 C語言程序設計第三章程序的靈魂 算法 整型數據的溢出此情況稱為 溢出 運行時不報錯 編程時要注意 整型變量最大值32767 加1后是 32768的補碼形式 例3 3整型數據的溢出 includevoidmain inta b a 32767 b a 1 printf d d n a b 改為 longb 結果是什么 C語言程序設計第三章程序的靈魂 算法 整型常量的類型整型常量的值在 32768 32767范圍內 編譯器認為是int類型整型常量的值超過上述范圍 而在 2147483648 2147483647范圍內 編譯器認為是long類型當系統(tǒng)定義shortint與int占內存長度相同 則兩種類型常量均可以賦給int和shortint型變量在整型常量后面加大寫L或小寫l 則告訴編譯器 把該整型常量作為long類型處理 例 123L 0L在整型常量后面加u 則按無符號整型方式存放 負數轉換成補碼再按無符號整型方式存放 C語言程序設計第三章程序的靈魂 算法 3 4浮點型數據浮點型常量的表示方法浮點數 float 又稱為實數 real 兩種表示方法 十進制小數形式 必須有小數點如0 123 123 123 0 0 0 123 指數形式 e或E之前后必須有數字 指數必須為整數如123 456e0 12 3456e1 1 23456e2 0 123456e3 0 0123456e4等規(guī)范化指數形式只有一位非零整數的指數形式是指數的輸出形式 6 28e 2表示6 28 10 2 3 0824e4表示 3 0824 104 C語言程序設計第三章程序的靈魂 算法 浮點型變量浮點型數據在內存中的存放形式浮點型數據在內存中占4個字節(jié) 32位 在內存中分成3部分 指數為2的冪次 3141591 數符 小數部分 指數 浮點型變量的分類 floatx y 指定x y為單精度浮點型變量 doublez 指定z為雙精度浮點型變量 longdoublet 指定t為長雙精度浮點型變量 C語言程序設計第三章程序的靈魂 算法 浮點型數據的舍入誤差數據超過有效位數 則產生誤差要避免一個很大的數與一個很小的數加減 例3 4浮點型數據的舍入誤差 includevoidmain floata b a 123456 789e5 b a 20 printf f n b 舍入誤差使1 0 3 3的結果并不等于1 浮點型常量的類型浮點型常量一般按雙精度64位處理 數后加F或f按單精度浮點型常量不分float和double C語言程序設計第三章程序的靈魂 算法 3 5字符型數據字符常量定義 用單引號括起來的單個字符或轉義字符字符常量的值 該字符的ASCII碼值定義格式 char變量名 值轉義字符 反斜線后面跟一個字符或一個代碼值表示 如 a A n t 如 a 97 A 65 n 10 t 9 charch 65與charch A 與char 101 是等效的 C語言程序設計第三章程序的靈魂 算法 例3 5轉義字符的使用 includevoidmain printf abc tde rf tg n printf h ti b bjk C語言程序設計第三章程序的靈魂 算法 字符變量存放字符常量 占用一個字節(jié) 存放一個字符定義形式 賦值 charc1 c2 c1 a c2 b 字符數據在內存中的存儲形式及其使用方法以二進制存放字符的ASCII碼值 0 255整數 與整數的存儲形式類似以字符或整數形式輸出 例3 6向字符變量賦整數 includevoidmain charc1 c2 c1 97 c2 98 printf c c n c1 c2 printf d d n c1 c2 輸出形式取決于printf函數中的格式符 格式符為 c 時輸出的變量值為字符格式符為 d 時輸出的變量值為整數 C語言程序設計第三章程序的靈魂 算法 對字符數據進行算術運算實質是對其ASCII值進行算術運算 例3 7大小寫字母的轉換 includevoidmain charc1 c2 c1 a c2 b c1 c1 32 c2 c2 32 printf c c c1 c2 字符型與整型間互相賦值 例 互相賦值 includevoidmain intc1 charc2 c1 a c2 98 c1 c1 32 c2 c2 32 printf c c c1 c2 小寫字母比大寫字母的ASCII碼大 32 10 C語言程序設計第三章程序的靈魂 算法 字符串常量定義 用雙引號 括起來的字符序列 Howdoyoudo CHINA a 123 45 存儲 每個字符串尾自動加一個 0 作為字符串結束標志 字符常量與字符串常量不同 例 charch ch A 沒有字符串變量 只能用字符數組存放 C語言程序設計第三章程序的靈魂 算法 3 6變量賦初值變量的使用 先定義 后使用變量定義位置 一般放在函數開頭變量初始化 可以在定義時賦初值 例 inta 1 b 3 c floatdata 3 67 charch A intx 1 y 1 z 1 intx y 1 錯 inta b c 3 C語言程序設計第三章程序的靈魂 算法 3 7各類數值型數據間的混合運算整型 實型 字符型數據間可以混合運算 自動轉換什么情況下發(fā)生運算轉換 不同類型數據混合運算時賦值轉換 把一個值賦給與其類型不同的變量時輸出轉換 輸出時轉換成指定的輸出格式函數調用轉換 實參與形參類型不一致時轉換運算轉換規(guī)則 不同類型數據運算時先自動轉換成同一類型 C語言程序設計第三章程序的靈魂 算法 C語言程序設計第三章程序的靈魂 算法 強制轉換 見P56強制類型轉換運算符部分 一般形式 類型名 表達式 例 int x y int x y double 3 2 int 3 6說明 強制轉換得到所需類型的中間變量 原變量類型不變 例3 8 includemain floatx inti x 3 6 i int x printf x f i d x i 結果 x 3 600000 i 3 精度損失問題 強制類型轉換運算符 表達式僅一個變量時 括號可以省略 C語言程序設計第三章程序的靈魂 算法 3 8算術運算符和算術表達式 學習運算符應注意 運算符功能與運算量關系要求運算量個數要求運算量類型運算符優(yōu)先級別結合方向結果的類型 C語言程序設計第三章程序的靈魂 算法 算術運算符和算術表達式基本算術運算符 結合方向 從左向右優(yōu)先級 2 3 4 說明 可為單目運算符時 右結合性兩整數相除 結果為整數 要求兩側均為整型數據 運算的兩個數中有一個數為實數 結果是double型 例5 2 5 2 0 例5 2 5 2 1 10 5 1 5 5 2 例5 2 2 5 2 0 2 5 例5 2 1 5 2 11 10 15 1 05 5 2 C語言程序設計第三章程序的靈魂 算法 自增 自減運算符 作用 使變量值加1或減1種類 前置 i i 先執(zhí)行i 1或i 1 再使用i值 后置i i 先使用i值 再執(zhí)行i 1或i 1 例j 3 k j j 3 k j j 3 printf d j j 3 printf d j a 3 b 5 c a b a 3 b 5 c a b k 4 j 4 k 3 j 4 4 j 4 3 j 4 c 20 a 4 c 15 a 4 C語言程序設計第三章程序的靈魂 算法 幾點說明 例 i i 3 printf d i i 3 不能用于常量和表達式 如5 a b 結合方向 自右向左優(yōu)先級 2 3 4 該運算符常用于循環(huán)語句中 使循環(huán)變量加減1 有關表達式使用中的問題說明不同系統(tǒng)對運算符和表達式的處理次序不同 盡可能寫通用性強的語句不要寫有歧義和不知系統(tǒng)如何執(zhí)行的程序 C語言程序設計第三章程序的靈魂 算法 3 9賦值運算符和賦值表達式 簡單賦值運算符符號 格式 變量標識符 表達式作用 將一個數據 常量或表達式 賦給一個變量左側必須是變量 不能是常量或表達式 例a 3 d func c d 2 例3 x 2 y a b 3 類型轉換賦值轉換規(guī)則 使賦值號右邊表達式值自動轉換成其左邊變量的類型 例floatf inti 10 f i 則f 10 0 例inti i 2 56 結果i 2 復合賦值運算符種類 含義 exp1op exp2 exp1 exp1opexp2 C語言程序設計第三章程序的靈魂 算法 賦值表達式形式 賦值表達式的值與變量值相等 且可嵌套 例 a b c 5a b 5 a 5 c 6 a b 4 c 6 a b 10 c 2 表達式值為5 a b c值為5 b 5 a 5 表達式值11 c 6 a 11 表達式值10 a 10 b 4 c 6 表達式值5 a 5 b 10 c 2 C語言程序設計第三章程序的靈魂 算法 3 10逗號運算符和逗號表達式形式 表達式1 表達式2 表達式n結合性 從左向右優(yōu)先級 15 級別最低逗號表達式的值 等于表達式n的值用途 常用于循環(huán)for語句中 例a 3 5 a 4a 3 5 a 4 a 5例x a 3 6 3 x a 3 6 a例a 1 b 2 c 3 printf d d d a b c printf d d d a b c b c a 15 表達式值60 a 15 表達式值20 賦值表達式 表達式值18 x 18 逗號表達式 表達式值18 x 3 1 2 3 3 2 3 C語言程序設計第三章程序的靈魂 算法 例 逗號表達式使用main intx y 7 floatz 4 x y y 6 y z printf x d n x 本章的內容散亂而復雜 但卻是程序設計的基礎 要認真看書 通過編程序才可以深入理解 C語言程序設計第三章程序的靈魂 算法 課后作業(yè)P66 68頁習題 3 2 3 5 思考 3 3 3 4 3 9 3 12 寫出答案 3 6 3 10 上機驗證 上機 實驗教材 實驗2 做好上機準備 預習第四 第五章 第4章最簡單的C程序設計 順序程序設計 C語言程序設計第四章順序程序設計 C語言概述 賦值語句 數據輸入輸出的概念及在C語言中的實現(xiàn) 字符數據的輸入輸出 格式輸入與輸出 順序結構程序設計舉例 4 1C語句概述C程序結構 一個C程序可以由多個源程序文件構成一個源程序文件由若干函數 預編譯命令及全局變量聲明部分構成函數包括數據定義部分和執(zhí)行部分 執(zhí)行部分是C語言語句 完成對數據的操作 C語言程序設計第四章順序程序設計 C語句分為5類控制語句 共9種完成一定的控制功能 這些語句能夠根據一定的測試條件決定某些語句是否被執(zhí)行 如分支 循環(huán) 跳轉等語句 C語言程序設計第四章順序程序設計 C語言程序設計第四章順序程序設計 空語句 只有一個 什么也不做 表達式語句 由表達式加 組成典型的是賦值語句 由賦值表達式加分號構成 如 y x 1是表達式 而y x 1 則是賦值語句 實際上函數調用語句也屬于表達式語句 函數調用語句 由函數加 組成 printf ThisisaCprogram a 3 i for i 0 i 100 i 復合語句 用 括起來的一組語句 也稱作程序塊 一般形式 C語言程序設計第四章順序程序設計 inti 0 sum 0 while i 100 sum sum i i i 1 說明復合語句 后不加分號語法上和其它語句相同復合語句可嵌套 4 2賦值語句基本格式 賦值表達式 賦值表達式可以包含在其它表達式中 而賦值語句不可以 C語言程序設計第四章順序程序設計 例 if a b 0 t a 不可寫為 if a b 0 t a C語言程序設計第四章順序程序設計 表達式中允許出現(xiàn)運算符號 變量 數值 函數 序號 語句 含義 右側表達式包括 另一種形式的賦值語句 C語言程序設計第四章順序程序設計 我們可以理解為 只適合于整型變量 連續(xù)賦值語句 C語言程序設計第四章順序程序設計 inta b c a b c 1 inta b c 1 4 3數據輸入輸出的概念及在C語言中的實現(xiàn) C語言程序設計第四章順序程序設計 標準輸入輸出函數putchar輸出字符 scanf格式輸入 puts輸出字符串getchar輸入字符 printf格式輸出 gets輸入字符串 所謂數據的輸入輸出是從計算機角度出發(fā)的 C語言本身沒有I O語句 所有I O都由函數來實現(xiàn) C語言的標準庫函數由編譯系統(tǒng)提供的一系列函數 以庫形式存放在系統(tǒng)中 不是C語言文本的組成部分 庫函數已編譯成目標文件 obj 在連接階段才與源程序編譯成的目標文件相連接 生成可執(zhí)行文件 調用形式 函數名 參數表 注意在調用C語言庫函數時 需要使用編譯預處理命令 include 使相應的頭文件包含到用戶源程序中 include或 include stdio h TurboC2 0可以不加 include命令 常用頭文件 stdio h定義輸入輸出函數string h定義字符串操作函數math h定義sin cos等數學函數 4 4字符數據的輸入輸出putchar函數 單字符輸出函數 C語言程序設計第四章順序程序設計 輸出一個字符 格式 putchar 字符 或putchar 字符變量 強調 被輸出的單個字符必須被 括起來 運行結果 BOY 例4 1putchar 字符 includevoidmain putchar B putchar O putchar Y 例4 1putchar 字符變量 includevoidmain chara b c a B b O c Y putchar a putchar b putchar c 結果當然還是一樣的 輸出控制字符 C語言程序設計第四章順序程序設計 例putchar 控制字符 includevoidmain chara b a O b k putchar a putchar n putchar b 運行結果 Ok 輸出轉義字符 例putchar 含有轉義符 includevoidmain chara a B putchar 101 putchar a 運行結果 AB getchar函數 單字符輸入函數 C語言程序設計第四章順序程序設計 格式 getchar 強調 輸入單個字符后 必須按一次回車 計算機才接受輸入的字符 include不能少 例4 2 includevoidmain charc c getchar putchar c 運行結果 a a 4 5格式輸入與輸出printf函數 格式輸出函數 printf函數的一般格式 C語言程序設計第四章順序程序設計 格式 printf 格式控制 輸出表列 格式控制 用雙引號括起來的字符串 包含兩種信息格式說明 修飾符 格式字符 指定輸出格式普通字符 原樣輸出輸出表列 要輸出的數據 可以是變量或表達式 可以沒有 多個時以 分隔 例 printf d d a b printf a db d n a b C語言程序設計第四章順序程序設計 從最簡單的學起 includevoidmain printf HelloWorld 運行結果 HelloWorld 調用printf 時可以省略 include命令 格式字符d格式符 輸出十進制整數 有3種用法 d格式 按數據實際長度輸出 數據范圍 32768 32767 C語言程序設計第四章順序程序設計 d格式的printf 函數使用 includevoidmain inta 3 b 4 printf d d n a b printf a d b d n a b 運行結果 34a 3 b 4 格式說明決定最終輸出的格式 格式說明應與輸出列表項個數相同 順序一致 格式說明通常用小寫字母表示 md格式 m指定輸出字段的寬度數據位數小于m 左端補空格 反之按實際輸出 C語言程序設計第四章順序程序設計 inta 123 b 12345 printf 4d 4d a b ld格式 輸出長整型數據可以用 mld格式指定輸出列寬 longc 135790printf ld n c printf 8ld c 135790 32767 int型數據的最大值 o格式符 八進制輸出整數是將內存中的二進制位整個按八進制輸出 所以輸出值沒有符號 可以指定輸出寬度 mo 長整型可以用 lo格式輸出 C語言程序設計第四章順序程序設計 inta 1 printf d o 8o x a a a a 輸出 1 177777 177777 ffff x格式符 十六進制輸出整數同o格式符 無符號 即無負十六進制數 可以指定輸出寬度 mx 長整型可以用 lx格式輸出 C語言程序設計第四章順序程序設計 u格式符 十進制輸出unsigned型數據int型可以用 u格式輸出 unsigned型也可以用 d o和 x格式輸出 例4 3無符號數據的輸出 includevoidmain unsignedinta 65535 intb 2 printf a d o x u n a a a a printf b d o x u n b b b b 運行結果 a 1 177777 ffff 65535b 2 177776 fffe 65534 C語言程序設計第四章順序程序設計 c格式符 輸出一個字符值在0 255的整數 可以用 c形式輸出為字符 例4 4字符數據的輸出 includevoidmain charc a inti 97 printf c d n c c printf c d n i i 運行結果 a 97a 97 C語言程序設計第四章順序程序設計 s格式符 輸出一個字符串有 s ms ms m ns m ns五種用法 例4 5字符串的輸出 includevoidmain printf 3s 7 2s 4s 5 3d n CHINA CHINA CHINA CHINA 運行結果 CHINA CH CHIN CHI C語言程序設計第四章順序程序設計 f格式符 輸出實數 f格式 整數部分全部輸出 小數6位 可以有非有效數字輸出 因為單精度有效位7位 雙精度16位 m nf格式 占m列 其中n位小數 左補空格 m nf格式 右補空格 例4 8 f格式輸出實數時指定小數位數 includevoidmain flotf 123 456 printf f 10f 10 2f 2f 10 2f n f f f f f 運行結果 123 456001 123 456001 123 46 123 46 123 46 C語言程序設計第四章順序程序設計 e格式符 指數形式輸出實數 e格式 不指定m和n 小數6位 指數部分共5位 其中e和指數符號各1位 指數值3位 m ne和 m ne格式 m n 的含義同前面 沒有n時 自動 6 g格式符 輸出實數可以自動根據數值大小選擇f或e格式 選列少的 不輸出無意義的零 C語言程序設計第四章順序程序設計 inta 100 printf d a inta 255 printf x a inta 8 printf o a inta 100 printf u a chara 65 printf c a printf s ABC floata 567 789 printf e a floata 567 789 printf f a floata 567 789 printf g a printf 100 ff 10 100 A ABC 5 677890e 002 567 789000 567 789 scanf函數 格式輸入函數 一般形式功能 按指定格式從鍵盤讀入數據 存入地址表指定的存儲單元中 并按回車鍵結束格式控制 含義同printf函數地址表列 變量地址或字符串地址 地址間 分隔 強調 地址列表中每一項必須以取地址運算符 開頭 C語言程序設計第四章順序程序設計 格式 scanf 格式控制 地址表列 例4 9用scanf函數輸入數據 includevoidmain inta b c scanf d d d 輸入 3 4 5 輸出 3 4 5 C語言程序設計第四章順序程序設計 例scanf 3d 4d f 輸入12345678765 43 則123 k 8765 43 f 例scanf 2d 3d 2d 輸入12 345 67 則12 a 67 b 例scanf 3c 2c 輸入abcde 則 a c1 d c2 例scanf 4d 2d 2d 輸入19991015 則1999 yy 10 mm 15 dd 輸入分隔符的指定一般以空格 TAB或回車鍵作為分隔符輸入數據時 遇非法輸入則認為數據結束其它字符做分隔符 格式串中兩個格式符間有其它字符 則輸入時對應位置也要有相同的字符 C語言程序設計第四章順序程序設計 例scanf d d d 輸入12 30 45 則12 h 30 m 45 s 例scanf d c f 輸入1234a123o 26 則1234 a a b 123 c 4 6順序結構程序舉例 C語言程序設計第四章順序程序設計 例4 10輸入三角形邊長 求面積 include includevoidmain floata b c s area scanf f f f 輸入 3 4 6 輸出 a 3 00 b 4 00 c 6 00s 6 50area 5 33 C語言程序設計第四章順序程序設計 例4 11從鍵盤輸入大寫字母 用小寫字母輸出 include stdio h voidmain charc1 c2 c1 getchar printf c d n c1 c1 c2 c1 32 printf c d n c2 c2 輸入 A 輸出 A 65a 97 C語言程序設計第四章順序程序設計 include includevoidmain floata b c disc x1 x2 p q scanf a f b f c f 輸入 a 1 b 3 c 2 輸出 x1 1 00 x2 2 00 C語言程序設計第四章順序程序設計 本章要求程序的三種基本結構及其特點 數據輸入輸出函數及其格式控制 熟悉TurboC環(huán)境的使用 頭文件和幫助系統(tǒng)的使用 ctrl F1 課后作業(yè)P86 90頁習題 4 7 4 10 思考 4 4 4 5 4 6 4 8 4 9 答案寫在作業(yè)本上 4 4 4 8 4 9 上機驗證 上機 實驗教材 實驗3 做好上機準備 預習第五 六章 第5章選擇結構程序設計 C語言程序設計第五章選擇結構程序設計 關系運算符和關系表達式 邏輯運算符和邏輯表達式 if語句 switch語句 程序舉例 選擇結構是三種基本結構之一 其作用是 根據指定的條件所滿足的情況轉而執(zhí)行相應的操作 C語言用關系表達式和邏輯表達式通過if語句實現(xiàn)雙分支選擇 用switch語句實現(xiàn)多分支選擇 C語言程序設計第五章選擇結構程序設計 5 1關系運算符和關系表達式 關系運算 即 比較運算 是對兩個值進行比較 比較的結果是得到真假兩種值 A 3 關系表達式 關系運算符 C語言程序設計第五章選擇結構程序設計 關系運算符及其優(yōu)先次序C語言提供6種關系運算符種類 結合方向 自左向右優(yōu)先級別 大于 大于等于 等于 不等于 優(yōu)先級6 高 優(yōu)先級7 低 c a b c a b a b c a b ca bc a b c 關系表達式用關系運算符將兩個表達式連接起來的式子 C語言程序設計第五章選擇結構程序設計 關系表達式的值 是邏輯值 真 或 假 用1和0表示 a b a b b c 5 3 inta 3 b 2 c 1 d f a b a b cb cbf a b c 表達式值1 表達式值1 表達式值0 d 1 f 0 關系運算幾點注意 C語言程序設計第五章選擇結構程序設計 例5 2 7 8在C中是允許的 值為 0 例inti 1 j 7 a a i j 4 0 則a 2 例 a 0結果為 A 100結果為 1 0 結合方向自左至右 用ASCII值比較 關系運算中應該注意 C語言程序設計第五章選擇結構程序設計 注意區(qū)分 與 inta 0 b 1 if a b printf aequaltob elseprintf anotequaltob 應避免對實數作相等或不等于0的判斷如1 0 3 0 3 0 1 0可改寫為 fabs 1 0 3 0 3 0 1 0 1e 6 5 2邏輯運算符和邏輯表達式用邏輯運算符將關系表達式或邏輯量連接起來的式子就是邏輯表達式 邏輯運算符 C語言提供3種邏輯運算符 C語言程序設計第五章選擇結構程序設計 和 是雙目運算符 是單目運算符 邏輯運算真值表 C語言程序設計第五章選擇結構程序設計 例 優(yōu)先次序 a b x y a b x y a a b 寫成a b x y 寫成a b x y 寫成 a a b 邏輯運算符的優(yōu)先次序 非 與 或 優(yōu)先次序 高 2 11 12 低結合方向 從右向左從左向右從左向右 邏輯表達式 C語言程序設計第五章選擇結構程序設計 C語言中 運算量 0表示 假 運算結果 0表示 假 非0表示 真 1表示 真 例a 4 b 5 aa ba b a b4 0 25 3 2 8 4 0 c d 值為1 值為0 值為1 值為1 值為1 值為1 5 3 2 8 4 0 值為1 邏輯運算中的注意點 短路特性 邏輯表達式求解時 并非所有的邏輯運算符都被執(zhí)行 只是在必須執(zhí)行下一個邏輯運算符才能求出表達式的解時 才執(zhí)行該運算符 C語言程序設計第五章選擇結構程序設計 若a 1 b 2 c 3 d 4 m 1 n 1 則 m a b n c d a b c 只在a為真時 才判別b的值 只在a b都為真時 才判別c的值a b c 只在a為假時 才判別b的值 只在a b都為假時 才判別c的值 結果m 0 n 1 復雜邏輯條件的表述判斷某一年year是否為閏年 C語言程序設計第五章選擇結構程序設計 判別閏年的條件 intyear 能被4整除 year 4 0能被4整除但不能被100整除 year 4 0 year 100 0 能被400整除 year 400 0綜合起來 year 4 0 year 100 0 year 400 0 此表達式為真時是閏年 優(yōu)化語句 year 4 0 year 100 0 year 400 0 5 3if語句 條件選擇語句 If語句的三種形式形式一 格式 if 表達式 語句執(zhí)行過程 C語言程序設計第五章選擇結構程序設計 main intx y x 20 y 10 if x y printf d x 沒有 C語言程序設計第五章選擇結構程序設計 形式二 格式 if 表達式 語句1else語句2執(zhí)行過程 main intx y x 20 y 10 if x y printf d x elseprintf d y C語言程序設計第五章選擇結構程序設計 形式三 格式 if 表達式1 語句1elseif 表達式2 語句2elseif 表達式3 語句3 elseif 表達式m 語句melse語句n執(zhí)行過程 例 if number 500 cost 0 15 elseif number 300 cost 0 1 elseif number 100 cost 0 075 elseif number 50 cost 0 05 elsecost 0 必須有 C語言程序設計第五章選擇結構程序設計 幾點說明 if后面的表達式類型任意 if后面的語句可以是復合語句 必須要加 if a b 考慮下面程序的輸出結果 main intx y scanf d d CompileError 后沒有 C語言程序設計第五章選擇結構程序設計 includevoidmain inta b printf Enterintegera scanf d 例 輸入兩個數并判斷兩數是否相等 運行 Enterintegera 12 Enterintegerb 12 a b 運行 Enterintegera 12 Enterintegerb 9 a b C語言程序設計第五章選擇結構程序設計 includevoidma
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網絡管理員基礎培訓課程
- 中班健康:認識肚臍
- 工程公司內部培訓
- 10kv配網帶電作業(yè)培訓
- 園長培訓:如何應對幼兒分離焦慮
- 無人機輔助車隊運輸合同范本
- 跨國車輛損傷賠償及國際物流合同
- 文化創(chuàng)意步行街個人店鋪租賃與創(chuàng)意產業(yè)發(fā)展合同
- 互聯(lián)網企業(yè)財務人員客戶信息保密責任合同
- 餐飲企業(yè)品牌推廣合作經營協(xié)議
- 耕地表土回填施工方案
- 幕墻清洗安全培訓
- 環(huán)境影響評價的國際比較
- 校際教研聯(lián)合體活動方案及案例
- 車站(助理)調度員技能鑒定理論考試題及答案
- 雨污分流及路面修復工程施工組織設計方案
- 137案例黑色三分鐘生死一瞬間事故案例文字版
- 2024年版《代謝相關脂肪性肝病防治指南》解讀1
- 《弘揚教育家精神》專題課件
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗人員理論考試題及答案
- 北京市通州區(qū)2024-2025學年四年級語文下學期期末試卷新人教版
評論
0/150
提交評論