C語(yǔ)言程序設(shè)計(jì)一_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)一_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)一_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)一_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)一_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章1第1章C語(yǔ)言概述1.1計(jì)算機(jī)語(yǔ)言與結(jié)構(gòu)化程序設(shè)計(jì)1.2C語(yǔ)言的發(fā)展歷史和特點(diǎn)1.3C語(yǔ)言程序的基本結(jié)構(gòu)和執(zhí)行過(guò)程1.4C語(yǔ)言的字符集和標(biāo)識(shí)符2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章21.1計(jì)算機(jī)語(yǔ)言與結(jié)構(gòu)化程序設(shè)計(jì)1.1.1計(jì)算機(jī)語(yǔ)言1.1.2結(jié)構(gòu)化程序設(shè)計(jì)2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章3第一代:機(jī)器語(yǔ)言(低級(jí)語(yǔ)言):面向機(jī)器、可移植性差、效率高、不方便編程第二代:匯編語(yǔ)言第三代:高級(jí)語(yǔ)言:面向程序員、可移植性好、執(zhí)行效率低、便于編程第四代:面向?qū)ο笫秸Z(yǔ)言1.1.1計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章41.1.2結(jié)構(gòu)化程序設(shè)計(jì)1.三種基本結(jié)構(gòu) 結(jié)構(gòu)化程序由三種基本控制結(jié)構(gòu)組成: 順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。 三種基本結(jié)構(gòu)的流程圖:PAB真假選擇結(jié)構(gòu)AB順序結(jié)構(gòu)A真P假循環(huán)結(jié)構(gòu)三種基本控制結(jié)構(gòu)流程圖2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章52.結(jié)構(gòu)化程序設(shè)計(jì)的原則 自頂向下 逐步求精 模塊化設(shè)計(jì) 限制使用goto

語(yǔ)句

2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章6C語(yǔ)言發(fā)展簡(jiǎn)介ALGOL語(yǔ)言:1960,面向問(wèn)題高級(jí)語(yǔ)言,不宜寫(xiě)系統(tǒng)程序CPL語(yǔ)言:

1963,英劍橋,能夠作較低層次的操作,但規(guī)模較大,難以實(shí)現(xiàn)BCPL語(yǔ)言:(Basiccombinedprogramminglanguage)1967,英劍橋MartinRichards改進(jìn)CPLB語(yǔ)言:

1970,美貝爾實(shí)驗(yàn)室Thompson簡(jiǎn)化BCPL,用B寫(xiě)UNIX操作系統(tǒng)C語(yǔ)言:

1972,貝爾實(shí)驗(yàn)室,Ritchie和Kernighan設(shè)計(jì),保持B和BCPL的精煉與接近硬件,克服其簡(jiǎn)單和數(shù)據(jù)無(wú)類(lèi)型的缺點(diǎn)。描述和實(shí)現(xiàn)UNIX的工具語(yǔ)言

1977,《可移植C語(yǔ)言編譯程序》,C與UNIX相輔相成

1978,Kernighan和Richie,《TheCProgrammingLanguage》,標(biāo)準(zhǔn)C語(yǔ)言

1983,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI),ANSIC1990,國(guó)際標(biāo)準(zhǔn)化組織(ISO)通過(guò)

1.2C語(yǔ)言的發(fā)展歷史和特點(diǎn)

2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章75254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN90<>2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章8C語(yǔ)言特點(diǎn)

(1)較低級(jí)語(yǔ)言(中級(jí)語(yǔ)言)

(2)結(jié)構(gòu)化語(yǔ)言

(3)運(yùn)算能力強(qiáng)

(4)數(shù)據(jù)類(lèi)型多

(5)有預(yù)處理能力

(6)可移植性好

(7)語(yǔ)法不嚴(yán)格1.2.1C語(yǔ)言及其特點(diǎn)

2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章99種控制語(yǔ)句:if()~else~for()~while()~do~while()continuebreakswitchgotoreturn<2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章1034種運(yùn)算符:算術(shù)運(yùn)算符:+-*/%++--關(guān)系運(yùn)算符:<<===>>=!=邏輯運(yùn)算符:!&&||位運(yùn)算符:<<>>~|^&賦值運(yùn)算符:=及其擴(kuò)展條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:*&求字節(jié)數(shù):sizeof強(qiáng)制類(lèi)型轉(zhuǎn)換:(類(lèi)型)分量運(yùn)算符:.->下標(biāo)運(yùn)算符:[]其它:()-<2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章11C數(shù)據(jù)類(lèi)型基本類(lèi)型構(gòu)造類(lèi)型指針類(lèi)型空類(lèi)型void定義類(lèi)型typedef數(shù)值類(lèi)型字符類(lèi)型char枚舉類(lèi)型enum整型浮點(diǎn)型單精度型float雙精度型double短整型short長(zhǎng)整型long整型int數(shù)組結(jié)構(gòu)體struct共用體union<<2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章1232個(gè)關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile<2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章131.3C語(yǔ)言程序的基本結(jié)構(gòu)和執(zhí)行過(guò)程1.3.1C語(yǔ)言程序的簡(jiǎn)單實(shí)例

