版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
TheCProgrammingLanguage2024/11/131E-mail:lihanjingls@Textbook&ReferencebookTheCProgrammingLanguageBrianW.Kernighan,DennisM.RitchiePrentice-HallInternational,Inc.C程序設(shè)計(jì)蘇曉紅編著電子工業(yè)出版社C程序設(shè)計(jì)譚浩強(qiáng)編著清華大學(xué)出版社2024/11/132E-mail:lihanjingls@Preface
1 Introduction2 Types,OperatorsandExpressions3 ControlFlow4 FunctionsandProgramStructure5 ArraysandPointers6 Structures7 InputandOutputContents2024/11/133E-mail:lihanjingls@Preface◆NewtermsComputerlanguageProgramProgramming
◆Programs’sConstitution
ThedescriptionofdatumThedescriptionofactions2024/11/134E-mail:lihanjingls@Preface(con)◆Whatistheprogram?datastructure+algorithm=programdatastructure+algorithm+structuredprogrammingmethod+languagetool=program◆ThreebasicstructuresSequentialConditionalLoop數(shù)據(jù)結(jié)構(gòu)+算法=程序數(shù)據(jù)結(jié)構(gòu)+算法+結(jié)構(gòu)化程序方法+語言工具=程序順序選擇循環(huán)2024/11/135E-mail:lihanjingls@introductionC’sbackgroundC語言發(fā)展歷史CharacteristicsC語言特點(diǎn)ThesimplestCprogramC程序格式和結(jié)構(gòu)特點(diǎn)HowtorunCprogramC程序上機(jī)步驟2024/11/136E-mail:lihanjingls@MachinelagAssemblelagHighlevellangOriented-procedureOriented-objectCPU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加10010000減用助記符號描述的指令系統(tǒng)如ADDA,B面向機(jī)器的語言程序設(shè)計(jì)是數(shù)據(jù)被加工的過程客觀世界可以分類,對象是類的實(shí)例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對象>>Von.Neumamm馮.諾依曼結(jié)構(gòu):computercalculatorcontrollermemory主機(jī):I/Odevice:keyboard、screen等CPU1.1C’sbackground2024/11/137E-mail:lihanjingls@◆
TheplaceoftheClanguage
TruedialogueArtificialintelligence“dialogues”Commandlanguages(asinDOS)Problem-orientedlanguages(Fortran,Pascal)Machine-orientedlanguages(BCPL,B,)AssemblylanguagesHardwareC2024/11/138E-mail:lihanjingls@◆TheoriginofClanguageInthemid-1970s,UNIXspreadthroughoutBellLabs.By1980,severalCcompilerswereputforwardonthemarked.Bynow,therearemanyversionsofClanguages.2024/11/139E-mail:lihanjingls@◆Let’stracethedevelopment
Algol60(1960)CPL(1963)BCPL(1967)B(1970)C(1972)where: Belllabaim: UNIXOSdesigner: Ken.Thompson
& Dennis.M.Ritchie2024/11/1310E-mail:lihanjingls@5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77PL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN90>2024/11/1311E-mail:lihanjingls@1.2
characteristicsLowlevellangCiseasytolearn.Cprogramsareconcise.Cprogramsarefast.Cprogramsaremodularization.Ccompilersareusuallyfastandconcise.CcompilersandCprogramsrunonallsortsofcomputersUnixhappenstobewritteninC.語言簡潔、緊湊、靈活運(yùn)算符和數(shù)據(jù)類型豐富程序設(shè)計(jì)結(jié)構(gòu)化、模塊化生成目標(biāo)代碼質(zhì)量高可移植性好2024/11/1312E-mail:lihanjingls@32keywords:definedandusedbyCautobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile2024/11/1313E-mail:lihanjingls@9controlflows:if()~else~for()~while()~do~while()continuebreakswitchgotoreturn2024/11/1314E-mail:lihanjingls@34operators:Arithmeticoperators:+-*/%++--Relationaloperators:<<===>>=!=Logicaloperations:!&&||Bitwiseoperators:<<>>~|^&Assignmentoperators:=op=Conditionaloperators:?:comma:,Pointer:*&Sizeofbytes:sizeofTypeconversions:(類型)Structurememberoperators:.->Subscriptoperator:[]others:()-2024/11/1315E-mail:lihanjingls@CTypes數(shù)據(jù)類型基本類型Basictypes構(gòu)造類型structures指針類型pointer空類型void定義類型typedefine數(shù)值類型字符類型char枚舉類型enum整型integer浮點(diǎn)型float單精度型float雙精度型double短整型short長整型long整型int數(shù)組array結(jié)構(gòu)體structure共用體union2024/11/1316E-mail:lihanjingls@<2024/11/1317E-mail:lihanjingls@1.3ThesimplestCprogramEg1.1Hello,World!/*example1.1ThefirstCProgram*/#include<stdio.h>main(){
printf(“Hello,World!”);}注釋comment編譯預(yù)處理preprocessor函數(shù)Mainfunction語句statementTheoutput:Hello,World!2024/11/1318E-mail:lihanjingls@◆Eg1.2a+bmain(){intx,y,z;/*variablesdeclaration*/x=123;y=456;z=x+y;printf(“z=%d\n”,z);}Theoutput:z=579commentOutputthesum2024/11/1319E-mail:lihanjingls@◆Eg1.3areadoublearea(r)main()doubler;{doubler1,r2,s1,s2;{doubles;scanf(“%lf%lf”,&r1,&r2);s=3.14*r*r;s1=area(r1); s2=area(r2);returns;printf(“%lf,%lf\n”,s1,s2);}}Input:1.52.5↙output:7.065,19.626Functioncalling2024/11/1320E-mail:lihanjingls@◆Eg1.4differentofareasdoubleabs(doublex){if(x>=0)returnx;elsereturn–x;}doublepower(doublex,intn){inti=0;doublep=1;L:if(i==n)returnp;p=p*x;i=i+1;gotoL;}2024/11/1321E-mail:lihanjingls@doublearea(doubler){doubles;s=3.14*power(r,2);returns;}main(){doubler1,r2,s1,s2;scanf(“%lf%lf”,&r1,&r2);s1=area(r1);s1=area(r2);printf(“area=%lf\n”,abs(s1-s2));}2024/11/1322E-mail:lihanjingls@格式特點(diǎn)習(xí)慣用小寫字母,大小寫敏感不使用行號,無程序行概念可使用空行和空格常用鋸齒形書寫格式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){}對齊有足夠的注釋有合適的空行summary2024/11/1323E-mail:lihanjingls@結(jié)構(gòu)特點(diǎn)函數(shù)與主函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成必須有且只能有一個(gè)主函數(shù)main()程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。程序語句C程序由語句組成用“;”作為語句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼例:/*Thisisthemain
/*ofexample1.1*/*/
非法編譯預(yù)處理命令Summary(con)2024/11/1324E-mail:lihanjingls@Discussion1.1C’sbackgroundWhenwastheClanguagedeveloped?WhatistherelationshipbetweenCandUNIX?Whatarethethreecontrolstructuresforastructuredprogram?1.2TheSimplestCprogramWhatisCprogram’sconstitution?WhatisCfunction’sconstitution?Whatlibraryfunctionhaveyoulearned?Wherewerethevariablesdeclared?2024/11/1325E-mail:lihanjingls@1.3HowtorunCprogramWemustdo:
1.Editit2.Compileit3.RunitItdependsonthesystemweareusing.2024/11/1326E-mail:lihanjingls@目前流行的C語言編譯器:MSC、QuickC-------------------------------MicrosoftCo.BorlandC、TurboC-------------------------BorlandCo.WatcomC2024/11/1327E-mail:lihanjingls@file.exeEditCompileLinkExecute2024/11/1328E-mail:lihanjingls@Compile&link2024/11/1329E-mail:lihanjingls@OnUNIXOS$vihello.c$cchello.c$a.out$issystemprompt(othermaybe%)$cc-ohello.outhello.c$mva.outhello.out2024/11/1330E-mail:lihanjingls@DOS(TurboC)C\tc>tcFILE(New,Load,Save,Writeto,Quit)EDITCOMPILERUN(Userscreen[ALT+F5])OPTION(Directory)2024/11/1331E-mail:lihanjingls@基本操作:F10-----調(diào)用主菜單F2------存盤F3------打開Alt+F9------CompileCtrl+F9------RunAlt+F5------UserScreen常用熱鍵文本編輯:
-------移動(dòng)光標(biāo)PgUp,PgDn------上下翻頁Ctrl+PgUp,Ctrl+PgDn------文件首尾HomeEnd
DdeleteInsert
Bkspace塊操作:Ctrl+KB-------塊開始標(biāo)記Ctrl+KK--------塊結(jié)束標(biāo)記Ctrl+KC-------塊拷貝Ctrl+KV--------塊移動(dòng)Ctrl+KY-------塊刪除Ctrl+KH--------塊隱藏程序調(diào)試:F8-----StepoverF7-------TraceintoF4-----GotoCursorCtrl+F7--------AddWatchCtrl+F8------ToggleBreakpointCtrl+F2--------ProgramReset窗口操作:F5-----窗口縮放F6-----窗口切換2024/11/1332E-mail:lihanjingls@◆
ACprogramconsistsofoneormorethanonefunctions.◆
ACfunctionconsistsoffunction
name,argumentlistandfunctionbody.◆
ACstatementmusthavea;Briefsummary2024/11/1333E-mail:lihanjingls@◆
printfandscanfarelibraryfunctions,wecanusethemdirectly.◆
Allvariablesmustbedeclared
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年房地產(chǎn)代理銷售協(xié)議
- 2024年建筑抹灰工程分包合同
- 2024年影視明星經(jīng)紀(jì)服務(wù)合同
- 2024年房屋裝修解除合同協(xié)議書
- 2024年式全屋定制合同樣本
- 2024年新型面料采購協(xié)議
- 2024年城市基礎(chǔ)設(shè)施建設(shè)項(xiàng)目土石方分項(xiàng)勞務(wù)分包合同
- 2024年膜分離制氮設(shè)備項(xiàng)目評價(jià)分析報(bào)告
- 2024年電路保護(hù)元器件項(xiàng)目綜合評估報(bào)告
- 04年汽車銷售代理合同
- 液化石油氣充裝操作規(guī)程(YSP118液化石油氣鋼瓶)
- 工程樣板過程驗(yàn)收單
- 顱內(nèi)動(dòng)脈動(dòng)脈瘤介入治療臨床路徑
- 糧食倉儲場建設(shè)項(xiàng)目可行性研究報(bào)告
- 珠寶銷貨登記表Excel模板
- 深基坑開挖施工風(fēng)險(xiǎn)源辨識與評價(jià)及應(yīng)對措施
- 唯美手繪風(fēng)花藝插花基礎(chǔ)培訓(xùn)PPT模板課件
- 《現(xiàn)代漢語語法》PPT課件(完整版)
- 5G智慧農(nóng)業(yè)建設(shè)方案
- 航海學(xué)天文定位第四篇天文航海第1、2章
- 浙江大學(xué)學(xué)生社團(tuán)手冊(08)
評論
0/150
提交評論