国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

C語言程序設計教學方法研究

2014-07-25 19:26:09姚建峰李柏樵
大學教育 2014年10期
關鍵詞:括號C語言程序設計

姚建峰 李柏樵

[摘要]C語言程序設計是計算機專業(yè)學習中的一門基礎課程,是培訓學生對計算機程序設計學習興趣的關鍵課程。分析C語言教學過程中存在的一些問題,并從方法論的觀點出發(fā),針對不同的學習階段,運用不同的教學方法來提高教學質(zhì)量。

[關鍵詞]C語言程序設計方法論教學方法

[中圖分類號]G642[文獻標識碼]A[文章編號]2095-3437(2014)10-0056-02本文主要從學習C語言的5個階段來闡述如何把方法論運用于C語言教學中。

一、理解計算機程序設計語言的特點

計算機的實質(zhì)是一種在指令的控制下運行的一種電子設備。計算機只能識別二進制編碼的機器指令。因為機器語言難學,難記憶,所以在計算機技術的發(fā)展過程中,逐步出現(xiàn)了匯編語言,高級語言和面向?qū)ο蟮恼Z言。所有這些計算機編程語言出現(xiàn)的目的都是想以盡量“接近”人類的語言來編寫計算機程序。所有的計算機程序設計語言最終都要“翻譯”成計算機可執(zhí)行的機器語言,因此計算機程序設計語言即具有人類自然語言的特點,也具有“計算機”語言的獨特之處。一方面,在學習計算機程序設計語言中,可以借鑒學習自然語言的方法來學習計算機編程語言,讓學生容易理解、接受。如自然語言有字符集,那么各類程序設計語言也有他們各自的字符集。自然語言有語法法則,那么計算機語言也有語法法則,只有符合語言法則,計算機才能識別并翻譯成機器語言。另一方面,計算機程序設計語言,最終要“翻譯”成機器語言,由于CPU只能執(zhí)行特定的某些指令,計算機程序設計語言的語法規(guī)則是由計算機語言設計者所設計,都是規(guī)定“死”了的法則,因此計算機程序設計語言不能像自然語言那樣能夠靈活使用。

二、透徹理解標識符、常量、變量、運算符和表達式

老師講課時,應盡可能多運用各種教學方法講課,如類別法,對比法等,把一些基礎知識講透徹,讓學生容易理解、接受。如講字符集時,可以用漢字字庫來類別;講標識符時,可以用“名字”來類別;講常量時,一定要調(diào)動學生思維,讓學生領悟到計算機是如何識別常量的,并運用對比法,理解各種常量之間的區(qū)別,如字符‘A與字符串“A”的區(qū)別,字符‘1與數(shù)字1的區(qū)別等等;講變量時,講清楚變量的數(shù)據(jù)類型、存儲格式和可進行的運算操作。講運算符時,這種強調(diào)運算符的優(yōu)先級和結(jié)合性,并用數(shù)學中的優(yōu)先級和結(jié)合性的實例進行類比。

三、理解C語言語句

語句是程序設計語言的重要組成部分,如果不把語句理解清楚,學生沒辦法編程。C語言語句包括:控制語句、函數(shù)調(diào)用語句、表達式語句、空語句和復合語句。學生極易在空語句和復合語句這兩個知識點上犯錯誤。講課時,不僅要講清楚空語句和復合語句的概念,而且要結(jié)合控制語句一起,演示空語句和復合語句對程序結(jié)構(gòu)的影響?,F(xiàn)在用2個實例來分別說明空語句和復合語句對程序結(jié)構(gòu)的影響。

例 1假設變量均已定義,執(zhí)行下列語句的結(jié)果是()

for(i=1;i<=5;i++);

printf(“*”);

A *****B *C 有語法錯誤

本題好多學生一看馬上選A,正確的答案是B,因為for語句括號后有1個分號,所以循環(huán)體是空語句,當for循環(huán)執(zhí)行結(jié)束后,順序執(zhí)行后面的printf(“*”);語句,輸出1個“*”。

例 2編一個程序,滿足下面函數(shù)的功能:輸入一個x值,輸出y值。請判斷下面程序是否正確。

y=-1(x<0)0(x=0)1(x>0)

main()

{ int x,y;

scanf(“%d”,&x);

y=0;

if(x>=0)

if(x>0)

y=1;

else

y=-1;

printf(“x=%d,y=%d ”,x,y);}

