《C語言程序的設(shè)計(jì)》教(學(xué))案(清華譚浩強(qiáng))_第1頁(yè)
《C語言程序的設(shè)計(jì)》教(學(xué))案(清華譚浩強(qiáng))_第2頁(yè)
《C語言程序的設(shè)計(jì)》教(學(xué))案(清華譚浩強(qiáng))_第3頁(yè)
《C語言程序的設(shè)計(jì)》教(學(xué))案(清華譚浩強(qiáng))_第4頁(yè)
《C語言程序的設(shè)計(jì)》教(學(xué))案(清華譚浩強(qiáng))_第5頁(yè)
已閱讀5頁(yè),還剩138頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGE./第一章C語言及程序設(shè)計(jì)概述本章要求:了解C語言的特點(diǎn)、C語言與其它高級(jí)語言相比有什么異同;了解C程序在PC機(jī)上的建立、編譯和運(yùn)行過程;了解C語言程序設(shè)計(jì)思想的基本篇;重點(diǎn):=1\*GB3①C語言的主要特點(diǎn);=2\*GB3②C語言在PC機(jī)上的運(yùn)行過程及上機(jī)操作過程;=3\*GB3③常用算法的應(yīng)用難點(diǎn):無一、C語言概述C語言是目前國(guó)際上在各種計(jì)算機(jī)運(yùn)行較為廣泛流行的一種高級(jí)語言.主要表現(xiàn)為:C語言:適合于作為系統(tǒng)描述語言——可用來寫系統(tǒng)軟件.具有高級(jí)語言的特點(diǎn),又有低級(jí)語言〔匯編語言的特點(diǎn).C語言:是AT&T貝爾實(shí)驗(yàn)室的DennisRitchie在1972年發(fā)明的.C語言:是在B語言的基礎(chǔ)上發(fā)展起來的.〔ALGOL60C語言:最早開始是用于UNIX操作系統(tǒng).〔C語言和UNIX是相輔相成的DBASE、MicrosoftExel、MicrosoftWord、PC-DOS等,則是用C語言加上若干匯編子程序編寫的.1983年:——制定的新標(biāo)準(zhǔn),稱為〔美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)ANSIC1987年:——TurboC1.0<Borland>1988年:TC1.5<圖形和文本窗口>1989年:——TurboC2.0〔DOS操作系統(tǒng)、查錯(cuò)、Tiny模式生成com文件1991年:——TurboC++<3.0>支持windows3.X說明:TurboC語言可以在程序的任何地方嵌入?yún)R編代碼,提高速度,可以直接使用存儲(chǔ)器和寄存器.二.C語言的特點(diǎn)1.語言簡(jiǎn)潔、緊湊、使用方便、靈活C語言:——共有32個(gè)關(guān)鍵字,9種控制語句;程序書寫自由,主要用小寫字母表示;2.運(yùn)算符豐富C語言的運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符;即:把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換都作為運(yùn)算符處理3.有豐富的數(shù)據(jù)類型整型、實(shí)型、字符型、數(shù)據(jù)類型、指針類型、結(jié)構(gòu)體類型、共用體〔聯(lián)合類型等.實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)〔鏈表、樹、棧、圖的運(yùn)算.4.具有結(jié)構(gòu)化的功能,用函數(shù)作為程序模塊,實(shí)現(xiàn)程序的模塊化5.語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大.〔放寬了語法檢查例:1對(duì)數(shù)組下標(biāo)越界不作檢查,由程序編寫者自己保證程序的正確;2整型數(shù)據(jù)、字符型數(shù)據(jù)、邏輯型數(shù)據(jù)可以通用.6.能直接訪問物理地址,能進(jìn)行位〔bit操作,能實(shí)現(xiàn)匯編語言的大部分功能,可以直接對(duì)硬件進(jìn)行操作.7.生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高.8.用C語言編寫的程序,移植性較好.說明:C語言比其它高級(jí)語言難掌握,對(duì)編程人員要求較高程序員使用C語言編寫程序會(huì)感到限制少、靈活性大,功能強(qiáng),可以編寫出任何類型的程序.三.C程序的構(gòu)成例:main<>/*主函數(shù)*/{inta,b,sum;/*定義變量*/a=123;b=456;sum=a+b;printf<"sumis%d\n",sum>;/*輸出變量*/}說明:1程序一般用小寫字母書寫;2每個(gè)程序必須要有一個(gè)main<>〔只能一個(gè),稱主函數(shù);注:C程序是由函數(shù)構(gòu)成的,函數(shù)是C程序的基本單位.函數(shù):系統(tǒng)提供的庫(kù)函數(shù);用戶設(shè)計(jì)的函數(shù).3程序體必須在{}之間;4每個(gè)語句的結(jié)尾,必須要有";"作為終止符.5用/*………..*/作注釋四、C程序的上機(jī)過程1.演示書:P5程序2.上機(jī)步驟書:P7注:C語言是一種編譯語言,編譯語言的特點(diǎn):連接連接編譯編譯目標(biāo)程序*目標(biāo)程序*.OBJ執(zhí)行程序*.EXE執(zhí)行程序*.EXE源程序*.CC編譯程序Link程序3.DOS下C語言的運(yùn)行目前DOS下運(yùn)行C語言軟件為:TurboC2.0〔1TurboC2.0的特點(diǎn):是一個(gè)把①編輯②編譯③連接④運(yùn)行等全部操作集中在一個(gè)界面上.〔2TurboC2.0的操作及運(yùn)行書:P8五、算法的概念1.算法的概念書:P13算法:程序的操作步驟.程序中的數(shù)據(jù)在程序設(shè)計(jì)中:操作步驟有:程序=數(shù)據(jù)結(jié)構(gòu)+算法沃思NikiklausWirth程序=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計(jì)方法+語言工具和環(huán)境2.計(jì)算機(jī)算法分為兩大類:①數(shù)值運(yùn)算算法②非數(shù)值運(yùn)算算法〔1數(shù)值運(yùn)算算法:求數(shù)值解;通過運(yùn)算得出一個(gè)具體值,如求方程的根等注:數(shù)值運(yùn)算一般有現(xiàn)成的模型,算法較成熟.〔2非數(shù)值運(yùn)算算法:用于事務(wù)管理,如圖書檢索、人事管理等.3、常用簡(jiǎn)單算法〔1累乘即:1×2×3×4×5……×1001×2→S〔結(jié)果S×3→S〔結(jié)果S×4→S〔結(jié)果┇S×100→S〔結(jié)果〔2累加即:1+2+3+4+5……+1001+2→S〔結(jié)果S+3→S〔結(jié)果S+4→S〔結(jié)果┇S+100→S〔結(jié)果〔3找最大值5,2,4,12,95→max<max放最大值,后面的數(shù)都和它比較>2>max不成立4>max不成立12>max成立:12→max9>max不成立注:該算法可擴(kuò)展為在一批數(shù)據(jù)中,找某一個(gè)數(shù)〔4其它算法P15例2.2例2.3例2.4例2.5課余自學(xué)<必須>4、算法的表示常用的有:①自然語言②傳統(tǒng)流程圖③結(jié)構(gòu)化流程圖④偽代碼⑤PAD圖〔1傳統(tǒng)流程圖起止框輸入輸出框判斷框處理框流程線連接點(diǎn)表示方法:P19例注:傳統(tǒng)流程圖對(duì)流程線的使用沒有嚴(yán)格限制,難以實(shí)現(xiàn)結(jié)構(gòu)化程序設(shè)計(jì)為了限制流程線的濫用,提出三種基本結(jié)構(gòu):①順序結(jié)構(gòu)②選擇結(jié)構(gòu)③循環(huán)結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)ft.f語句表達(dá)式表達(dá)式t語句語句語句1語句2循環(huán)結(jié)構(gòu)表達(dá)式語句語句表達(dá)式a>"當(dāng)型"結(jié)構(gòu)b>"直到型"結(jié)構(gòu)〔2N-S流程圖特點(diǎn):去掉了帶箭頭的流程線,全部算法寫在一個(gè)矩形框內(nèi).稱N-S結(jié)構(gòu)化流程圖PA成立不成立當(dāng)P1成立ABABA直到P1成立順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)作業(yè):p372.4上機(jī):熟悉TurboC2.0的操作及運(yùn)行第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式本章要求:本章是C語言的基本概念開篇,所介紹的概念是學(xué)習(xí)C語言的基礎(chǔ);要求熟練掌握數(shù)據(jù)類型、運(yùn)算符與表達(dá)式.重點(diǎn):=1\*GB3①C語言數(shù)據(jù)類型定義的方法和分類.=2\*GB3②C語言運(yùn)算符、表達(dá)式的使用以及它們的主要特點(diǎn).難點(diǎn):自增、自減運(yùn)算符、賦值運(yùn)算符、逗號(hào)運(yùn)算符及它們的混合使用一.?dāng)?shù)據(jù)類型概念:算法處理的對(duì)象——是數(shù)據(jù),而數(shù)據(jù)是以某種特定的形式出現(xiàn).在C語言中,數(shù)據(jù)有:常量、變量;一般它們都有一定的數(shù)據(jù)類型.〔C語言的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型形式出現(xiàn)的1.?dāng)?shù)據(jù)類型分類:整型int基本類型字符型單精度型float實(shí)型〔浮點(diǎn)型枚舉類型雙精度型double數(shù)據(jù)類型數(shù)組類型構(gòu)造類型結(jié)構(gòu)體類型struct共用體〔聯(lián)合類型union指針類型*空類型void說明:在程序中對(duì)用到的所有數(shù)據(jù)都必須指定其數(shù)據(jù)類型.2.C語言中的常量和變量常量:——在程序運(yùn)行過程中,其值不能被改變的量.變量:——在程序運(yùn)行過程中,其值可以改變的量.說明:1常量和變量,都要有一個(gè)名字表示它;習(xí)慣上,符號(hào)常量<別名>名用大寫,變量用小寫.符號(hào)常量的定義為:#defineP30其它常量:直接用數(shù)據(jù)表示例:2345.5‘e’3e+22在C語言中,對(duì)變量要先定義,后使用.3如果一個(gè)變量被指定為一確定類型后,在C語言編譯時(shí),就能為其分配相應(yīng)的存儲(chǔ)單元.a變量名存儲(chǔ)地址20003變量值存儲(chǔ)單元地址的概念3.常用的基本數(shù)據(jù)類型〔1整型1整型常量:十進(jìn)制整數(shù)123,-11,0非0開頭八進(jìn)制整型0123,-0110開頭十六進(jìn)制整型0x110x200x0D0XFF0x4e0x/0X開頭說明:在一個(gè)整常量后面加一個(gè)字母:l或L,是長(zhǎng)整型常量.22L0733L0xae2整型變量:定義存儲(chǔ)字節(jié)數(shù)的范圍基本型intx〔2字節(jié)-32768~32767短整型shortintx〔2字節(jié)-32768~32767長(zhǎng)整型longintx〔4字節(jié)-2,147,483,648~2,147,483,647無符號(hào)型unsignedintx〔2字節(jié)0~65535unsignedshortx〔2字節(jié)0~65535unsignedlongx〔4字節(jié)0~4,294,967,295注:數(shù)據(jù)在內(nèi)存中是以:二進(jìn)制形式存放如:9為00001001例:x=13;x=015;x=0xD存儲(chǔ)結(jié)構(gòu)見P44圖3.5注:數(shù)據(jù)超過數(shù)據(jù)范圍,會(huì)發(fā)生數(shù)據(jù)溢出例3.2、3.3〔2實(shí)型〔浮點(diǎn)數(shù)1實(shí)型常量:十進(jìn)制整數(shù)1.23.0123指數(shù)形式1.23e3,1.00e-32實(shí)型變量:數(shù)的表示范圍P46表3.2單精度floatx〔4字節(jié)3.4x10-38~3.4x1038TC默認(rèn)雙精度doublex〔8字節(jié)1.7x10-308~1.7x10308說明:實(shí)型常量不分float和double,只有十進(jìn)制表達(dá)方式有的C編譯系統(tǒng)64位存儲(chǔ)方式,如尾加f或F可表示32位:324.567f例:x=1.23;x=123e3P47例3.4<存儲(chǔ)精度>〔3字符型1字符常量:a>用單引號(hào)括起來的一個(gè)字符‘a(chǎn)’‘A’b>轉(zhuǎn)義字符〔由"\專用字母"書P48表3.3例3.5\0字符串結(jié)束符\n換行\(zhòng)t水平制表\ddd八進(jìn)制數(shù)\xdd十六進(jìn)制數(shù)2字符變量:charc〔1字節(jié)說明:一個(gè)字符變量,只能放一個(gè)字符常量.實(shí)際是把該常量的ASCII值,送入字符變量中.即:‘B’〔66c〔字符變量書P374ASCII表p50例3.6-7c=‘B’c的內(nèi)容為66故:字符數(shù)據(jù)可以進(jìn)行算術(shù)運(yùn)算;即:c=‘B’+2為68字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)方式書P50unsignedchar0-255char-128-127有符號(hào)數(shù)在TC中是用補(bǔ)碼表示的127<0x7f>01111111128<0x80>10000000復(fù)習(xí):補(bǔ)碼的規(guī)定:正數(shù):其原碼、反碼、補(bǔ)碼相同負(fù)數(shù):最高位為1,其余各位為原碼的反碼<原碼的相應(yīng)位取反>,然后對(duì)整個(gè)數(shù)加1.140<0x8c>10001100→11110011+1<取反加1>→11110100→-0x74-0x7410001011+1<取反加1>→10001100→0x8c<0x80為負(fù)數(shù)-74高位為1>3字符串常量用雙引號(hào)括起來的字符"a","ABFD""a"="a\0”<>‘A’說明:C規(guī)定,在每一個(gè)字符串的結(jié)尾應(yīng)加一個(gè)"字符串結(jié)束標(biāo)志"〔\0,以便系統(tǒng)判斷字符串是否結(jié)束.4.各類數(shù)值間的混合運(yùn)算1整型、字符型、單精度型、雙精度型數(shù)據(jù)——可以混合運(yùn)算2字符型、整型——可以通用規(guī)則:高doublefloatlongunsigned低intchar,short例如10+’a’+1.5-8765.1234*’b’-858873.593200<TC默認(rèn)6位小數(shù)>10+97+1.5-8765.1234*98二.運(yùn)算符和表達(dá)式C表達(dá)式:由變量、常量、函數(shù)等運(yùn)算對(duì)象和運(yùn)算符組成的式子C運(yùn)算符作用:1能把一些基本運(yùn)算模塊用單一的運(yùn)算符處理2使用豐富的運(yùn)算符,構(gòu)成多種表達(dá)式C運(yùn)算符有優(yōu)先級(jí),優(yōu)先級(jí)高的先執(zhí)行,同級(jí)的由結(jié)合規(guī)則決定其處理規(guī)則C運(yùn)算符有兩種結(jié)合規(guī)則:1從左到右的結(jié)合運(yùn)算順序;即:a=5+x-10;運(yùn)算對(duì)象與左邊運(yùn)算符結(jié)合2從右到左的結(jié)合運(yùn)算順序;即:x=y=7;運(yùn)算對(duì)象與右邊運(yùn)算符結(jié)合C運(yùn)算符分類書P551.基本運(yùn)算符<算術(shù)運(yùn)算符>C語言有7個(gè)基本運(yùn)算符1單目運(yùn)算符:〔表示符號(hào)正號(hào)"+"負(fù)號(hào)"-"2雙目運(yùn)算符:+、-、*、/、%〔模運(yùn)算,求余運(yùn)算,兩側(cè)為整數(shù)說明:a運(yùn)算順序的結(jié)合方向從左到右b求余〔取模運(yùn)算符是對(duì)兩個(gè)整數(shù)相除的余數(shù),計(jì)算結(jié)果的符號(hào)與第一個(gè)數(shù)的符號(hào)相同.即:-5%3值為-2、-5%-3值為-2、5%-3值為22.自增、自減運(yùn)算符<優(yōu)先級(jí)高于算術(shù),右結(jié)合>作用:——使變量的值增1或減1++i〔--i——在使用i之前,先使i的值加1〔減1,然后再使用i.i++〔i--——先使用i的值,然后再使i加1〔減1.例:i=4;j=++i;i值為5,值為5;j=i++;i值為5,j值為4說明:1自增、自減運(yùn)算符++<-->,只能用于變量,不能用于常量或表達(dá)式即:5++、〔a+b++——不合法2運(yùn)算順序的結(jié)合方向從右到左例例:main<>{inti=3z,x,y;z=<i++>+<i++>+<i++>x=y=3;//結(jié)果:z值為9i值為6z=x+++y;//變量x右結(jié)合運(yùn)算符++〔不是3+4+5=12printf<"z=%d,x=%d,y=%d",z,x,y>;}輸出結(jié)果:z=6x=4y=3如果:z=-x+++y;輸出結(jié)果:z=0x=4y=3x先為-4,然后+y,最后x++3.賦值運(yùn)算符和賦值表達(dá)式<優(yōu)先級(jí)低于算術(shù),右結(jié)合>〔1"="——賦值運(yùn)算符作用:將一個(gè)數(shù)據(jù)賦給一個(gè)變量即:x=21注意:如果賦值運(yùn)算符兩側(cè)的類型不一致,在賦值時(shí),要進(jìn)行類型轉(zhuǎn)換.P61例3.9即:floatf;f=23f值為23.0000符號(hào)位擴(kuò)展〔2復(fù)合的賦值運(yùn)算符"+=、-=、*=、/=、%="——在賦值符"="之前加上其它運(yùn)算符稱復(fù)合運(yùn)算符〔也稱為自反運(yùn)算符例:a+=3等價(jià)于a=a+3x*=y+8等價(jià)于x=x*<y+8>y/=4等價(jià)于y=y/4m%=3等價(jià)于m=m%3說明:C語言采用這種復(fù)合運(yùn)算符:為了簡(jiǎn)化程序,使程序精練;提高編譯效率.〔3賦值表達(dá)式格式:變量=表達(dá)式表達(dá)式:可以是1常量、變量、算術(shù)表達(dá)式;2賦值表達(dá)式即:a=<b=5>或a=b=5<運(yùn)算順序的結(jié)合方向從右到左>例:a=b=c=6;a=5+<c=6><結(jié)果a=11c=6>如果:a=3;求:a+=a-=a*a;[有:1]a*a;92>a=a-<a*a>;-63>a+=-6]-6+-6a為:-12結(jié)果值為:-124.逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式<優(yōu)先級(jí)最低,左結(jié)合>用","將兩個(gè)表達(dá)式連接起來.格式:表達(dá)式1,表達(dá)式2即:3+5,6*9;例:3+5,6*9;值為54〔先求解表達(dá)式1,再求解表達(dá)式2,最后逗號(hào)表達(dá)式的值為表達(dá)式2的值a=2*5,a*3;a值為10結(jié)果值為:30〔先求:a=2*5,后求:a*3x=<a=2*5,a*3>,a+4a值為10x值為30結(jié)果值為:14說明:使用逗號(hào)表達(dá)式的目的,只是為了得到各個(gè)表達(dá)式的值〔常用于循環(huán)語句解表達(dá)式1的結(jié)果可能影響解表達(dá)式2的值5.強(qiáng)制類型轉(zhuǎn)換運(yùn)算符<優(yōu)先級(jí)高于算術(shù),右結(jié)合>在要轉(zhuǎn)換的數(shù)據(jù)前,用小括號(hào)括上要轉(zhuǎn)換的數(shù)據(jù)類型即:〔intx;〔int〔a+b〔intx+y格式:〔類型名表達(dá)式C一般會(huì)自動(dòng)進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換P56例3.8,用于不能自動(dòng)轉(zhuǎn)換的地方x%3<floatf>6.關(guān)系運(yùn)算符和關(guān)系表達(dá)式〔書P87<優(yōu)先級(jí)低于算術(shù),左結(jié)合,高于賦值>〔16種關(guān)系運(yùn)算符<<=>>=<優(yōu)先級(jí)高>==!=<優(yōu)先級(jí)低>〔2關(guān)系表達(dá)式表達(dá)式關(guān)系運(yùn)算符表達(dá)式即:a>ba+b>=b+c<a=4><<b=8>‘x’==‘y’說明:關(guān)系表達(dá)式值:是一個(gè)邏輯值,即:"真"或"假"C語言:1——代表"真"0——代表"假"7.邏輯運(yùn)算符和邏輯表達(dá)式〔書P88<優(yōu)先級(jí)低于關(guān)系,左結(jié)合>〔13種邏輯運(yùn)算符p89表5.1&&〔與||〔或!〔非〔2邏輯表達(dá)式表達(dá)式邏輯運(yùn)算符表達(dá)式p89即:<a>b>||<a+b>=b+c><a=4>&&<b=8>1||∞<1>‘x’&&‘y’值為11說明:邏輯表達(dá)式值:是一個(gè)邏輯值,即:"真"或"假"p90優(yōu)先次序〔由高到低:!〔非算術(shù)運(yùn)算符關(guān)系運(yùn)算符&&和||賦值運(yùn)算符求值短路:5>3&&2||8<4-!01||∞<結(jié)果1>0&&∞<結(jié)果0>如:a&&b&&ca<>0才判斷a&&b8.條件運(yùn)算符〔書P97格式:表達(dá)式1?表達(dá)式2:表達(dá)式3執(zhí)行:先求解表達(dá)式1,為真〔非零,求表達(dá)式2為假〔為0,求表達(dá)式3例:y=<a>b>?a:b;說明:a條件運(yùn)算符要求有三個(gè)操作對(duì)象〔稱三目元運(yùn)算符b條件運(yùn)算符優(yōu)先于賦值運(yùn)算符y=<a>b>?a:b;先求<a>b>?a:b后賦值c條件運(yùn)算符的結(jié)合方向?yàn)?自右至左"<a>b>?a:b可寫為:a>b?a:ba>b?a:b+5相當(dāng)于:a>b?a:〔b+5a>b?a:c>d?c:d相當(dāng)于:a>b?a:<c>d?c:d>*9.位運(yùn)算符〔書P298〔一般掌握位運(yùn)算:——是對(duì)字節(jié)或字中的實(shí)際位進(jìn)行檢測(cè)、設(shè)置、屏蔽、移位.位運(yùn)算符:&——位邏輯與|——位邏輯或^——位邏輯異或~——位邏輯反>>——右移<<——左移三、運(yùn)算符小結(jié)1.左結(jié)合方向的運(yùn)算符主要有:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、逗號(hào)運(yùn)算符2.右結(jié)合方向的運(yùn)算符主要有:自增、自減運(yùn)算符、賦值運(yùn)算符〔復(fù)合的賦值運(yùn)算符、條件運(yùn)算符例:1>i=3;printf<"%d,%d",i,i++>;輸出:4,32>a=1;b=1;c=2;求:a=b+=c*=5;輸出:a為11b為11c為103>a>b?a>c?a:c:b>c?b:c相當(dāng)于:a>b?<a>c?a:c>:<b>c?b:c><求最大值,如a=2,b=8,c=5結(jié)果為:8>3.運(yùn)算符的優(yōu)先次序〔書P375附錄Ⅲ<>、!++/--/-轉(zhuǎn)移、算術(shù)、關(guān)系<<<=>>=>、關(guān)系<==!=>、&&、||、條件<?>、賦值、逗號(hào)例:1>-a++相當(dāng)于-<a++>2>x=4,y=7求:y+=++x-3x的值5y的值93>x=4,y=7求:y=y+++x-3x的值4y的值94>a=7,x=2.5,y=4.7求:s=x+a%3*<int><x+y>%*2/4s的值2.500000a%3*<int><x+y>%*2=》1<整型>/4<整型>=》0.25=》0<整型>5>a%3&&a%5||a++>++b如:a=7,b=5a的值8b的值6結(jié)果值11||1如:a=15,b=15a的值16b的值16結(jié)果值01||如:a=15,b=14a的值16b的值15結(jié)果值00||如:a=15,b=13a的值16b的值14結(jié)果值10||四、該章的主要例題數(shù):P39例3.1P44例3.2P44例3.3字符:P49例3.5P50例3.6P51例3.7五、該章的主要習(xí)題P653.53.63.83.93.103.12六、該章的主要上機(jī)內(nèi)容P39例3.1P44例3.2P44例3.3P51例3.7P653.63.83.10第四章簡(jiǎn)單的C程序設(shè)計(jì)〔順序程序設(shè)計(jì)知識(shí)點(diǎn):1、賦值語句;2、字符數(shù)據(jù)的輸入/輸出;3、格式輸入/輸出語句printf和scanf及其格式控制符;%c、%f、%d〔輸出寬度、對(duì)齊方式、其它格式控制符只作了解4、程序的結(jié)構(gòu)框架.重點(diǎn):1.賦值語句;2.基本輸入/輸出語句printf和scanf及其格式控制符%c、%f、%d等的意義.難點(diǎn):無一、C程序結(jié)構(gòu)C程序源程序文件1源程序文件2源程序文件n預(yù)編譯命令函數(shù)1函數(shù)n說明部分執(zhí)行部分<語句>語句的分類P67P681、控制語句①條件:ifelse②循環(huán):for<>③循環(huán):while<>④循環(huán):dowhile<>⑤循環(huán)結(jié)束:continue⑥終止循環(huán)或switch:break⑦多分支:switch⑧轉(zhuǎn)向:goto⑨函數(shù)返回:return2、函數(shù)調(diào)用語句printf<"a=%d",a>;3、表達(dá)式語句i=i+1表達(dá)式i=I+1;表達(dá)式語句函數(shù)調(diào)用也可以認(rèn)為是表達(dá)式語句4、空語句:一個(gè)";"5、復(fù)合語句<用{}:分程序>{x=3;x=x+1;print<"x=%x",x>}二.賦值語句變量名=表達(dá)式注:是組成順序結(jié)構(gòu)的主要語句.a=b;if<max<=x>max=x;三.基本輸入/輸出語句C語言本身不提供輸入輸出語句,輸入輸出操作是由函數(shù)來實(shí)現(xiàn).即:printfputcharscanfgetchar注:〔1這些函數(shù)構(gòu)成一個(gè)標(biāo)準(zhǔn)的I/O函數(shù)庫(kù)〔放在"stdio.h"中〔2如果要使用C語言庫(kù)函數(shù),要用預(yù)編譯命令"#include"將有關(guān)"頭文件"包括到用戶源文件中.#include<stdio.h>#include"stdio.h"當(dāng)前目錄當(dāng)前定義的目錄中尋找1.printf函數(shù)——格式輸出函數(shù)格式:printf〔格式控制,輸出表列格式控制:——用雙引號(hào)括起來的字符串,也稱為"轉(zhuǎn)換控制字符串"printf的格式字符書P77表4.1輸出表列:——需要輸出的數(shù)據(jù)、表達(dá)式 即:printf<"x=%5.1f,y=%d,z=%c",x,y,z>d,i帶符號(hào)十進(jìn)制形式u無符號(hào)十進(jìn)制形式例3-3c字符形式s字符串形式f實(shí)數(shù)<小數(shù)>形式默認(rèn)6位小數(shù)說明:1printf<"y=%-4d",y>輸出數(shù)據(jù)左對(duì)齊〔默認(rèn)為右對(duì)齊2數(shù)據(jù)輸出長(zhǎng)度的修正;l——輸出長(zhǎng)整型或雙精度數(shù)據(jù)即:printf<"%ld,%lf",i,y>h——輸出短型數(shù)據(jù)即:printf<"%hu",a>-m.nm最小寬度n小數(shù)<實(shí)數(shù)>-左對(duì)齊2.putchar函數(shù)——字符輸出函數(shù)向終端輸出一個(gè)字符格式:putchar〔變量putchar〔xputchar〔"\n"輸出一個(gè)換行符3.scanf函數(shù)——格式輸入函數(shù)格式:scanf〔格式控制,地址表列格式控制:——用雙引號(hào)括起來的字符串,也稱為"轉(zhuǎn)換控制字符串"scanf的格式字符書P80表4.3地址表列:——由若干個(gè)地址組成的表列,有:變量地址&x字符串的首地址&——地址運(yùn)算符功能:求變量的地址〔只能用于變量&x——表示x變量值的內(nèi)存單元的地址即:scanf<"%d,%4d",&a,&b>說明:1不帶分隔字符的方式,系統(tǒng)將自動(dòng)按格式說明截取數(shù)據(jù)例:scanf<"%4d%*3d%f",&I,&p>;輸入:12345678.93時(shí)得I=1234,p=8.93"*"——作用是"虛讀",跳過相應(yīng)的數(shù)據(jù)2帶分隔字符的方式〔分隔字符:空格、tab、回車、逗號(hào)即:scanf<"%d,%d",&a,&b>4.getchar函數(shù)——字符輸入函數(shù)從終端輸入一個(gè)字符格式:getchar<>即:c=getchar<>函數(shù)值是從輸入設(shè)備得到的字符四、該章的主要例題1已知矩形的兩邊長(zhǎng),求矩形的面積、周長(zhǎng)2大小寫字母互相轉(zhuǎn)化3教材P83的例子五、該章的主要習(xí)題P844.5~4.9第五章選擇結(jié)構(gòu)程序設(shè)計(jì)知識(shí)點(diǎn):1、關(guān)系、邏輯運(yùn)算符、邏輯真/假;2、關(guān)系表達(dá)式、邏輯表達(dá)式;3、分支的概念及其算法描述;4、三種IF分支語句;5、條件運(yùn)算符;6、SWITCH語句.<了解>重點(diǎn):1、關(guān)系、邏輯運(yùn)算符、邏輯真/假;2、關(guān)系表達(dá)式、邏輯表達(dá)式;3、三種IF分支語句.難點(diǎn):1、邏輯真/假;2、關(guān)系、邏輯運(yùn)算優(yōu)先級(jí).一、關(guān)系表達(dá)式及邏輯表達(dá)式在分支選擇結(jié)構(gòu)的作用在程序設(shè)計(jì)中,表示一些復(fù)雜的條件1、關(guān)系運(yùn)算符及關(guān)系表達(dá)式〔第三章2、邏輯運(yùn)算符及邏輯表達(dá)式〔第三章3、條件運(yùn)算符〔第三章二.分支語句〔書P91從一個(gè)條件表達(dá)式中,選擇語句的執(zhí)行〔用if語句或switch語句來實(shí)現(xiàn)f.t.f表達(dá)式表達(dá)式t語句語句1語句21.If語句〔1C語言提供三種形式的if語句1if<表達(dá)式>語句例:if<x>y>printf<"%d",x>;注意";"位置2if<表達(dá)式>語句1else語句2例:if<x>y>printf<"%d",x>;elseprintf<"%d",y>;注意分號(hào)";"3>if<表達(dá)式1>語句1elseif<表達(dá)式2>語句2elseif<表達(dá)式3>語句3……elseif<表達(dá)式n>語句nelse語句n+1例:p92圖5.6〔2if<>和else后的執(zhí)行語句可以使用復(fù)合語句{}例5.1、5.2p93if結(jié)構(gòu)將輸入的三個(gè)數(shù)從大到小排列輸出例5.3p95if嵌套結(jié)構(gòu)計(jì)算函數(shù)值〔3用條件運(yùn)算符代替if語句例:if<a>b>y=a;條件運(yùn)算符else可以用:y=<a>b>?a:b;y=b;例5.4p98條件運(yùn)算符代替if結(jié)構(gòu)將輸入字符中的大寫轉(zhuǎn)換成小寫輸出2.switch語句<了解>switch語句——是多分支選擇語句表達(dá)式語句1語句2語句3語句4格式:switch<表達(dá)式>表達(dá)式=常量表達(dá)式n執(zhí)行語句n{case常量表達(dá)式1:語句1;break;case常量表達(dá)式2:語句2;break;case常量表達(dá)式3:語句3;break;┇case常量表達(dá)式n:語句n;break;default:語句n+1;例:四級(jí)〔ABCD轉(zhuǎn)化成百分制#include<stdio.h>main<>{chargrade;scanf<"%c",&grade>;switch<grade>{case'A':printf<"85~100\n">;break;case'B':printf<"75~84\n">;break;case'C':printf<"60~74\n">;break;case'D':printf<"<60\n">;break;default:printf<"error\n">;}}例:百分制成績(jī)轉(zhuǎn)化成五級(jí)〔ABCDE五級(jí)記分5-4-1三、程序舉例例5.7p103運(yùn)費(fèi)計(jì)算<自學(xué)>p101例5.6求一元二次方程根<自學(xué)>p100例5.5判斷某一年是否是閏年<自學(xué)>五、該章的主要習(xí)題P1045.3~5.10該章的主要上機(jī)內(nèi)容P91例5.2、P100例5.5,P101例5.6P104習(xí)題5.5、5.6、5.9其他:上機(jī)實(shí)驗(yàn)指導(dǎo)書中內(nèi)容第六章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)知識(shí)點(diǎn):1、循環(huán)的概念及其算法描述;2、goto循環(huán);3、while循環(huán);重點(diǎn)4、do—while循環(huán);重點(diǎn)6、for循環(huán);重點(diǎn)難點(diǎn)7、break、continue語句;8、各種循環(huán)結(jié)構(gòu)中的執(zhí)行循環(huán)體、判斷循環(huán)條件的順序;重點(diǎn)9、各種循環(huán)結(jié)構(gòu)在一定條件下的轉(zhuǎn)化.重點(diǎn)難點(diǎn)一、循環(huán)結(jié)構(gòu)的概念循環(huán)語句主要用于:重復(fù)執(zhí)行的操作1.C語言在實(shí)現(xiàn)循環(huán)過程——可使用以下語句:a>用goto語句和if語句構(gòu)成循環(huán)b>用while語句語句c>用do—while語句d>用for語句語句2.循環(huán)可分為二種類型結(jié)構(gòu):a>"當(dāng)型"結(jié)構(gòu)b>"直到型"結(jié)構(gòu)語句語句二.循環(huán)語句1.用goto語句和if語句構(gòu)成的循環(huán)〔1goto語句——無條件轉(zhuǎn)向語句格式:goto語句標(biāo)號(hào)語句標(biāo)號(hào):用標(biāo)識(shí)符表示例:gotonext;如:goto123;<不合法>〔2goto和if語句構(gòu)成循環(huán)一般較少使用〔不符合結(jié)構(gòu)化原則例:求main<>{inti,sum=0;i=1;loop:if<i<=50>{sum=sum+2*i;i++;gotoloop;}printf<"%d\n",sum>;}2.while語句——實(shí)現(xiàn)"當(dāng)型"循環(huán)結(jié)構(gòu)格式:while<表達(dá)式>語句例:求main<>{inti,sum=0;i=1;while<i<=50>說明:{sum=sum+2*i;i++;}printf<"%d\n",sum>;語句可為復(fù)合語句<用{}構(gòu)成>}3.do—while語句——實(shí)現(xiàn)"直到型"循環(huán)結(jié)構(gòu)格式:do語句while<表達(dá)式>;例:求main<>{inti,sum=0;i=1;do{sum=sum+2*i;i++;}while<i<=50>;printf<"%d\n",sum>;}dowhile和while比較p109例6.44.for語句可以用于循環(huán)次數(shù)已知和循環(huán)次數(shù)不確定〔可以代替while語句<應(yīng)用廣泛,而且使用較活>格式:for<表達(dá)式1;表達(dá)式2;表達(dá)式3>語句過程:表達(dá)式1F表達(dá)式2T說明:語句表達(dá)式1循環(huán)變量賦初值表達(dá)式2循環(huán)結(jié)束條件表達(dá)式3表達(dá)式3循環(huán)變量增值即:for<循環(huán)變量賦初值,循環(huán)結(jié)束條件,循環(huán)變量增值>語句例:求for<i=1;i<=50;i++>sum=sum+2*i;for語句的其它表示<1>用while來表示表達(dá)式1while<表達(dá)式2>{語句表達(dá)式3;}<2>表達(dá)式可以省略,但分號(hào)不能省略a>省略表達(dá)式1i=1for<;i<=50;i++>sum=sum+2*ib>省略表達(dá)式2——產(chǎn)生死循環(huán)for<i=1;;i++>sum=sum+2*ic>省略表達(dá)式3for<i=1;i<=50;>{sum=sum+2*i;i++;}d>省略表達(dá)式1,省略表達(dá)式3i=1i=1for<;i<=50;>while<i<=50>{sum=sum+2*i;相當(dāng)于{sum=sum+2*i;i++;}i++;}<3>表達(dá)式1,表達(dá)式3可以是:a>簡(jiǎn)單的表達(dá)式b>逗號(hào)表達(dá)式表達(dá)式2:一般是關(guān)系表達(dá)式或邏輯表達(dá)式即:for<sum=0,i=1;i<=50;i++,i++>sum=sum+2*i;或:for<sum=0,i=1;i<=50;i=i+2>sum=sum+2*i<4>循環(huán)體語句可使用break和continue語句break:可以用來從循環(huán)體內(nèi)跳出循環(huán)體〔提前結(jié)束循環(huán)continue:用于跳過循環(huán)體中下面尚未執(zhí)行的語句,接著重新執(zhí)行循環(huán)的判斷.p115例6.5將100-200間不能被3整除的數(shù)輸出三、程序舉例用多種循環(huán)方法實(shí)現(xiàn)1由泰勒展式計(jì)算sin<x>的近似值2.p115例6.6求π的近似值1-1/3+1/5-1/7+3.p115例6.7求Fibonacci<斐波納契>數(shù)列40個(gè)數(shù)F1=1<n=1>F2=1<n=2>Fn=Fn-1+Fn-2<n>=3>4.p115例6.8判斷m是否是素?cái)?shù)5.p115例6.9求100-200間的所有素?cái)?shù)6.例求任意輸入10個(gè)數(shù)中的最大數(shù)6-max四、該章的主要習(xí)題P1206.1~6.15五、該章的主要上機(jī)內(nèi)容P115例6.5、例6.6、例6.7、例6.9P120習(xí)題6.4、6.7、6.9、6.11、6.14其他:上機(jī)實(shí)驗(yàn)指導(dǎo)書中內(nèi)容作業(yè)解答:5-8利潤(rùn)提成:類似所得稅第七章數(shù)組1、數(shù)組的概念及數(shù)組的定義;2、在程序設(shè)計(jì)中的如何使用數(shù)組;3、字符數(shù)組是C語言存放字符串的主要方法,并注意字符串結(jié)束標(biāo)志的規(guī)定.重點(diǎn):=1\*GB3①數(shù)組的組成和特點(diǎn).=2\*GB3②一維數(shù)組和二維的定義、賦值.=3\*GB3③字符串與字符數(shù)組的關(guān)系以及數(shù)組在程序中的使用.難點(diǎn):=1\*GB3①數(shù)組元素存儲(chǔ)格式對(duì)程序設(shè)計(jì)的使用.=2\*GB3②字符串在數(shù)組中的組成以及字符串操作語句的使用.基本類型數(shù)組類型C語言:數(shù)據(jù)類型構(gòu)造類型結(jié)構(gòu)體類型共用體類型指針類型構(gòu)造類型:是由基本類型按一定規(guī)則組成的類型一.?dāng)?shù)組的概念數(shù)組:——1是一組有序數(shù)據(jù)的集合2這個(gè)集合用一個(gè)數(shù)組名來表示3數(shù)組的元素序號(hào)用一個(gè)下標(biāo)值來表示如:a[0],a[1],a[2],a[3]b[1][1],b[1][2],b[2][1],b[2][2]注意:a數(shù)組名后,用方括號(hào);下標(biāo)從0開始.b下標(biāo)值——可以是常量表達(dá)式常量表達(dá)式:包括常量和符號(hào)常量<用#define定義的>,但不能包含變量.C語言:不允許數(shù)組進(jìn)行動(dòng)態(tài)定義.即:intn;scarf<"%d",&n>;intx[n];/*定義數(shù)組*/c數(shù)組分為:一維、二維等,主要由下標(biāo)值的多少來確定.二.一維數(shù)組1.定義格式:類型說明符數(shù)組名[常量表達(dá)式]類型說明符:——表示數(shù)組的類型int,short,long,unsigned,float,double,char等數(shù)組名:——表示各數(shù)組元素的統(tǒng)一名字,定義方法和變量名相同常量表達(dá)式:——表示數(shù)組的長(zhǎng)度即:inta[10]注意:C語言不提供數(shù)組下標(biāo)越界的保護(hù),設(shè)計(jì)時(shí)要注意.2.?dāng)?shù)組元素的初始化數(shù)組在定義的時(shí)候,同時(shí),可對(duì)數(shù)組元素進(jìn)行初始化格式:staticinta[10]={0,0,0,0,0,0,0,0,0,0}靜態(tài)定義a[10]={0,1,2,3,4,5,6,7,8,9}說明:1static數(shù)組不賦初值,系統(tǒng)會(huì)對(duì)所有數(shù)組元素自動(dòng)賦以0值.即:inta[10]={0,0,0,0,0,0,0,0,0,0};等價(jià)于:staticinta[10];2對(duì)全部數(shù)組元素賦初值,可以不指定數(shù)組長(zhǎng)度.即:staticinta[]={0,1,2,3,4,5};等價(jià)于:staticinta[6]={0,1,2,3,4,5};3可以部分賦初值即:inta[5]={1,3};3.?dāng)?shù)組元素的引用C語言規(guī)定:只能逐個(gè)引用數(shù)組元素,而不能一次引用整個(gè)數(shù)組.4.程序舉例書P124例7.2例7.3三.二維數(shù)組和多維數(shù)組1.定義格式:類型說明符數(shù)組名[常量表達(dá)式][常量表達(dá)式]類型說明符:——表示數(shù)組的類型int,short,long,unsigned,float,double,char等數(shù)組名:——表示各數(shù)組元素的統(tǒng)一名字常量表達(dá)式:——表示數(shù)組的長(zhǎng)度即:inta[5][6]說明:a每一維的下標(biāo)從0開始,整個(gè)數(shù)組元素為:5×6=30個(gè)bC語言中,二維數(shù)組中元素排列的順序是按行存放.即:先存放第一行的元素,再存放第二行的元素3a[0][04a[0][15a6a7a8a1a2a9a345存儲(chǔ)單元a=678對(duì)應(yīng)表:129→c可以計(jì)算數(shù)組元素在數(shù)組中的序號(hào)假設(shè)m×n的數(shù)組a,計(jì)算a[i][j]序號(hào)的公式:i×n+j如:a[0][1]0×3+1=1<第二個(gè)>如3×3a[1][2]的序號(hào)是:1×3+2=5a[2][2]2×3+2=8d多維數(shù)組的定義格式:類型說明符數(shù)組名[常量表達(dá)式][常量表達(dá)式][常量表達(dá)式]即:類型說明符數(shù)組名[長(zhǎng)度1][長(zhǎng)度2][長(zhǎng)度3]…inta[2][3][4]2.二維數(shù)組初始化1兩種基本方法:〔a分行給二維數(shù)組賦初值staticinta[2][3]={{1,2,3},{5,6,7}}〔b所有數(shù)據(jù)寫在一個(gè)化括弧內(nèi)staticinta[2][3]={1,2,3,5,6,7}2可以對(duì)部分元素賦初值staticinta[2][3]={{1},{3}}即:100300staticinta[3][4]={{1},{3,1},{0,0,9}}即:100031000090PAGE\#"'Page:'#'

