C語言程序設(shè)計(jì)課件.ppt_第1頁
C語言程序設(shè)計(jì)課件.ppt_第2頁
C語言程序設(shè)計(jì)課件.ppt_第3頁
C語言程序設(shè)計(jì)課件.ppt_第4頁
C語言程序設(shè)計(jì)課件.ppt_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計(jì) 陳易明E mail chenym 參考書K R CPROGRAMMINGLANGUAGE 課時(shí)安排理論課 32學(xué)時(shí)上機(jī)訓(xùn)練 16學(xué)時(shí)考核成績平時(shí)考勤10 上機(jī)報(bào)告20 期末考試70 參考書與課時(shí)安排 課程要求 課后請(qǐng)復(fù)習(xí)保持課堂安靜 積極回答問題認(rèn)真 獨(dú)立 按時(shí)完成并提交作業(yè)重視上機(jī)實(shí)踐 有效利用上機(jī)時(shí)間 第一章C語言概述 C語言發(fā)展歷史C語言基本特點(diǎn)C語言程序結(jié)構(gòu)編譯和運(yùn)行程序 1 1C語言發(fā)展歷史程序設(shè)計(jì)語言的發(fā)展 CPU指令系統(tǒng) 由0 1序列構(gòu)成的指令碼組成如 10000000加10010000減 用助記符號(hào)描述的指令系統(tǒng)如ADDA B 面向機(jī)器的語言 程序設(shè)計(jì)是數(shù)據(jù)被加工的過程 程序設(shè)計(jì)關(guān)鍵是定義類 并由類派生對(duì)象 高級(jí)語言 面向開發(fā)者的語言以接近人類語言的形式來表現(xiàn) 具有標(biāo)識(shí)符 關(guān)鍵字 數(shù)據(jù)類型等 按一定的規(guī)則組成程序代碼 便于開發(fā)和維護(hù) 可讀和開發(fā)性大大增強(qiáng) C語言的發(fā)展史 1972年美國貝爾實(shí)驗(yàn)室的Dennis M Ritchie設(shè)計(jì)出C語言 并用其將UNIX系統(tǒng)全部改寫并實(shí)現(xiàn) C語言的設(shè)計(jì)目的是為描述和實(shí)現(xiàn)UNIX操作系統(tǒng)提供一種工具語言由于 語言的強(qiáng)大功能和良好的可移植性 C語言先后被移植到各種大 中 小和微型計(jì)算機(jī)上 并得到了廣泛的使用 成為當(dāng)代最優(yōu)秀的程序設(shè)計(jì)語言之一 C語言的前生 1960年出現(xiàn)的Algol60 它是一種面向問題的高級(jí)語言 離硬件比較遠(yuǎn) 不適合用來編寫系統(tǒng)程序 1963年英國劍橋大學(xué)推出了 組合編程語言 CombinedProgrammingLanguage CPL 它在Algol60的基礎(chǔ)上更接近于硬件 但規(guī)模較大 難以實(shí)現(xiàn) 因此 1967年劍橋大學(xué)的MatinRichards對(duì)CPL進(jìn)行了簡化 提出了BCPL BasicCombinedProgrammingLanguage 語言 一切從一個(gè)叫 SpaceTravel 的電子游戲開始 C語言的創(chuàng)世紀(jì) 1963年 美國麻省理工學(xué)院MIT 貝爾實(shí)驗(yàn)室和通用電器公司決定聯(lián)合開發(fā)一個(gè)操作系統(tǒng)MULTICS 其設(shè)計(jì)目標(biāo)是 公用計(jì)算服務(wù)系統(tǒng) 那時(shí) 計(jì)算機(jī)還很昂貴 主要是安裝在一些政府部門 企業(yè)和科研機(jī)構(gòu) 一般的家庭買不起 但有時(shí)人們又想使用計(jì)算機(jī)來完成一些計(jì)算任務(wù) 所以該項(xiàng)目的出發(fā)點(diǎn)是想提供一種計(jì)算服務(wù) 在城市里布置一臺(tái)計(jì)算機(jī)主機(jī) 然后用戶在自己的家里 使用終端并且通過電話線來接入這臺(tái)主機(jī) 終端很便宜 只有顯示器 鍵盤和通信模塊 每個(gè)家庭都買得起 他們使用終端來連接計(jì)算機(jī) 然后像使用水 電 煤氣等生活資源那樣來使用這臺(tái)計(jì)算機(jī)的計(jì)算資源 并繳納相應(yīng)的費(fèi)用 這樣一來 在主機(jī)上必須運(yùn)行一個(gè)操作系統(tǒng) 來對(duì)整個(gè)系統(tǒng)的資源進(jìn)行管理 MULTICS系統(tǒng)非常龐大 復(fù)雜 它的研制難度遠(yuǎn)遠(yuǎn)超出了人們的預(yù)料 因此 貝爾實(shí)驗(yàn)室和通用電器公司先后退出了這個(gè)項(xiàng)目 1969年 當(dāng)貝爾實(shí)驗(yàn)室退出該項(xiàng)目后 它的一個(gè)研究員KenThompson在MULTICS操作系統(tǒng)上編寫了一個(gè)名為 太空旅行 spacetravel 的游戲 模擬了一個(gè)飛行員駕駛著一艘宇宙飛船在太陽系中遨游 并在各個(gè)星體上著陸 后來 由于無法繼續(xù)訪問MULTICS操作系統(tǒng) 他就在貝爾實(shí)驗(yàn)室里找了一臺(tái)沒有人使用的PDP 7計(jì)算機(jī) 想把游戲程序移植到這臺(tái)機(jī)器上 但是 當(dāng)時(shí)計(jì)算機(jī)硬件所能執(zhí)行的都是用機(jī)器語言來描述的指令 而對(duì)于不同類型的計(jì)算機(jī)來說 它們的機(jī)器語言是不一樣的 所以在MULTICS系統(tǒng)上運(yùn)行的程序 不能直接把它搬到PDP 7這種類型的計(jì)算機(jī)上去運(yùn)行 因此 Thompson就和貝爾實(shí)驗(yàn)室的另外一名研究員DennisRitchie 他們兩個(gè)人一起 在另外一臺(tái)GE 635計(jì)算機(jī)上 利用它的操作系統(tǒng) 即GECOS所提供的一個(gè)交叉匯編器 把空間旅行游戲用PDP 7的匯編語言重新編寫了一遍 并且生成PDP 7的機(jī)器語言指令 然后用穿孔紙帶的形式把它轉(zhuǎn)移到了PDP 7上面 這樣 就可以玩了 Question 為什么不直接在PDP 7這臺(tái)計(jì)算機(jī)上編程呢 而需要使用第三臺(tái)機(jī)器GE635呢 原因很簡單 這臺(tái)PDP 7計(jì)算機(jī)之所以沒人來用 是因?yàn)樗且慌_(tái)光禿禿的計(jì)算機(jī) 只有硬件而沒有任何軟件 連匯編程序都沒有 這樣 人們就沒有辦法在上面編程 如果實(shí)在想編程的話 只能直接使用機(jī)器語言 但機(jī)器語言都是一些0 1字符串 太難懂了 所以沒有人愿意使用它 Question 為什么PDP 7計(jì)算機(jī)只是硬件沒有軟件 當(dāng)時(shí) 計(jì)算機(jī)水平還很落后 很多研究小組申請(qǐng)項(xiàng)目研制計(jì)算機(jī) 僅僅是針對(duì)硬件架構(gòu) 當(dāng)計(jì)算機(jī)做好后 測試性能后項(xiàng)目組的任務(wù)就完成了 然后再研制更新的計(jì)算機(jī) 如果有需要 則用機(jī)器語言編寫程序 然后在紙帶上打上孔 讓計(jì)算機(jī)讀入 有孔 無孔 分別代表1 0 Question 為什么不直接在GE635上玩游戲呢 答案 一個(gè)字 貴 兩個(gè)字 很貴 三個(gè)字 非常貴 玩一小時(shí)游戲花費(fèi)75美元 當(dāng)時(shí)價(jià)值25桶石油 現(xiàn)在按70美元 桶石油算 約5250美元 后來 Thompson覺得這臺(tái)PDP 7計(jì)算機(jī)空在那里有點(diǎn)可惜 所以就和Ritchie等人開始為它編寫一個(gè)新的操作系統(tǒng) 也就是說 在硬件的基礎(chǔ)上 再給它增加一些軟 這樣 這臺(tái)機(jī)器就能夠用起來 就能做更多的事情 他們先是寫好了這個(gè)操作系統(tǒng)的文件系統(tǒng)和一組基本的軟件工具 然后再編寫了一個(gè)PDP 7匯編語言的編譯器 有了這些軟件工具后 就能直接在PDP 7上編程了 到了1970年 這個(gè)操作系統(tǒng)的基本元素都已經(jīng)完成了 他們給系統(tǒng)起了一個(gè)名字 也就是UNIX 到了1970年的夏季 研究小組得到了一臺(tái)新的 功能更強(qiáng)大的機(jī)器PDP 11 因此需要把UNIX系統(tǒng)從PDP 7移植到PDP 11上面去這項(xiàng)工作非常的煩瑣 因?yàn)檎麄€(gè)系統(tǒng)都是用匯編語言來編寫的 需要把每一條PDP 7匯編語言指令都轉(zhuǎn)換為相應(yīng)的PDP 11匯編語言指令 工作量非常大 更重要的是 這種移植工作是一次性的 如果以后又來了一臺(tái)新的機(jī)器 那么整個(gè)移植工作又得重新來過 所以這是一個(gè)很大的問題 為解決這個(gè)問題呢 研究小組就開始考慮用某種高級(jí)語言來重寫整個(gè)系統(tǒng) 以提高系統(tǒng)的可移植性和可懂性 Thompson為了提高UNIX操作系統(tǒng)的可移植性 想要用某種高級(jí)語言來重寫整個(gè)系統(tǒng) 但是采用哪一種高級(jí)語言來做這件事呢 他的想法是自己去設(shè)計(jì)一種高級(jí)語言 他以BCPL語言為基礎(chǔ) 又作了進(jìn)一步的簡化 設(shè)計(jì)出很簡單而且很接近硬件的B語言 這個(gè)名稱取自于BCPL的第一個(gè)字母 但是B語言過于簡單 是一種沒有數(shù)據(jù)類型的語言 功能很有限 因此 當(dāng)他試圖用B語言來重寫UNIX操作系統(tǒng)時(shí) 效果并不太好 到了1972年 Ritchie在B語言的基礎(chǔ)上又設(shè)計(jì)出了C語言 這個(gè)名稱取自于BCPL的第二個(gè)字母 C語言既保持了BCPL和B語言的精煉 接近硬件等優(yōu)點(diǎn) 又克服了它們過于簡單 數(shù)據(jù)無類型等缺點(diǎn) 所以很快就成為研究小組內(nèi)部的首選編程語言 后來 Ritchie和Thompson兩個(gè)人合作 把整個(gè)UNIX系統(tǒng)用C語言重新寫了一遍 這樣 以后再需要移植的時(shí)候 就方便多了 大部分的系統(tǒng)代碼都無需改動(dòng) 1977年 出現(xiàn)了不依賴于具體機(jī)器的C語言編譯器 使得把一個(gè)C程序從一臺(tái)機(jī)器移植到另一臺(tái)機(jī)器上所需要的工作大大地簡化了 這就推動(dòng)了UNIX操作系統(tǒng)迅速地在各種類型的機(jī)器上得以實(shí)現(xiàn) 反過來 隨著UNIX系統(tǒng)日益廣泛的使用 C語言也得到了迅速地推廣 所以說 C語言和UNIX系統(tǒng)關(guān)系非常密切 在發(fā)展過程中它們是相輔相成的 C語言的發(fā)展史告訴我們 1 游戲是推動(dòng)計(jì)算機(jī)軟件技術(shù)發(fā)展的重大推動(dòng)力 2 玩游戲是很耗錢或費(fèi)時(shí)間的 3 適量游戲有助于身心健康 并能極大促進(jìn)電腦水平的提高 Ritchie和Thompson在開發(fā)UNIX 很貴的游戲機(jī) 絕對(duì)的 發(fā)燒級(jí) 接受美國國家技術(shù)勛章 游戲玩家的終極夢(mèng)想傳說中的神器 聲望 100 000 Thompson 左 和Ritchie 中 于1999年接受當(dāng)時(shí)美國總統(tǒng)克林頓授予的國家技術(shù)勛章 一九七八年由美國電話電報(bào)公司 AT T 貝爾實(shí)驗(yàn)室正式發(fā)表了 語言 B W Kernighan和D M Ritchit合著了著名的 THECPROGRAMMINGLANGUAGE 一書 通常簡稱為 K R 也有人稱之為 K R 標(biāo)準(zhǔn) 但是 在 K R 中并沒有定義一個(gè)完整的標(biāo)準(zhǔn)C語言 后來由美國國家標(biāo)準(zhǔn)協(xié)會(huì) AmericanNationalStandardsInstitute 在此基礎(chǔ)上制定了一個(gè)C語言標(biāo)準(zhǔn) 于一九八三年發(fā)表 通常稱之為ANSIC C語言標(biāo)準(zhǔn) 語言版本 目前最流行的 語言有以下幾種 MicrosoftC或稱MSC BorlandTurboC或稱TurboC AT TC這些 語言版本都實(shí)現(xiàn)了ANSIC標(biāo)準(zhǔn) 并在此基礎(chǔ)上各自作了一些擴(kuò)充 使之更加方便 完美 我們學(xué)習(xí)的是TurboC C語言的基本特點(diǎn) 1 C語言被稱為 高級(jí)語言中的低級(jí)語言 這樣說不是指它的功能差或難于使用 而是指它具有許多匯編語言等低級(jí)語言才具備的功能 C語言允許直接訪問物理地址 能進(jìn)行位操作 能實(shí)現(xiàn)匯編語言的大部分功能 可以直接對(duì)硬件進(jìn)行操作 所以C語言在系統(tǒng)設(shè)計(jì)十分有效 過去系統(tǒng)軟件只能用匯編語言編寫 使用C語言可以減輕程序的負(fù)擔(dān) 提高效率 寫出來程序也更具有可移植性 計(jì)算機(jī)的層次 硬件 Hardware 操作系統(tǒng) OS 應(yīng)用程序 Application 應(yīng)用平臺(tái) 基于平臺(tái)的應(yīng)用程序 低級(jí)語言的地盤 高級(jí)語言的地盤 C語言的地盤 C語言的基本特點(diǎn) 2 C語言簡潔 緊湊 使用方便 靈活 ANISC語言只有32個(gè)關(guān)健字 9種控制語句 我們學(xué)習(xí)的TC擴(kuò)充了11個(gè)關(guān)鍵字 一共也才43個(gè)關(guān)鍵字 C語言的基本特點(diǎn) 3 運(yùn)算符豐富 共有34種 C把括號(hào) 賦值 逗號(hào)等都作為運(yùn)算符處理 從而使C的運(yùn)算類型極為豐富 可以實(shí)現(xiàn)其他高級(jí)語言難以實(shí)現(xiàn)的運(yùn)算 4 具有結(jié)構(gòu)化的控制語句 5 語法限制不太嚴(yán)格 程序設(shè)計(jì)自由度大 6 生成目標(biāo)代碼質(zhì)量高 程序執(zhí)行效率高 C語言的基本特點(diǎn) 7 與匯編語言相比 用C語言寫的程序可移植性好 8 C語言是程序員的語言 是為專業(yè)程序員設(shè)計(jì)的語言 它實(shí)現(xiàn)了程序員的期望 很少限制 程序設(shè)計(jì)自由度大 方便的控制結(jié)構(gòu) 獨(dú)立的函數(shù) 緊湊的關(guān)鍵字集合和較高的執(zhí)行效率 缺點(diǎn) 語法限制不太嚴(yán) 編譯器不進(jìn)行太多的錯(cuò)誤檢查 程序員在編程如果不注意的話 很容易出現(xiàn)編譯通過但程序出錯(cuò)的現(xiàn)象 第一個(gè)C語言程序 學(xué)習(xí)任一計(jì)算機(jī)高級(jí)語言的最佳途徑都是編程 對(duì)于任一計(jì)算機(jī)語言 編寫的第一個(gè)程序都是輸出一個(gè)字符串 出于對(duì)K R的敬意 一般講解第一個(gè)程序進(jìn)都是選擇K R的 CPROGRAMMINGLANGUAGE 一書中的第一個(gè)例子 打印 HelloWorld 來進(jìn)行講解 第一個(gè)C語言程序 如何利用C語言在屏幕上顯示出如下單詞 HelloWorld 實(shí)現(xiàn)過程 1 編寫源程序 2 編譯 將源程序編譯成目標(biāo)文件 obj 3 將目標(biāo)文件鏈接成可執(zhí)行文件 exe 4 運(yùn)行可執(zhí)行文件 第一個(gè)C語言程序 在屏幕上顯示HelloWorld include stdio h main printf helloWorld n 1 編寫源程序 存儲(chǔ)為helloworld c 內(nèi)容如下 功能注釋 在屏幕上顯示HelloWorld include stdio h 編譯預(yù)處理 告訴編譯程序在本程序包含標(biāo)準(zhǔn)輸入輸出庫函數(shù) main 主函數(shù) 無參數(shù) 函數(shù)頭printf HelloWorld n 調(diào)用庫函數(shù)printf 將Helloworld顯示到屏幕上 n為換行符 函數(shù)尾 編譯預(yù)處理 在C源程序中加入一些 預(yù)處理命令 可以改進(jìn)程序設(shè)計(jì)環(huán)境 提高編程效率 預(yù)處理命令不是C語言本身的組成部分 不能直接對(duì)其進(jìn)行編譯 必須在編譯之前 先對(duì)這些特殊的命令進(jìn)行相應(yīng)的處理 編譯預(yù)處理 C提供的預(yù)處理功能主要有三種 1 文件包含2 宏定義3 條件編譯 所有的預(yù)處理命令 都是以 開頭的 1 文件包含 include 文件名 文件名指的是外部的庫函數(shù)名或源程序名 庫函數(shù)是由系統(tǒng)建立的具有一定功能的函數(shù)的集合 庫函數(shù)中存放同類函數(shù)的名稱和對(duì)應(yīng)的目標(biāo)代碼 只要用了 include 庫函數(shù)名 就可以調(diào)用庫函數(shù)中的函數(shù) 編譯預(yù)處理 include stdio h 可調(diào)用各種輸入輸出函數(shù) 包括 printf scanf getchar putchar fopen fclose fprintf fsacnf fseek fread fwrite等 C語言程序的基本格式 1 每一個(gè)C程序 都由函數(shù)和變量組成 函數(shù)包含若干用于實(shí)現(xiàn)指定操作的語句 變量在計(jì)算過程中存儲(chǔ)有關(guān)的值 2 函數(shù)可任意命名 但每一個(gè)C程序中都必須并且只能有一個(gè)名為main的主函數(shù) C程序都是從main函數(shù)開始執(zhí)行 include stdio h main printf helloWorld n C語言程序的基本格式 3 函數(shù)必須先定義 后使用 定義函數(shù)時(shí)在函數(shù)名后加一對(duì)圓括號(hào)將變量括起來 4 由一對(duì)花括號(hào)括起構(gòu)造函數(shù)的語句 稱為函數(shù)體 花括號(hào)后不加分號(hào) main printf helloWorld n C語言程序的基本格式 5 每一條語句的用分號(hào) 做為結(jié)束 說明 在以下三種情況下不允許有分號(hào) a 預(yù)處理語句后面不使用分號(hào)b 所定義的函數(shù)的名稱后面不使用分號(hào)c 在右花括號(hào) 后面不使用分號(hào) C語言程序的基本格式 6 源程序中可以有預(yù)處理命令 include命令僅為其中的一種 預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面 7 一個(gè) 語言源程序可以由一個(gè)或多個(gè)源文件組成 7 在C語言中 大小寫字母是有區(qū)別的 C語言習(xí)慣用小寫字母 8 用 對(duì)C程序中的任何部分作注釋 注釋可以寫在程序的任何位置上 與 也可不在同一行上 不能嵌套 例 Thisisthemain ofexample1 1 C語言程序結(jié)構(gòu) 在屏幕上顯示HelloWorld include stdio h main printf helloWorld n 注釋語句 編譯預(yù)處理 主函數(shù)定義 函數(shù)體 程序書寫格式特點(diǎn)習(xí)慣用小寫字母 大小寫敏感不使用行號(hào) 無程序行概念可使用空行和空格常用鋸齒形書寫格式 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)秀程序員的素質(zhì)之一 使用TAB縮進(jìn) 對(duì)齊有足夠的注釋有合適的空行 課堂練習(xí)一 編寫一個(gè)C語言源程序 執(zhí)行后 在屏幕上輸出 這是我的第一個(gè)C語言程序 C語言程序結(jié)構(gòu) 注釋語句 編譯預(yù)處理 主函數(shù)定義 函數(shù)體 在屏幕上顯示 這是我的第一個(gè)C語言源程序 include stdio h main printf 這是我的第一個(gè) nC語言源程序 2 常用計(jì)算機(jī)語言 BASIC FORTRAN PASCAL COBOL C JAVA PROLOG 計(jì)算機(jī)基本工作過程 整個(gè)過程的執(zhí)行者是硬件 但硬件是受軟件控制的編程 就是編寫軟件 使硬件按照人的意圖工作 1 計(jì)算機(jī)語言的翻譯方式 1 解釋方式 2 編譯方式 程序設(shè)計(jì)語言的工作原理 高級(jí)語言源程序 解釋程序 解釋并執(zhí)行 運(yùn)算結(jié)果 高級(jí)語言源程序 編譯程序 執(zhí)行 運(yùn)算結(jié)果 操作系統(tǒng) 編譯 機(jī)器語言程序 編譯運(yùn)行 編譯過程程序員 Programmer 編寫程序源代碼 SourceCode 編譯器 Compiler 把源代碼轉(zhuǎn)換為可被計(jì)算機(jī)理解的機(jī)器代碼 MachineCode 并把機(jī)器代碼以可執(zhí)行文件 ExecutableFile 的形式保存在磁盤上軟件的運(yùn)行計(jì)算機(jī)把機(jī)器代碼讀入到內(nèi)存 Memory 由CPU運(yùn)行這些代碼 讀取輸入 Input 產(chǎn)生輸出 Output 完成程序員預(yù)定的功能 編譯語言 一種編譯語言對(duì)應(yīng)一種編譯器程序員按照該語言的語法編寫程序源代碼 把自己的意圖融入到代碼中編譯器讀入源代碼 把程序員的意圖轉(zhuǎn)換成可執(zhí)行程序 供他人使用 C語言 可執(zhí)行程序 編譯器 解釋運(yùn)行 解釋運(yùn)行過程程序員編寫程序源代碼解釋器讀入源代碼 并執(zhí)行源代碼解釋運(yùn)行的語言特點(diǎn)執(zhí)行速度慢好學(xué)易用先編譯 后解釋把源代碼編譯成更容易解釋的中間代碼 然后再解釋運(yùn)行 C程序的開發(fā)運(yùn)行過程 1 源程序的編輯可使用任意純文本編輯器編寫 如記事本 WORD UltraEit等均可 得到源程序文件 c 2 編譯由專門的編輯程序 編譯器 對(duì)源程序進(jìn)行語法分析和檢查 如無語法錯(cuò)誤則轉(zhuǎn)換生成目標(biāo)碼程序文件 obj 3 鏈接與其它庫函數(shù)或目標(biāo)程序文件鏈接生成可執(zhí)行文件 exe 4 執(zhí)行 C語言集成開發(fā)環(huán)境 集成開發(fā)環(huán)境IDE IntegratedDevelopmentEnvironment包含文本編輯 程序編譯 連接以及程序運(yùn)行 調(diào)試一體化的程序軟件包 常用的集成開發(fā)環(huán)境主要有 美國Borland公司1989年出版的TurboC2 0 微軟的MicrosoftVisualC 因?yàn)門C是在DOS下進(jìn)行操作的 在WINDOWS中也要在命令窗口中進(jìn)行操作 比較麻煩 所以推薦大家使用 C C 程序設(shè)計(jì)學(xué)習(xí)與實(shí)驗(yàn)系統(tǒng) 共享版 作者 鐘家民注冊(cè)費(fèi)用 35元 第二個(gè)程序 已知有變量a 12 變量b 14 編寫程序求變量a b之和 如何編寫程序 第二個(gè)程序 求 a b include stdio h main a 12 b 14 printf a b 求 a b include stdio h main inta 12 定義a為整型變量intb 14 定義b為整型變量printf a b d a b 在C語言中 所有變量必須先說明后使用 說明用于申明變量的性質(zhì) 變量說明語句格式如下 變量類型名變量1 變量2 變量n 變量類型名有 int整數(shù) float浮點(diǎn)數(shù)char字符 單字節(jié)short短整數(shù)long長整數(shù)single單精度浮點(diǎn)數(shù)double雙精度浮點(diǎn)數(shù) 第二個(gè)程序求兩數(shù)之和 兩數(shù)求和 include stdio h voidmain inta b sum 定義三個(gè)整型變量a 12 給變量賦值b 14 sum a b 求和printf a b d sum 輸出顯示 d輸出轉(zhuǎn)換說明 用整型值sum來代替它 修改程序如下 運(yùn)行結(jié)果sum include stdio h voidmain inta b sum a 12 50 b 14 50 sum a b printf a b d sum 再修改程序如下 運(yùn)行結(jié)果sum include stdio h voidmain floata b sum 定義三個(gè)浮點(diǎn)型變量a 12 50 b 14 50 sum a b printf a b d sum 兩數(shù)求和 sum include stdio h voidmain floata b sum a 12 50 b 14 50 sum a b printf a b f sum f輸出轉(zhuǎn)換說明 用浮點(diǎn)型值sum來代替它 輸出函數(shù)printf printf函數(shù)稱為格式輸出函數(shù) 用來向標(biāo)準(zhǔn)輸出設(shè)備 屏幕 寫數(shù)據(jù) printf 格式控制串 參數(shù)表 格式化字符串包括兩部分內(nèi)容 一部分是正常字符 這些字符將按原樣輸出 另一部分是格式化規(guī)定字符 以 開始 后跟一個(gè)或幾個(gè)規(guī)定字符 用來確定輸出內(nèi)容格式 參數(shù)表是需要輸出的一系列參數(shù) 其個(gè)數(shù)必須與格式化字符串所說明的輸出參數(shù)個(gè)數(shù)一樣多 各參數(shù)之間用 分開 且順序一一對(duì)應(yīng) 否則將會(huì)出現(xiàn)意想不到的錯(cuò)誤 參數(shù)可以是變量 常量和表達(dá)式 1 格式化規(guī)定符TurboC2 0提供的格式化規(guī)定符如下 符號(hào)作用 d十進(jìn)制有符號(hào)整數(shù) u十進(jìn)制無符號(hào)整數(shù) f浮點(diǎn)數(shù) s字符串 c單個(gè)字符 p指針的值 e指數(shù)形式的浮點(diǎn)數(shù) x X無符號(hào)以十六進(jìn)制表示的整數(shù) 0無符號(hào)以八進(jìn)制表示的整數(shù) g自動(dòng)選擇合適的表示法 1 可以在 和字母之間插進(jìn)數(shù)字表示最大場寬 3d表示輸出3位整型數(shù) 不夠3位右對(duì)齊 9 2f表示輸出場寬為9的浮點(diǎn)數(shù) 其中小數(shù)位為2 整數(shù)位為6 小數(shù)點(diǎn)占一位 不夠9位右對(duì)齊 對(duì)浮點(diǎn)數(shù) 若整數(shù)部分位數(shù)超過了說明的整數(shù)位寬度 將按實(shí)際整數(shù)位輸出 若小數(shù)部分位數(shù)超過了說明的小數(shù)位寬度 則按說明的寬度以四舍五入輸出 如果用浮點(diǎn)數(shù)表示字符或整型量的輸出格式 小數(shù)點(diǎn)后的數(shù)字代表最大寬度 小數(shù)點(diǎn)前的數(shù)字代表最小寬度 例如 6 9s表示顯示一個(gè)長度不小于6且不大于9的字符串 若大于9 則第9個(gè)字符以后的內(nèi)容將被刪除 2 可以在 和字母之間加小寫字母l 表示輸出的是長型數(shù) 例如 ld表示輸出long整數(shù) lf表示輸出double浮點(diǎn)數(shù) 3 可以控制輸出左對(duì)齊或右對(duì)齊 即在 和字母之間加入一個(gè) 號(hào)可說明輸出為左對(duì)齊 否則為右對(duì)齊 例如 7d表示輸出7位整數(shù)左對(duì)齊 2 一些特殊規(guī)定字符字符作用 n換行 f清屏并換頁 r回車 tTab符 xhh表示一個(gè)ASCII碼用16進(jìn)制數(shù)表示 其中hh是1到2個(gè)16進(jìn)制數(shù) 輸出函數(shù)printf 例子 include stdio h voidmain printf d n n 336 printf theoctalnumberof17is o n n 17 printf thehexnumberof30is x n n 30 printf fisfloatingformat n n 13 5 printf c n n a printf s n n aflingbird 兩數(shù)求和 include stdio h voidmain inta b sum a 12 b 14 sum a b printf d d d a b sum 前面的程序是在源程序中就輸入了要求和的數(shù) 如果我們想要在鍵盤中輸入數(shù)據(jù) 如果實(shí)現(xiàn)呢 可以使用scanf 函數(shù) 輸入函數(shù)scanf scanf 函數(shù)是格式化輸入函數(shù) 它從標(biāo)準(zhǔn)輸入設(shè)備 鍵盤 讀取輸入的信息 格式 scanf 輸入函數(shù)scanf 格式化字符串包括以下三類不同的字符 1 格式化說明符

溫馨提示

  • 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)論