本例大部分學生都認為是正確的,認為else與if(x>=0)的那個if匹配,實際上else應與if(x>0)的那個if匹配,因為else總是與上面最近沒有匹配的if向匹配。要使else與if(x>=0)的那個if匹配,可以再用一對花括號把if(x>0) y=1;這條語句括起來,由于復合語句里面的結(jié)構(gòu)不能與花括號外面有聯(lián)系,所以按以上方法加花括號后,就改變了程序的流程,使else與if(x>=0)的那個if匹配。修改結(jié)果如下:

main()

{ int x,y;

scanf(“%d”,&x);

y=0;

if(x>=0)

{if(x>0)

y=1;}

else

y=-1;

printf(“x=%d,y=%d ”,x,y);}

在講完語句這部分內(nèi)容之后,要及時給學生做總結(jié),讓學生深刻理解控制語句結(jié)構(gòu)中語句可以是哪些語句。如 if(表達式) 語句,這里的“語句”可以是以下3種:

1.一條簡單的語句;

2.由1對花括號括起來的1條復合語句;

3.只有1個“;”構(gòu)成的空語句;

四、提高學生算法分析的能力

在教書過程中,好多學生總說老師講的內(nèi)容都懂,照著老師編程都會,就是當自己編程時遍不出來。這部分學生其實是算法分析能力較差,并不是C語句基礎知識不好。在講課時,首先讓學生先把C語言拋在一邊,理解題意,分析算法,并用流程圖把算法描述出來,然后根據(jù)流程圖編寫程序。例如:從鍵盤上輸入一個年份,判斷改年是平年還是閏年。

1.讓學生理解閏年的判斷方法:(1)不能被4整除的肯定不是閏年,能被4整除的不能確定;(2)能被4整除但不能被100整除的是閏年,能被4整除且能被100整除的不能確定;(3)能被4整除又能被100整除同時也能被400整除的是閏年,能被4整除又能被100整除但不能被400整除的不是閏年。

2.畫N-S流程圖。

3.根據(jù)N-S流程圖編程。

main()

{intyear,leap;

scanf(“%d”,&year);

if(year%4==0)

if(year%100==0)

if(year%400==0)

leap=1;

else

leap=0;

else

leap=1;

else

leap=0;

if(leap)

printf(“%d is a leap year. ”,year);

else

printf(“%d is not a leap year. ”,year);

}

一般題目經(jīng)過這3步后,學生比較容易理解、接受。訓練一段時間后,算法分析能力逐步提高,編程就不在困難了。

五、提高調(diào)試程序的能力。

學生編程出錯在所難免,關鍵是如何讓學生快速地找到錯誤并快速更改過來,確實是一件不容易的事。程序錯誤可以分為語法錯誤和語義錯誤。對于語法錯誤,編譯器可以查出來,并可以定位錯誤,一般錯誤就是在指定的那行,如果那行沒有錯誤,就向上找,如果再找不出來,就看程序的整體結(jié)構(gòu)。對于語義錯誤,讓學生自己把程序“執(zhí)行”一遍,分析錯誤的結(jié)果是怎么執(zhí)行出來的,然后通過對比,就可以發(fā)現(xiàn)語義錯誤。

[參考文獻]

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

[2]化志章,揭安全,鐘林輝.Java程序設計—從方法學角度描述[M].北京:機械工業(yè)出版社,2012.

[3]盧照,南麗麗,楊秀榮.C語言程序設計教學中問題和改進方法的探討[J].現(xiàn)代計算機,2012,(1).

[責任編輯:左蕓]

猜你喜歡
括號C語言程序設計
括號填數(shù)
我曾丟失過半個括號
基于Visual Studio Code的C語言程序設計實踐教學探索
計算機教育(2020年5期)2020-07-24 08:52:56
“入”與“人”
從細節(jié)入手,談PLC程序設計技巧
電子制作(2019年9期)2019-05-30 09:42:04
基于C語言的計算機軟件編程
電子制作(2018年16期)2018-09-26 03:27:08
漏寫括號鬧出的笑話
高職高專院校C語言程序設計教學改革探索
PLC梯形圖程序設計技巧及應用
論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應用
资溪县| 新平| 前郭尔| 安吉县| 秭归县| 阳谷县| 县级市| 乌鲁木齐县| 吉水县| 家居| 邵东县| 珲春市| 呼图壁县| 涡阳县| 化州市| 北票市| 洪江市| 井研县| 米脂县| 出国| 盘锦市| 寿阳县| 新巴尔虎左旗| 顺昌县| 阿拉善右旗| 南溪县| 达州市| 繁昌县| 灵石县| 拉萨市| 台前县| 体育| 陆河县| 河东区| 丹棱县| 土默特左旗| 甘泉县| 佛冈县| 电白县| 永川市| 都江堰市|