999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C++/C語言的多重指針課堂教學設計

2012-04-29 00:00:00黃文曉
中國外資·下半月 2012年8期

摘要:依照“先易后難”、“循序漸進”等教學原則,給出了一個“C++/C語言的多重指針”課堂教學設計,并且結合例子給出了具體的教學過程、給出了其中各個主要步驟的教學目的、分析了該設計的教學效果。

關鍵詞:C++/C 指針 教學設計

引言

“C++/C”是一門計算機程序設計高級語言,內容豐富,其中的“指針”部分是重要內容之一。“指針”中的“多重指針”是教學難點,普遍認為這個內容“難教難學”。如何突破這個教學難點?在現有的相關文獻中是否有成功的方法可以借鑒?文獻[1]是介紹“C++”的著名教材。在這本書里,作者用兩個例子完成了“多重指針”的介紹:第一個例子是“指針數組”,第二個例子是“指向該數組元素的指針”,即“指向指針的指針”。這兩個例子,難度跨度過大,學生不容易理解和掌握該概念。文獻[2]將二重指針分別和變量以及數組結合在一起, 討論了二級指針變量與二級指針數據的用法與區別。除了上述文獻之外,還有不少文獻討論C++/C教學法。文獻[3] 提出了C++/C教學的“指導思想”:“正確處理新理論、新技術與舊內容的關系”等。文獻[4] 提出了如下教學方法:采用啟發式教學、采用任務驅動教學法、采用“框架法”和“求異法”和采用“多媒體”等。文獻[5] 結合教學實踐,提出了“漸進式教學法”和“啟發式教學法”,主張通過“編程”來理解新概念,通過“由易到難”啟發學生并引入新概念。

受以上參考文獻啟發,本文將提出一個突破該教學難點的教學過程,以課堂教學設計的形式介紹于下:

一、C++/C多重指針的課堂教學設計

我們先將教學的基本條件以及學生的基本情況做一介紹,然后再談課堂教學設計的內容和步驟。

(一)教學的基本條件

一間教室,可容納100人左右,配備有多媒體教學設備。

(二)學生的基本情況

學生在接觸C++/C之前僅學過《計算機應用基礎》,從未接觸過另外的編程語言,也沒有學過另外的計算機課程。對于該課程,學生已學過“函數”、“數組”和“單重指針”等內容。

(三)教學目的

讓學生理解并掌握概念:“二重指針”和“多重指針”。

(四)教學設計的基本思想

基于以上的教學基本條件和學生的實際情況,筆者認為應該按以下原則進行教學:

先簡后繁,先易后難,循序漸進,前后對比,歸納總結。

下面我們按這個原則設計教學過程。

(五)教學過程

預備:在課堂上,老師降落銀幕,打開投影儀,啟動電腦,啟動VC系統,進入編輯界面;老師組織學生簡單地復習一下指針的概念,然后介紹下面的內容:

1、多重指針(含單重指針,下同)與變量的關系

我們將通過一個簡單例子,引入多重指針的概念,并舉例該概念的初步應用。在這里,老師結合下例指出:一個變量對應一個內存單元,我們可以用一重指針變量指向這個內存單元,如果有必要的話,也可以用多重指針變量通過特定的傳遞關系指向這個內存單元。

老師將下列程序輸入系統并運行,將結果輸出到銀幕上:

void main()

{int a=12,*p, **q,***r ;

p=a;

q=p;

r=q;

cout<

a=13;

cout<

*p=14;

cout<

**q=15;

cout<

***r=16;

cout<

}

銀幕上顯示的結果是:

12,12,12,12

13,13,13,13

14,14,14,14

15,15,15,15

16,16,16,16

當上面的程序運行結束之后,老師面向學生分析上述程序:

該程序的前三條語句“p=a; q=p; r=q;”,其功能對應下面的示意圖:

變量a是一個已經初始化或者賦值的整形變量,語句“p=a;”規定了一重指針變量p指向變量a;語句“q=p”規定了二重指針變量q經過一重指針變量p指向變量a;語句“r=q;”規定了三重指針變量連續經過兩個指針變量q和p而指向變量a。四條語句“a=13; *p=14;**q=15;和***r=16;”的功能都是對同一個變量a賦值,以上程序運行結果也驗證了這一點。

老師還應指出:三條語句“p=a; q=p; r=q;”是有序的,是由p、q、r的定義所規定的,不可顛倒順序,也不能“越級”,譬如“*q=a;”或者“q=a;”都是錯誤的,當然“**r=a”或者“*r=p”也是錯的。另外,“(a)”總是錯的,因為符號“”是取變量的地址,而地址,譬如a,是“值”而不是變量,所以 “(a)”無意義。

