




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C語言指針教學(xué)設(shè)計.關(guān)于C語言程序設(shè)計中的指針C語言程序設(shè)計是高校理工科專業(yè)的一門重要專業(yè)或公共基礎(chǔ)課,不僅是計算機(jī)相關(guān)專業(yè)學(xué)生進(jìn)一步學(xué)習(xí)匯編語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)計算機(jī)操作系統(tǒng)、硬件編程等課程的入門級課程,同時也是非計算機(jī)專業(yè)學(xué)生了解計算機(jī)軟硬件基礎(chǔ)知識和計算機(jī)底層原理的重要手段之一.在教學(xué)內(nèi)容的組織上,強(qiáng)調(diào)和分析指針與基本數(shù)據(jù)類型、函數(shù)、數(shù)組的內(nèi)在聯(lián)系,靈活設(shè)計教學(xué)程序?qū)嵗?,為學(xué)習(xí)者掌握指針及c語言程序設(shè)計創(chuàng)造良好條件。指針是C?言的教學(xué)重點,程序使用指針可以帶來很多方便,如:1)靈活操作數(shù)組(含字符串);2)動態(tài)分配內(nèi)存;3)表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu);是讓程序更加簡潔高效的重要手段。然而指針也是C語言學(xué)習(xí)的最大難點,學(xué)習(xí)者普遍感覺指針概念抽象,致使無法正確理解并使用指針,而指針的使用稍有不慎,往往會給c語言程序帶來致命的錯誤。.學(xué)生分析在講指針內(nèi)容之前,學(xué)習(xí)者經(jīng)歷了基本數(shù)據(jù)類型、運算符和表達(dá)式、輸入輸出函數(shù)、選擇制語句、循環(huán)控制語句、函數(shù)、數(shù)組等內(nèi)容的學(xué)習(xí)。而指針內(nèi)容之后,一般還要講授指針與字符串、指針與數(shù)組、結(jié)構(gòu)體與共用體、文件操作等內(nèi)容。其中指針起到了承前啟后的作用,學(xué)習(xí)并掌握指針,對學(xué)習(xí)者獲得程序設(shè)計技巧和能力、繼續(xù)學(xué)習(xí)其它計算機(jī)專業(yè)課程至關(guān)重要。.教師自我思考在課堂教學(xué)中起主導(dǎo)作用的教師,應(yīng)根據(jù)指針教學(xué)所必需的基礎(chǔ)知識,在授課過程中不斷調(diào)各關(guān)鍵知識點的重要性,盡可能在指針內(nèi)容的學(xué)習(xí)之前,使學(xué)習(xí)者具備理解指針概念的基礎(chǔ)知識和基本能力。在教學(xué)內(nèi)容的組織上,強(qiáng)調(diào)和分析指針與基本數(shù)據(jù)類型、函數(shù)、數(shù)組的內(nèi)在聯(lián)系,靈活設(shè)計教學(xué)程序?qū)嵗?,為學(xué)習(xí)者掌握指針及c語言程序設(shè)計創(chuàng)造良好條件。.學(xué)生學(xué)習(xí)方法建議學(xué)習(xí)本章內(nèi)容時,應(yīng)重點掌握指針與指針的區(qū)別、指針的引用方法和運算,并在此基礎(chǔ)上進(jìn)一步理解指針作為函數(shù)參數(shù)和在數(shù)組當(dāng)中的的應(yīng)用,要求多讀程序,理解編程的算法、編程的思路,并仿照例題多編程序、上機(jī)練習(xí),真正掌握指針的靈活應(yīng)用.教學(xué)目標(biāo)(1)知識層面:a)使學(xué)生掌握指針和指針變量的概念、表達(dá)方式和區(qū)別;b)使學(xué)生掌握指針作為函數(shù)參數(shù)的使用;c)使學(xué)生初步了解指針在數(shù)組中的應(yīng)用;(2)能力層面:在編程語言環(huán)境熟練應(yīng)用指針編寫一些簡單程序、并且經(jīng)過不斷的鍛煉深化能力、最終掌握指針的應(yīng)用(3)認(rèn)知層面:深刻理解指針的相關(guān)概念和指針做函數(shù)參數(shù)和在數(shù)組當(dāng)中的應(yīng)用.教學(xué)重點與難點(1)教學(xué)重點:指針做函數(shù)參數(shù)和在數(shù)組當(dāng)中的應(yīng)用(2)教學(xué)難點:如何讓學(xué)生更好地明白指針的概念處理方法:用圖示和結(jié)合實列并盡力用通俗易懂的語言幫助學(xué)生理解指針和指針的應(yīng)用.教學(xué)內(nèi)容設(shè)計教學(xué)內(nèi)容標(biāo)題教學(xué)過程設(shè)計意圖和目的指針的導(dǎo)入如果在C程序中定義了一個變量,計算機(jī)會自動分配一個存儲單元給它,這對用戶是完全透明的,那么我們對變量的操作實際上就是對存儲單元里的內(nèi)容進(jìn)行操作,這種存取艾量,扈的方式稱為"直接存取"。另外一種存取方式是"間接存取",這種存取方式大體思想是如果想操作存儲單元a里的內(nèi)容可以間接地通過存儲單元b來完成。打個比方,打八個房間有兩種可能性:有A房間的鑰匙,直接打開A房間;A間的鑰匙放到了B房間,有B房間的鑰匙,現(xiàn)在可先打開B房間,找到A房間鑰匙后,再將其打開,這屬于間接打開,訪問A也叫間接訪問。指舉出實例讓初次了解指針變量的學(xué)生更容易了解指針和指針變量的含義
針就相當(dāng)于B房間里的這把鑰匙,在計算機(jī)中的表示就是地址,就是指針。在C諦言中,允許用一個變量來存放指針,這種變量為指針變量,而a才的b房間就相當(dāng)于指針變量。問接訪問和問接訪問.直接訪問:直接按變量名進(jìn)行的訪問就是直接訪問,如:#include<stadio>voidmain()(inti=3;Printf("i=%d",i):).間接訪問:如果有一個房間的鑰匙在一個盒子里鎖著,我們現(xiàn)在要進(jìn)入這個房間,首先要用盒子的鑰匙開了盒子,取出房子的鑰匙才打開房門,進(jìn)入到房間里面。像這樣的訪問就是間接訪問,而指針就是這樣的間接訪問,如:#include<stadio>voidmain()(inti=3;Int*p;P=&i;Printf("i=%d",*p):)使學(xué)生明白直接訪問和間接訪問的區(qū)別指針變量的定義(1)指針變量的定義:類型名*指針變量名int*p1;//p1是指向整型變量的指針變量,簡稱int型指針float*p2;//p2是指向整型變量的指針變量,簡稱float型指針double*p3;//p3是指向整型變重的指針變重,簡稱double型指針char*p4;//p4是指向整型變重的指針變重,簡稱char型指針解釋說明:類型標(biāo)識符*變量名;其中,*表示這是一個指針變量,變量名即為定義的指針變量名,類型標(biāo)識符表示本指針變量所指向的變量的數(shù)據(jù)類型。例如:int*p;此條語句表示p是一個指針變量,它值是某個整型變量的地址。也可以說p指向一個整型變量。至讓學(xué)生明白指針的定義和符號表達(dá)方■式于p究竟指向哪一個整型變量,應(yīng)由向p賦予的地址來決定。char*q;q是指向字符變量的指針變量。或者說q指向一個字符變量。在教學(xué)中應(yīng)該著重向?qū)W生強(qiáng)調(diào),一個指針變量只能指向同類型的變量。如p只能指向整型變量,不能把q指向的變量,再讓p指向。應(yīng)用舉例讓學(xué)生了解如何通過指針變量訪問整型變量和以及如何給指針變量賦值通過指針變量訪問整型變量。應(yīng)用舉例讓學(xué)生了解如何通過指針變量訪問整型變量和以及如何給指針變量賦值#include<stdio.h>intmain()(inta=100,b=10;int*p_1,*p_2;p_1=&a;p_2=&b;printf("a=%d,b=%d\n",a,b);printf("p_1=%d,p_2=%d\n",*p_1,*p_2);return0;}說明:p_1=&a表示P_1指向a,而p_2=&b;表示P_2指向b;p_1的值為&a(a的地址),p_2的值為&b(b的地址)問題設(shè)計#include<stdio.h>讓學(xué)生了解如何通過指針實現(xiàn)兩個整型數(shù)值的交換舉例:按輸入a和b兩個整數(shù),按從大到小的順序排列輸出a和b問題設(shè)計#include<stdio.h>讓學(xué)生了解如何通過指針實現(xiàn)兩個整型數(shù)值的交換intmain()+(inta,b;int*p1,*p2,*p;printf("Pleaseentertwointegernumbers:");scanf("%d%d",&a,&b);p1=&a;p2=&b;if(a<b)(printf("max=%d,min=%d\n",*p1,*p2);return0;)問題:請問橫線處應(yīng)該如何填寫?才能從大到小輸出a,b兩個數(shù)的值指針變量作為函數(shù)參數(shù)的例子例子:按輸入a和b兩個整數(shù),按從大到小的順序排列輸出a和b程序編程:#include<stdio.h>intmain(){voids*p_1,int*p_2);//對swap函數(shù)的聲明inta,b;//定義兩個整型變量a和bint*p1,*p2;//定義兩個int*型的指針變量printf("Pleaseenteraandb:");scanf("%d%d",&a,&b);p1=&a;p2=&b;if(a<b)s);//輸入兩個整數(shù)〃使p1指向a//使p2指向b//如果a<b,調(diào)用swap函數(shù)printf("max=%d,min=%d\n",a,b);//輸出結(jié)果return0;)voids*p_1,int*p_2)//定義swap函數(shù){一一inttemp;〃定義一個整型的中間變量temptemp=*p_1;//使*p_1和*p_2進(jìn)行交換p_1=*p_2;p_2=temp;)兩個數(shù)的交換,就如同有三個盒子temp,*p_1,*p_2,現(xiàn)在*p_1和*p_2兩個盒子都裝滿了東西,并且:把兩個盒子的進(jìn)行交換,此時,必須借助三個盒子temp,才能使他們進(jìn)行交換。讓學(xué)生了解指針變量形參和實參的值得傳遞將輸出結(jié)果展示出來更易于分析程序輸入8463結(jié)果如'E:\C\Debug\l23uioii.exe"Pleaseenteraandb:8463max=84,min=63Pressanykeytocontinue.圖通過指針應(yīng)用數(shù)組讓學(xué)生明白數(shù)組指針的概念和了解指針的一些運算圖通過指針應(yīng)用數(shù)組讓學(xué)生明白數(shù)組指針的概念和了解指針的一些運算(1)數(shù)組元素的指針既然指針變量可以指向變量,同樣地也可以指向數(shù)組元素。所謂數(shù)組元素的指針就是數(shù)組元素的地址,如:inta[10]a[10]={1,2,3,5,4,6,7,9,8,10);int*p;p=&a[0];(2)在引用數(shù)組元素時指針的運算指針指向數(shù)組元素時,可以對指針進(jìn)行如下運算:加一個整數(shù)(用+或+=),如p+1;減一個整數(shù)(用-或-二),如p-1;自加運算,如p++,++p;自減運算,如p--,--p;(3)指針表示數(shù)組:.p+i和a+i表示:a[i]的地址;.*(p+i)和*(a+i)表示:數(shù)組元素a[i]指針表示數(shù)組的示意P「瞰組p+La+i{.{a[0]|a[1]a[2]p+i^+iJ*[d+03|:p+9,a+9a[9]小意圖展小更加直觀形象容易了解、模擬數(shù)組在內(nèi)存的排列圖指針數(shù)組的應(yīng)用舉例(4)引用一個數(shù)組兀素有兩種方法:下標(biāo)法:如a[i]指針法:如*(a+i)或*(p+i)應(yīng)用舉例:有一個整型數(shù)組a,有10個元素,要求輸出全部數(shù)組元素。程序代碼:#include<stdio.h>voidmain(){inti,a[10];printf("pleaseenter10integernumbers:");for(i=0;i<10;i++)scanf("%d”,&a[i]);for(i=0;i<10;i++)printf("%d”,*(a+i));printf("\n");}用例子的方法說明指針形式和數(shù)組等價幾個重要的指針表示形式:*p++;先實現(xiàn)*p運算,然后使p自增1(p++);先實現(xiàn)*p運算,然后使p自增1(p--);先實現(xiàn)*p運算,然后使p自減1(++p);先實現(xiàn)p自增1,然后使進(jìn)行*運算(--p);先使p自減1,然后進(jìn)行*運算++(*p);表示P所指向白^值加1說明幾個重要的指針形式含義的說明圖示說明例如:將數(shù)組a中n個整數(shù)按相反的順序存放用圖示的方法展示直觀形象。易于理解制此般組抻M嚏舞柜藏后存機(jī)栽蝦圖程
序
代
碼?mJkJi24576011973K褪斤弼算法實現(xiàn):用形參和實參都為數(shù)組名來實現(xiàn)#include<stdio.h>intmain()(voidinv(intx[],intn);//inv函數(shù)聲明inti;inta[10]={3,7,9,11,0,6,7,5,4,2};printf("Theoriginalarray:\n");for(i=0;i<10;i++)printf("%d",a[i]);//輸出為交換時數(shù)組各元素的值printf("\n");inv(a,10);〃調(diào)用inv函數(shù),進(jìn)行交換printf("Thearrayhasbeeninverted:\n");for(i=0;i<10;i++)printf("%d",a[i]);//輸出交換后數(shù)組各元素的值printf("\n");return;voidinv(intx[],intn)//形參x是數(shù)組名{利用程序代碼實例與解題思路相結(jié)合,使學(xué)生更理解程序代碼說代表的意思用指針做函數(shù)參數(shù)說明四種形參和實參的表達(dá)方式用指針做函數(shù)參數(shù)說明四種形參和實參的表達(dá)方式inttemp,i,j,m=(n-1)/2;for(i=0;i<=m;i++)(j=n-1-i;temp=x[i];x[i]=x[j];x[j]=temp;//把x[i]和x[j]進(jìn)行交換}return;}解題思路:將a[0]與a[n-1]進(jìn)行交換,再將a[1]與a[n-2]交換……直到將a[int(n-1)/2]與a[int((n-1)/2)-1]交換。今天用循環(huán)處理此問題,設(shè)用兩個“位置指示變量"i和j,i的初值為0,j的初值為n-1.將a[i]和a[j]交換,然后使i的值加1,j的值減1,再.將a[i]和a[j]交換,直到i=(n-1)/2為止如果有一個實參數(shù)組,要想在函數(shù)中改變此數(shù)組中的元素的值,實參和形參的對應(yīng)關(guān)系有四種情況。
P冊參加賣嫡甜酣變量intm刎}voidffint?)(,intn]rm"〔I\aukijm.隨叔1/日1naii■in■■■vimiiaiiiarinl>W狒m猾胸?intrnsinfivcidfCintxlIjntn)1回叫尸;InWajiianrifaia■'fM;}?!l「教學(xué)總結(jié)通過本次課呢,我們了解到指針與指針變量的一些基本概念,表達(dá)形式及其的一些簡單的應(yīng)用。重點了解指針的一些運算,如*p++等;還有指針做函數(shù)參數(shù)的應(yīng)用,尤其是在數(shù)組中做函數(shù)參數(shù)的應(yīng)用。指針是C諦言程序設(shè)計課程的重點,凝結(jié)了C諦言的精髓,但同時也是教學(xué)難點,掌握起來有f的難度。學(xué)習(xí)者只有在基礎(chǔ)內(nèi)容的學(xué)習(xí)過程中,不斷地積累相關(guān)知識、鍛煉自身的綜合能力,才方旨為指針內(nèi)容的學(xué)習(xí)奠定良好的基礎(chǔ)。而作為教學(xué)主導(dǎo)者的教帥,也要/、斷理解課程各個知識點的內(nèi)在聯(lián)系,精心設(shè)計簡單明了的教學(xué)實例,逐步降低學(xué)習(xí)的難度,兩者缺一不可。在以后的教學(xué)工作中,筆者將繼續(xù)關(guān)注C語言程序設(shè)計課程各知識點的內(nèi)在聯(lián)系,總結(jié)影響教學(xué)效果的各種外在因素,不斷探索課程教學(xué)改革的內(nèi)容、
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度特色餐飲檔口經(jīng)營權(quán)轉(zhuǎn)讓合同
- 二零二五年度養(yǎng)殖場地承包與農(nóng)業(yè)科技研發(fā)合同
- 二零二五年度土地經(jīng)營權(quán)流轉(zhuǎn)與農(nóng)產(chǎn)品品牌建設(shè)協(xié)議
- 2025年度校園安全責(zé)任協(xié)議書家長反饋流程
- 二零二五年度施工合同糾紛和解免責(zé)協(xié)議
- 2025年度都市時尚酒吧連鎖經(jīng)營合作協(xié)議
- 工作交流座談會發(fā)言稿
- 整體防雷方案設(shè)計及接地系統(tǒng)方案
- 2025年郴州貨運從業(yè)資格考試題
- 影視劇本等信息保密合同
- 溫庭筠《望江南》ppt課件
- 口腔正畸學(xué)單詞
- 公共場所健康證體檢表
- 普通高等學(xué)校獨立學(xué)院教育工作合格評估指標(biāo)體系(第六稿)
- 內(nèi)襯修復(fù)用HTPO管材企標(biāo)
- 部編教材一年級下冊生字筆順筆畫
- 多維閱讀第13級—A Stolen Baby 小猩猩被偷走了
- 二維火收銀使用手冊
- 2018版公路工程質(zhì)量檢驗評定標(biāo)準(zhǔn)分項工程質(zhì)量檢驗評定表交通安全設(shè)施
- EN12680.3中文
- 歐科模塊化風(fēng)冷冷水熱泵機(jī)組報警代碼和維修步驟
評論
0/150
提交評論