版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、遼寧師范大學(xué)計算機與信息技術(shù)學(xué)院 蔡靜C 語言程序設(shè)計本人版權(quán)所有,復(fù)制必究。目錄C語言概述程序的靈魂算法數(shù)據(jù)類型、運算符與表達式C程序設(shè)計數(shù)組函數(shù)預(yù)處理命令指針結(jié)構(gòu)體和共用體位運算文件測試及綜合應(yīng)用須知:課程的性質(zhì)、地位和意義課程性質(zhì):專業(yè)必修課 (考試)。課程的地位和意義:是本專業(yè)的第一門程序設(shè)計語言課程,涉及軟硬件的基礎(chǔ)知識,也是數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、數(shù)據(jù)庫原理、計算機圖形、圖象等相關(guān)后繼課程的先行課。 課程的教學(xué)目的和任務(wù)本課程系統(tǒng)介紹C語言的語法語義、豐富的數(shù)據(jù)類型及模塊化結(jié)構(gòu)程序設(shè)計方法。通過本課程教學(xué),學(xué)生應(yīng)掌握程序設(shè)計的初步知識,建立模塊化結(jié)構(gòu)程序設(shè)計的思想,并具有對問題進行分析
2、、綜合運用C語言知識進行編程實現(xiàn)的能力。 3程序設(shè)計-2005秋教材及參考資料:教材:C語言程序設(shè)計第3版,譚浩強編著,清華大學(xué)出版社,2009。參考資料:C:The Computer Reference,Herbert schildt McGraw-Hill. The C Programming Language,B.M.Kernigrhan, D.W.Ritchie, Prantice-Hall Soft Ware Series.Advanced C,Herbert schildt McGraw-Hill.Programming In ANSI C,Stephen G.Rochan, Ha
3、yden Books. C語言程序設(shè)計及其應(yīng)用,龔杰民,金益民編著,西北電訊工程大學(xué)出版社。C程序設(shè)計試題匯編,譚浩強主編,清華大學(xué)出版社C語言習(xí)題集與上機指導(dǎo) ,譚浩強主編,清華大學(xué)出版社4程序設(shè)計-2005秋學(xué)習(xí)建議:課前預(yù)習(xí),每次帶著問題來聽課解疑課后鞏固理解,保證每周課余至少4小時的上機時間利用做題來檢驗自己的掌握程度,可參考計算機等級考試、程序員考試等考試題目5程序設(shè)計-2005秋第一章 C語言概述1.1 C語言出現(xiàn)的歷史背景1.2 C語言的特點1.3 簡單的C語言程序介紹1.4 運行C程序的步驟與方法1.1 C語言出現(xiàn)的歷史背景1960年出現(xiàn)的ALGOL 60是一種面向問題的高級語
4、言,它離硬件比較遠,不宜用來編寫系統(tǒng)程序1963年英國的劍橋大學(xué)推出了CPL (combined programming language)語言。CPL語言在ALGOL 60的基礎(chǔ)上接近硬件一些,但規(guī)模比較大,難以實現(xiàn)1967年英國劍橋大學(xué)的Matin Richards對CPL語言做了簡化,推出了BCPL (basic combined programming language) 語言1970年美國貝爾實驗室的Ken Thompson 以BCPL語言為基礎(chǔ),設(shè)計出了簡單且很接近硬件的B語言 (取BCPL的第一個字母), 并用B語言寫了第一個UNIX操作系統(tǒng)。但B語言過于簡單,功能有限1972年
5、至1973年間,貝爾實驗室的D.M.Ritchie 在B語言的基礎(chǔ)上設(shè)計出了C語言(取BCPL的第二個字母)。C語言既保持了BCPL和B語言的優(yōu)點(精練,接近硬件),又克服了它們的缺點(過于簡單,數(shù)據(jù)無類型等)。1973年,K.Thompson和D.M.Ritchie兩人合作把UNIX的90%以上用C改寫,即UNIX第5版1983年,美國國家標準化協(xié)會(ANSI)根據(jù)C語言問世以來各種版本對C的發(fā)展和擴充,制定了新的標準,稱為ANSI C1987年,ANSI又公布了新標準 87 ANSI C1990年,國際標準化組織ISO (International Standard Organizatio
6、n) 接受87 ANSI C為ISO C 的標準(ISO 98991990)7程序設(shè)計-2005秋C語言的作者Dennis M. Ritchie丹尼斯里奇Harvard University獲學(xué)士和博士學(xué)位1967年加入Bell實驗室工作1972年發(fā)明C語言1978年, Brian W.Kernighan和Dennis M.Ritchie 合著The C Programming LanguageTuring獎(1983)和IEEE先驅(qū)獎(1992)獲得者、美國工程院院士8程序設(shè)計-2005秋1.2 C語言的特點語言簡潔、緊湊,使用方便、靈活。運算符方便。數(shù)據(jù)類型豐富,具有現(xiàn)代語言的各種數(shù)據(jù)結(jié)構(gòu)
7、。具有結(jié)構(gòu)化的控制語句。語法限制不太嚴格,程序設(shè)計自由度大。C語言允許自由訪問物理地址,能進行位操作,可直接對硬件進行操作。生成目標代碼的質(zhì)量高,程序執(zhí)行效率高??梢浦残院?。9程序設(shè)計-2005秋1.3 簡單的C語言程序介紹1個C程序有且僅有1個main函數(shù)。函數(shù)體用花括號“ ” 括住?;ɡㄌ柨梢杂脕砝ㄆ鹑魏我唤MC代碼,從而構(gòu)成復(fù)合語句或分程序簡單C語句之后有一個分號“;”。#include 是編譯預(yù)處理命令行,指明有關(guān)輸入和輸出標準函數(shù)也將是程序的一部分。程序中的“/* */”表示程序的注釋部分。注釋便于人閱讀程序,對程序編譯和運行都沒有作用。例1.1:一個只輸出一行信息的程序 #inclu
8、de void main( ) /* 主函數(shù) */ int i; i=20; printf(nProgramming is fun.i=%d,i); 10程序設(shè)計-2005秋例1.2 讀入兩個整數(shù),輸出它們的和#include void main() /* 變量定義部分 */ int x, y, sum; /* 定義 x, y, sum */ /* 以下為語句序列 */ printf(Input x and yn);/*提示輸入數(shù)據(jù)*/ scanf(%d%d, &x, &y); /* 輸入x和y的值 */ sum = x+y ; /* 完成x+y的計算,求sum=x+y */ printf(x
9、 + y = %dn, sum); /* 輸出結(jié)果 */11程序設(shè)計-2005秋【例1.3】求三個數(shù)的平均值#include void main() /* 變量定義部分 */ double x, y,z, ave; /* 定義 x, y,z, ave */ /* 以下為語句序列 */ x=3.5;y=4.6;z=2.9; /*賦值*/ ave = (x+y+z)/3 ; printf(x,y, z的平均值是: %fn, ave); /* 輸出結(jié)果 */12程序設(shè)計-2005秋【例1.3】求三個數(shù)的平均值(函數(shù)調(diào)用)#include double average(double x,double
10、y,double z)return (x+y+z)/3.0;void main( ) /* 變量定義部分 */ double x, y,z, ave; /* 定義 x, y,z, ave */ /* 以下為語句序列 */ x=3.5; y=4.6; z=2.9; /*賦值*/ ave = average(x,y,z) ; /*調(diào)用average函數(shù)*/ printf(x,y, z的平均值是: %fn, ave); /* 輸出結(jié)果 */13程序設(shè)計-2005秋函數(shù) FunctionC程序由若干函數(shù)組成。每個程序都有且僅有1個主函數(shù)main()函數(shù)和若干子函數(shù)構(gòu)成。一個函數(shù)定義由函數(shù)頭和函數(shù)體組成
11、。函數(shù)頭包括函數(shù)屬性、 函數(shù)返回值類型、函數(shù)名、函數(shù)形式參數(shù)名,形式參數(shù)類型。 函數(shù)返回值類型 函數(shù)名(參數(shù)說明表) 說明和定義部分 執(zhí)行語句序列 14程序設(shè)計-2005秋函數(shù) Function (續(xù))說明:函數(shù)可以沒有參數(shù),但函數(shù)名之后的一對圓括號是必須的函數(shù)體是函數(shù)頭之后用一對花括號括住的部分。函數(shù)體用于描述實現(xiàn)函數(shù)功能的代碼,它又包括:說明和定義部分說明數(shù)據(jù)結(jié)構(gòu)(類型)和定義函數(shù)專用的局部變量等執(zhí)行部分由語句和控制結(jié)構(gòu)代碼組成15程序設(shè)計-2005秋【例】利用公式:C = (5/9)(F-32)輸出F氏溫度與C氏溫度對照表,設(shè)已知F氏溫度取0、20、200。#include void m
12、ain() float f, c; /* 變量定義 */ int lower, upper, step; lower = 0; upper = 200; step = 20; f = lower; while (f = upper) /* 循環(huán)計算 */ c = 5.0/9.0 * (f - 32.0); printf(%3.0f %6.1fn, f, c); f = f + step; 16程序設(shè)計-2005秋【例】統(tǒng)計輸入字符行中各數(shù)字符、空白符與制表符符以及其它字符的出現(xiàn)次數(shù)。#include void main() int c, k, nWhite, nOther; int nDigi
13、t10; /* 定義有10個數(shù)字符的計數(shù)器 */ nWhite = nOther = 0; for(k = 0; k = 0 & c = 9) /* 如是數(shù)字符 */ +nDigitc 0;/* 對應(yīng)數(shù)字符的計數(shù)器增1 */ else if (c = | c = t) +nWhite; else +nOther; /* 其它字符計數(shù)器增1 */ for(k = 0; k 10; k+) /* 輸出對應(yīng)數(shù)字符及其出現(xiàn)次數(shù) */ printf(”%c : %dn”, 0+k, nDigitk); printf(”white space : %dn other : %dnn”, nWhite, nO
14、ther);17程序設(shè)計-2005秋【例】輸入兩個實數(shù), 輸出它們中的小的數(shù)#include void main() float x, y, c; /* 變量定義 */ float min(float, float); /* 函數(shù)說明 */ printf(輸入x和y. n); scanf(%f%f, &x, &y ); c = min(x, y); /* 調(diào)用函數(shù) min() */ printf(MIN(%.2f, %.2f) = %.2fn, x, y, c);float min(float a, float b) float temp ; /* 函數(shù)使用的變量的定義 */ if (a b)
15、 temp = a; else temp = b;return temp ; /* 返回 temp 到調(diào)用 min() 函數(shù)處 */18程序設(shè)計-2005秋1.4 運行C程序的步驟與方法編輯開始結(jié)束有錯誤有錯誤有錯誤無錯誤無錯誤無錯誤結(jié)果鍵盤輸入源程序f.c磁盤文件f.obj目標文件f.exe可執(zhí)行文件有錯誤無錯誤編譯連接運行19程序設(shè)計-2005秋C程序的開發(fā)過程:分析問題、建立模型表現(xiàn)模型源程序的編輯程序的變異/解釋與鏈接程序的測試與調(diào)試編寫程序文檔程序的維護20程序設(shè)計-2005秋編輯、預(yù)處理與編譯編輯:程序員用系統(tǒng)環(huán)境提供的編輯器編輯源程序,產(chǎn)生一個源程序文件.c 或.h 預(yù)處理:編譯
16、前,C編繹器先自動調(diào)用預(yù)處理程序,對源程序文件作文字轉(zhuǎn)換,產(chǎn)生一個新的內(nèi)部程序代碼編譯:若編譯過程中發(fā)現(xiàn)程序有錯誤,則輸出錯誤的詳細信息;對正確的源程序產(chǎn)生機器語言程序,稱為源程序的目的代碼21程序設(shè)計-2005秋連接、加載與執(zhí)行連接:連接程序?qū)⒛康拇a和一些庫函數(shù)的目的代碼連接起來,產(chǎn)生計算機可直接執(zhí)行的程序映象文件靜態(tài)連接vs.動態(tài)連接加載:將要執(zhí)行的程序裝入內(nèi)存執(zhí)行:裝入內(nèi)存的程序在計算機的操作系統(tǒng)控制下執(zhí)行22程序設(shè)計-2005秋三種開發(fā)環(huán)境:一、TC 環(huán)境程序格式關(guān)鍵字及編譯預(yù)處理命令用小寫字母書寫。由語句組成。以分號(;)作為語句的結(jié)束符(不是分隔符)。沒有行的概念,可任意書寫。用
17、大括號對 表示程序的層次范圍,一個完整的程序模塊要用一對 包括。不能在變量名、函數(shù)名、關(guān)鍵字中插入空格和空行。23程序設(shè)計-2005秋TC環(huán)境(續(xù)) :常用快捷鍵F2:NewF3 :Load Alt+F3 :PickF4 :Go to cursorF5 :Edit窗/ Edit.Message窗Alt+F5:User ScreenF6 : Edit窗/Message窗光標切換F7 : Trace into單步調(diào)試Alt+F7:Add WatchF8 :Step overCtrl+F9 :運行 代碼塊Ctrl+K,B:塊首Ctrl+K,K:塊尾/撤銷Ctrl+K,C:拷貝Ctrl+K,V:移動C
18、trl+K,Y:刪除24程序設(shè)計-2005秋二、Win-TC 環(huán)境由于Turbo C 2.0(簡稱TC2.0)是基于MS-DOS的,存在諸如不支持鼠標操作、字體大小不能調(diào)整、文本復(fù)制步驟繁瑣、必須另外啟動UCDOS等中文環(huán)境才能支持中文輸入輸出等缺點,而這些缺陷或多或少影響了教學(xué)活動開展的效果?;谶@樣的認識,一般在教學(xué)過程中使用了一個基于TC2.0編譯內(nèi)核開發(fā)出來的編譯環(huán)境Win-TC,它實際上是對TC2.0的一個封裝。對于C語言的教學(xué),使用該軟件的主要優(yōu)點有: 由于Win-TC是Windows程序,所以在其中進行鼠標操作、程序段的復(fù)制、中文輸入輸出等功能變得非常方便。 支持字體大小的調(diào)整和C程序中各種關(guān)鍵字符的變色顯示,這樣教師在課程上演示程序的時候可以適當將程序的字體放大,方便坐在后排的學(xué)生的觀看。 Win-TC消除了初學(xué)者設(shè)置工作目錄的煩惱,自動設(shè)置好工作目錄。程序編寫好之后就可以直接編譯運行。 中文界面,提示出錯信息也是中文的,消除了我們的學(xué)生由于對英文的恐懼而造成的無法正確修改程序中的錯誤。 支持在運行結(jié)果中顯示中文,這樣在程序中就可以
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度城市公共交通車輛運營管理合同3篇
- 2025年度柴油市場分析與預(yù)測服務(wù)合同范本4篇
- 專業(yè)設(shè)備銷售協(xié)議模板集(2024版)版
- 2025年廠區(qū)綠化生態(tài)教育推廣與培訓(xùn)服務(wù)協(xié)議4篇
- 2024年起重機研發(fā)與購銷合作項目合同范本3篇
- 二零二四家居建材店員工勞動合同模板3篇
- 2025年度智能機器人技術(shù)研發(fā)合作協(xié)議4篇
- 2024版企業(yè)技術(shù)改造借款的合同范本
- 二零二五版醫(yī)療設(shè)備采購與租賃合同范本3篇
- 2024年04月吉林銀行總行投資銀行部2024年社會招考1名負責(zé)人筆試歷年參考題庫附帶答案詳解
- 人力資源外包投標方案
- 宮腔鏡術(shù)后護理查房1
- 農(nóng)村勞動力流動對農(nóng)村居民消費的影響研究
- 藏毛囊腫不伴有膿腫的護理查房
- 創(chuàng)新科技2024年的科技創(chuàng)新和產(chǎn)業(yè)升級
- 喜迎藏歷新年活動方案
- 進修人員培養(yǎng)考核鑒定簿
- 四年級上冊脫式計算400題及答案
- 2024年山東省春季高考技能考試汽車專業(yè)試題庫-上(單選題匯總)
- 前程無憂IQ測評題庫
- 《現(xiàn)代電氣控制技術(shù)》課件
評論
0/150
提交評論