'"PAGE\#"'Page:'#'

'"PAGE\#"'Page:'#'

'"3定義數(shù)組時(shí),第一維的長(zhǎng)度可以不指定,但第二維的長(zhǎng)度要指定<編譯系統(tǒng)自動(dòng)計(jì)算>.staticinta[][3]={1,2,3,4,5,6,7,8,9}等價(jià)于:staticinta[3][3]={1,2,3,4,5,6,7,8,9}staticinta[][4]={{1},{3,1},{0,0,9}}等價(jià)于:staticinta[3][4]={{1},{3,1},{0,0,9}}4.程序舉例書P128例7.4二維數(shù)組行列轉(zhuǎn)換例7.53×4矩陣求最大元素及行列號(hào)四.字符數(shù)組存放字符數(shù)據(jù)的數(shù)組;每一個(gè)元素存放一個(gè)字符.1.定義char數(shù)組名[常量表達(dá)式]即:charc[10];說明:由于字符與整型是互相通用的,可使用intc[10];定義.2.字符數(shù)組的初始化1staticcharc[5]={‘a(chǎn)’,‘b’,‘c’,‘d’,‘e’};注意:staticcharc[5]={‘a(chǎn)’,‘b’,‘c’,‘d’,‘e’,‘f’};<錯(cuò)誤,多一個(gè)元素staticcharc[5]={‘a(chǎn)’,‘b’,‘c’};〔正確后面元素自動(dòng)定為空格2staticcharc[]={‘a(chǎn)’,‘b’,‘c’,‘d’,‘e’};系統(tǒng)自動(dòng)根據(jù)初值個(gè)數(shù)確定數(shù)組長(zhǎng)度3.字符數(shù)組的引用一個(gè)字符數(shù)組元素,代表一個(gè)字符.即:x=c[2]x的值為"c"4.字符串的使用C語言中,將字符串作為字符串來處理.規(guī)定:一個(gè)"字符串結(jié)束標(biāo)志",以字符‘\0’,在遇到字符‘\01使用字符串常量進(jìn)行數(shù)組初始化staticcharc[]={"Iamhappy"};或staticcharc[]="Iamhappy";等價(jià)于staticcharc[]={‘I’,‘‘,‘a(chǎn)’,‘m’,‘h’,‘a(chǎn)’,‘p’,‘p’,‘y’,’\0’};注:<a>系統(tǒng)對(duì)字符串常量自動(dòng)加一個(gè)‘\0<b>字符數(shù)組并不要求它的最后一個(gè)字符為‘\02數(shù)組長(zhǎng)度始終保證大于字符串實(shí)際長(zhǎng)度staticcharc[10]={"ABCDE"};〔第5個(gè)元素\0,第6個(gè)開始為空字符ASCⅡ?yàn)?staticcharc[10]={‘A’,‘B’,‘C’,‘D’,‘E’};〔后面5個(gè)元素為空字符ASCⅡ?yàn)?例7-6P131:字符數(shù)組引用例子打印圖形<J5_1.C>#defineNLprintf<"\n">main<>{chara[10]={'*','*','*','*','*','*','*','*','*','*'};圖案層數(shù)inti,j;圖案層數(shù)for<i=0;i<=4;i++>圖案前空格{NL;圖案前空格for<j=1;j<=i;j++>printf<"">;for<j=1;j<=10-〔2*i-1;j++>printf<"%c",a[j]>;**個(gè)數(shù)}*************************5.字符數(shù)組的輸入輸出1兩種方法:a逐個(gè)字符輸入輸出.用格式符"%c"進(jìn)行scanf<"%c",&c[i]>;b整個(gè)字符串一次輸入輸出.用格式符"%s"進(jìn)行例:staticcharc[]={"abcde"};printf<"%s",c>;〔為數(shù)組名,不能為"%s",c[0]2可以用scanf函數(shù)輸入一個(gè)字符串staticcharc[6];scanf<"%s",c>;注意:鍵盤輸入不能超過5個(gè)字符c不用加地址符&,即&c;因數(shù)組名代表數(shù)組的起始地址6.字符串處理函數(shù)在C的函數(shù)庫(kù)中提供了一些用來處理字符串的函數(shù)〔1scanf和printf函數(shù)在字符串的使用使用scanf和printf函數(shù)對(duì)字符串的處理時(shí),調(diào)用語句中的輸入或輸出項(xiàng)使用的是字符數(shù)組名.〔即使用字符數(shù)組名的首地址例:main<><j5_9.c>{chars1[3],s2[5];scanf<"%s%s",s1,s2>;printf<%s\n%s\n",s1,s2>;}輸入:ABCDEFHK<即:希望s1="ABC"s2="DEFHK"輸出:ABCDEF說明:C語言規(guī)定,scanf函數(shù)遇空格或回車就結(jié)束本次輸入.〔2puts函數(shù)格式:puts〔字符數(shù)組即:puts〔str將一個(gè)字符串str〔以‘\0’〔3gets函數(shù)格式:gets〔字符數(shù)組即:gets<str>輸入:abcde讀取字符串并把它們依次放到str指向的字符數(shù)組中去.得到一個(gè)函數(shù)值,該函數(shù)值是字符數(shù)組的起始地址.str是字符數(shù)組的首地址,它讀取字符串直到遇到換行符或EOF.換行符或EOF不進(jìn)入字符串,被轉(zhuǎn)換為"\0”〔4strcat函數(shù)strcat<str1,str2>;str1,str2是字符數(shù)組連接兩個(gè)字符數(shù)組中的字符串,把str2接到str1的后面,結(jié)果放在字符數(shù)組str1中.例:staticcharstr1[20]={"ABCDEF"}staticcharstr2[]={"gggg"}執(zhí)行strcat<str1,str2>的結(jié)果為:ABCDEFgggg書P136〔5strcpy函數(shù)strcpy<str1,str2>;功能:把str2的內(nèi)容復(fù)制到str1中例:strcpy<str1,"abcd">;strcpy<&a[n],&a[n+1]>;作用:將n個(gè)字符以后的字符順序地向前移動(dòng)一個(gè)序號(hào).說明:a>str1>=str2b>str1必須是數(shù)組名,str2可以是數(shù)組名或字符串常量c>可以解決字符串常量不能賦值給字符數(shù)組即:str1={"abcde"};str1=str2;〔不合法可用strcpy〔str1,str2注:strcpy〔str1,str2,2;是將str2中前面2個(gè)字符拷貝到str1中去,然后再加一個(gè)‘\0’〔6strcmp函數(shù)strcmp<str1,str2>;功能:把str1與str2的內(nèi)容進(jìn)行比較〔按ASCII碼的大小進(jìn)行比較如果:str1=str2,則函數(shù)返回0如果:str1>str2,則函數(shù)返回正整數(shù)如果:str1<str2,則函數(shù)返回負(fù)整數(shù)〔7strlen函數(shù)strlen<str>測(cè)試字符串長(zhǎng)度,不包括‘\0〔8strlwr函數(shù)strlwr<str>將字符串中大寫字母換成小寫字母〔9strupr函數(shù)strupr<str>將字符串中小寫字母換成大寫字母7.程序舉例:書P138例7.8例7.9五、該章的主要例題:例7.1、例7.2、例7.3、例7.4、例7.5、例7.6、例7.8、例7.9六、主要習(xí)題:7.1、*7.2、7.3、7.5、7.6、*7.9、7.11、*7.13七、主要上機(jī)內(nèi)容:例7.2、例7.3、例7.4、例7.5、例7.7、例7.8、7.1、7.3、*7.9、7.11其他:上機(jī)實(shí)驗(yàn)指導(dǎo)書中內(nèi)容第八章函數(shù)與程序結(jié)構(gòu)1、函數(shù)的一般概念:函數(shù)形參、實(shí)參、返回值,函數(shù)的類型;2、動(dòng)態(tài)存儲(chǔ)變量與靜態(tài)存儲(chǔ)變量3、變量的生存期與作用域重點(diǎn):=1\*GB3①函數(shù)的定義和調(diào)用及使用函數(shù)的特點(diǎn).=2\*GB3②函數(shù)間的參數(shù)傳遞<值傳遞和地址傳遞>.=3\*GB3③變量存儲(chǔ)作用域、編譯預(yù)處理的使用.難點(diǎn):=1\*GB3①函數(shù)參數(shù)傳遞〔數(shù)值、地址及形參、實(shí)參的使用;=2\*GB3②變量存儲(chǔ)作用域及自動(dòng)變量與靜態(tài)變量的區(qū)別.一、函數(shù)概述一個(gè)較大的程序:可由若干程序模塊組成,每一模塊用來實(shí)現(xiàn)一個(gè)特定的功能.——用子程序可實(shí)現(xiàn)該模塊功能.——在C語言中:子程序稱為:子函數(shù)在C程序中:可由一個(gè)主函數(shù)和若干個(gè)函數(shù)構(gòu)成.分為標(biāo)準(zhǔn)庫(kù)函數(shù)和用戶自定義函數(shù)函數(shù)的作用:減少重復(fù)編寫程序段的工作量.語句語句調(diào)用語句調(diào)用語句語句語句功能語句功能語句功能功能標(biāo)準(zhǔn)庫(kù)函數(shù):由C語言預(yù)先編寫的一系列常用函數(shù)〔系統(tǒng)提供TurboC的標(biāo)準(zhǔn)庫(kù)——包含400多個(gè)常用函數(shù)用戶自定義函數(shù):一般自定義函數(shù)和自定義函數(shù)庫(kù)〔用戶先已編好的二、函數(shù)定義〔子函數(shù)的設(shè)計(jì)1.函數(shù)定義格式:類型定義符函數(shù)名〔形式參數(shù)表列{函數(shù)體}說明:1類型定義符:函數(shù)返回值的數(shù)據(jù)類型a>int,char,float,double默認(rèn)intb>函數(shù)無數(shù)據(jù)返回,使用void作類型定義符2函數(shù)名:函數(shù)的名稱〔用戶取的:合法的標(biāo)識(shí)符3形式參數(shù)表列:函數(shù)調(diào)用時(shí)傳遞信息的通道傳統(tǒng)風(fēng)格有兩種表示方法:a>〔參數(shù)說明形式參數(shù)傳統(tǒng)風(fēng)格b>〔形式參數(shù)參數(shù)說明例:floatadd<floatx,floaty>floatadd<x,y>{x=x+y;{floatx,y;return<x>;x=x+y;}return<x>;}a>.b>2.函數(shù)的返回值一般通過函數(shù)中的return語句獲得.如果不需要返回值,可以不要return語句.為了明確表示"不帶回值",可以用"void"定義"無類型"例:main<>/*〔打印平方表*/{voidprin<intx>;inti;for<i=1;i<=10;i++>prin<i>;}voidprin<x>intx;{printf<"%d\t%d\n",x,x*x>;}三、函數(shù)間的參數(shù)傳遞在一個(gè)主調(diào)函數(shù)調(diào)用一個(gè)子函數(shù)時(shí),須把主調(diào)函數(shù)的參數(shù)傳遞給子函數(shù),稱該參數(shù)為"實(shí)際參數(shù)".實(shí)參可以是常量、變量、表達(dá)式實(shí)參應(yīng)和形參類型相同或相容P146例8.2<主函數(shù)>c=max<a,b>;<子函數(shù)>max<intx,inty>形式參數(shù)實(shí)際參數(shù)形式參數(shù)實(shí)際參數(shù)參數(shù)傳遞〔1數(shù)值傳遞方式特點(diǎn):實(shí)參通過復(fù)制的方式傳遞給形參〔占用不同的內(nèi)存空間實(shí)參地址2形參地址ax調(diào)用函數(shù)的實(shí)參:給出具體數(shù)據(jù)〔2地址傳遞方式特點(diǎn):參數(shù)傳遞不是數(shù)據(jù)本身,而是數(shù)據(jù)的地址〔使用同一地址空間實(shí)參地址形參地址調(diào)用函數(shù)實(shí)參:一般是數(shù)組名或指針變量四、函數(shù)調(diào)用及值的返回1.函數(shù)調(diào)用格式:函數(shù)名〔實(shí)參表列;調(diào)用的過程:a通過函數(shù)名,找到定義的函數(shù)b將實(shí)際參數(shù)傳遞給被調(diào)函數(shù)的形式參數(shù)〔實(shí)際參數(shù)與形式參數(shù)一一對(duì)應(yīng),既一一傳遞數(shù)據(jù)許多C版本是按自右而左的順序求值例:P150例8.4main<>{inti=2,p;p=f<i,++i>;/*f為f<3,3>*/printf<"%d",p>;}intf<inta,b>{intc;if<a>b>c=1;elseif<a==b>c=0;elsec=-1;return<c>;}運(yùn)行結(jié)果:0說明:<1>應(yīng)避免這種情況的產(chǎn)生,可寫為:=1\*GB3①自左而右順序=2\*GB3②自右而左順序j=i;j=++i;k=++i;p=f<j,j>;p=f<j,k>;<2>在printf<"%d,%d",i,i++>;中同樣存在當(dāng):i=3;結(jié)果為:4,32.函數(shù)調(diào)用的幾種方式函數(shù)語句把函數(shù)調(diào)用作為一個(gè)語句,即單獨(dú)一個(gè)語句行.不要求函數(shù)帶回值,只要求函數(shù)完成一定操作.即:printstar<>;函數(shù)表達(dá)式函數(shù)出現(xiàn)在一個(gè)表達(dá)式中,要求函數(shù)帶回一個(gè)確定的值以參加表達(dá)式的運(yùn)算.即:c=2*max<a,b>;函數(shù)參數(shù)函數(shù)調(diào)用作為一個(gè)函數(shù)的實(shí)參;即:m=max〔a,max<b,c>;3.函數(shù)說明作用:在函數(shù)使用前對(duì)函數(shù)的特征進(jìn)行說明的語句.〔用戶自定義函數(shù)對(duì)已定義的函數(shù)的返回值進(jìn)行類型說明.告訴系統(tǒng)在本函數(shù)中將要用到的函數(shù)是什么類型.C語言規(guī)定:以下幾種情況可以不使用函數(shù)說明a函數(shù)的值〔函數(shù)的返回值是整型或字符型〔系統(tǒng)自動(dòng)按整說明b如果函數(shù)定義在調(diào)用函數(shù)之前,可以不必加以說明在函數(shù)說明和函數(shù)定義中:a類型定義、函數(shù)名要相同b形式參數(shù)標(biāo)識(shí)符可以不相同如:main<>{doubleabc<intx,floaty>;/*函數(shù)說明*/}doubleabc<inta,floatb>/*函數(shù)定義a,b與x,y不同*/函數(shù)體}非int形參的函數(shù)必須在調(diào)用前進(jìn)行函數(shù)說明P148例8.3、8.5不使用函數(shù)說明例子例:main<>floatabc<floatx,floaty>{intsum,a=2,b=5;{x=x+y;定sum=add<a,b>;return<x>;義┄}}main<>intadd<intx,inty>{floatsum,a=2.0,b=5.0;{x=x+y;定義sum=abc<a,b>;return<x>;語句}}說明:使用庫(kù)函數(shù),一般在文件開頭用#include命令即:#include"math.h"main〔

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論