版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計(jì)課程性質(zhì)“C語言程序設(shè)計(jì)”是大學(xué)生必修的計(jì)算機(jī)課程,是編寫程序和開發(fā)軟件的基礎(chǔ)。通過學(xué)習(xí),要求學(xué)生理解程序設(shè)計(jì)語言的基礎(chǔ)知識(shí),掌握基本的程序設(shè)計(jì)過程和技能,掌握常用的算法,具有初步的程序設(shè)計(jì)能力。指定教材C語言程序設(shè)計(jì)(第2版),何欽銘、顏暉主編,高等教育出版社,2012C語言程序設(shè)計(jì)實(shí)驗(yàn)與習(xí)題指導(dǎo)(第2版),顏暉、柳俊主編,高等教育出版社,2012參考教材C/C++程序設(shè)計(jì)教程王連相
中國鐵道出版社C語言程序設(shè)計(jì)教程譚浩強(qiáng)高等教育出版社C高級(jí)實(shí)用程序設(shè)計(jì)王士元清華大學(xué)出版社………………學(xué)習(xí)方法不要膽怯動(dòng)手動(dòng)腦,理論指導(dǎo)下的實(shí)踐自主學(xué)習(xí)重視上機(jī)實(shí)踐在編寫大量程序之后,才能感到運(yùn)用自如如何盡快學(xué)會(huì)用C語言進(jìn)行程序設(shè)計(jì)了解程序設(shè)計(jì)語言模仿、改寫、編寫通過不斷的編程實(shí)踐,逐步領(lǐng)會(huì)和掌握程序設(shè)計(jì)的基本思想和方法。課程內(nèi)容第1章C語言概述第2章用C語言編寫程序第3章分支結(jié)構(gòu)第4章循環(huán)結(jié)構(gòu)第5章函數(shù)第6章數(shù)據(jù)類型和表達(dá)式第7章數(shù)組第8章指針第9章結(jié)構(gòu)第10章函數(shù)與程序結(jié)構(gòu)第11章指針進(jìn)階第12章文件上機(jī)要求完成上機(jī)指導(dǎo)書的上機(jī)內(nèi)容,調(diào)試運(yùn)行教材及課后作業(yè)的程序,全部按章節(jié)題號(hào)存檔,最后統(tǒng)一上交;上機(jī)考勤3次缺席,按不及格處理(不定期抽查);發(fā)現(xiàn)上機(jī)時(shí)間做與本課程無關(guān)的內(nèi)容,按缺席一次處理重視上機(jī)實(shí)踐,有效利用寶貴的上機(jī)時(shí)間第1章C語言概述1.1一個(gè)C語言程序1.2程序與程序設(shè)計(jì)語言1.3C語言的發(fā)展歷史與特點(diǎn)1.4實(shí)現(xiàn)問題求解的過程本章要點(diǎn)什么是程序?程序設(shè)計(jì)語言包含哪些功能?程序設(shè)計(jì)語言在語法上包含哪些內(nèi)容?結(jié)構(gòu)化程序設(shè)計(jì)有哪些基本的控制結(jié)構(gòu)?C語言有哪些特點(diǎn)?C語言程序的基本框架如何?形成一個(gè)可運(yùn)行的C語言程序需要經(jīng)過哪些步驟?如何用流程圖描述簡單的算法?1.1一個(gè)C語言程序
/*example1.1calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){
int
a,b,sum;
a=10;
b=24;
sum=add(a,b);
printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/int
add(int
x,inty){
int
z;
z=x+y;
return(z);}運(yùn)行結(jié)果:sum=34函數(shù)語句預(yù)處理命令注釋函數(shù)與主函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成,必須有且只能有一個(gè)主函數(shù)main()程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。程序語句C程序由語句組成用“;”作為語句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼例:/*Thisisthemain/*ofexample1.1*/*/非法編譯預(yù)處理命令1.2程序設(shè)計(jì)及算法程序:
人們?yōu)榻鉀Q某種問題用計(jì)算機(jī)可以識(shí)別的代碼編排的一系列加工步驟。程序的執(zhí)行過程實(shí)際上是對(duì)程序所表達(dá)的數(shù)據(jù)進(jìn)行處理的過程。程序設(shè)計(jì)語言(計(jì)算機(jī)語言):提供了一種表達(dá)數(shù)據(jù)與處理數(shù)據(jù)的功能要求程序員按照語言的規(guī)范編程程序=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計(jì)語言1.2.1程序設(shè)計(jì)語言的功能數(shù)據(jù)表達(dá):表達(dá)所要處理的數(shù)據(jù)流程控制:表達(dá)數(shù)據(jù)處理的流程1、數(shù)據(jù)表達(dá)數(shù)據(jù)表達(dá):一般將數(shù)據(jù)抽象為若干類型數(shù)據(jù)類型:對(duì)某些具有共同特點(diǎn)的數(shù)據(jù)集合的總稱代表的數(shù)據(jù)(數(shù)據(jù)類型的定義域)在這些數(shù)據(jù)上做些什么(即操作或稱運(yùn)算)例如:整數(shù)類型包含的數(shù)據(jù):{…,-2,-1,0,1,2,…}作用在整數(shù)上的運(yùn)算:+、-、*、/等C語言提供的數(shù)據(jù)類型基本數(shù)據(jù)類型:程序設(shè)計(jì)語言事先定義好,供程序員直接使用,如整型、實(shí)型(浮點(diǎn)型)、字符型等。構(gòu)造類型:由程序員構(gòu)造,如數(shù)組、結(jié)構(gòu)、文件、指針等。各種數(shù)據(jù)類型的常量與變量形式常量(常數(shù))與變量
語句級(jí)控制:3種基本的控制結(jié)構(gòu)順序控制結(jié)構(gòu):自然順序執(zhí)行分支控制結(jié)構(gòu)(選擇結(jié)構(gòu)):根據(jù)不同的條件來選擇所要執(zhí)行的模塊循環(huán)控制結(jié)構(gòu):重復(fù)執(zhí)行某個(gè)模塊單位級(jí)控制:函數(shù)的定義與調(diào)用處理復(fù)雜問題時(shí),將程序分為若干個(gè)相對(duì)獨(dú)立的子程序(函數(shù))2、流程控制1.2.2程序設(shè)計(jì)語言的語法
用程序設(shè)計(jì)語言所寫的程序必須符合相應(yīng)語言的語法。源程序(源代碼)是一個(gè)字符序列,這些字符序列按順序組成了一系列“單詞”,“單詞”的組合就形成了語言有意義的語法單位,一些簡單語法單位的組合又形成了更復(fù)雜的語法單位,最后一系列語法單位組合成程序。C語言的主要“單詞”:(1)標(biāo)識(shí)符:C語言的標(biāo)識(shí)符規(guī)定由字母、數(shù)字以及下劃線組成,且第一個(gè)字符必須是字母或下劃線(2)保留字(關(guān)鍵字):它們是C語言規(guī)定的、賦予它們以特定含義、有專門用途的標(biāo)識(shí)符。(3)自定義標(biāo)識(shí)符:包括在程序中定義的變量名、數(shù)據(jù)類型名、函數(shù)名以及符號(hào)常量名。有意義的英文單詞(4)常量:常量是有數(shù)據(jù)類型的,如,123、12.34(5)運(yùn)算符:代表對(duì)各種數(shù)據(jù)類型實(shí)際數(shù)據(jù)對(duì)象的運(yùn)算。如,+(加)、-(減)、*(乘)、/(除)、%(求余)、>(大于)C語言的主要語法單位(1)表達(dá)式:運(yùn)算符與運(yùn)算對(duì)象組合就形成了表達(dá)試。如,2+3*4(2)變量定義:變量也有數(shù)據(jù)類型,所以在定義變量時(shí)要說明相應(yīng)變量的類型。如:inti;(3)語句:語句是程序最基本的執(zhí)行單位,程序的功能就是通過對(duì)一系列語句的執(zhí)行來實(shí)現(xiàn)的。(4)函數(shù)定義與調(diào)用:完成特定任務(wù)的獨(dú)立模塊,函數(shù)的使用最主要涉及到函數(shù)的定義與調(diào)用。如:C語言沒有輸入輸出語句,用庫函數(shù)printf、scanf等實(shí)現(xiàn)。C語言中的語句:表達(dá)式語句:表達(dá)式加分號(hào)“;”分支語句:實(shí)現(xiàn)分支控制過程
if(a>b)x=a;elsex=b;循環(huán)語句:實(shí)現(xiàn)循環(huán)控制的過程
sum=0; /*初始化sum和i*/i=1;while(i<=100){/*while循環(huán)語句*/sum=sum+i;i=i+1;}復(fù)合語句:用一對(duì)“{}”,將若干語句順序組合在一起就形成了一個(gè)程序段。1.2.3算法算法:在計(jì)算機(jī)中,為解決某一應(yīng)用問題而采用的解題步驟。算法的描述方式:用自然語言描述算法用流程圖描述算法用N-S結(jié)構(gòu)圖描述算法例如:輸出兩個(gè)數(shù)中的最大數(shù)1、用自然語言描述算法第1步:輸入x和y的值第2步:比較x和y的值,如果x大于y,則輸出x的值,否則輸出y的值。易于理解,但冗長,不夠精確,難于描述復(fù)雜算法。
例如當(dāng)描述“輸出10個(gè)數(shù)中最大數(shù)”的算法時(shí),會(huì)冗長、難于理解2、用流程圖描述算法NYz=yz=xx>y?開始輸入x和y結(jié)束輸出z起止框輸入/輸出框判斷框處理框流程線3、用N-S結(jié)構(gòu)圖描述算法輸入x、y的值x>y
真假
z=xz=y輸出z的值已經(jīng)證明,任何復(fù)雜的問題都可以三種基本算法結(jié)構(gòu)來描述:順序、選擇、循環(huán)。因此用計(jì)算機(jī)語句描述的程序也包含三種基本結(jié)構(gòu)。求1*2*3*4*5=5!用自然語言描述:第1步:求1*2得2第2步:第1步的結(jié)果2乘3得6第3步:第2步的結(jié)果6乘4得24第4步:第3步的結(jié)果24乘6得120缺點(diǎn):若算1*2*3*···*10000步驟太多NYx=x*i,i=i+1i<6?開始結(jié)束輸出x判斷框x=1,i=2x=1,i=2當(dāng)i<6時(shí)x=x*ii=i+1輸出xN-S圖:傳統(tǒng)流程圖:1.4C語言的發(fā)展歷史及特點(diǎn)B語言:Bell實(shí)驗(yàn)室,1970年在PDP機(jī)器上用其編寫UNIX系統(tǒng)CPL語言:劍橋大學(xué),1963年BCPL語言:劍橋大學(xué),1967年C語言:Bell實(shí)驗(yàn)室,1972~1973年用其改寫UNIX系統(tǒng)進(jìn)一步簡化保持精練、接近硬件的優(yōu)點(diǎn),克服數(shù)據(jù)類型過少的不足經(jīng)簡化C語言的特點(diǎn)1、C是中級(jí)語言計(jì)算機(jī)語言是人與計(jì)算機(jī)進(jìn)行交流的工具計(jì)算機(jī)語言分為:機(jī)器語言機(jī)器指令(由0和1組成),可直接執(zhí)行難學(xué)、難記依賴機(jī)器的類型匯編語言用助記符代替機(jī)器指令,用變量代替各類地址??朔洃浀碾y點(diǎn)其他與機(jī)器語言類似高級(jí)語言類似數(shù)學(xué)語言、接近自然語言、具有通用性和可移植性,不依賴具體的計(jì)算機(jī)類型。011000110000011001100101110011000000110000011011LOADXADDYSTOREZZ=X+YC語言屬于高級(jí)語言,它具有高級(jí)語言的特點(diǎn);C語言又允許對(duì)位、字節(jié)、字和指針這些計(jì)算機(jī)中的基本成分進(jìn)行操作,使它又具有匯編語言的大部分功能。C語言是高級(jí)語言中的中級(jí)語言2、C語言是結(jié)構(gòu)化語言結(jié)構(gòu)化語言:一個(gè)入口,一個(gè)出口。便于編寫程序,程序清晰易懂,便于維護(hù)順序分支循環(huán)結(jié)構(gòu)化程序設(shè)計(jì)程序設(shè)計(jì)的三種基本結(jié)構(gòu)順序結(jié)構(gòu)程序:按照書寫順序依次執(zhí)行語句選擇結(jié)構(gòu)程序:按照條件判斷選擇執(zhí)行語句循環(huán)結(jié)構(gòu)程序:通過條件控制循環(huán)執(zhí)行語句三種基本結(jié)構(gòu)的共同點(diǎn):都是只有一個(gè)入口和一個(gè)出口;結(jié)構(gòu)內(nèi)的每一個(gè)框都有機(jī)會(huì)被執(zhí)行;結(jié)構(gòu)內(nèi)沒有死循環(huán)。結(jié)構(gòu)化程序設(shè)計(jì)方法:
—采用模塊化原則和方法進(jìn)行設(shè)計(jì)將復(fù)雜程序劃分為若干個(gè)相互獨(dú)立的功能模塊,每個(gè)模塊又可以劃分為若干子模塊,然后分別進(jìn)行模塊程序的編寫模塊:一條語句、一段程序或一個(gè)函數(shù)(子程序)等3、C語言是編譯型語言
機(jī)器語言是計(jì)算機(jī)唯一能夠識(shí)別并執(zhí)行的指令代碼集。編譯器程序————>計(jì)算機(jī)直接能理解的指令序列編譯程序是一次讀完全部程序,并把它轉(zhuǎn)換成目標(biāo)碼,程序一旦編譯后,源程序就對(duì)程序的執(zhí)行毫無意義了。編譯和解釋是程序執(zhí)行的兩種方式。編譯過程(.C或.cpp)編譯程序連接程序編譯連接高級(jí)語言源程序機(jī)器語言目標(biāo)程序可執(zhí)行程序(.OBJ)(.EXE)運(yùn)行運(yùn)行結(jié)果解釋程序是一次讀進(jìn)一行源代碼,然后執(zhí)行一串由這些源代碼確定的指令。解釋程序高級(jí)語言源程序解釋執(zhí)行運(yùn)行結(jié)果解釋過程(.BAS)
對(duì)于一個(gè)大型工程軟件,必須根據(jù)任務(wù)劃分為若干塊,分配給一組程序員分別編寫,編寫完畢以后,再鏈接在一起,調(diào)試通過。C允許將一個(gè)程序分解成若干塊,裝入若干文件,每一個(gè)文件可以單獨(dú)編譯,一旦所有的文件編譯完畢,就可以將它們與函數(shù)庫中的函數(shù)鏈接,形成完整的目標(biāo)碼。文件1目標(biāo)碼1(.OBJ)文件2目標(biāo)碼2······文件m目標(biāo)碼m
庫函數(shù)優(yōu)點(diǎn):當(dāng)一個(gè)文件中的代碼改變后,不必重新編譯全部程序,能節(jié)省大量時(shí)間。鏈接完整的目標(biāo)碼(.EXE)4、C語言的語法特點(diǎn)(1)C語言語句簡潔、緊湊,使用方便、靈活
32個(gè)關(guān)鍵字,9種控制語句,程序書寫形式自由,主要用小寫字母(2)運(yùn)算符豐富除了最基本的+、-、×、÷、%等運(yùn)算外,還將括號(hào)、賦值、類型強(qiáng)制轉(zhuǎn)換等均作為運(yùn)算符,共有34種運(yùn)算符。(3)數(shù)據(jù)結(jié)構(gòu)豐富除基本類型外,還有指針、結(jié)構(gòu)體、聯(lián)合體等復(fù)合數(shù)據(jù)類型。(4)具有結(jié)構(gòu)化的控制語句具有順序、分支、循環(huán)三種結(jié)構(gòu)化控制語言句,模塊完整,控制中的語句可完整化。(5)語法嚴(yán)格,但有靈活性如:數(shù)據(jù)類型可相互通用:整型、字符型通用。(6)生成目標(biāo)代碼質(zhì)量高,執(zhí)行效率高。(7)可移植性優(yōu)于匯編語言。1.4程序設(shè)計(jì)的步驟提出問題確定數(shù)據(jù)結(jié)構(gòu)和算法編寫程序調(diào)試和運(yùn)行程序翻譯(編譯或解釋)得到運(yùn)行結(jié)果1.每個(gè)語句占一行;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年排水工程合同
- 2024年新型建筑勞務(wù)分包合同
- 2024-2030年版中國感應(yīng)加熱電源市場競爭策略及未來發(fā)展?jié)摿Ψ治鰣?bào)告
- 2024-2030年全球及中國馬弗管行業(yè)銷售動(dòng)態(tài)及需求趨勢預(yù)測報(bào)告
- 2024-2030年全球及中國自動(dòng)緊急制動(dòng)系統(tǒng)(AEB)行業(yè)應(yīng)用前景及投資戰(zhàn)略研究報(bào)告
- 2024-2030年全球及中國粉粒灌裝機(jī)行業(yè)應(yīng)用前景及需求形勢分析報(bào)告
- 2024-2030年全球及中國反油酸行業(yè)供需現(xiàn)狀及發(fā)展前景預(yù)測報(bào)告~
- 2024-2030年全球及中國信用免押租賃行業(yè)發(fā)展前景及投資盈利預(yù)測報(bào)告
- 2024-2030年全球與中國生物冷凍柜行業(yè)供需現(xiàn)狀及前景趨勢預(yù)測報(bào)告
- 2024-2030年二氰蒽醌搬遷改造項(xiàng)目可行性研究報(bào)告
- 檢測公司檢驗(yàn)檢測工作控制程序
- 社工機(jī)構(gòu)項(xiàng)目管理制度
- 充電樁整體解決方案PPT幻燈片(PPT 27頁)
- 物業(yè)服務(wù)集團(tuán)全員品質(zhì)督導(dǎo)策劃方案
- 建筑設(shè)計(jì)基礎(chǔ)(ppt)課件
- 半導(dǎo)體芯片項(xiàng)目商業(yè)計(jì)劃書范文參考
- 邯鄲市政府采購辦事指南
- 城市初期雨水污染治理
- 在護(hù)林員培訓(xùn)班上的講話護(hù)林員會(huì)議講話稿.doc
- 材料科學(xué)基礎(chǔ)-第7章-三元相圖
- (完整word版)高頻變壓器的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論