老師還應強調指出:此例中的int可用float、double或者char代換,其程序和結論相同,但應該注意的是,當用類型char代換int之后,給變量賦值時可賦字符形的,也可賦整形的。

最后,老師可以補充:此例中的變量a,也可以是數組元素,因為一個數組元素等價一個變量,只是命名規則不同而已。

2、多重指針與字符串(或者字符數組)的關系

這一步驟是為介紹“指針數組和多重指針”做準備,同時也是為了拓寬多重指針的應用范圍。

在討論“多重指針與字符串(或者字符數組)的關系”之前,老師應強調:在C++/C語言里,字符串有其特殊的操作規則,特別是將一個字符串常量賦給一個字符指針或者輸入到一個字符數組時,該指針或者數組名接收該字符串首字符的地址,而不是接收字符串本身,將字符串和多重指針結合時更要注意這一點。另外,要輸出整個字符串,只需將該字符串的首字符地址置入輸出語句即可。

老師將下列程序輸入系統并運行,將結果輸出到銀幕上:

void main()

{ char *bb=\"1234512345\",**qq,***rr;

qq=bb;

rr=qq;

cout<

bb=\"dfDDDDDDf\";

cout<

*qq=\"jhhjhbjhjhb\";

cout<

**rr=\"mmmmmm\";

cout<

}

銀幕上顯示的結果是:

1234512345,1234512345,1234512345

dfDDDDDDf,dfDDDDDDf,dfDDDDDDf

jhhjhbjhjhb,jhhjhbjhjhb,jhhjhbjhjhb

mmmmmm,mmmmmm,mmmmmm

當上面的程序運行結束之后,老師面向學生分析上述程序:

變量bb,qq以及rr的順序關系和上例類似,即兩條語句“qq=bb; rr=qq;”順序不可顛倒。同時,變量rr通過qq指向bb,qq直接指向bb,以上的程序運行結果也驗證了這一點。另外,老師應提醒學生注意語句“cout”,其中列出的是存儲有字符串首字符地址的指針。

3、多重指針與字符串數組的關系

在這里,老師應指出:上面的例子表明存儲字符串的數組應該是指針數組,其中的每一個元素,相當一個指針變量,記錄對應字符串的地址。

老師將下面的程序輸入系統并運行,將結果輸出到銀幕上:

void main()

