C語言程序設計-譚浩強版教案_第1頁
C語言程序設計-譚浩強版教案_第2頁
C語言程序設計-譚浩強版教案_第3頁
C語言程序設計-譚浩強版教案_第4頁
C語言程序設計-譚浩強版教案_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

教教學基本目的和要求C語言是近年來國內外得到迅速推廣使用的一種計算機語言。C語言程序設計課程是應用面廣,目標程序效率高,可移植性好,既具有高級語言的優(yōu)點,又具有低級語言的優(yōu)點。既適用于應用軟件編寫,又適用于系統(tǒng)軟件的編寫。在現代的工業(yè)機器人的眾多語言中,大多編程風格以C語言非常類似,學生學好C語言,對將來的工作中,從事工業(yè)機器人現場編程是非常有幫助的。課程的性質和任務《語言程序設計》這門課是我校工業(yè)機器人、分布式發(fā)電與微電網專業(yè)的專業(yè)必修課。作為計算機系的數據結構、c++、單片機編程等課程的前導課程,也是一門實踐性很強的課程,既要掌握概念,又要動手編程,還要上機調試運行。對工業(yè)機器人專業(yè)來說是一同時,這門課程也是“XX省非計算機專業(yè)學生計算機應用能力水平考試”二級考試的課程的教學目標本課程的教學目標是:通過理論和實踐教學,使學生較好地掌握C語言各方面的知識,掌握基本的程序設計過程和技巧,具備初步的高級語言程序設計能力,并能熟練應用..可修編..教教學重點和難點重點:計算機程序、計算機語言、C語言編譯軟件的安裝、最簡單的C語言程序二、算法:程序的靈魂重點:簡單的算法舉例、算法的特性、用流程圖表示算法。三、順序結構程序設計四、選擇結構程序設計式及基本應用、多分支的選擇語句。五、循環(huán)結構程序設計重點:一維數組、二維數組的定義與引用;字符數組的定義與引用、常用字符串處理函數及字符處理函數;數組的應用難點:二維數組的定義與引用;字符數組;數組的應用重點:函數的定義;函數的參數和函數的值;函數的調用;函數的嵌套調用;函數的遞歸調用;數組作為函數參數;變量作用域;量存儲類別;組作為函數的參數、變量的存儲類別與作用域。重點和難點:指針與地址的基本概念、指針與變量的關系;指針與數組;指針與字符串、指針數組與二級指針;指針的應用九、建立自己的數據類型重點和難點:定義和使用結構體變量、用指針處理鏈表、共用體類型重點:文件的基本知識、fopen、fclose函數打開與關閉文件、順序讀寫數據文件、隨機難點:用二進制方式向文件讀寫一組數據。重點和難點:文件的基本概念;文件的打開、關閉、常用讀寫方法。重點:不定長數組與二維數組的應用難點:不定長數組與二維數組的應用難點:二維數組、指針..可修編..教教學安排語言:人-人語言交流;聾啞人-手勢語;人機-計算機語言ALGOL60(高級語言)->CPL(硬件支持)-BCPC->B->C->標準C->ANS(2)語言既具有高級語言特性,又具有低級語言特性-中級語言。C語言既具有一般高級語言特性,又具有低級語言特性。8個特點。2、運算符豐富。3、數據結構類型豐富。4、具有結構化的控制語句。5、語法限制不太嚴格,程序設計自由度大。7、生成目標代碼質量高,程序執(zhí)行效率高。8、與匯編語言相比,用C語言寫的程序可移植..可修編..教教學安排(1)32位的WINDOWS操作系統(tǒng)與64位的(2)VC++6.0(2)VS2015二、文件夾與壓縮包4、軟件安裝的一般流程7、生成目標代碼質量高,程序執(zhí)行效率高。8、與匯編語言相比,用C語言寫的程序可移植六、上機演示及實踐操作..可修編..同學們對計算機基礎知識比較缺乏,安裝同學們對計算機基礎知識比較缺乏,安裝VC++6.0時,不知道如何解壓,也不知道如何下載和計算機操作系統(tǒng)版本匹配的VC++6.0或VS2015了解算法的基本概念、程序設計的一般流程、掌握書寫簡單的算法流程、了解算法的特性..可修編..教教學安排什么是算法?菜譜、拳譜、歌譜都是廣義的算法。以XX去開會為例解釋算法的優(yōu)劣。1+2+3+…100的常規(guī)算法和高斯的首尾相加快遞算法(1)求510分鐘)常規(guī)求解方式的煩瑣引出用循環(huán)方式求解的方法。(2)求1×3×4×5×7×9×11(1詢問同學此題與5!的異同,引每項是2n-1的通項,在上題的基礎上改動少量代碼可實現本圖示方式給學生解說閏年要滿足的條件,引出要做多次判斷的較復雜流程提問:能被4整除,也能被100整除,是不是等同能被400整除這一認識誤區(qū)(4)素數的求法(7分鐘)根據素數的定義來循環(huán)判斷是否能被一系列數整除,最后判斷是不是素數,請學生嘗試寫三、上機演示及實踐操作在講課的同時切換軟件界面調試代碼通過提問可以了解同學們對知識的掌握程序,互動性的教學設計更有益于教學掌握用流程圖表示算法;了解傳統(tǒng)流程圖的弊端;掌握N-S..可修編..教教學安排重點:掌握用流程圖表示算法;掌握N-S流程圖表示方法難點:掌握用流程圖表示算法;掌握N-S流程圖表示方法1、介紹流程圖的圖框及含義起止框、輸入輸出框、判斷框、處理框、流程線、連接點、注釋框總結:流程圖表示算法比較直觀二、三種基本結構和改進的流程圖(15分鐘)(2)選擇(3)循環(huán)分當型和直到型兩種對“分時問候”的算法繪制N-S流程圖舉例說明順序程序調序的基本流程、整型數據類型、整型數據的溢出。舉例說明順序程序調序的基本流程、整型數據類型、整型數據的溢出。..可修編..教教學安排重點重點:整型數據類型;整型數據的溢出難點難點:整型數據類型;整型數據的溢出(1)整型常量、整型常量、字符常量、字符串常量(3)轉義字符(1)先定義,后使用(2)變量名與變量值概念的異同1、不同類型的數據在內存中占用的存儲單位長度是不同的VC++6.0為字符型數據分配一個字節(jié)長度;為int型(基本型)分配4個字節(jié)的長度。2、存儲不同數據類型的方法也是不同的。(1)基本整型(int型)(2)短整型(shortint);(3)長整型(longint)2、整型變量的符號屬性(1)有符號型和無符號型(2)整型數據常見的存儲空間和值的X圍五、上機演示及實踐操作在講課的同時切換編譯界面調試整型數據溢出..可修編..教教學安排舉例說明順序程序調序的基本流程、數據的表現形式及運算、不同數據類型的混合運算。整型數據類型longint和shortint數據類型、運算符的優(yōu)級先級、不同數據類型的混合運算2、浮點型數據的表現形式浮點數據的指數形式3、浮點型數據的類型(1)單精度(2)雙精度(3)長雙精度特殊轉義字符對顯示/打印的控制作用三、怎樣確定常量的類型1、從常量的表示形式,如精度2、只要看到單撇號括起來的單個字符或轉義字符即字符常量3、算術表達式和運算符的優(yōu)先級與結合性五、數值型數據混合運算七、上機演示及實踐操作在講課的同時切換編譯界面調試整型數據溢出..可修編..教教學安排理解條件-產生邏輯值的表達式;熟練繪制選擇語句算術的流程圖掌握關系運算符、關系表達式;邏輯運算符、邏輯表達式重點:關系運算符、關系表達式;邏輯運算符、關系表達式難點:熟練繪制選擇語句算術的流程圖2、選擇結構的流程圖繪制3、二元二次方程求根的算法及程序編寫二、關系運算符與關系表達式“關系運算”(比較運算)即,將兩個值進行比較,判斷是否符合或滿足給定的條件。b)關于優(yōu)先次序:前4種高于后兩種;關系低于算術;關系高于賦值三、邏輯運算符和邏輯表達式四、條件運算符與條件表達式1、單目運算符、雙目運算符、三目運算符的概念2、C語言唯一的三目運算符構成的條件表達式..可修編..教教學安排2、如果if與else的數目不一致,為了體現程序設計者的思想,可加花括號來確定配對的關3、利用代碼縮進增強代碼的可讀性,養(yǎng)成良好的編程風格(1)繪制流程圖(2)將流程圖編寫成程序二、用switch語句實現多分支選擇結構(1)繪制流程圖(2)將流程圖編寫成程序三、選擇結構程序設計綜合舉例四、上機演示及實踐操作在講課的同時切換軟件界面調試代碼..可修編..教教學安排重復執(zhí)行就是循環(huán)。重復工作是計算機特別擅長工作之一。重復執(zhí)行不是簡單地重復,每次重復,操作的數據(狀態(tài)、條件)都可能發(fā)生變化。重復的動作是受控制的,C語言提供三種循環(huán)控制語句,構成了三種基本的循環(huán)結構。例5-6:寫一個程序,計算半徑為0.5,1.5,2.5,3.5,4.5,5.5mm時圓的半徑。3、for語句最容易理解、最常用的形式四、上機演示及實踐操作在講課的同時切換軟件界面調試代碼..可修編..教教學安排掌握條件運算符、條件表達式b)引入簡單的條件運算符及表達式、以及開關語句在if語句中,在表達式為“真”和“假”時,都只執(zhí)行一個賦值語句給同一個變量賦值時,可以使用簡單的條件運算符來處理。例6-14:從鍵盤輸入一個大于2的整數n,判斷七、上機演示及學生操作在講課的同時切換軟件界面調試代碼..可修編..和要求一維數組定義、初始化、引用;最大值、冒泡排序、選擇排序算法。重點重點:一維數組定義、初始化、引用;求最大值、冒泡排序、選擇排序算法;矩陣操作難點難點:冒泡排序、選擇排序算法基本數據類型-構造類型的數據-數組數組、數組元素、數組的下標、數組的維數一、定義和引用一維數組(3)數組元素全部置0(4)數組元素如全部賦值可不指定長度5、給數組元素賦初值和給數組集合賦初值的異同(1)給數組元素賦初值inttemp[1]=9;(2)給數組集合賦初值inttemp[10]=(1,2,3);例6-3:采用“冒泡法”對任意輸入的10個三、動態(tài)內存分配法實現不定長一維數組某些情境需要定義一個數組,但數組的長度不定,因為這個長度是根據某些其他條件確定的,這時我們需要定義一個長度不定的數組。如讀取不同聲音的語音數據序列。..可修編..二維數組定義、初始化、引用;多維數組..可修編..教教學安排二、二維數組(注意:類比一維數組)1、二維數組的應用場景3、二維數組元素的內存分布二、二維數組元素的引用思考:下標是從1開始使用的,哪些元素在此例子中未使用?它們的值是多少?(隨機值)三、二維數組的初始化的幾種形式(1)分行給二維數組賦值(2)將所有數組寫在一個花括號內(3)對部分元素賦值比較抽象,圖解較直觀五、二維數組應用舉例例6-4:將二維數組的行和列互換,存到另一個數組里。例6-5:找出矩陣所有元素中的最大值。例6-附加分別計算矩陣的兩條對角線(主、輔對角線)上的元素之和。六、多維數組的應用2、多維數組元素的引用3、多維數組的初始化七、不定長二維數組的實現某些情境需要定義一個二維數組,但二維數組的長度不定,因為這個長度是根據某些其他條件確定的,這時我們需要定義一個長度不定的二維數組。如讀取不同尺寸圖像點的像素值。八、上機演示及學生操作在講課的同時切換軟件界面調試代碼字符數組定義、初始化、引用;字符串與字符數組;字符串處理函數;字符數組應用..可修編..教教學安排復習數組概念,數組定義、初始化、元素引用方法。引入字符數組(元素為字符)。2、字符數組的初始化4、二維字符數組的應用舉例二、字符和字符串結束標志1、字符串與字符數組的區(qū)別2、字符串結束標記志三、字符數組的輸入和輸出(1)逐個字符輸入輸出(2)將整個字符串輸出(3)利用字符串的結束符批量輸出(1)“%s”格式符(2)print語句的輸出項參數用字符數組名,而非數組元素名五、由字符數組來構造字符串根據定義,可由字符數組添加一個'\0'符形成字符串。六、二維字符數組2、二維字符數組的初始化3、二維字符數組的引用..可修編..教教學安排字符數組定義、初始化、引用;字符串與字符數組;字符串處理函數;字符數組應用二、字符數組應用舉例例6.8:由鍵盤任意輸入一個字符串和一個字符,要求從該字符串中刪除所指定的字符。例6.9:由鍵盤輸入三個字符串,找出其中的最大串。(字符串庫函1、引用預編譯頭文件include(包含頭文件)2、學會閱讀函數庫函數的函數類型和參數四、字符數組函數的綜合練習2、有一個已排好序的數組,要求輸入一個數后,按原來排序的規(guī)律將它插入數組中。4、找出二維數組的鞍點,即該位置上的元素在該行上最在、在該列上最小,也可能沒有鞍5、編一程序,將兩個字符串連接起來,不要用strcat函數。四、上機演示及學實踐操作在講課的同時切換軟件界面調試代碼..可修編..教教學安排掌握函數定義、調用、聲明;函數參數傳遞方式;了解函數遞歸調用1、C語言的函數。C語言的函數是子程序的總稱,包括函數和過程。C語言函數可以分為庫函數、用戶自定義函數3、函數的一些概念:主函數、其它函數;主調函數、被調函數;庫函數、用戶自定義函數;無參函數、有參函數;無返回值函數、有返回值函數二、函數的一般形式-函數應當先定義,后調用。函數定義的一般形式及說明(1)(2)例7-1:輸入三個整數,求三個整數中的最大值,打印。思考問題。三、函數的參數和返回值1、函數調用的一般形式及說明(單獨語句/表達式中、參數相容)2、函數調用時數據的傳遞-參數傳遞、函數的返回值、全局變量五、函數的嵌套調用和遞歸調用函數允許嵌套調用和遞歸調用。遞歸調用是嵌套調用的特例。(1)函數的嵌套調用(2)函數的遞歸調用..可修編..掌握變量作用域、生命期重點重點:變量作用域、生命期;插入排序難點難點:變量作用域、生命期;插入排序六、變量的作用域(有效X圍、可見性)變量的作用域:變量的有效X圍或者變量的可見性。變量定義的位置決定了變量的作用域。變量從作用域(變量的有效X圍,可見性)的角度可以分為:局部變量,全局變量。1、局部變量(函數體內變量、形參變量、復合語句內變量)-互不干預、動態(tài)分配2、全局變量(所有函數之外-文件作用域、程序作用域)全局變量可以和局部變量同名-坐井觀天例7-9:全局變量、局部變量同名的應用示例。P118。例7-10:全局變量、局部變量的應用示例。P118。教七、變量的存儲類別(生存期、生命期)安從變量存在的時間的長短(即變量生存期)來劃分,變量還可以分為:動態(tài)存儲變量、靜態(tài)排存儲變量。變量的存儲方式決定了變量的生存期。C語言變量的存儲方式可以分為:動態(tài)存儲方式、靜態(tài)存儲方式。全局變量全部是靜態(tài)的;局部變量可以是靜態(tài),也可以是八、內部函數和外部函數..可修編..教教學安排指針的基本概念,變量訪問方式;指針變量定義、賦值、引用。重點:指針的基本概念;指針變量定義、賦值、引用;指針作為函數參數難點:指針的基本概念(2)指針變量存放地址值,本身占用空間2字節(jié)二、指針變量的賦值(使用未賦值指針等同于向一個隨機的內存中寫入數據)三、指針變量的引用四、指針變量作為函數的參數變量可以作為函數參數,指針變量同樣可以作為函數參數。使用指針作為函數參數,可指針作為函數參數,本質上同樣是單向傳值,但是由于傳遞的是地址值,所以可以通過地址值間接修改形參、實參共同指向的變量。在swap函數中使用兩個指針作為函數參數,對兩個指針所指向變量值進行交換。1、要在被調用函數中,修改主調函數的變量值應當:(1)將主調函數變量的地址傳遞給被調用函數,就是說函數應當傳遞的是變量的地址。(2)被調用函數的形參應當使用指針變量接受主調函數的地址值。(3)在被調用函數中通過形參指針變量間接訪問,修改實參、形參地址所共同指向的變量。本例的操作是交換兩個指針變量所指向的變量。2、函數使用指針作為參數,可以增加主調函數與被調函數之間數據溝通的渠道。..可修編..教教學安排教學目的通過指針引用數組元素;數組的指針變量”作為函數參數;通過指針指向多維數組重點:數組的指針變量”作為函數參數;通過指針指向多維數組難點:數組的指針變量”作為函數參數;通過指針指向多維數組每個數組元素都在內存中占有存儲單元,它們都有相應的地址,所謂數組元素的指針就是數二、在引用指針元素時指針的運算1、在一定條件下允許對指針進行加和減的運算。2、在指針指向數組元素時,可以對指針進行加和自加,減和自減運算。三、通過指針引用數組元素四、用數組名和“數組的指針變量”作為函數參數五、通過指針指向多維數組2、指向多維數組元素的指針(1)指向數組元素的指針變量例8.12有一個3×4的二維數組,要求用指向元素的指針變量輸出二維數組各元素的值。(2)指向由m個元素組成的一維數組的指針變量3、用指向數組的指針作函數參數..可修編..教教學安排掌握字符指針作為函數參數;理解使用字符指針變量和字符數組的異同重點:字符指針作為函數參數;理解使用字符指針變量和字符數組的異同難點:字符指針作為函數參數;理解使用字符指針變量和字符數組的異同1、可通過字符數組名和下標引用字符串中的一個字符。2、也可以通過數組名和格式聲明%s輸出該字符串C語言中只有字符變量,沒有字符串變量。二、字符指針作為函數參數(1)用字符數組名作為函數的參數(2)用字符指針變量作為函數的參數其實編譯系統(tǒng)把字符數組名按指針變量處理的,只是表示形式不同。三、使用字符指針變量和字符數組的比較1、字符數組由若干個元素組成,每個元素中放一個字符,而字符指針變量中存放的是地址。2、賦值方式。可以對字符指針變量賦值,但不能對數組名賦值5、指針變量的值是可以改變的,而數組名代表一個固定的值6、字符數組中各元素的值是可以改變的。寫一函數,實現兩個字符串的比較。intstrcmp(char*p1,char*p2)五、上機演示及學實踐操作在講課的同時切換到編譯器界面調試代碼..可修編..掌握用函數指針變量調用函數;掌握用指向函數的指針作函數參數掌握用函數指針變量調用函數;掌握用指向函數的指針作函數參數重點重點:用函數指針變量調用函數;用指向函數的指針作函數參數難點難點:用函數指針變量調用函數;用指向函數的指針作函數參數編譯系統(tǒng)為函數代碼分配一段存儲空間,這段存儲空間的起始地址,稱為這個函數的指針二、用函數指針變量調用函數講解通過函數名調用函數與通過指針變量訪問它所指向的函數的異同。三、怎樣定義和使用指向函數的指針變量四、用指向函數的指針作函數參數教指向函數指針變量的一個重要用途是把函數的地址作為參數傳遞到其它函數。排一個函數可以返回一個整型值、字符值、實型值等,也可以返回指針型的數據,即地址。六、指針數組和多重指針2、指向指針數據的指針3、指針數組作主函數的形參七、上機演示及學實踐操作在講課的同時切換到編譯器界面調試代碼..可修編..教教學安排掌握指針數組和多重指針;掌握動態(tài)內存分配的技巧重點:指針數組和多重指針;動態(tài)內存分配的技巧難點:指針數組和多重指針;動態(tài)內存分配的技巧C定義了4個內存區(qū)間:代碼區(qū),全局變量與靜態(tài)變量區(qū),局部變量區(qū)即棧區(qū),動態(tài)存儲區(qū),(1)棧頂和棧底(1)隊頭與隊尾二、堆與動態(tài)內存分配有些操作對象只在程序運行時才能確定,這樣編譯時就無法為他們預定存儲空間,只能在程序運行時,系統(tǒng)根據運行時的要求進行內存分配,這種方法稱為動態(tài)內存分配。所有動態(tài)內1、什么是內存的動態(tài)分配2、建立內存分配的動態(tài)分配malloc是一個函數,專門用來從堆上分配內存。使用malloc函數需要①內存分配給誰?②分配多大內存?③是否還有足夠內存分配?④內存的將用來存儲什么格式的數據,即內存用來做什么?⑤分配好的內存在哪里?如果這五點都確定,那內存就能分配。下面先看malloc函數的原型指向空類型指針,而非指向任意類型的指針..可修編..教教學安排結構體類型、變量的定義及初始化;結構體變量的引用;結構體數組,結構體指針結構體類型、變量的定義及初始化;結構體變量的引用;結構體數組,結構體指針例子:學生信息管理系統(tǒng)1、結構體類型和結構體變量(1)結構體類型定義的一般形式例如:定義關于學生信息的結構體類型。(2)結構體變量的定義(三種方法)(1)引用結構體變量中的一個成員。結構體變量名.成員名(2)成員本身又是結構體類型時的子成員的訪問-使用成員運算符逐級訪問(3)同一種類型的結構體變量之間可以直接賦值(4)不允許將一個結構體變量整體輸入/輸出1、結構體變量的初始化結構體數組-數組元素的類型為結構體類型的數組2、結構體數組的初始化三、結構體指針變量(1)結構體指針變量的定義(2)通過結構體指針變量訪問結構體變量的成員:2、結構體變量、結構體指針變量作函數參數..可修編..教教學安排重點:掌握鏈表的使用;掌握共同體類型的使用;理解枚舉類型的概念難點:掌握鏈表的使用;掌握共同體類型的使用;理解枚舉類型的概念(1)鏈表中節(jié)點的定義(2)鏈表的基本操作2、建立簡單的靜態(tài)鏈表二、建立動態(tài)鏈表(1)處理動態(tài)鏈表所需要的函數malloc()、calloc()、free()3、對鏈表的刪除操作4、對鏈表的插入操作2、解決環(huán)形情況的問題比較方便四、上機演示及實踐操作在講課的同時切換到編譯器界面調試代碼..可修編..教教學安排教學目的掌握鏈表的使用;掌握共用體類型的使用;理解枚舉類型的概念重點:掌握鏈表的使用;掌握共同體類型的使用;理解枚舉類型的概念難點:掌握鏈表的使用;掌握共同體類型的使用;理解枚舉類型的概念1、什么是共用體類型有時想用同一段內存單元存放不同類型的變量。這種使幾個不同類型的變量共享同一段內存的結構,稱為“共用體”類型結構。2、共用體與結構體的異同(1)結構體的各個成員會占用不同的內存,互相之間沒有影響;而共用體的所有成員占用同一段內存,修改一個成員會影響其余所有成員。(2)結構體占用的內存大于等于所有成員占用的內存的總和(成員之間可能會存在縫隙),共用體占用的內存等于最長的成員占用的內存。共用體使用了內存覆蓋技術,同一時刻只能保存一個成員的值,如果對新的成員賦值,就會把原來成員的值覆蓋掉。3、引用共用體變量的方式4、共用體類型數據的特點5、國

溫馨提示

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

評論

0/150

提交評論