main()/*主函數(shù)*/{inta,b,sum;/*定義a、b和sum三個(gè)變量*/a=3;b=4;/*為a,b賦值*/sum=add(a,b);/*調(diào)用函數(shù)add,將得到的值賦給變量sum*/printf("sum=a+b=%d\n",sum);/*屏幕輸出sum變量的值*/}intadd(intx,inty)/*定義add函數(shù)和形式參數(shù)x,y*/{intz;/*定義z變量*/z=x+y;/*變量x與y相加的和送給z*/return(z);/*返回z的值送給add*/}運(yùn)行結(jié)果:sum=a+b=72023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章141.函數(shù)型語(yǔ)言,函數(shù)是C程序的基本單位。2.函數(shù)由說(shuō)明部分和函數(shù)體兩部分組成函數(shù)的組成:

說(shuō)明部分:函數(shù)類(lèi)型函數(shù)名(參數(shù)類(lèi)型參數(shù)名,……)例:intadd(intx,inty)或intadd(x,y)

intx,y;

函數(shù)體:{

變量定義;執(zhí)行語(yǔ)句;

}2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章15結(jié)構(gòu)特點(diǎn)函數(shù)與主函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成必須有且只能有一個(gè)主函數(shù)main()程序執(zhí)行從main開(kāi)始,在main中結(jié)束,其它函數(shù)通過(guò)嵌套調(diào)用得以執(zhí)行。程序語(yǔ)句C程序由語(yǔ)句組成用“;”作為語(yǔ)句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼<>例:/*Thisisthemain/*ofexample1.1*/*/非法編譯預(yù)處理命令2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章16格式特點(diǎn)習(xí)慣用小寫(xiě)字母,大小寫(xiě)敏感不使用行號(hào),無(wú)程序行概念可使用空行和空格常用鋸齒形書(shū)寫(xiě)格式<>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){}對(duì)齊有足夠的注釋有合適的空行2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章17【例1.2】最小的C程序例。main(){}

這是一個(gè)最小的C程序,什么也不做,但這是符合C語(yǔ)言函數(shù)規(guī)定的程序,有main()組成的函數(shù)的首部和兩個(gè)大括號(hào)中無(wú)任何內(nèi)容的函數(shù)體,在計(jì)算機(jī)上運(yùn)行時(shí)沒(méi)有錯(cuò)誤,因?yàn)楹瘮?shù)體是空的,這個(gè)C程序什么也不做。2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章18/*example1.1ThefirstCProgram*/#include<stdio.h>main(){printf(“Hello,World!”);}>注釋編譯預(yù)處理函數(shù)語(yǔ)句輸出:Hello,World!【例1.3】函數(shù)C程序例。2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章19【例1.4】編寫(xiě)C語(yǔ)言程序求鍵盤(pán)輸入的兩個(gè)數(shù)中較小的數(shù),并且將其輸出到屏幕上。main()/*主函數(shù)*/{inta,b,c;/*說(shuō)明三個(gè)變量a,b和c*/printf("Inputtwointegers:");/*輸出一行提示信息*/scanf("%d,%d",&a,&b);/*鍵盤(pán)輸入兩個(gè)數(shù)值送給a和b變量*/c=min(a,b);/*調(diào)用min函數(shù),運(yùn)行結(jié)果送給c變量*/printf("min=%d",c);/*輸出c變量的值*/}intmin(intx,inty)/*定義min函數(shù),x,y為形參*/{intz;if(x<y)z=x;/*條件語(yǔ)句:如果x小于y成立z=x,否則z=y*/elsez=y;return(z);/*將z的值返回,通過(guò)min帶回調(diào)用處*/}2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章20C語(yǔ)言程序執(zhí)行過(guò)程編輯鏈接編譯運(yùn)行程序代碼的錄入,生成源程序*.c語(yǔ)法分析查錯(cuò),翻譯生成目標(biāo)程序*.obj與其它目標(biāo)程序或庫(kù)鏈接裝配,生成可執(zhí)行程序*.exe2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章211.4C語(yǔ)言的字符集和標(biāo)識(shí)符1.4.1基本符號(hào)集1.4.2標(biāo)識(shí)符2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章22

