語言第1章概述_第1頁
語言第1章概述_第2頁
語言第1章概述_第3頁
語言第1章概述_第4頁
語言第1章概述_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章C語言程序設(shè)計(jì)概述Hi,everyone!S第1章C語言概述1.1C語言的發(fā)展1.2C語言的特點(diǎn)1.3C語言的上機(jī)步驟1.4C語言程序結(jié)構(gòu)特點(diǎn)1.5算法概念及描述

1.計(jì)算機(jī)系統(tǒng)組成計(jì)算機(jī)系統(tǒng)硬件系統(tǒng)軟件系統(tǒng)應(yīng)用軟件系統(tǒng)軟件操作系統(tǒng)語言處理程序數(shù)據(jù)庫管理系統(tǒng)外圍設(shè)備主機(jī)數(shù)據(jù)處理程序自動(dòng)控制程序企業(yè)管理程序科學(xué)計(jì)算程序外存儲(chǔ)器:磁盤、磁帶、光盤等輸入設(shè)備:鍵盤、鼠標(biāo)器、掃描儀等輸出設(shè)備:顯示器、打印機(jī)、繪圖儀等中央處理器(CPU):運(yùn)算器、控制器內(nèi)存儲(chǔ)器:ROM、RAM1.1計(jì)算機(jī)程序設(shè)計(jì)語言概述2.計(jì)算機(jī)硬件系統(tǒng)及工作原理輸入設(shè)備輸出設(shè)備存儲(chǔ)器控制器運(yùn)算器程序數(shù)據(jù)結(jié)果數(shù)據(jù)結(jié)果地址指令控制信號(hào)數(shù)據(jù)線地址線控制線計(jì)算機(jī)的工作過程就是自動(dòng)執(zhí)行存儲(chǔ)在存儲(chǔ)器中程序的過程。3.計(jì)算機(jī)軟件系統(tǒng)組成軟件——軟件包括程序、實(shí)現(xiàn)此程序功能所采取的方法、規(guī)則以及與其相關(guān)的文檔和在機(jī)器上運(yùn)行它所需要的數(shù)據(jù)等。???????????????íì???????íì???????íì各類應(yīng)用軟件圖形處理工程計(jì)算信息管理應(yīng)用軟件各種服務(wù)系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)語言處理程序操作系統(tǒng)系統(tǒng)軟件軟件系統(tǒng)自動(dòng)控制程序網(wǎng)絡(luò)管理軟件4.計(jì)算機(jī)程序設(shè)計(jì)語言程序是計(jì)算機(jī)語言的具體體現(xiàn),是用某種計(jì)算機(jī)程序設(shè)計(jì)語言按問題的要求編寫而成的。程序就是指令的有序集合。程序設(shè)計(jì)語言:機(jī)器語言、匯編語言、高級(jí)語言(結(jié)構(gòu)化的C、PASCAL、FORTRAN,面向?qū)ο蟮腃++、Java

)。1、機(jī)器語言:由0和1按一定規(guī)則排列組成的一個(gè)指令集;它是計(jì)算機(jī)唯一能識(shí)別和執(zhí)行的語言。執(zhí)行效率高、速度快,但直觀性差,可讀性不強(qiáng)。2、匯編語言:用助記符來表示機(jī)器指令中的操作碼和操作數(shù)的指令系統(tǒng)??勺x性增強(qiáng),執(zhí)行速度快,但仍是一種面向機(jī)器的語言,編制程序的效率不高,難度較大,維護(hù)較困難,屬低級(jí)語言。3、高級(jí)語言:一種更接近于人類自然語言和數(shù)學(xué)式子的語言,用高級(jí)語言編寫程序可以大大減少編程人員的勞動(dòng),因此它也具有較好的可移植性。4.計(jì)算機(jī)程序設(shè)計(jì)語言(續(xù))源程序、目標(biāo)程序及其執(zhí)行:源程序(匯編語言、高級(jí)語言編寫的程序)目標(biāo)程序(機(jī)器語言程序)運(yùn)行結(jié)果編譯/匯編、連接解釋1.1C語言的發(fā)展C語言是國際上廣泛流行的計(jì)算機(jī)高級(jí)語言。C語言于上個(gè)世紀(jì)70年代初問世,最早主要是用于UNIX系統(tǒng)。以后進(jìn)入其它操作系統(tǒng),并很快在各類大、中、小和微型計(jì)算機(jī)上得到了廣泛的使用。美國國家標(biāo)準(zhǔn)學(xué)會(huì)1983年在以前C版本的基礎(chǔ)上制定了一個(gè)C語言標(biāo)準(zhǔn),通常稱之為ANSIC。微機(jī)上常用的C:

MicrosoftC,TurboC,BorlandC等都是集編輯、編譯、連接、運(yùn)行操作于一個(gè)界面的集成環(huán)境(IDE)。1.語言簡潔、緊湊,使用方便、靈活。2.運(yùn)算符、數(shù)據(jù)類型豐富,數(shù)據(jù)處理能力強(qiáng)。

32個(gè)關(guān)鍵字、運(yùn)算符豐富、數(shù)據(jù)類型豐富3.

結(jié)構(gòu)化好,是一種模塊化的程序設(shè)計(jì)語言。4.可直接對(duì)硬件進(jìn)行操作(中級(jí)語言)。5.

生成的代碼質(zhì)量高,程序執(zhí)行效率高。6.可移植性好。

1.2C語言的特點(diǎn)1.3C程序的上機(jī)操作編輯編譯連接運(yùn)行源文件.c目標(biāo)文件.obj可執(zhí)行文件.exe

1.3C程序結(jié)構(gòu)特點(diǎn)與運(yùn)行voidmain(){printf("eyou.\nFirstCprogram.\n");}例1.1輸出字符串:eyou.FirstCprogram.12345#include<stdio.h>1.4C程序結(jié)構(gòu)特點(diǎn)與運(yùn)行{}(2)函數(shù)體例1.1輸出字符串:eyou.FirstCprogram.printf("eyou.\nFirstCprogram.\n");

#開頭的是預(yù)處理命令(#include:包含預(yù)處理)

stdio.h標(biāo)準(zhǔn)輸入輸出頭文件

void:空類型原樣輸出的字符串應(yīng)以“

”括起來#include<stdio.h>voidmain()(1)函數(shù)說明#include<math.h>voidmain(){intx,y; x=-5; y=abs(x); printf("-5的絕對(duì)值為:%d\n",y); }例1.2求-5的絕對(duì)值。#include<stdio.h>voidmain(){intx,y,z,max; scanf(“%d%d%d”,&x,&y,&z);if(x>y)max=x;elsemax=y;if(max<z)max=z; printf("%d,%d,%d中的最大值為:%d\n",x,y,z,max);}例1.3由鍵盤輸入任意三個(gè)整數(shù),輸出其中的最大數(shù)。方法1:#include<stdio.h>voidmain()/*主函數(shù)main*/{

intmax(intx,inty,intz);inta,b,c,d;scanf(“%d,%d,%d”,&a,&b,&c);d=max(a,b,c);printf(“max=%d”,d);}

intmax(intx,inty,intz)/*被調(diào)用函數(shù)max*/{intm;

if(x>y)m=x;elsem=y;

if(z>m)m=z;return(m)}

例1.3方法2保存到同一個(gè)文件中,如文件名:1-4.C1234567891011121314151617if(x>y)m=x;elsem=y;通過以上例子可以看出:1.C程序是由函數(shù)構(gòu)成的。每個(gè)C源程序由一個(gè)或多個(gè)函數(shù)組成,其中必須有且僅有一個(gè)主函數(shù)main()。2.一個(gè)函數(shù)由兩部分組成:函數(shù)說明部分+函數(shù)體。(1)函數(shù)說明部分:包括函數(shù)名、函數(shù)類型、函數(shù)參數(shù)(形參)名、形式參數(shù)類型。如:int

max(intx,inty,intz)

函數(shù)類型函數(shù)名形式參數(shù)形參(2)函數(shù)體部分:包括聲明部分和執(zhí)行部分{

inta,b,sum;/*這是聲明部分,定義變量a,b,sum*/

a=123;b=456; /*此處3行為C語句*/sum=a+b;printf("sumis%d\n",sum);}3.一個(gè)可執(zhí)行的C語言程序總是從main函數(shù)開始執(zhí)行不論main函數(shù)其在整個(gè)程序的什么位置。4.C程序書寫格式自由。一行內(nèi)可以寫幾個(gè)語句,一個(gè)語句也可以分寫在多行上。5.每條語句和數(shù)據(jù)定義的最后必須有一個(gè)分號(hào)(;)

說明:在以下三種情況下不允許有分號(hào):

a.所定義的函數(shù)的名稱后面不使用分號(hào);

b.在右花括號(hào)“}”后面不使用分號(hào);

