版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1章程序設(shè)計(jì)和C語言1.1什么是計(jì)算機(jī)程序1.2什么是計(jì)算機(jī)語言1.3C語言的發(fā)展及其特點(diǎn)1.4最簡單的C語言程序1.5運(yùn)行C程序的步驟與方法1.6程序設(shè)計(jì)的任務(wù)1.1什么是計(jì)算機(jī)程序程序:一組計(jì)算機(jī)能識別和執(zhí)行的指令只要讓計(jì)算機(jī)執(zhí)行這個(gè)程序,計(jì)算機(jī)就會(huì)自動(dòng)地、有條不紊地進(jìn)行工作計(jì)算機(jī)的一切操作都是由程序控制的,離開程序,計(jì)算機(jī)將一事無成1.2什么是計(jì)算機(jī)語言計(jì)算機(jī)語言:人和計(jì)算機(jī)交流信息的、計(jì)算機(jī)和人都能識別的語言1.2什么是計(jì)算機(jī)語言計(jì)算機(jī)語言發(fā)展階段:機(jī)器語言(由0和1組成的指令)符號語言(用英文字母和數(shù)字表示指令)高級語言(接近于人的自然語言和數(shù)學(xué)語言)面向過程的語言
(非結(jié)構(gòu)化的語言、結(jié)構(gòu)化語言)面向?qū)ο蟮恼Z言低級語言樣例計(jì)算表達(dá)式:135+22-1機(jī)器語言(常用寄存器:AX,BX,CX等可以用來保存中間結(jié)果,類似代碼)101010111010010101000100010110011001111010111101100110110100010100100000111110011010011101101101101000111000010110000001011111011000110110101101010011111010010101001010011110111001101110100111匯編語言:MOVAX,135MOVBX,22ADDAX,BXSUBAX,1
高級語言:
x=135+22-1低級語言C語言程序的運(yùn)行人機(jī)交互過程:人(編程者希望完成的任務(wù))--
高級語言(C程序)--
翻譯(編譯/鏈接軟件)--
機(jī)器語言-計(jì)算機(jī)(執(zhí)行指令,完成相關(guān)任務(wù))開始結(jié)果語法錯(cuò)誤源程序.c/.cpp目標(biāo)程序.obj可執(zhí)行程序.exe編輯編譯連接運(yùn)行連接錯(cuò)誤運(yùn)行錯(cuò)誤C語言程序的調(diào)試、運(yùn)行步驟main(){intx=135+23;
printf(”x=%d\n”,x);}提高調(diào)試能力:程序員都會(huì)犯錯(cuò),能否快速發(fā)現(xiàn)并修正錯(cuò)誤是高手和初學(xué)者的區(qū)別。一次只改一個(gè)地方,搞清楚錯(cuò)誤的原因?qū)σ追傅腻e(cuò)誤做適當(dāng)記錄和標(biāo)注,以加深記憶1.3C語言的發(fā)展及其特點(diǎn)C語言是國際上廣泛流行的計(jì)算機(jī)高級語言。C語言的發(fā)展:1972年:貝爾實(shí)驗(yàn)室的DennisRitchie在B語言的基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)了C語言。1.3C語言的發(fā)展及其特點(diǎn)最初的C語言只是為描述和實(shí)現(xiàn)UNIX操作系統(tǒng)提供一種工作語言而設(shè)計(jì)的。1.3C語言的發(fā)展及其特點(diǎn)1983年,美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)成立了一個(gè)委員會(huì),根據(jù)C語言問世以來各種版本對C語言的發(fā)展和擴(kuò)充,制定了第一個(gè)C語言標(biāo)準(zhǔn)草案(’83ANSIC)。1.3C語言的發(fā)展及其特點(diǎn)1989年,ANSI公布了一個(gè)完整的C語言標(biāo)準(zhǔn)—ANSIX3.159-1989(常稱ANSIC,或C89)。1.3C語言的發(fā)展及其特點(diǎn)1990年,國際標(biāo)準(zhǔn)化組織ISO(InternationalStandardOrganization)接受C89作為國際標(biāo)準(zhǔn)ISO/IEC9899:1990,C90和ANSI的C89基本上是相同的。1995年,ISO對C90作了一些修訂。1.3C語言的發(fā)展及其特點(diǎn)1999年,ISO又對C語言標(biāo)準(zhǔn)進(jìn)行修訂,在基本保留原來的C語言特征的基礎(chǔ)上,針對應(yīng)用的需要,增加了一些功能,尤其是C++中的一些功能,命名為ISO/IEC9899:1999。(C99)1.3C語言的發(fā)展及其特點(diǎn)2001、2004年先后進(jìn)行了兩次技術(shù)修正(TC1和TC2)。
ISO/IEC9899:1999(及其技術(shù)修正)被稱為C99。C99是C89的擴(kuò)充。1.3C語言的發(fā)展及其特點(diǎn)本書的敘述以C99標(biāo)準(zhǔn)為依據(jù)(對C99新增加的功能作特別的說明)。目前不同軟件公司提供的各C語言編譯系統(tǒng)多數(shù)并未完全實(shí)現(xiàn)C99建議的功能本書中程序基本上都可以在目前所用的編譯系統(tǒng)(如VC++6.0,TurboC++3.0,GCC)上編譯和運(yùn)行。1.3C語言的發(fā)展及其特點(diǎn)C語言是一種用途廣泛、功能強(qiáng)大、使用靈活的過程性(procedural)編程語言,既可用于編寫應(yīng)用軟件,又能用于編寫系統(tǒng)軟件。因此C語言問世以后得到迅速推廣。C語言主要特點(diǎn)1:
語言簡潔緊湊,使用方便靈活。只有37個(gè)關(guān)鍵字、9種控制語句(C89只有32個(gè)關(guān)鍵字)程序書寫形式自由,源程序短autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhileC89共32個(gè)關(guān)鍵字:(系統(tǒng)定義,不能重定義)
boolimaginaryrestrictcomplexinlineC99增加了5個(gè)關(guān)鍵字#include、#define等為預(yù)編譯命令C特點(diǎn)2:運(yùn)算符豐富有34種運(yùn)算符把括號、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理表達(dá)式類型多樣化算術(shù)運(yùn)算符:+-*/%++--關(guān)系運(yùn)算符:<<===>>=!=邏輯運(yùn)算符:!&&||位運(yùn)算符:<<>>~|^&賦值運(yùn)算符:=及其擴(kuò)展條件運(yùn)算符:?:逗號運(yùn)算符:,指針運(yùn)算符:*&求字節(jié)數(shù):sizeof強(qiáng)制類型轉(zhuǎn)換:(類型)負(fù)號運(yùn)算符:-成員操作符:.->下標(biāo)運(yùn)算符:[]圓括號:()C89數(shù)據(jù)類型關(guān)鍵字12個(gè)(charshortintlongenumfloatdoublesignedunsignedstructunionvoid)
包括:整型int、浮點(diǎn)型float、字符型char、結(jié)構(gòu)體類型struct、共用體類型union、數(shù)組類型、指針類型等C99又?jǐn)U充了復(fù)數(shù)浮點(diǎn)類型complex、超長整型(longlong)、布爾類型(bool)C特點(diǎn)3:數(shù)據(jù)類型豐富控制類型關(guān)鍵字12個(gè)(fordowhilebreakcontinueifelsegotoswitchcasedefaultreturn)如if…else語句、for語句、while語句、switch語句、…用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化C語言是完全模塊化和結(jié)構(gòu)化的語言C特點(diǎn)4:具有結(jié)構(gòu)化的控制語句9種控制語句:
if()~else~for()~while()~do~while()continuebreakswitchgotoreturnC特點(diǎn)5:
語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大對數(shù)組下標(biāo)越界不做檢查對變量的類型使用比較靈活,例如,整型量與字符型數(shù)據(jù)可以通用C語言允許程序編寫者有較大的自由度,因此放寬了語法檢查C語言具有高級語言的功能和低級語言的許多功能,可用來編寫系統(tǒng)軟件這種雙重性,使它既是成功的系統(tǒng)描述語言,又是通用的程序設(shè)計(jì)語言C特點(diǎn)6:
允許直接訪問物理地址,能進(jìn)行位操作,可以直接對硬件進(jìn)行操作C特點(diǎn)7:
用C語言編寫的程序可移植性好。C的編譯系統(tǒng)簡潔,很容易移植到新系統(tǒng)在新系統(tǒng)上運(yùn)行時(shí),可直接編譯“標(biāo)準(zhǔn)鏈接庫”中的大部分功能,不需要修改源代碼幾乎所有計(jì)算機(jī)系統(tǒng)都可以使用C語言C特點(diǎn)8:生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。1.4最簡單的C語言程序1.4.1最簡單的C語言程序舉例1.4.2C語言程序的結(jié)構(gòu)1.4.1最簡單的C語言程序舉例例1.1要求在屏幕上輸出以下一行信息。
ThisisaCprogram.解題思路:
利用屏幕打印函數(shù):printf(…),原樣輸出以上文字。printf是系統(tǒng)提供的庫函數(shù)名,不是關(guān)鍵字#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}函數(shù)的名字,表示主函數(shù)C程序必須有一個(gè)main函數(shù)#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
主函數(shù)類型#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
函數(shù)體#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
輸出函數(shù)輸出語句#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
輸出語句運(yùn)行結(jié)果#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
換行符1.4.1最簡單的C語言程序舉例#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
將整數(shù)0作為函數(shù)的返回值#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
;表示語句結(jié)束用到函數(shù)庫中的輸入輸出函數(shù)時(shí)1.4.1最簡單的C語言程序舉例C語言允許用兩種注釋方式://:單行注釋可單獨(dú)占一行可出現(xiàn)在一行的右側(cè)/*……*/:塊式注釋可包含多行例1.2求兩個(gè)整數(shù)之和。解題思路:設(shè)置3個(gè)變量a和b用來存放兩個(gè)整數(shù)sum用來存放和數(shù)用賦值運(yùn)算符“=”把結(jié)果傳送給sum
absum+=#include<stdio.h>intmain(){inta,b,sum;a=123;b=456;sum=a+b;printf(”sumis%d\n”,sum);return0;}定義整型變量a,b,sum對變量a,b賦值將a與b的和賦給sum
absum+=#include<stdio.h>intmain(){inta,b,sum;a=123;b=456;sum=a+b;printf(”sumis%d\n”,sum);return0;}用sum的值替代希望輸出的字符
a123b456sum579+=voidmain(){inta,b,sum;a=123;b=456;sum=a+b;printf(“sum=%d\n",sum);}加法運(yùn)算程序的改進(jìn)voidmain(){inta,b,sum;
scanf("%d,%d",&a,&b);sum=a+b;printf(“sum=%d\n",sum);}運(yùn)行結(jié)果:sum=579輸入32,45回車sum=77例1.3從鍵盤輸入兩個(gè)整數(shù),求出較大者。解題思路:對于較復(fù)雜的子問題可以另設(shè)函數(shù)求解用一個(gè)函數(shù)實(shí)現(xiàn)求任意兩個(gè)整數(shù)中的較大者
:intmax(intx,inty);在主函數(shù)中調(diào)用此函數(shù)并輸出結(jié)果:big=max(a,b);
abbig#include<stdio.h>intmax(intx,inty);intmain(){inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}主函數(shù)max函數(shù)將x和y中較大者值返回給主函數(shù)#include<stdio.h>intmax(intx,inty);intmain(){inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}因max函數(shù)的定義在main函數(shù)之后,需聲明#include<stdio.h>intmax(intx,inty);intmain(){inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}輸入函數(shù)
abc
xyz#include<stdio.h>intmax(intx,inty);intmain(){inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}輸入語句
abc
xyz#include<stdio.h>intmax(intx,inty);intmain(){inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}輸入的數(shù)據(jù)放到a,b中
abc
xyz輸入格式&a的地址#include<stdio.h>intmax(intx,inty);intmain(){inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}
abc
xyz調(diào)用max函數(shù)#include<stdio.h>intmax(intx,inty);intmain(){inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}858
abc
xyz執(zhí)行max函數(shù)#include<stdio.h>intmax(intx,inty);intmain(){inta,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf("max=%d\n",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}858
abc
xyz輸出結(jié)果c#include<stdio.h>intmax(intx,inty);intmain(){inta,b,c;scanf(”%d,%d”,&a,&b);m=max(a,b);printf("max=%d\n",m);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}實(shí)際參數(shù)形式參數(shù)
abm
xyz1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):1.一個(gè)程序由一個(gè)或多個(gè)源程序文件組成小程序往往只包括一個(gè)源程序文件例1.1,例1.2只有一個(gè)函數(shù)例1.3有兩個(gè)函數(shù)1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):一個(gè)源程序文件中可以包括三個(gè)部分:預(yù)處理指令全局變量函數(shù)定義#include<stdio.h>等每個(gè)函數(shù)用來實(shí)現(xiàn)一定的功能1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):2.函數(shù)是C程序的主要組成部分一個(gè)C程序是由一個(gè)或多個(gè)函數(shù)組成的必須包含一個(gè)main函數(shù)(只能有一個(gè))每個(gè)函數(shù)都用來實(shí)現(xiàn)一個(gè)或幾個(gè)特定功能被調(diào)用的函數(shù)可以是庫函數(shù),也可以是自己編制設(shè)計(jì)的函數(shù)1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):3.一個(gè)函數(shù)包括兩個(gè)部分:函數(shù)首部intmax(intx,inty)函數(shù)的第1行函數(shù)類型函數(shù)名參數(shù)類型參數(shù)名1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):3.一個(gè)函數(shù)包括兩個(gè)部分:函數(shù)首部intmax(intx,inty)若函數(shù)無參,在括弧中寫void或空括弧intmain(void)或intmain()1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):3.一個(gè)函數(shù)包括兩個(gè)部分:函數(shù)體聲明部分:定義在本函數(shù)中所用到的變量對本函數(shù)所調(diào)用函數(shù)進(jìn)行聲明執(zhí)行部分:由若干個(gè)語句組成,指定在函數(shù)中所進(jìn)行的操作voidmain(){inta,b,sum;a=123;b=456;sum=a+b;printf("sum=%d\n",sum);}1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):3.一個(gè)函數(shù)包括兩個(gè)部分(都可缺省)函數(shù)體voiddump(){}可以是空函數(shù)1.4.2C語言程序的結(jié)構(gòu)C語言程序的結(jié)構(gòu)特點(diǎn):4.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度雛雞養(yǎng)殖與農(nóng)業(yè)觀光旅游合作開發(fā)合同4篇
- 2025版影視廣告拍攝攝影棚租賃專項(xiàng)合同3篇
- 二零二五年度船舶醫(yī)療救護(hù)船員勞動(dòng)合同3篇
- 2025年度家庭園藝設(shè)計(jì)與養(yǎng)護(hù)服務(wù)合同規(guī)范4篇
- 二零二四年度校園團(tuán)體課外活動(dòng)合作協(xié)議3篇
- 2025年程力品牌危險(xiǎn)品廂式車廠家智能化升級改造合同2篇
- 2025版?zhèn)€人債權(quán)轉(zhuǎn)讓合同范本詳解與下載3篇
- 二零二五年度智能交通管理系統(tǒng)采購合同標(biāo)的創(chuàng)新版3篇
- 二零二五年度健康食品產(chǎn)品認(rèn)證及功效驗(yàn)證合同4篇
- 2025年度電動(dòng)汽車充電樁研發(fā)與生產(chǎn)技術(shù)許可合同4篇
- 焊接機(jī)器人在汽車制造中應(yīng)用案例分析報(bào)告
- 合成生物學(xué)在生物技術(shù)中的應(yīng)用
- 中醫(yī)門診病歷
- 廣西華銀鋁業(yè)財(cái)務(wù)分析報(bào)告
- 無違法犯罪記錄證明申請表(個(gè)人)
- 電捕焦油器火災(zāi)爆炸事故分析
- 大學(xué)生勞動(dòng)教育PPT完整全套教學(xué)課件
- 繼電保護(hù)原理應(yīng)用及配置課件
- 《殺死一只知更鳥》讀書分享PPT
- 蓋洛普Q12解讀和實(shí)施完整版
- 2023年Web前端技術(shù)試題
評論
0/150
提交評論