1.4C語(yǔ)言的字符集和標(biāo)識(shí)符1.4.1字符集(ASCII字符集)阿拉伯?dāng)?shù)字10個(gè):0、1、2、…、9

大小寫(xiě)英文字母各26個(gè):A,B,C,…,Z,a,b,c,…,z

下劃線(xiàn):_

特殊符號(hào):主要是運(yùn)算符和操作符

空白字符

2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章231.4.2標(biāo)識(shí)符字符序列,用作常量、變量、函數(shù)、文件指針、類(lèi)型的名字。用戶(hù)標(biāo)識(shí)符

保留字/關(guān)鍵字

預(yù)定義標(biāo)識(shí)符2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章24

用戶(hù)標(biāo)識(shí)符:標(biāo)識(shí)符定義:用來(lái)標(biāo)識(shí)變量、常量、函數(shù)等的字符序列組成:只能由字母、數(shù)字、下劃線(xiàn)組成,且第一個(gè)字母必須是字母或下劃線(xiàn)大小寫(xiě)敏感不能使用關(guān)鍵字長(zhǎng)度:8個(gè)字符命名原則:見(jiàn)名知意不宜混淆如l與1,o與0例:判斷下列標(biāo)識(shí)符號(hào)合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$123<>M.D.John3days#33char$123a>b2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章25保留字/關(guān)鍵字

是編譯系統(tǒng)固有的,用做語(yǔ)句名、類(lèi)型名的標(biāo)識(shí)符。不允許作為用戶(hù)標(biāo)識(shí)符使用。

預(yù)定義標(biāo)識(shí)符

允許用戶(hù)作其他其途,但將失去系統(tǒng)規(guī)定的原意。例define、include2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章26小結(jié)1.C語(yǔ)言程序的組成特點(diǎn)C語(yǔ)言程序的組成特點(diǎn)如下:(1)一個(gè)C源程序由函數(shù)構(gòu)成,其中至少包括一個(gè)主函數(shù)(main()函數(shù))。(2)C程序總是由main()函數(shù)開(kāi)始執(zhí)行。(3)分號(hào)“;”是C語(yǔ)句的一部分。(4)一行內(nèi)可寫(xiě)多條語(yǔ)句,且語(yǔ)句中的空格和回車(chē)符均可忽略不計(jì)。(5)程序的注釋部分在/*……*/之間,/和*之間不允許留有空格。注釋允許出現(xiàn)在程序中的任何位置上。2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章272.標(biāo)識(shí)符

C語(yǔ)言的標(biāo)識(shí)符可分為保留字、預(yù)定義標(biāo)識(shí)符和用戶(hù)標(biāo)識(shí)符三類(lèi)。用戶(hù)根據(jù)需要對(duì)C程序中用到的變量、符號(hào)常量、自定義函數(shù)或文件指針進(jìn)行命名,形成標(biāo)識(shí)符。C語(yǔ)言中,標(biāo)識(shí)符的命名規(guī)則如下:(1)用戶(hù)標(biāo)識(shí)符由英文字母、數(shù)字、下劃線(xiàn)組成;且第一個(gè)字符不能是數(shù)字,必須是字母或下劃線(xiàn)。(2)標(biāo)識(shí)符大小寫(xiě)字母不通用,保留字全部用小寫(xiě)字母。(3)標(biāo)識(shí)符中所允許包含的字符個(gè)數(shù)因不同的C編譯系統(tǒng)而有所不同,通常可以識(shí)別前面8個(gè)字符。2023/2/5《C語(yǔ)言程序設(shè)計(jì)》-第一章28(4)大多數(shù)高級(jí)語(yǔ)言都規(guī)定用戶(hù)標(biāo)識(shí)符必須以字母開(kāi)始,而C中僅規(guī)定了不得用數(shù)字開(kāi)始,因此以下劃線(xiàn)開(kāi)始的數(shù)字也是正確的變量名。(5)C語(yǔ)言提供了大量的庫(kù)函數(shù)和頭文件,這些庫(kù)函數(shù)名和頭文件中定義的一些標(biāo)識(shí)符都統(tǒng)稱(chēng)為預(yù)定義標(biāo)識(shí)符。C語(yǔ)言允許用戶(hù)定義的標(biāo)識(shí)符和這些預(yù)定義標(biāo)識(shí)符相同,但這些預(yù)定義標(biāo)識(shí)符將失去原有的作用,例如,一旦用戶(hù)把printf說(shuō)明為整型變量,則程序中將不能

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論