四川大學(xué)教案-《高級(jí)語(yǔ)言程序設(shè)計(jì)I》_第1頁(yè)
四川大學(xué)教案-《高級(jí)語(yǔ)言程序設(shè)計(jì)I》_第2頁(yè)
四川大學(xué)教案-《高級(jí)語(yǔ)言程序設(shè)計(jì)I》_第3頁(yè)
四川大學(xué)教案-《高級(jí)語(yǔ)言程序設(shè)計(jì)I》_第4頁(yè)
已閱讀5頁(yè),還剩97頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

四川大學(xué)教案-《高級(jí)語(yǔ)言程序設(shè)計(jì)I》【首頁(yè)】課程名稱高級(jí)語(yǔ)言程序設(shè)計(jì)I《C語(yǔ)言程序設(shè)計(jì)(C99版)》授課專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)年級(jí)2006級(jí)課程編號(hào)30485640課程類型必修課校級(jí)公共課();基礎(chǔ)或?qū)I(yè)基礎(chǔ)課(<);專業(yè)課()選修課限選課();任選課()授課方式課堂講授(4);實(shí)踐課()考核方式考試N);考查()程學(xué)學(xué)數(shù)課教總時(shí)48(理論)+20(實(shí)踐)學(xué)分?jǐn)?shù)4學(xué)時(shí)分配課堂講授48學(xué)時(shí); 實(shí)踐課20學(xué)時(shí)教材名稱《C語(yǔ)言程序設(shè)計(jì)(C99版)》作者:陳良銀、游洪躍、李旭偉、胡大裟、謝汶、沈琳等,清華大學(xué)出版社,2006.10指定參考書BrianW.Kernighan,DennisM.Ritchie,TheCProgrammingLanguage[M],SecondEdition,1989OAndrewKoenig,CTrapsandPitfalls,Addison-WesleyLongman,Inc,1989,ISBN0-201-17928-8。AndrewKoenig著,高巍譯,C缺陷與陷阱(CTrapsandPitfalls),北京:人民郵電出版社(原出版社:AddisonWesley),2002.lloP.J.Plauger,TheStandardCLibrary,PrenticeHall,1992,ISBN0-13-131509-9.PetervanderLinden,ExpertCProgramming:DeepCSecrets,PrenticeHall,1994,ISBN0-13-177429-8.HerbertSchiIdt,CTheCompleteReference(FourthEdition),Team-Fly,Osborne/McGraw-Hi11,?2002ACMTrans,onProgramming[8]原著:SteveSummit翻譯:朱群英,孫云,C語(yǔ)言常見問(wèn)題集,0.9.4,2005.6AmericanNationalStandardsInstitute,AmericanNationalStandardforInformationSystems-ProgrammingLanguageC,ANSIX3.159-1989。BjarneStroustrup,THEC++PROGRAMMINGLANGUAGE,HigherEducationPressPearsonEducation,2002oInformationTechnologyIndustryCounci1(ITI),Programminglanguages-C,INTERNATIONALSTANDARDISO/IEC9899,ProcessedandadoptedbyASCtheNationalCommitteeforInformationTechnologyStandards(NCITS)andapprovedbyANSIasanAmericanNationa1Standard.DateofANSIApproval:5/22/2000,PublishedbyAmericanNationalStandardsInstitute,11West42ndStreet,NewYork,NewYork10036。INTERNATIONALSTANDARDISO/IEC9899,Secondedition,1999-12-01eSteveSummit,CProgrammingFAQs:FrequentlyAskedQuestions,Addison-Wesley,1995,ISBN0-201-84519-9.[ThebookversionofthisFAQ1ist;seealso/*scs/C-faq/book/Errata.html。KennethA.Reek著,徐波譯,C和指針(PointersonC),北京:人民郵電出版社(原出版社:PearsonEducation),2003.9OAlKelley,IraPohl著,麻梗毅譯,C語(yǔ)言解析教程(原書第四版)(CbyDissectionTheEssentialsofCProgrammingFourthEdition),北京:機(jī)械工業(yè)出版(原出版社:Addison-Wesley),2003.6H.M.Deitel,P.J.Deitel著,薛萬(wàn)鵬譯,C程序設(shè)計(jì)教程(原書第二版)(ChowtoprogramSecondEdition),北京:機(jī)械工業(yè)出版(原出版社:PrenticeHall),2004.7[16]冼鏡光編著,C語(yǔ)言名題精選百則技巧篇,北京:機(jī)械工業(yè)出版,2005.7ACMSIGPLANNotices[18]網(wǎng)冠科技編著,C語(yǔ)言時(shí)尚編程百例,,北京:機(jī)械工業(yè)出版,2004.5U.Manber.UsingInductiontoDesignAlgorithms,CommunicationsofACM,Vol.31(1988)[20]B.A.Chartres. Algonthm310, PrimeNumberGenerator, CommuicationsofACM. Vol. 10(1967)B.A.Chartres. Algonthm311, PrimeNumberGenerator, CommuicationsofACM. Vol. 10(1967)B.A.Chartres. Algonthm356, PrimeNumberGenerator, CommuicationsofACM. Vol. 10(1969)B.A.Chartres. Algonthm357, PrimeNumberGenerator, CommuicationsofACM. Vol. 10(1969)D.GriesandJ.Misra.AlinearSieveAlgorithmforFindingPrimeNumbers,CommuicationsofACM.Vol21(1978)D.G.Mairson.SomeNewUpperBoundsontheGenerationofPrimeNumbers,CommuicationsofACM.Vol20(1977)P.Pritchard.ASub1inearAdditiveSieveforFindingPrimeNumbers,CommuicationsofACM.Vol24(1981)U.Manber,UsingInductiontoDesignAlgorithms,CommuicationsofACM.Vol.31(1988)L.ChangandJ.F.Korsh.Canonica1CoinChangingandGreedySolution,CommuicationsofACM.Vol.23(1976)[29][美]NellDale,ChipWeems,MarkHeadington等編著,C++程序設(shè)計(jì)(第二版,影印版),高等教育出版社,2001?[30]譚浩強(qiáng),C程序設(shè)計(jì)(第三版),北京:清華大學(xué)出版社,2005o[31]李志蜀,向激光,李鍵吾,王凡,張露,郭新民,熊穎等,大學(xué)計(jì)算機(jī)基礎(chǔ)(第二版),北京:高等教育出版社,2005.9?[32]李濤,游洪躍,陳良銀,李琳,C++:面向?qū)ο蟪绦蛟O(shè)計(jì),北京:高等教育出版社,2006.2o[33][美]BeckZaratian著,VisualC++6.OProgrammer7sGuide,北京希望電腦公司,1998。[34]程序員大本營(yíng),/[35]編程愛好者,/C語(yǔ)言編程風(fēng)格指導(dǎo)FredRichard,C/C++ProgrammingStyleGuidelines

授課教師謝汶職稱副教授單位計(jì)算機(jī)學(xué)院授課教師胡大裟職稱講師單位計(jì)算機(jī)學(xué)院授課教師沈琳職稱副教授單位計(jì)算機(jī)學(xué)院授課教師陳良銀職稱副教授單位計(jì)算機(jī)學(xué)院授課時(shí)間2006.9-2007.1注:表中()選項(xiàng)請(qǐng)打“V目錄TOC\o"1-5"\h\z第1章基礎(chǔ)知識(shí)(3學(xué)時(shí))第1次課 5第2章C語(yǔ)言的基本要素(9學(xué)時(shí))第2次課 10第2章C語(yǔ)言的基本要素(9學(xué)時(shí))第3次課 14第2章C語(yǔ)言的基本要素(9學(xué)時(shí))第4次課 18第3章變量名、數(shù)據(jù)類型、運(yùn)算符和表達(dá)式(6學(xué)時(shí))第5次課 22第3章變量名、數(shù)據(jù)類型、運(yùn)算符和表達(dá)式(6學(xué)時(shí))第6次 29第4章C程序基本控制結(jié)構(gòu)(3學(xué)時(shí))第7次課 37第5章函數(shù)(6學(xué)時(shí)) 46第5章函數(shù)(6學(xué)時(shí))第9次課 52第6章數(shù)組和指針(6學(xué)時(shí))第10次課 59第6章數(shù)組和指針(6學(xué)時(shí))第11次課 65第7章遞歸(3學(xué)時(shí))第12次課 71第8章結(jié)構(gòu)、聯(lián)合、位運(yùn)算和枚舉類型(3學(xué)時(shí))第13次課 76第9章預(yù)處理命令(3學(xué)時(shí))第14次課 81第10章文件(3學(xué)時(shí))第15次課 86第11章高級(jí)話題(3學(xué)時(shí))第16次課 91四川大學(xué)教案【理、工科】1周次第周、第1次課 備注鬻第1章基礎(chǔ)知識(shí)(3學(xué)時(shí))第1次課S理論課N);實(shí)驗(yàn)課();實(shí)習(xí)()鬣?學(xué)教學(xué)目的及要求[教學(xué)要求]教學(xué)目的及要求1、了解計(jì)算機(jī)系統(tǒng)組成、數(shù)據(jù)在機(jī)內(nèi)表示;時(shí)間

分配2、掌握流程圖表示算法時(shí)間

分配教學(xué)內(nèi)容提要[教學(xué)內(nèi)容]計(jì)算機(jī)系統(tǒng)硬件:五大功能部件 45軟件:圖1.5總:圖1.1計(jì)算機(jī)的基本工作原理存儲(chǔ)程序的原理;內(nèi)存地址概念;內(nèi)存分區(qū):程序區(qū)、數(shù)據(jù)區(qū)(靜態(tài)、動(dòng)態(tài))重:內(nèi)存地址3計(jì)算機(jī)語(yǔ)言1.4數(shù)據(jù)在計(jì)算機(jī)內(nèi)的表示1、計(jì)數(shù)制:基、位權(quán);十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制2、不同進(jìn)制轉(zhuǎn)換: 45十進(jìn)制轉(zhuǎn)換成二進(jìn)制(八、十六);二進(jìn)制(八、十六)轉(zhuǎn)換成十進(jìn)制;二進(jìn)制與八、十六進(jìn)制轉(zhuǎn)換;舉例:125——1111101B125——0175125——0X7D板書,豎式形式3、機(jī)中表示:補(bǔ)碼:原碼——反碼——補(bǔ)碼(正數(shù)/負(fù)數(shù))舉例:十進(jìn)制數(shù) 真值 原碼 反碼 補(bǔ)碼+114-89定點(diǎn)數(shù)、浮點(diǎn)數(shù)字節(jié)數(shù)、表示范圍舉例:表1、3,符號(hào)位“1”(負(fù)數(shù)),補(bǔ)碼取反,末位+1——>原碼二進(jìn)制邏輯運(yùn)算:與、或、非、異或運(yùn)算規(guī)則(真值表)表1、4;表1、5;表1、6;表1、7ASCII碼編碼規(guī)則附錄B5算法和數(shù)據(jù)結(jié)構(gòu)4、算術(shù)、邏輯運(yùn)算、真值表 45二進(jìn)制算術(shù)運(yùn)算:無(wú)符號(hào)數(shù)加、減、乘、除運(yùn)算規(guī)則二進(jìn)制邏輯運(yùn)算:與、或、非、異或運(yùn)算規(guī)則(真值表)表1、4;表1、5;表1、6:表1、7ASCII碼編碼規(guī)則附錄B算法和數(shù)據(jù)結(jié)構(gòu)算法及其特點(diǎn)(5點(diǎn))數(shù)據(jù)結(jié)構(gòu)流程圖表示算法:(重點(diǎn))符號(hào):圖1.13(a)舉例日常起居過(guò)程流程圖表示圖1、13C語(yǔ)言標(biāo)準(zhǔn)簡(jiǎn)介C89C99——新增部分C和C++的不同C89——C++兼容C99——C++不兼容C語(yǔ)言編程風(fēng)格簡(jiǎn)介C編程風(fēng)格C程序書寫風(fēng)格:縮進(jìn)式;適當(dāng)注釋;變量名取有意義的名字,小寫;常量名大寫;函數(shù)名首字母大寫。本章總結(jié)數(shù)據(jù)在機(jī)內(nèi)表示、流程圖數(shù)據(jù)在機(jī)內(nèi)表示教學(xué)重點(diǎn)與難點(diǎn)習(xí)題6,10討論、練習(xí)、作業(yè)教學(xué)手講授,討論,啟發(fā)式提問(wèn)段BrianW.Kernighan,DennisM.Ritchie,TheCProgrammingLanguage[M],SecondEdition,1989。AndrewKoenig著,高巍譯,C缺陷與陷阱(CTrapsandPitfalls),北京:人民郵電出版社(原出版社:AddisonWesley),2002.110HerbertSchildt,CTheCompleteReference(FourthEdition),Team-Fly,參考資,, Osborne/McGraw-Hillo2002料[4]原著:SteveSummit翻譯:朱群英,孫云,C語(yǔ)言常見問(wèn)題集,0.9.4,2005.6SteveSummit,CProgrammingFAQs:FrequentlyAskedQuestions,Addison-Wesley,1995,ISBN0-201-84519-9.[ThebookversionofthisFAQlist;seealso/~scs/C-faq/book/Errata.html°KennelhA.Reek著,徐波譯,C和指針(PointersonC),北京:人民郵電出版社(原出版社:PearsonEducation),2003.9OAlKelley,IraPohl著,麻桂毅譯,C語(yǔ)言解析教程(原書第四版)(CbyDissectionTheEssentialsofCProgrammingFourthEdition),北京:機(jī)械工業(yè)出版(原出版社:Addison-Wesley),2003.6H.M.Deitel,P.J.Deitel著,薛萬(wàn)鵬譯,C程序設(shè)計(jì)教程(原書第二版)(ChowtoprogramSecondEdition),北京:機(jī)械工業(yè)出版(原出版社:PrenticeHall),2004.7[9]冼鏡光編著,C語(yǔ)言名題精選百則技巧篇,北京:機(jī)械工業(yè)出版,2005.7ACMSIGPLANNotices[11]網(wǎng)冠科技編著,C語(yǔ)言時(shí)尚編程百例,,北京:機(jī)械工業(yè)出版,2004.5[11]譚浩強(qiáng),C程序設(shè)計(jì)(第三版),北京:清華大學(xué)出版社,2005o[12][美]BeckZaratian著,VisualC++6.0ProgrammerzsGuide,北京希望電腦公司,1998O[13]程序員大本營(yíng),/[14]編程愛好者,/C語(yǔ)言編程風(fēng)格指導(dǎo)FredRichard,C/C++ProgrammingStyleGuidelines注:教案按授課次數(shù)填寫、每次授課均應(yīng)填寫一份。重復(fù)班授課可不另填寫教案。第頁(yè)要提要提容內(nèi)次節(jié)稱課式學(xué)周章名接方教學(xué)目的及要求教四川大學(xué)教案【理、工科】2第周、第2次課第2章C語(yǔ)言的基本要素(9學(xué)時(shí))第2次課理論課N);實(shí)驗(yàn)課();實(shí)習(xí)()觴/[教學(xué)要求]讓初學(xué)者快速建立對(duì)C語(yǔ)言程序設(shè)計(jì)的整體概念了解C語(yǔ)言變量、常量、運(yùn)算符、表達(dá)式、控制流、函數(shù)等基本要素[教學(xué)內(nèi)容]C語(yǔ)言程序的開發(fā)過(guò)程編輯——編譯——連接——運(yùn)行第一個(gè)C語(yǔ)言程序例題2.1;例題2.2;從例題引出內(nèi)容:.注釋.main。函數(shù).函數(shù)參數(shù)、返回值(例2、2中max函數(shù)).函數(shù)體運(yùn)行過(guò)程變量定義、算術(shù)表達(dá)式、賦值語(yǔ)句、while語(yǔ)句例2、3變量定義語(yǔ)句、強(qiáng)制定義;算術(shù)表達(dá)式概念;賦值語(yǔ)句形式;while語(yǔ)句形式、執(zhí)行流程、功能。for循環(huán)語(yǔ)句例2、3For語(yǔ)句形式、功能;例題2.4o其中的For語(yǔ)句執(zhí)行步驟。2.5常量例2、3中的top、bottem直接用0、100——常數(shù)常數(shù)——>常量:用#define定義;格式;舉例:例2、5用const定義常量例:constintT0P=0;454545教學(xué)重點(diǎn)與難點(diǎn)重點(diǎn):概念C程序構(gòu)成、變量、常量、運(yùn)算符、表達(dá)式、控制流、賦值語(yǔ)句、while語(yǔ)句for語(yǔ)句、輸入、輸出語(yǔ)句、函數(shù)、指針、數(shù)組、外部變量難點(diǎn):函數(shù)指針習(xí)題1、2、3討論、紡習(xí)、作業(yè)教學(xué)手段參考資料講授,討論,啟發(fā)式提問(wèn)BrianW.Kernighan,DennisM.Ritchie,TheCProgrammingLanguage[M],SecondEdition,1989OAndrewKoenig著,高巍譯,C缺陷與陷阱(CTrapsandPitfCIs),北京:人民郵電出版社(原出版社:AddisonWesley),2002.llo⑶HerbertSchiIdt,CTheCompleteReference(FourthEdition),Team-Fly,Osborne/McGraw-Hi11o2002[4]原著:SteveSummit翻譯:朱群英,孫云,C語(yǔ)言常見問(wèn)題集,0.9.4,2005.6[5]SteveSummit,CProgrammingFAQs:FrequentlyAskedQuestions,Addison-Wesley,1995,ISBN0-201-84519-9.[ThebookversionofthisFAQlist;seealso/*scs/C-faq/book/Errata.html。KennethA.Reek著,徐波譯,C和指針(PointersonC),北京:人民郵電出版社(原出版社:PearsonEducation),2003.9。AlKelley,IraPohl著,麻梗毅譯,C語(yǔ)言解析教程(原書第四版)(CbyDissectionTheEssentialsofCProgrammingFourthEdition),北京:機(jī)械工業(yè)出版(原出版社:Addison-Wesley),2003.6H.M.Deitel,P.J.Deitel著,薛萬(wàn)鵬譯,C程序設(shè)計(jì)教程(原書第二版)(ChowtoprogramSecondEdition),北京:機(jī)械匚業(yè)出版(原出版社:PrenticeHall),2004.7[9]冼鏡光編著,C語(yǔ)言名題精選百則技巧篇,北京:機(jī)械工業(yè)出版,2005.7ACMSIGPLANNotices[11]網(wǎng)冠科技編著,C語(yǔ)言時(shí)尚編程百例,,北京:機(jī)械工業(yè)出版,2004.5[11]譚浩強(qiáng),C程序設(shè)計(jì)(第三版),北京:清華大學(xué)出版社,2005。[12][美]BeckZaratian著,VisualC++6.0Programmer,sGuide,北京希望電腦公司,1998。[13]程序員大本營(yíng),/[14]編程愛好者,/C語(yǔ)言編程風(fēng)格指導(dǎo)FredRichard,C/C++ProgrammingStyleGuidelines注:教案按授課次數(shù)填寫、每次授課均應(yīng)填寫一份。重復(fù)班授課可不另填寫教案。第頁(yè)要提要提容內(nèi)次節(jié)稱課式學(xué)周章名接方教學(xué)目的及要求教四川大學(xué)教案【理、工科】3第周、第3次課第2章C語(yǔ)言的基本要素(9學(xué)時(shí))第3次課理論課N);實(shí)驗(yàn)課();實(shí)習(xí)()觴柒[教學(xué)要求]讓初學(xué)者快速建立對(duì)C語(yǔ)言程序設(shè)計(jì)的整體概念了解c語(yǔ)言變量、常量、運(yùn)算符、表達(dá)式、控制流、函數(shù)等基本要素45454545[教學(xué)內(nèi)容]2.6字符的輸入和輸出操作getchar(^Dputchar()函數(shù)例題457;scanf()和printf()函數(shù);gets()和puts()函數(shù);例題2.8;例題2.9;例題2.10例題2.11:算法:(祥講:?jiǎn)卧~計(jì)數(shù))算法:word出現(xiàn)時(shí)記數(shù):流程圖描述算法語(yǔ)句:++icountrow;If0中的或II;ch;State的使用 標(biāo)志單詞計(jì)數(shù)另例:word結(jié)束時(shí)記數(shù):算法(流程圖)程序。2.7函數(shù)例題2.12Factorial函數(shù)函數(shù)聲明語(yǔ)句:形式;作用函數(shù)定義一般形式;函數(shù)參數(shù);函數(shù)類型。教學(xué)重點(diǎn)與難點(diǎn)重點(diǎn):概念C程序構(gòu)成、變量、常量、運(yùn)算符、表達(dá)式、控制流、賦值語(yǔ)句、while語(yǔ)句for語(yǔ)句、輸入、輸出語(yǔ)句、函數(shù)、指針、數(shù)組、外部變量難點(diǎn):函數(shù)指針習(xí)題6、9、10討論、紡習(xí)、作業(yè)教學(xué)手段參考資料講授,討論,啟發(fā)式提問(wèn)BrianW.Kernighan,DennisM.Ritchie,TheCProgrammingLanguage[M],SecondEdition,1989OAndrewKoenig著,高巍譯,C缺陷與陷阱(CTrapsandPitfCIs),北京:人民郵電出版社(原出版社:AddisonWesley),2002.llo⑶HerbertSchiIdt,CTheCompleteReference(FourthEdition),Team-Fly,Osborne/McGraw-Hi11o2002[4]原著:SteveSummit翻譯:朱群英,孫云,C語(yǔ)言常見問(wèn)題集,0.9.4,2005.6[5]SteveSummit,CProgrammingFAQs:FrequentlyAskedQuestions,Addison-Wesley,1995,ISBN0-201-84519-9.[ThebookversionofthisFAQlist;seealso/*scs/C-faq/book/Errata.html。KennethA.Reek著,徐波譯,C和指針(PointersonC),北京:人民郵電出版社(原出版社:PearsonEducation),2003.9。AlKelley,IraPohl著,麻梗毅譯,C語(yǔ)言解析教程(原書第四版)(CbyDissectionTheEssentialsofCProgrammingFourthEdition),北京:機(jī)械工業(yè)出版(原出版社:Addison-Wesley),2003.6H.M.Deitel,P.J.Deitel著,薛萬(wàn)鵬譯,C程序設(shè)計(jì)教程(原書第二版)(ChowtoprogramSecondEdition),北京:機(jī)械匚業(yè)出版(原出版社:PrenticeHall),2004.7[9]冼鏡光編著,C語(yǔ)言名題精選百則技巧篇,北京:機(jī)械工業(yè)出版,2005.7ACMSIGPLANNotices[11]網(wǎng)冠科技編著,C語(yǔ)言時(shí)尚編程百例,,北京:機(jī)械工業(yè)出版,2004.5[11]譚浩強(qiáng),C程序設(shè)計(jì)(第三版),北京:清華大學(xué)出版社,2005。[12][美]BeckZaratian著,VisualC++6.0Programmer,sGuide,北京希望電腦公司,1998。[13]程序員大本營(yíng),/[14]編程愛好者,/C語(yǔ)言編程風(fēng)格指導(dǎo)FredRichard,C/C++ProgrammingStyleGuidelines注:教案按授課次數(shù)填寫、每次授課均應(yīng)填寫一份。重復(fù)班授課可不另填寫教案。第頁(yè)要提要提容內(nèi)次節(jié)稱課式學(xué)周章名接方教學(xué)目的及要求教四川大學(xué)教案【理、工科】4第周、第4次課第2章C語(yǔ)言的基本要素(9學(xué)時(shí))第4次課理論課N);實(shí)驗(yàn)課();實(shí)習(xí)()觴柒[教學(xué)要求]讓初學(xué)者快速建立對(duì)C語(yǔ)言程序設(shè)計(jì)的整體概念了解c語(yǔ)言變量、常量、運(yùn)算符、表達(dá)式、控制流、函數(shù)等基本要素[教學(xué)內(nèi)容]函數(shù)參數(shù)——復(fù)制傳值 45例題2.13參數(shù)傳遞過(guò)程傳遞;Pow()第2版說(shuō)明形式參數(shù)不影響實(shí)際參數(shù)字符數(shù)組和字符指針例題2.14字符數(shù)組定義;例:inta[10];數(shù)組名a,類型int,長(zhǎng)度10,元素:a[0廠a[9]使用,見2、14字符指針:指針概念; 45定義;例;charch;int*pl,*p2;pl=&ch;p2=pl;(結(jié)合內(nèi)存形式逐條解釋)使用:見2、1410整型數(shù)組例題2.15整型數(shù)組的定義整型數(shù)組的使用 45例題2.15中多分支if語(yǔ)句(例題2.15中出現(xiàn))形式、功能2.11外部變量及變量的作用域例題2.16外部量:maxline,line,longest著重maxline的使用分析本章總結(jié)上機(jī):實(shí)驗(yàn)一45教學(xué)重點(diǎn)與難點(diǎn)重點(diǎn):概念C程序構(gòu)成、變量、常量、運(yùn)算符、表達(dá)式、控制流、賦值語(yǔ)句、while語(yǔ)句for語(yǔ)句、輸入、輸出語(yǔ)句、函數(shù)、指針、數(shù)組、外部變量難點(diǎn):函數(shù)指針討論、紛習(xí)、作業(yè)教學(xué)手段參考資料一、編程計(jì)算y=2x(x從0~10)輸出x、y,最后輸出“***姓名***”(用2而printf語(yǔ)句)。(參考p43例2.3,p69powO)二、從鍵盤輸入一段英文,輸出其中的全部單詞,每行輸出一個(gè)單詞。(參考p56例2.7,p63例2.11)講授,討論,啟發(fā)式提問(wèn)BrianW.Kernighan,DennisM.Ritchie,TheCProgrammingLanguage[M],SecondEdition,1989。AndrewKoenig著,高巍譯,C缺陷與陷阱(CTrapsandPitfCIs),北京:人民郵電出版社(原出版社:AddisonWesley),2002.lloHerbertSchiIdt,CTheCompleteReference(FourthEdition),Team-Fly,Osborne/McGraw-Hi1102002[4]原著:SteveSummit翻譯:朱群英,孫云,C語(yǔ)言常見問(wèn)題集,0.9.4,2005.6[5]SteveSummit,CProgrammingFAQs:FrequentlyAskedQuestions,Addison-Wesley,1995,ISBN0-201-84519-9.[ThebookversionofthisFAQ1ist;seealso/*scs/C-faq/book/Errata.htmlo[6]KennethA.Reek著,徐波譯,C和指針(PointersonC),北京:人民郵電出版社(原出版社:PearsonEducation),2003.9。AlKelley,IraPohl著,麻梗毅譯,C語(yǔ)言解析教程(原書第四版)(CbyDissectionTheEssentialsofCProgrammingFourthEdition),北京:機(jī)械工業(yè)出版(原出版社:Addison-Wesley),2003.6ILM.Deitel,P.J.Deitel 薛萬(wàn)鵬譯,C程序設(shè)計(jì)教程(原書第二版)(ChowtoprogramSecondEdition),北京:機(jī)械工業(yè)出版(原出版社:PrenticeHall),2004.7[9]冼鏡光編著,C語(yǔ)言名題精選百則技巧篇,北京:機(jī)械工業(yè)出版,2005.7ACMSIGPLANNotices[11]網(wǎng)冠科技編著,C語(yǔ)言時(shí)尚編程百例,,北京:機(jī)械工業(yè)出版,2004.5[11]譚浩強(qiáng),C程序設(shè)計(jì)(第三版),北京:清華大學(xué)出版社,2005o[12][美]BeckZaratian著,VisualC++6.0Programmer,sGuide,北京希望電腦公司,1998。[13]程序員大本營(yíng),/[14]編程愛好者,/C語(yǔ)言編程風(fēng)格指導(dǎo)FredRichard,C/C++ProgrammingStyleGuidelines注:教案按授課次數(shù)填寫、每次授課均應(yīng)填寫一份。重復(fù)班授課可不另填寫教案。第頁(yè)

四川大學(xué)教案【理、工科】1周次第周、第5次課備注章節(jié)名稱第3章變量名、數(shù)據(jù)類型、運(yùn)算符和表達(dá)式(6學(xué)時(shí))第5次課授課方式理論課N);實(shí)驗(yàn)課();實(shí)習(xí)()教學(xué)時(shí)數(shù)3學(xué)時(shí)教學(xué)目的及要求[教學(xué)要求]1、掌握C的數(shù)據(jù)類型2、掌握整型、實(shí)型、字符型數(shù)據(jù)的常量及變量3、掌握C語(yǔ)言中的各種運(yùn)算符4、掌握運(yùn)算符的優(yōu)先級(jí)與結(jié)合性5、掌握位運(yùn)算符及表達(dá)式的運(yùn)算規(guī)則教學(xué)內(nèi)容提要時(shí)間分配[教學(xué)內(nèi)容]3.1C語(yǔ)言的變量命名字符集、變量命名、關(guān)鍵字203.2C語(yǔ)言的基本數(shù)據(jù)類型及其大小C語(yǔ)言的數(shù)據(jù)類型豐富,C的四種基本數(shù)據(jù)類型:整型、字符型、單精度實(shí)型、雙精度實(shí)型10常量與變量常量:其值不能被改變的量。兩種:一般常量和符號(hào)常量.直接常量(字面常量):整型常量:如12、0、-3等實(shí)型常量:如4.5、-1.234等字符常量:如'a,、'1,等,用單引號(hào)表示,占一個(gè)字節(jié);字符串常量:如“a"、“abc”、“1”,用雙引號(hào)表示。.符號(hào)常量:符號(hào)常量即是用一個(gè)標(biāo)識(shí)符來(lái)代替一個(gè)常量:符號(hào)常借助于預(yù)處理命令define來(lái)實(shí)現(xiàn);15

define命令格式是: #define標(biāo)識(shí)符字符串如:ttdefinePI3.1415926535#defineSTRING“ABCD”①習(xí)慣上,符號(hào)常量用大寫字母表示;②定義符號(hào)常量時(shí),不能以“;”結(jié)束;③一個(gè)#define占一行,且要從第一列開始書寫;④一個(gè)源程序文件中可含有若干個(gè)define命令,不同的define命令中指定的“標(biāo)識(shí)符”不能相同;變量:在程序運(yùn)行過(guò)程中,其值會(huì)發(fā)生變化。1、每個(gè)變量必須有一個(gè)名字,變量名是標(biāo)識(shí)符。2、標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)數(shù)據(jù)對(duì)象,是一個(gè)數(shù)據(jù)對(duì)象的名字。3、命名規(guī)則:以字母或下劃線開始,后跟字符、數(shù)字或下劃線。例:xl,.average,lotus_l_2_3,#abc,Ifs,M.D.Jhon1、 變量名不能是關(guān)鍵字(即保留字,是c編譯程序中保留使用的標(biāo)識(shí)符。如:auto、break、char、do、else、if、int等)2、怎樣定義變量?inti,z,h;charc,ch='c,;floata=3.14,b=2.71,x,y:注意:變量要先定義后使用!例:main(){inta,b,c,sum;a=3;b=-4; c=9;sum=a+b+c;printf(''\nsum=%d,,>sum);a=16;b=56;c=-98;sum=a+b+c;printf(,'\nsum=%d,/,sum);}一、整型數(shù)據(jù)1、整型常量的表示方法十進(jìn)制如:123,-456,0八進(jìn)制數(shù)如:0123,-011 (以0開頭的數(shù))十六進(jìn)制數(shù)如:0x123,-0x12,OxABC(以O(shè)x開頭的)2、整型變量45

整型數(shù)據(jù)在內(nèi)存中以二進(jìn)制形式存放,每一個(gè)整型變量在內(nèi)存中占2個(gè)字節(jié)。例:定義整型變量i=10和j=-10的存放形式。整型變量的分類:基本型int、短整型short、長(zhǎng)整型long、無(wú)符號(hào)型unsigned整型變量的定義對(duì)變量的定義,一般放在函數(shù)體開頭部分的聲明部分(也可放在函數(shù)中某一分程序內(nèi))例:^include<stdio.h>main(){inta,b,c,d:unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(''a+u=%d,b+u=%d\n”,c,d);}整型數(shù)據(jù)的溢出一個(gè)int型變量的最大允許值為32767,如果再加1,其結(jié)果不是32768,而是-32768。即''溢出"。整型常量的類型①一個(gè)整數(shù)在-32768~32767內(nèi),則為int型,可以賦給int型和longint型變量。②一個(gè)整數(shù)超過(guò)上述范圍,在-2147483648~2147483647內(nèi),則為longint型,可賦給longint型變量。③如果shortint和int型數(shù)據(jù)在內(nèi)存中占據(jù)長(zhǎng)度相同,則其范圍與int相同。④常量無(wú)unsigned型。但可將非負(fù)且在取值范圍內(nèi)的整數(shù)賦給unsigned型變量。⑤在一個(gè)整常量后面加一個(gè)字母1或L,則認(rèn)為是longint型常量。二、實(shí)型數(shù)據(jù)1、實(shí)型常量的表示方法(1)、十進(jìn)制浮點(diǎn)數(shù)如:0.123,.456,0.0,123.,123.0整數(shù)部分和小數(shù)部分都可省,但不能同時(shí)省(2)、指數(shù)形式如:123e3,123E3代表123X1()3指數(shù)部分為整常數(shù);尾數(shù)部分可以是整常數(shù),也可以是實(shí)常數(shù);尾數(shù)部分和指數(shù)部分均不可省。E10,100.el5.2,.e5均為不合法的浮點(diǎn)數(shù)。2、實(shí)型變量實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式

一個(gè)實(shí)型數(shù)據(jù)一般在內(nèi)存中占4個(gè)字節(jié)(32位)。實(shí)型數(shù)據(jù)是按照指數(shù)形式存儲(chǔ)的。實(shí)型變量的分類:?jiǎn)尉萬(wàn)loat、雙精度double,長(zhǎng)雙精度longdouble_三、字符型數(shù)據(jù)1,字符常量括在一對(duì)單引號(hào)中的一個(gè)字符(單引號(hào)僅作界限符),'a,、'X,為字符常量;一個(gè)字符常量占1B,存放的是字符的ASCII碼值。轉(zhuǎn)義字符①以'\,開頭,后跟一個(gè)約定的字符或所要表示字符的十六進(jìn)制(或者八進(jìn)制)的編碼:②'\0,表示編碼值為0的字符,即NULL,它與數(shù)值常數(shù)。是等同的;③書中P48列出了常用的轉(zhuǎn)義字符:2、字符變量字符變量用來(lái)存放字符常量,只能放?個(gè)字符。例:charcl='a*,c2='A,;一個(gè)字符變量在內(nèi)存中占一個(gè)字節(jié)。3、字符數(shù)據(jù)的存放形式及使用方法將字符常量放到字符變量中,實(shí)際上是將其ASCII代碼放到變量所占的存儲(chǔ)單元中。如:'a,在內(nèi)存存放的是二進(jìn)制數(shù)01100001;'A,在內(nèi)存存放的是二進(jìn)制數(shù)01000001。在0~255之間字符型數(shù)據(jù)和整型數(shù)據(jù)可以通用。即一個(gè)字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出,還可以互相賦值。例:main(){charcl,c2;cl=97;c2=98;printf(''%c%c",cl,c2); printf(''%d%d\n",cl,c2);cl=cl—32;c2=c2—('az—*Az);printf(''%c%c\nz,,cl,c2); }運(yùn)行結(jié)果:ab9798AB四、字符串常量1. 括在一對(duì)雙引號(hào)中的0個(gè)或多個(gè)(除'與"自身之外)C語(yǔ)言字符集中的任何字符及轉(zhuǎn)義字符組成;雙引號(hào)僅作界限符;、'Clanguageprogramming"、、'a\\n"、''#123"、''"等為字符串45

常量;''Thedentistsaid:\zopenwide、'"''Thepathis\\root\\user\\device"、'\077paytoattentionofthis!,z''China”在存儲(chǔ)器中實(shí)際占用6個(gè)字節(jié):、'a"與'a,是不同的(表示形式不同、存儲(chǔ)方式不同、后者可像整數(shù)那樣參加運(yùn)算,前者不能);但應(yīng)注意的是,在寫字符串常量時(shí)沒有必要寫、'China\0",而只需寫"China";雖然C字符串后末尾的NULL字符屬字符串的內(nèi)容,但是NULL字符并不被顯示或輸出;C語(yǔ)言的字符串常量是按數(shù)組處理的。書寫一個(gè)很長(zhǎng)的字符串常量時(shí),如果在一個(gè)書寫行內(nèi)寫不下,可跨行書寫。如:''Astringisasequenceofcharacters\surroundedbydoublequotes."五、變量賦初值在定義變量時(shí)對(duì)變量進(jìn)行賦值稱為變量的初始化;格式:類型說(shuō)明符變量1=值1,變量2=值2,….;如:inta=3,b=4,c=5;floatx=3.4,y=0.75;charchl='K‘,ch2='P';注意:①inta,b,c=5;只對(duì)c初始化,值為5;②對(duì)兒個(gè)變量賦以同一個(gè)初值時(shí),inta=b=c=5;是非法的;inta=5,b=5,c=5;是合法的。(注:a=b=c=5;是合法的賦值語(yǔ)句)說(shuō)明:對(duì)變量賦初值,僅表示該變量在程序運(yùn)行過(guò)程中執(zhí)行本函數(shù)時(shí)的初值。課堂小結(jié)C的基本數(shù)據(jù)類型int、float,double,char基本數(shù)據(jù)類型的常量表示、變量定義,及不同類型的數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式

a學(xué)重點(diǎn)與難點(diǎn)基本數(shù)類型的常量和變量不同類型的數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式C語(yǔ)言中各種運(yùn)算符的使用混合表達(dá)式中運(yùn)算符的運(yùn)算順序位運(yùn)算符的運(yùn)算規(guī)則及用途位運(yùn)算表達(dá)式的含義i論、練習(xí)作業(yè)習(xí)題1,2,3,4,5學(xué)手段講授,討論,啟發(fā)式提問(wèn)1BrianW.Kernighan,DennisM.Ritchie,TheCProgrammingLanguage[M],SecondEdition,1989OAndrewKoenig著,高巍譯,C缺陷與陷阱(CTrapsandPitfalIs),北京:人民郵電出版社(原出版社:AddisonWesley),2002.110HerbertSchiIdt,CTheCompleteReference(FourthEdition),Team-Fly,Osborne/McGraw-Hi11o2002[4]原著:SteveSummit翻譯:朱群英,孫云,C語(yǔ)言常見問(wèn)題集,0.9.4,2005.6SteveSummit,CProgrammingFAQs:FrequentlyAskedQuestions,Addison-Wesley,1995,ISBN0-201-84519-9.[ThebookversionofthisFAQ1ist;seealso/?scs/C-faq/book/Errata.html0KennethA.Reek著,徐波譯,C和指針(PointersonC),北京:人民郵電出版社(原出版社:PearsonEducation),2003.9OAlKelley,IraPohl著,麻樓毅譯,C語(yǔ)言解析教程(原書第四版)(CbyDissectionTheEssentialsofCProgrammingFourthEdition),北京:機(jī)械工業(yè)出版(原出版社:Addison-Wesley),2003.6H.M.Deitel,P.J.Deitel著,薛萬(wàn)鵬譯,C程序設(shè)計(jì)教程(原書第二版)(ChowtoprogramSecondEdition),北京:機(jī)械工業(yè)出版(原出版社:PrenticeHall),2004.7[9]冼鏡光編著,C語(yǔ)言名題精選百則技巧篇,北京:機(jī)械工業(yè)出版,2005.7ACMSIGPLANNotices[11]網(wǎng)冠科技編著,C語(yǔ)言時(shí)尚編程百例,,北京:機(jī)械工業(yè)出版,2004.5[11]譚浩強(qiáng),C程序設(shè)計(jì)(第三版),北京:清華大學(xué)出版社,2005o[12][美]BeckZaratian著,VisualC++6.0ProgrammerzsGuide,北京希望電腦公司,1998。[13]程序員大本營(yíng),/[14]編程愛好者,/C語(yǔ)言編程風(fēng)格指導(dǎo)FredRichard,C/C++ProgrammingStyleGuidelines注:教案按授課次數(shù)填寫、每次授課均應(yīng)填寫一份。重復(fù)班授課可不另填寫教案。第頁(yè)

四川大學(xué)教案【理、工科】1周次第周、第6次課備注章節(jié)名稱第3章變量名、數(shù)據(jù)類型、運(yùn)算符和表達(dá)式(6學(xué)時(shí))第6次授課方式理論課N);實(shí)驗(yàn)課();實(shí)習(xí)()教學(xué)時(shí)數(shù)3學(xué)時(shí)教學(xué)目的及要求[教學(xué)要求]1、掌握C的數(shù)據(jù)類型2、掌握整型、實(shí)型、字符型數(shù)據(jù)的常量及變量3、掌握C語(yǔ)言中的各種運(yùn)算符4、掌握運(yùn)算符的優(yōu)先級(jí)與結(jié)合性5、掌握位運(yùn)算符及表達(dá)式的運(yùn)算規(guī)則教學(xué)內(nèi)容提要時(shí)間分配[教學(xué)內(nèi)容]5運(yùn)算符和表達(dá)式一、賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符:=類型轉(zhuǎn)換規(guī)則:把賦值運(yùn)算符右邊表達(dá)式的數(shù)據(jù)類型轉(zhuǎn)換成左邊對(duì)象的類型。(1)實(shí)型賦給整型變量時(shí),舍去實(shí)數(shù)的小數(shù)部分。(2)整型賦給實(shí)型變量時(shí),數(shù)值不變,以浮點(diǎn)形式存儲(chǔ)。(3)一個(gè)較短的有符號(hào)的int型數(shù)據(jù)轉(zhuǎn)換成一個(gè)較長(zhǎng)的有符號(hào)int型數(shù)據(jù)總是進(jìn)行符號(hào)擴(kuò)展,以保證數(shù)據(jù)的正確性;如:a、b分別為8位、16位整型數(shù)據(jù),則執(zhí)行b=a后:11111110(-2)轉(zhuǎn)換后的結(jié)果:1111111111111110(-2)(4)一個(gè)較長(zhǎng)的有符號(hào)int型數(shù)據(jù)轉(zhuǎn)換成一個(gè)較短的有符號(hào)int型數(shù)據(jù)時(shí)把較長(zhǎng)的有符號(hào)int型數(shù)據(jù)的高位部分截去;如:設(shè)a為8位,b為16位,則執(zhí)行a=b后,若000000000000111145

轉(zhuǎn)換后的結(jié)果 00001111b: 1111111111110001 (-15)轉(zhuǎn)換后的結(jié)果 11110001 (-15)b: 1111111100000000 (-128)轉(zhuǎn)換后的結(jié)果 00000000 (0)3、復(fù)合的賦值運(yùn)算符在''="之前加上其他運(yùn)算符,可構(gòu)成復(fù)合運(yùn)算符x+=y等價(jià)于x=x+ya%=b+c/d等價(jià)于a=a%(b+c/d)C中10種復(fù)合賦值運(yùn)算符:+=、-=、*=、/=、%=、?=,>>=、&=、~=、|=4、賦值表達(dá)式:〈變量X賦值運(yùn)算符X表達(dá)式/值〉如:main(){inta,b,c,d;a=(a=100)+(b=30)-b*5;}嵌套賦值表達(dá)式:el=e2=...=en,如:a=b=c=d=100等價(jià)于a=(b=(c=(d=100)))el,e2,…,en不必具有相同的數(shù)據(jù)類型例:當(dāng)a=12時(shí),a+=a-=a*a求解結(jié)果?先“a-=a*a”的運(yùn)算,a=a-a*a=-132;再進(jìn)行“a+=-132”的運(yùn)算,a=a+(-l32)=-264。二、算術(shù)運(yùn)算符和算術(shù)表達(dá)式1、基本的算術(shù)運(yùn)算符*、/、% +、一 左結(jié)合性2、算術(shù)表達(dá)式用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(操作數(shù))連接起來(lái)的、符合C語(yǔ)法規(guī)則的式子稱為算術(shù)表達(dá)式。如:('a'-b*c/(d+e)+sin(3.14/2+f))-3.14*g*g*不能省,*、/不能寫成另外的符號(hào);數(shù)學(xué)函數(shù)自變量的括號(hào)不能?。蝗纾簊in(x);loglO(x);log(x);pow(x,y)角度、特殊的符號(hào)要轉(zhuǎn)換。3、6種關(guān)系運(yùn)算符的優(yōu)先級(jí)別不同:三、邏輯運(yùn)算符與邏輯表達(dá)式1、邏輯運(yùn)算符及其優(yōu)先次序

一元邏輯運(yùn)算符:!(非),右結(jié)合二元邏輯運(yùn)算符:&&(與)、||(或),左結(jié)合邏輯運(yùn)算的真值表2、邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式、算術(shù)表達(dá)式、賦值表達(dá)式等連接起來(lái)的式子稱為邏輯表達(dá)式;邏輯表達(dá)式的值為真或假(1或0):如:digit=c>=,0,&&c<=*95c!=4\n'||!a&&(b=3)判斷一個(gè)量是否為真假時(shí),0為假,非0即真;如:a=4;貝lj!a為0,a=4,b=5時(shí),a&&b為1;一個(gè)邏輯表達(dá)式往往是復(fù)雜的,此時(shí)應(yīng)嚴(yán)格區(qū)分運(yùn)算符的優(yōu)先次序及運(yùn)算對(duì)象;如:5>3&&2||8<4—!0設(shè)有:inta=l,b=2,c=3,d=4,m=l,n=l;則執(zhí)行(m=a>b)&&(n=c>d)后,m、n分別是多少?答案是:m=0,n=l利用邏輯表達(dá)式還能表示更為復(fù)雜的條件。如:(year%4==0&&year%l00!=0)||year%400==0!((year%4==0&&year%100!=0)||year%400==0)(year%4!=0)||(year%100==0&&year%400!=0)四、自增與自減運(yùn)算符++、——基本運(yùn)算有:++i、i++、 i、i 說(shuō)明:++和-只能用于變量,不能用于表達(dá)式或常量;如:2++或(i+j)--是非法的;++、-運(yùn)算符的結(jié)合方向是“右結(jié)合”;如:-i++不等于(-i)++;++、-運(yùn)算常用于循環(huán)控制、數(shù)組的下標(biāo)處理等場(chǎng)合;i+++j應(yīng)理解為(i++)+j;printf("%d,%d",i,i++);最好寫成j=i++;printf,%d,%d”,i,j);當(dāng)i的初值為3時(shí),其結(jié)果為4,3五、逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式語(yǔ)法:表達(dá)式1,表達(dá)式2 表達(dá)式n語(yǔ)義:依次求各個(gè)表達(dá)式的值,最后一個(gè)表達(dá)式的值作為整個(gè)逗號(hào)表達(dá)式的值;如:3+5,6+8的值為14;a=3*5,a*4的值為60;逗號(hào)表達(dá)式常用在fbr語(yǔ)句中;逗號(hào)表達(dá)式的優(yōu)先級(jí)別最低;45

C語(yǔ)言中,逗號(hào)有兩種用途(分隔符,運(yùn)算符)。思考:(a=3*5,a*4),a+5的值是多少?各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算混合算術(shù)表達(dá)式,如:10+H+i*f-d/e需自動(dòng)轉(zhuǎn)換成同一類型再運(yùn)算:轉(zhuǎn)換的規(guī)則如下:設(shè)有:inti=2;floatf=3.5;doubled=16.0;longe=2;貝ij10+,a'+i*f-d/e的運(yùn)算次序?yàn)椋?1)進(jìn)行10+3的運(yùn)算,轉(zhuǎn)換3為97;(2)進(jìn)行i*f的運(yùn)算,將i和f都轉(zhuǎn)成double型;(3)整數(shù)107與i*f的積相加,先將107轉(zhuǎn)化成雙精度數(shù),結(jié)果為double型;(4)將變量e轉(zhuǎn)化成double型,d/e的結(jié)果為double型;(5)將10+,a'+i*f的結(jié)果與d/e的商相減,結(jié)果為double型。以上數(shù)據(jù)類型轉(zhuǎn)換都是由C編譯系統(tǒng)自動(dòng)隱含完成的,故稱自動(dòng)類型轉(zhuǎn)換六、強(qiáng)制類型轉(zhuǎn)換運(yùn)算符格式:(類型關(guān)鍵字或類型名)表達(dá)式如:(int)(x+y)%(int)p (double)a(float)(5%3)實(shí)例:main(){floatx;inti;x=3.6;i=(int)x;printfC'x=%f,i=%d”,x,i);}運(yùn)行的結(jié)果是:x=3.600000,i=3課堂小結(jié)1、算術(shù)運(yùn)算符、邏輯運(yùn)算符的應(yīng)用,及相關(guān)表達(dá)式的邏輯值2、++、--運(yùn)算3、各種運(yùn)算符的優(yōu)先級(jí)-、按位邏輯運(yùn)算符1,按位與(&)用途:(1)清零如:有原數(shù):x=00101011取數(shù):y=110101004545

或:y=00000000則:x&y=0(2)截取(析出)變量指定的二進(jìn)制位,其余位清零。如:設(shè)有數(shù)a=0010110010101100,占2B,現(xiàn)要取其低字節(jié)。取數(shù)y=00000000nn1H1,則:a&y=0000000010101100如:有數(shù)a=01010100,要將左面的第3、4、5、7、8位保留??扇?shù)b=00111011,則:c=a&b-000100002、按位或(|)設(shè) a=00110000b=00001111則a|b=00111111用途:將二進(jìn)制數(shù)據(jù)的指定位置1,而不管原來(lái)的二進(jìn)制位狀態(tài)如何。工作數(shù):指定位為1,其余位為0如:inta=055555,現(xiàn)要將變量對(duì)應(yīng)的存儲(chǔ)單元的最高位置1,則取工作數(shù)b=0x8000,即:a: 0101101101101101b: 1000000000000000a|b:11011011011011013、按位異或(人)當(dāng)且僅當(dāng)參加運(yùn)算的兩個(gè)操作數(shù)對(duì)應(yīng)的二進(jìn)制位的狀態(tài)不同時(shí)才將對(duì)應(yīng)的二進(jìn)制位置1;按位異或也稱按位加(即對(duì)應(yīng)位相加,進(jìn)位丟棄);用途:⑴使指定的二進(jìn)制位狀態(tài)翻轉(zhuǎn)(1變0,0變1)操作數(shù):指定翻轉(zhuǎn)的位為1,其余位全為0如:a=0x0F0000000000001111取數(shù):b=0xl80000000000011000則:aAb=0000000000010111⑵與0相八,保留原值⑶常用按位加實(shí)現(xiàn)兩個(gè)變量?jī)?nèi)容的互換,而不采用任何中間變量。方法如下:a=aAb;b=bAa;a=aAb;證明:由第2式b=bAa=bA(aAb)=bAaAb=aAbAb=aA0=a再由第3式a=aAb=(aAb)A(bA(aAb))=aAbAbA(aAb)=aA0AaAb=aAaAb=0Ab=b4、按位取反(?)45

?是一個(gè)單目運(yùn)算符,用來(lái)對(duì)一個(gè)二進(jìn)制數(shù)按位取反;如:?025 即為?0000000000010101即1111111111101010注意:(1)-025絕非一025(2)對(duì)同一操作數(shù)連續(xù)兩次“按位取反”,其結(jié)果必須與原操作數(shù)相同;(3)“按位取反”常與“按位與”、“按位或”或移位操作結(jié)合使用,完成特定功能;如:對(duì)表達(dá)式x&-077表示取變量x的低6位以前的部分,并使結(jié)果的低6位全為05、移位運(yùn)算(》、?)移位運(yùn)算的一般形式:m?n,m?n其中m是被移位的操作數(shù),n是移位的位數(shù),且均為整型表達(dá)式,移位運(yùn)算結(jié)果的類型取決于m的類型。執(zhí)行<<時(shí),操作數(shù)左端移出的高位部分丟棄,右端低位補(bǔ)0:執(zhí)行>>時(shí),操作數(shù)右端移出的低位部分丟棄,左端高位部分①無(wú)符號(hào)數(shù):一律補(bǔ)0;有符號(hào)數(shù):算術(shù)移位時(shí)填符號(hào)位,邏輯移位時(shí)填0o例1:intr='A',則尸65,作r?3解:(1)r處理成:0000000001000001(2)左邊移出3個(gè)0,右面補(bǔ)3個(gè)0得:0000001000001000(3)結(jié)果為:(520)10例2:intv=-16,BPv=llll111111110000,作v>>2解:算術(shù)移位得:mimimi1100即:(-4)io邏輯移位得:oonmiminoobp:(16380)10優(yōu)先級(jí):算術(shù)運(yùn)算符f〈V、>>f關(guān)系運(yùn)算符II結(jié)合性:<<與>>具有左結(jié)合性:左移相當(dāng)于乘2n,右移相當(dāng)于除2n;位運(yùn)算與賦值運(yùn)算結(jié)合可以組成擴(kuò)展的賦值運(yùn)算符如:&=、|=、》=、《=、八=等a&=b 等價(jià)于 a=a&ba?=2 等價(jià)于 a=a?2例如:x?p+l-n&?(?0?n)該表達(dá)式的功能為:對(duì)于給出的X,從X右端的第p個(gè)位置起(假定最右端的位置從0開始計(jì)數(shù))返回x的連續(xù)n個(gè)二進(jìn)制位,且截出的位段靠右端存放。假定p=4、n=3,則返回的是x的第2到第4位的內(nèi)容。

思考:a,b為整型數(shù)據(jù),a=0x4l39,40x3842,編寫一段程序,求整型變量x的值,要求x的低字節(jié)為a的低字節(jié)的值,x的高字節(jié)為b的高字節(jié)的值。3.6運(yùn)算符的優(yōu)先級(jí)和求值順序課堂小結(jié)1、按位與、按位或按位異或運(yùn)算規(guī)則及用途2、移位運(yùn)算符的運(yùn)算規(guī)則a學(xué)重點(diǎn)與難點(diǎn)基本數(shù)類型的常量和變量不同類型的數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式C語(yǔ)言中各種運(yùn)算符的使用混合表達(dá)式中運(yùn)算符的運(yùn)算順序位運(yùn)算符的運(yùn)算規(guī)則及用途位運(yùn)算表達(dá)式的含義1論、練習(xí)、作業(yè)習(xí)題1,2,3,4,5省學(xué)手講授,討論,啟發(fā)式提問(wèn)

段I考資料BrianW.Kernighan,DennisM.Ritchie,TheCProgrammingLanguage[M],SecondEdition,1989。AndrewKoenig著,高巍譯,C缺陷與陷阱(CTrapsandPiifalIs),北京:人民郵電出版社(原出版社:AddisonWesley),2002.11.HerbertSchiIdt,CTheCompleteReference(FourthEdition),Team-Fly,Osborne/McGraw-Hi11?2002原著:SteveSummit翻譯:朱群英,孫云,C語(yǔ)言常見問(wèn)題集,0.9.4,2005.6SteveSummit,CProgrammingFAQs:FrequentlyAskedQuestions,Addison-Wesley,1995,ISBN0-201-84519-9.[ThebookversionofthisFAQ1ist;seealso/~scs/C-faq/book/Errata.htmloKennethA.Reek著,徐波譯,C和指針(PointersonC),北京:人民郵電出版社(原出版社:PearsonEducation),2003.9。AlKelley,IraPohl著,麻桂毅譯,C語(yǔ)言解析教程(原書第四版)(CbyDissectionTheEssentialsofCProgrammingFourthEdition),北京:機(jī)械工業(yè)出版(原出版社:Addison-Wesley),2003.6H.M.Deitel,P.J.Deitel著,薛萬(wàn)鵬譯,C程序設(shè)計(jì)教程(原書第二版)(ChowtoprogramSecondEdition),北京:機(jī)械工業(yè)出版(原出版社:PrenticeHall),2004.7冼鏡光編著,C語(yǔ)言名題精選百則技巧篇,北京:機(jī)械工業(yè)出版,2005.7ACMSIGPLANNotices[11]網(wǎng)冠科技編著,C語(yǔ)言時(shí)尚編程百例,,北京:機(jī)械工業(yè)出版,2004.5[11]譚浩強(qiáng),C程序設(shè)計(jì)(第三版),北京:清華大學(xué)出版社,2005o[12][美]BeckZaratian著,VisualC++6.0Programmer,sGuide,北京希望電腦公司,1998。[13]程序員大本營(yíng),/[14]編程愛好者,/C語(yǔ)言編程風(fēng)格指導(dǎo)FredRichard,C/C++ProgrammingStyleGuidelines注:教案按授課次數(shù)填寫、每次授課均應(yīng)填寫一份。重復(fù)班授課可7E另填寫教案。第 貝

四川大學(xué)教案【理、工科】1周次第周、第7次課備注章節(jié)名稱第4章C程序基本控制結(jié)構(gòu)(3學(xué)時(shí))第7次課授課方式理論課N);實(shí)驗(yàn)課();實(shí)習(xí)()教學(xué)時(shí)數(shù)3學(xué)時(shí)教目及求學(xué)的要[教學(xué)要求]1、掌握賦值語(yǔ)句、輸入輸出語(yǔ)句2、學(xué)會(huì)簡(jiǎn)單的順序程序設(shè)計(jì)3、掌握實(shí)現(xiàn)選擇結(jié)構(gòu)的兩種語(yǔ)句、一個(gè)運(yùn)算符4、學(xué)會(huì)編寫選擇結(jié)構(gòu)的程序5、掌握三種循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)6、靈活運(yùn)用循環(huán)語(yǔ)句教學(xué)內(nèi)容提要時(shí)間分配[教學(xué)內(nèi)容]4.1程序的基本結(jié)構(gòu)1、控制語(yǔ)句二個(gè)分支語(yǔ)句(if-else、switch)三個(gè)循環(huán)語(yǔ)句(fbr、while、do-while)四個(gè)轉(zhuǎn)移語(yǔ)句(continue、break,goto、return)2、函數(shù)調(diào)用語(yǔ)句如:printfC'Hello,world!");3、表達(dá)式語(yǔ)句x+y;i++;a=2;a=3*5,40;4、空語(yǔ)句(;)5、復(fù)合語(yǔ)句{語(yǔ)句序列}4.2順序結(jié)構(gòu)程序設(shè)計(jì)4.3選擇結(jié)構(gòu)程序設(shè)計(jì)一、條件語(yǔ)句1、if語(yǔ)句的三種形式2025

語(yǔ)法1:if(表達(dá)式)語(yǔ)句;如:#include<stdio.h>main(){charch;ch=getchar();if(ch>,a,&&ch<=<z,)ch+='A'-'a';putchar(ch);}語(yǔ)法2:if(表達(dá)式)語(yǔ)句1;else語(yǔ)句2;如:#include<stdio.h>main(){inta,b;scanf(44%d%dM,&a,&b);if(a>b)printf(ttmax=%d\n,\a);elseprintf(€tmax=%d\n,,,b);}語(yǔ)法3:if(表達(dá)式1)語(yǔ)句1;elseif(表達(dá)式2)語(yǔ)句2;else if(表達(dá)式3)語(yǔ)句3;else語(yǔ)句n+1;例如:從鍵盤上輸入字符,判別其分類:控制符、數(shù)字、大寫字母、小寫字母、其他字符。二、三目條件運(yùn)算符及其表達(dá)式1、條件運(yùn)算符:?:2、格式:el?e2:e33、語(yǔ)義:判el的值,為1時(shí)計(jì)算e2,否則計(jì)算e3;如:max=(a>b)?a:b等價(jià)于if(a>b)max=a;elsemax=b;4、說(shuō)明:1) 條件運(yùn)算符的結(jié)合方向自右至左如:a>b?a:c>d?c:d等價(jià)于a>b?a:(c>d?c:d)若inta=l,b=2,c=3,d=4;則表達(dá)式的值為 例:輸入一個(gè)正整數(shù)i,輸出第i個(gè)英文字母,若i大于26則輸出一個(gè)#include<stdio.h>main(){inti;scanfT%d”,&i);i=(iv=26)?(i?l+'a'):'*';putchar(i);}

條件運(yùn)算符的優(yōu)先級(jí)僅高于逗號(hào)運(yùn)算符與賦值運(yùn)算符;只有當(dāng)if語(yǔ)句的真假均只執(zhí)行一個(gè)賦值語(yǔ)句且給同一變量賦值時(shí),才能用條件表達(dá)式取代;如:if(a>b)max=a;elsemax=b;思考:intx=l,y=O;x-->(y+x)?5:25>y++?T:'2'的值是 三、switch語(yǔ)句語(yǔ)法1:switch(表達(dá)式){caseCl:語(yǔ)句序列1;caseC2:語(yǔ)句序列2;caseCn:語(yǔ)句序列n;default:語(yǔ)句序列n+1;)語(yǔ)法2:switch(表達(dá)式){caseC1:語(yǔ)句序列1;break;caseC2:語(yǔ)句序列2;break;caseCn:語(yǔ)句序列n;break;default:語(yǔ)句序列n+1;break;)其中:switch后括號(hào)中的表達(dá)式可以為任何類型;C1至Cn是常量表達(dá)式,?般是整數(shù)或字符,與switch中表達(dá)式的取值對(duì)應(yīng);default可缺省,當(dāng)表達(dá)式e的值不是C1到Cn的情況。注意兩種語(yǔ)法的執(zhí)行順序!-、goto語(yǔ)句及用goto構(gòu)成循環(huán)語(yǔ)法:gotolabel;其中:label是語(yǔ)句標(biāo)號(hào),它命名的規(guī)則同變量名;語(yǔ)義:使程序無(wú)條件地轉(zhuǎn)向標(biāo)號(hào)為label的語(yǔ)句去執(zhí)行;如:用if語(yǔ)句構(gòu)成循環(huán),求sum=l+2+…+100tnain(){inti=l,sum=0;loop: if(i<=100){sum+=i;i++;gotoloop;}printfr*%d",sum);說(shuō)明:標(biāo)號(hào)不必進(jìn)行類型說(shuō)明;程序中的任何一個(gè)語(yǔ)句均可帶上標(biāo)號(hào),但標(biāo)號(hào)必須以冒號(hào)結(jié)束;不提倡使用goto語(yǔ)句。35

4.4循環(huán)結(jié)構(gòu)程序設(shè)計(jì)一、while語(yǔ)句語(yǔ)法:while(exp)循環(huán)體語(yǔ)句;語(yǔ)義:當(dāng)exp為真時(shí),執(zhí)行循環(huán)體;為假時(shí),執(zhí)行循環(huán)語(yǔ)句的后續(xù)語(yǔ)句;如:用while語(yǔ)句構(gòu)成循環(huán),求sum=l+2+…+100程序如下:main(){inti=l,sum=0;while(i<=100){sum+=i;收}printf(<<%d,,,sum);)說(shuō)明:循環(huán)體可以用復(fù)合語(yǔ)句;在while語(yǔ)句前應(yīng)有為測(cè)試表達(dá)式(exp)中的循環(huán)控制變量賦初值的語(yǔ)句,以確保循環(huán)的正常開始;循環(huán)體內(nèi)應(yīng)有改變循環(huán)控制變量的語(yǔ)句,以確保循環(huán)進(jìn)行有限次后正常結(jié)束;如:i=l;while(i<=100)sum=sum+l;(死循環(huán))while循環(huán)的特點(diǎn)是先判斷后執(zhí)行,故循環(huán)有可能一次都不被執(zhí)行;如:i=3;while(i<3)printfTi=%d\n”,i);二、do-while語(yǔ)句語(yǔ)法:do循環(huán)體語(yǔ)句;while(exp);語(yǔ)義:當(dāng)exp為真時(shí),執(zhí)行循環(huán)體;為假時(shí),執(zhí)行循環(huán)語(yǔ)句的后續(xù)語(yǔ)句;如:用do-while語(yǔ)句構(gòu)成循環(huán),求sum=l+2+...+100程序如下:main(){inti=l,sum=0;55

do{sum+=i;i++;}while(i<=100);printfT%d”,sum);}說(shuō)明:循環(huán)體可以用復(fù)合語(yǔ)句;循環(huán)控制變量在執(zhí)行do前必須賦初值:循環(huán)體內(nèi)應(yīng)有改變循環(huán)控制變量的語(yǔ)句;do-while循環(huán)的特點(diǎn)是先執(zhí)行后判斷,故循環(huán)至少被執(zhí)行一次;如:i=3;do{sum+=i;i++;}while(i>10);三、for語(yǔ)句語(yǔ)法:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體語(yǔ)句;語(yǔ)義:1、先求表達(dá)式1;2、求解表達(dá)式2,若其值為真,則執(zhí)行第三步;若為假,則結(jié)束循環(huán);3、執(zhí)行循環(huán)體中的語(yǔ)句;4、求解表達(dá)式3;5、轉(zhuǎn)回第二步繼續(xù)執(zhí)行如:fbr(i=l;i<=100;i++)sum=sum+i;可看成:fbr(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)語(yǔ)句;說(shuō)明:(1)顯然fbr循環(huán)更簡(jiǎn)潔,更靈活;(2)循環(huán)體可以是復(fù)合語(yǔ)句;fbr語(yǔ)句中的三個(gè)表達(dá)式均可以是逗號(hào)表達(dá)式,故可同時(shí)對(duì)多個(gè)變量賦初值及修改。如:fbr(i=O,j=l;j<n&&i<n;i++,j++)...for語(yǔ)句中三個(gè)表達(dá)式可?。菏xpl;如:i=l;fbr(;i<5;i++)printfC'%d\n”,i);等價(jià)于fbr(i=l;i<5;i++)printf("%d\n”,i);省exp2;如:fbr(i=l;;i++){printfi["%d\n”,i);if(i>5)break;

)省exp3:如:for(i=l;i<5;){printf("%d\n”,i);i++;}等價(jià)于fbr(i=l;i<5;i++)printfCt%d\n,,,i);表達(dá)式1、表達(dá)式3可省略i=l;sum=O;fbr(;i<=100;){sum+=i;i-H-;}三個(gè)表達(dá)式全省時(shí),如:fbr(;;)語(yǔ)句:等價(jià)于while(l)語(yǔ)句;三個(gè)表達(dá)式可包含與循環(huán)變量無(wú)關(guān)的語(yǔ)句一、循環(huán)的嵌套三種循環(huán)可以互相嵌套例:打印九九乘法表1X1=1 1X2=2 1X3=3 1X8=8 1X9=92X1=2 2X2=4 2X3=6 2X8=16 2X9=183X1=3 3X2=6 3X3=9 3X8=24 3X9=279X1=9 9X2=18 9X3=27 9X8=72 9X9=81main(){inti,j;fbr(i=l;i<=9;i++){for(j=l;j<=9;j++)printf("%d*%d=%2d i,j,i*j);printf(''\n'');}}說(shuō)明:(1)內(nèi)循環(huán)必須完全包含在外循環(huán)中,不能交叉;⑵并列循環(huán)允許使用相同的循環(huán)變量,嵌套循環(huán)不允許二、兒種循環(huán)的比較1、四種循環(huán)可互相代替。一般不用goto。2,do-while中循環(huán)體至少執(zhí)行一次;3、while和do-while中在while后指定條件,循環(huán)體中包含使循環(huán)趨于結(jié)束的語(yǔ)句;fbr在exp3中可含使循環(huán)趨于結(jié)束的語(yǔ)句,也可含在循環(huán)體中。4、while和do-while中,循環(huán)變量初始化語(yǔ)句應(yīng)放在while和do-while語(yǔ)句前;fbru]■在expl中實(shí)現(xiàn)循環(huán)變量初始化。5、除goto循環(huán)外,都能用break跳出循環(huán),用continue結(jié)束本次循環(huán)。

三、break語(yǔ)句和continue語(yǔ)句1、break語(yǔ)句break只能用在循環(huán)語(yǔ)句、switch語(yǔ)句中,它的功能是強(qiáng)行退出循環(huán)或switcho例:for(r=l;r<=10;r++){area=pi*r*r;if(area>100)break;printfC%F,area);)2、continue語(yǔ)句只能用在循環(huán)語(yǔ)句中,它的功能是結(jié)束本次循環(huán),跳到循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,接著進(jìn)行下次是否執(zhí)行循環(huán)的判定。例:fbr(n=l00;n<=200;n++){if(n%3==0)continue;)說(shuō)明:(1)continue和break語(yǔ)句的區(qū)別:前者只結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán);后者則是結(jié)束整個(gè)循環(huán)過(guò)程。⑵在多重循環(huán)中,break只能退出其所在循環(huán)。⑶允許使用break或goto語(yǔ)句將循環(huán)控制從循環(huán)體內(nèi)轉(zhuǎn)到循環(huán)體外,也可以用continue語(yǔ)句將控制在循環(huán)體內(nèi)轉(zhuǎn)移,但不允許用任何方式從循環(huán)體外轉(zhuǎn)到循環(huán)體內(nèi)。

a學(xué)重點(diǎn)與難點(diǎn)循環(huán)的嵌套、break語(yǔ)句、continue語(yǔ)句三種循環(huán)語(yǔ)句while、do-while、for 三種循環(huán)語(yǔ)句的區(qū)別if-else語(yǔ)句、switch語(yǔ)句、條件運(yùn)算符了 嵌套if-else語(yǔ)句中的if與else匹配問(wèn)題i論

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論