{char *cc[5]={\"abc\",\"defg\",\"89kp\"},**qqq,***rrr; int u=2;

qqq=cc[u];

rrr=qqq;

cout<

cc[u]=\"kkkkk\";

cout<

*qqq=\"LLLLLLL\";

cout<

**rrr=\"RRRRRRR\";

cout<

}

上面程序運行的結果是:

89kp,89kp,89kp

Kkkkk,kkkkk,kkkkk

LLLLLLL,LLLLLLL,LLLLLLL

RRRRRRR,RRRRRRR,RRRRRRR

到此,老師面對學生應做如下分析:語句char *cc[5]={\"abc\",\"defg\",\"89kp\"}定義了一個指針數組,含5個元素,并且給數組cc做了初始化。這里,數組中的5個元素分別指向不同的字符串,譬如元素cc[2]指向字符串“89kp”。類比以上的例子,我們可以用多重指針指向數組中的各個字符串。在這個例子中,我們用多重指針變量qqq和rrr指向字符串cc[u],qqq直接指向cc[u], 而rrr通過qqq指向cc[u]。

4、總結

講完以上內容之后,老師應組織學生簡單回顧以上的三個例子,并且歸納出結論:任何類型的變量,包括指針變量,都對應一個內存單元,我們均可以依照C++/C語法用指針變量或者多重指針變量指向它們。

(六)教學效果分析

就一般情形而言,引進多重指針主要是為了方便訪問指針數組中的元素,譬如輸入和輸出。具體地說,我們主要讓學生理解并掌握上述的第三個例子。但是在第三個例子中,含字符串、數組及指針等三個重要概念。這三個重要概念,特別是第一和第三個,都是教學難點,如果將它們放在一起討論,無疑提高了學生的理解難度。如果我們直接講解第三個例子,學生只能機械地記憶該例子而不是真正的理解。在這里,我們先引入例(1),將多重指針的概念和變量聯系在一起,而其中的單重指針和變量的關系在引入指針概念時學生已經學過。學生有了指針的概念,將“單重指針和變量的關系”過渡到“多重指針和變量的關系”,其難度應該不會太大。在這個例子中,學生了解了多重指針指向變量的概念及其初步應用。當我們引入第二個例子時,學生對其中的問題有了“似曾相識”之感,只要老師引導學生對字符串的概念加以簡單回顧,學生就可以容易理解該例子并初步掌握多重指針的概念。到了例子(3),老師應強調:“例子(3)和例子(2)類似,不同之處在于:例(2)處理單個字符串,而例(3)處理一組字符串,從本質上說兩例幾乎沒有區別”。通過老師的強調和分析,學生就容易理解例(3)了。到此,學生應該理解和掌握多重指針的概念了,預計的教學目的達到。

二、關于本課堂教學設計的實踐

本文提出的教學設計,是經過多年的教學經歷后提出來的。早期,和教材一致,一開始就舉例子講解二重指針與指針數組的關系。課堂上,學生也能夠積極參與,但在考試時無法解答多重指針問題。應用本設計教學以后,大部分學生對多重指針都能夠理解,面對相關問題時有了信心。

三、結論

本文基于實際情況而設計的“C++/C多重指針課堂教學”,體現了“先易后難”、“循序漸進”等教學原則。在教學實踐中,可結合啟發式教學法實施該教學設計,將會取得預期的教學效果,達到預期的教學目的。

參考文獻:

[1]譚浩強.C++程序設計[M].第一版.北京,清華大學出版社,2004.6

[2]韓海.關于二級指針的進一步討論[J].江漢大學學報,Vol.33, No.1, pp.42-44, Mar., 2005

[3]秦玉平,馬靖善.“C語言程序設計”課程教材建設與教學方法研究[J].計算機教育,No。4,pp.157-160,2010.2.25

[4]楊艷梅,劉心軍.C語言程序設計教學探討[J].信息與電腦,2011.2,pp111

[5]張偉宏.“C語言程序設計”教學方法探討[J].科技文匯,下旬刊,pp.95-96. 2009.11

主站蜘蛛池模板: 五月婷婷精品| 国产小视频免费观看| 午夜精品影院| 亚洲综合狠狠| 亚洲人网站| 国产69精品久久| a天堂视频| 精品综合久久久久久97超人该| 日韩色图在线观看| 国产精品无码在线看| 亚洲视频四区| 手机永久AV在线播放| 国产在线欧美| 亚洲二区视频| 国产日本一线在线观看免费| 毛片免费高清免费| 亚洲日韩精品欧美中文字幕 | 婷婷综合缴情亚洲五月伊| 欧美人人干| 91青青视频| 大香伊人久久| 国产成人综合久久精品下载| 日本午夜精品一本在线观看| 亚洲精品片911| 国产SUV精品一区二区6| 2020国产免费久久精品99| 91国内在线观看| 免费在线观看av| 精品少妇人妻无码久久| 国产成人1024精品| 成人一区专区在线观看| 欧美三级日韩三级| 在线一级毛片| 视频在线观看一区二区| 色综合天天综合中文网| 亚洲国产在一区二区三区| 国产成人久久综合777777麻豆| 久久国产精品影院| 国产区人妖精品人妖精品视频| 2024av在线无码中文最新| 欧美一区精品| 人妻丰满熟妇αv无码| 高清免费毛片| 青青操国产视频| 无码专区在线观看| 精品日韩亚洲欧美高清a| AV无码国产在线看岛国岛| 亚洲最新网址| 成人一级黄色毛片| 色噜噜狠狠色综合网图区| 久久精品中文无码资源站| 超级碰免费视频91| 亚洲精品欧美重口| 亚洲视频一区| 日韩成人午夜| 国产区免费精品视频| 亚洲av综合网| 看国产一级毛片| 在线色国产| 日本午夜视频在线观看| 国产精品久久久久久久伊一| 国产h视频免费观看| 18禁色诱爆乳网站| 日日碰狠狠添天天爽| 亚洲国产中文在线二区三区免| 熟妇人妻无乱码中文字幕真矢织江| 亚洲精品无码不卡在线播放| 嫩草影院在线观看精品视频| 亚洲视频免费在线| 91免费国产在线观看尤物| 日韩av电影一区二区三区四区| 国产人碰人摸人爱免费视频| 一级做a爰片久久毛片毛片| 一级一毛片a级毛片| 国产成人乱码一区二区三区在线| 亚洲黄网在线| 国产成人夜色91| 在线国产91| 欧美五月婷婷| 国产乱子伦一区二区=| 韩国v欧美v亚洲v日本v| a天堂视频|