c.預(yù)處理語句后面不使用分號(hào)6.C語言對(duì)輸入輸出實(shí)行函數(shù)化。C語言本身沒有輸入輸出語句,輸入輸出操作是由庫函數(shù)scanf和printf等函數(shù)來完成的。7.可用/*……*/對(duì)C程序中的任何部分作注釋,注釋可以寫在程序的任何位置上,“/*”與“*/”也可不在同一行上。8.在C語言中,大小寫字母是有區(qū)別的。(C語言習(xí)慣用小寫字母)main(){clrscr();printf(“e.\n");}#include<math.h>#include<stdio.h>voidmain(){}例1.2

求一個(gè)數(shù)的絕對(duì)值。a=

-

20;

/*給定計(jì)算初值*/inta,result;

/*定義a,result兩個(gè)整型變量*/result=abs(a);

/*計(jì)算絕對(duì)值*/printf(“絕對(duì)值為:%d\n”,result);

/*輸出結(jié)果*/輸出:絕對(duì)值為:20例1.3

將變量a和b中的較大者賦給變量c,并輸出。程序1:#include<stdio.h>voidmain(){

inta,b,c;scanf(“%d,%d”,&a,&b);c=a;if(b>c)c=b;printf(“max=%d”

,

c);}程序運(yùn)行后,要求用戶由鍵盤輸入a和b的值。第一次運(yùn)行輸入:5,6輸出:max=6第二次運(yùn)行輸入:51,6輸出:max=51

程序2:#include<stdio.h>intmax(intx,inty)

/*被調(diào)用函數(shù)max*/{}voidmain()

/*主函數(shù)main*/{}例1.3

將變量a和b中的較大者賦給變量c,并輸出。

inta,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);

/*調(diào)用max函數(shù)*/printf(“max=%d”,c);

intz;if(x>y)z=x;elsez=y;return(z);通過以上例子可以看出:1.C程序是由函數(shù)構(gòu)成的。每個(gè)C源程序由一個(gè)或多個(gè)函數(shù)組成,其中必須有且僅有一個(gè)主函數(shù)main()2.一個(gè)可執(zhí)行的C語言程序總是從main函數(shù)開始執(zhí)行,而不論其在整個(gè)程序的什么位置。3.一個(gè)函數(shù)由兩部分組成:函數(shù)說明部分+函數(shù)體。(1)函數(shù)說明部分:包括函數(shù)名、函數(shù)類型、函數(shù)參數(shù)(形參)名、形式參數(shù)類型。如:int

max(intx,inty,intz)

函數(shù)類型函數(shù)名形式參數(shù)形參類型(2)函數(shù)體部分:包括聲明部分和執(zhí)行部分{inta,b,sum;a=123;b=456;

。。。。。。}4)每條語句和數(shù)據(jù)定義的最后必須有一個(gè)分號(hào)(;)。但以下三種情況下不允許有分號(hào):

a.所定義的函數(shù)的名稱后面不使用分號(hào);

b.在右花括號(hào)“}”后面不使用分號(hào);

c.預(yù)處理命令后面不使用分號(hào)5)C語言對(duì)輸入輸出實(shí)行函數(shù)化。6)C程序書寫格式自由,一行內(nèi)可以寫幾個(gè)語句,一個(gè)語句也可以分寫在多行上。

7)對(duì)程序注釋可增加程序的可讀性,注釋部分不被編譯,可以寫在程序的任何位置上。

用/*……*/雙邊注釋符可跨多行

用//單邊注釋符至行末為止8)在C語言中,大小寫字母是有區(qū)別的。(C語言習(xí)慣用小寫字母)9)函數(shù)體內(nèi)語句一般按四大功能塊順序排列:

a.對(duì)變量與函數(shù)做聲明

b.為變量賦初值

c.進(jìn)行數(shù)據(jù)計(jì)算與處理

d.最后輸出結(jié)果。

C語言程序的開發(fā)過程分析問題提出解決方法編寫程序代碼運(yùn)行調(diào)試程序得到程序結(jié)果集成開發(fā)環(huán)境VC++6.0集成開發(fā)環(huán)境:集程序編輯、編譯、連接和調(diào)試于一體的C語言程序開發(fā)環(huán)境。C程序的運(yùn)行過程形成文件例:

aa.c aa.obj aa.exe編輯編譯連接運(yùn)行源文件.c或.cpp目標(biāo)文件.obj可執(zhí)行文件.exe(1)啟動(dòng)VC++6.0。(2)創(chuàng)建項(xiàng)目工作區(qū)。(3)創(chuàng)建源文件。(4)編輯源程序文件。(5)編譯。(6)連接。(7)運(yùn)行。VC集成開發(fā)環(huán)境的使用(1)編譯錯(cuò)誤:在編譯時(shí)發(fā)現(xiàn)的錯(cuò)誤,分錯(cuò)誤(Error)和警告(Warning)。

Error通常是由于關(guān)鍵字拼寫錯(cuò)誤、不可識(shí)別的標(biāo)識(shí)符、語句末尾缺少分號(hào)、不配對(duì)的圓括號(hào)或花括號(hào)等引起的錯(cuò)誤,必須修改。

Warning通常是因?yàn)閿?shù)據(jù)類型轉(zhuǎn)換、不恰當(dāng)?shù)念愋驼f明符等引起的錯(cuò)誤,不影響后續(xù)的編譯、連接和運(yùn)行。(2)運(yùn)行錯(cuò)誤。運(yùn)行錯(cuò)誤是在運(yùn)行過程中發(fā)現(xiàn)的錯(cuò)誤。比如對(duì)負(fù)數(shù)開平方根、數(shù)據(jù)發(fā)生溢出等。(3)邏輯錯(cuò)誤。邏輯錯(cuò)誤是由于使用了錯(cuò)誤的算法、公式、數(shù)據(jù)等引起的錯(cuò)誤。這種錯(cuò)誤系統(tǒng)并不報(bào)錯(cuò),必須由編程人員自行發(fā)現(xiàn)和糾正。C程序調(diào)試錯(cuò)誤1.3程序設(shè)計(jì)算法及其描述方法算法:為解決一個(gè)問題而采取的方法和步驟。程序設(shè)計(jì)是用計(jì)算機(jī)語言對(duì)所要解決的問題進(jìn)行完整而準(zhǔn)確的描述過程。一個(gè)完整的程序設(shè)計(jì)過程包括:(1)分析問題,建立數(shù)學(xué)模型(2)確定數(shù)據(jù)結(jié)構(gòu)和算法(3)編寫程序(4)調(diào)試程序程序=數(shù)據(jù)結(jié)構(gòu)+算法程序=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計(jì)方法+語言工具和環(huán)境1.算法

2.算法特征有窮性確定性有零個(gè)或多個(gè)輸入有一個(gè)或多個(gè)輸出有效性算法舉例例1求1×2×3×4×5,即求5!方法1步驟1:求1×2,得結(jié)果2;步驟2:2×3,得結(jié)果6;步驟3:6×4,得結(jié)果24;步驟4:24×5,得結(jié)果120缺陷:隨著數(shù)據(jù)量增大,步驟也增多。方法2設(shè)兩個(gè)變量:p為被乘數(shù),i為乘數(shù)步驟1:p=1步驟2:i=2步驟3:p×i→p步驟4:i+1→i步驟5:如果i≤5,則重新執(zhí)行步驟3及其后步驟;否則,算法結(jié)束,得到結(jié)果。利用循環(huán)實(shí)現(xiàn),算法簡練。例2將50個(gè)學(xué)生中成績?cè)?0分以上者打印出來。

i變量記錄人數(shù),g

變量存放成績S1:1→iS2:輸入學(xué)生成績→gS3:如果g≥80,打印g;否則,不打印;S4:i+1→iS5:如果i≤50,重新執(zhí)行S2及后面;否則,算法結(jié)束基本功能操作包括:邏輯運(yùn)算:與,或,非算術(shù)運(yùn)算:加,減,乘,除…數(shù)據(jù)比較:>,>=,<,<=,!=數(shù)據(jù)傳送: 輸入、輸出、賦值算法要素:基本功能操作和控制結(jié)構(gòu)兩個(gè)控制結(jié)構(gòu)包括:順序結(jié)構(gòu)選擇(分支)結(jié)構(gòu)循環(huán)結(jié)構(gòu)特點(diǎn):一個(gè)入口,一個(gè)出口順序執(zhí)行S1S2按語句書寫順序依次執(zhí)行順序結(jié)構(gòu)對(duì)給定的條件進(jìn)行分析、比較和判斷,并根據(jù)判斷結(jié)果采取不同的執(zhí)行方向

語句N條件Y

條件

語句1

語句2YN功能:判斷條件為真時(shí)執(zhí)行語句;否則跳過語句。單選擇雙選擇選擇(分支)結(jié)構(gòu)在指定的條件下多次反復(fù)執(zhí)行一組語句循環(huán)體N條件Y當(dāng)型循環(huán)直到型循環(huán)條件NY循環(huán)體循環(huán)結(jié)構(gòu)

3.結(jié)構(gòu)化程序設(shè)計(jì)方法結(jié)構(gòu)化程序設(shè)計(jì)方法的基本思路是:把一個(gè)復(fù)雜問題的求解過程分階段進(jìn)行,每個(gè)階段處理的問題控制在易理解和處理的范圍內(nèi)。自頂向下逐步細(xì)化模塊化設(shè)計(jì)結(jié)構(gòu)化編碼4.算法的表示用自然語言表示用偽代碼表示用流程圖表示用N-S流程圖表示方法1步驟1:求1×2,得結(jié)果2;步驟2:2×3,得結(jié)果6;步驟3:6×4,得結(jié)果24;步驟4:24×5,得結(jié)果120用流程圖表示算法常用的流程圖符號(hào):起止框輸入輸出框判斷框處理框連接點(diǎn)流程線求5?。樞蚪Y(jié)構(gòu))

開始定義t結(jié)束計(jì)算t打印t設(shè)變量t存放乘積,則:步驟1:定義t步驟2:t=1×2×3×4×5步驟

溫馨提示

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