首页 > 范文大全 > 正文

C语言程序设计教学方法研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇C语言程序设计教学方法研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

[摘要]C语言程序设计是计算机专业学习中的一门基础课程,是培训学生对计算机程序设计学习兴趣的关键课程。分析C语言教学过程中存在的一些问题,并从方法论的观点出发,针对不同的学习阶段,运用不同的教学方法来提高教学质量。

[关键词]C语言程序设计方法论教学方法

[中图分类号]G642[文献标识码]A[文章编号]2095-3437(2014)10-0056-02本文主要从学习C语言的5个阶段来阐述如何把方法论运用于C语言教学中。

一、理解计算机程序设计语言的特点

计算机的实质是一种在指令的控制下运行的一种电子设备。计算机只能识别二进制编码的机器指令。因为机器语言难学,难记忆,所以在计算机技术的发展过程中,逐步出现了汇编语言,高级语言和面向对象的语言。所有这些计算机编程语言出现的目的都是想以尽量“接近”人类的语言来编写计算机程序。所有的计算机程序设计语言最终都要“翻译”成计算机可执行的机器语言,因此计算机程序设计语言即具有人类自然语言的特点,也具有“计算机”语言的独特之处。一方面,在学习计算机程序设计语言中,可以借鉴学习自然语言的方法来学习计算机编程语言,让学生容易理解、接受。如自然语言有字符集,那么各类程序设计语言也有他们各自的字符集。自然语言有语法法则,那么计算机语言也有语法法则,只有符合语言法则,计算机才能识别并翻译成机器语言。另一方面,计算机程序设计语言,最终要“翻译”成机器语言,由于CPU只能执行特定的某些指令,计算机程序设计语言的语法规则是由计算机语言设计者所设计,都是规定“死”了的法则,因此计算机程序设计语言不能像自然语言那样能够灵活使用。

二、透彻理解标识符、常量、变量、运算符和表达式

老师讲课时,应尽可能多运用各种教学方法讲课,如类别法,对比法等,把一些基础知识讲透彻,让学生容易理解、接受。如讲字符集时,可以用汉字字库来类别;讲标识符时,可以用“名字”来类别;讲常量时,一定要调动学生思维,让学生领悟到计算机是如何识别常量的,并运用对比法,理解各种常量之间的区别,如字符‘A’与字符串“A”的区别,字符‘1’与数字1的区别等等;讲变量时,讲清楚变量的数据类型、存储格式和可进行的运算操作。讲运算符时,这种强调运算符的优先级和结合性,并用数学中的优先级和结合性的实例进行类比。

三、理解C语言语句

语句是程序设计语言的重要组成部分,如果不把语句理解清楚,学生没办法编程。C语言语句包括:控制语句、函数调用语句、表达式语句、空语句和复合语句。学生极易在空语句和复合语句这两个知识点上犯错误。讲课时,不仅要讲清楚空语句和复合语句的概念,而且要结合控制语句一起,演示空语句和复合语句对程序结构的影响。现在用2个实例来分别说明空语句和复合语句对程序结构的影响。

例 1假设变量均已定义,执行下列语句的结果是()

for(i=1;i

printf(“*”);

A *****B *C 有语法错误

本题好多学生一看马上选A,正确的答案是B,因为for语句括号后有1个分号,所以循环体是空语句,当for循环执行结束后,顺序执行后面的printf(“*”);语句,输出1个“*”。

例 2编一个程序,满足下面函数的功能:输入一个x值,输出y值。请判断下面程序是否正确。

y=-1(x0)

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\n”,x,y);}

本例大部分学生都认为是正确的,认为else与if(x>=0)的那个if匹配,实际上else应与if(x>0)的那个if匹配,因为else总是与上面最近没有匹配的if向匹配。要使else与if(x>=0)的那个if匹配,可以再用一对花括号把if(x>0) y=1;这条语句括起来,由于复合语句里面的结构不能与花括号外面有联系,所以按以上方法加花括号后,就改变了程序的流程,使else与if(x>=0)的那个if匹配。修改结果如下:

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\n”,x,y);}

在讲完语句这部分内容之后,要及时给学生做总结,让学生深刻理解控制语句结构中语句可以是哪些语句。如 if(表达式) 语句,这里的“语句”可以是以下3种:

1.一条简单的语句;

2.由1对花括号括起来的1条复合语句;

3.只有1个“;”构成的空语句;

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

在教书过程中,好多学生总说老师讲的内容都懂,照着老师编程都会,就是当自己编程时遍不出来。这部分学生其实是算法分析能力较差,并不是C语句基础知识不好。在讲课时,首先让学生先把C语言抛在一边,理解题意,分析算法,并用流程图把算法描述出来,然后根据流程图编写程序。例如:从键盘上输入一个年份,判断改年是平年还是闰年。

1.让学生理解闰年的判断方法:(1)不能被4整除的肯定不是闰年,能被4整除的不能确定;(2)能被4整除但不能被100整除的是闰年,能被4整除且能被100整除的不能确定;(3)能被4整除又能被100整除同时也能被400整除的是闰年,能被4整除又能被100整除但不能被400整除的不是闰年。

2.画N-S流程图。

3.根据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.\n ”,year);

else

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

}

一般题目经过这3步后,学生比较容易理解、接受。训练一段时间后,算法分析能力逐步提高,编程就不在困难了。

五、提高调试程序的能力。

学生编程出错在所难免,关键是如何让学生快速地找到错误并快速更改过来,确实是一件不容易的事。程序错误可以分为语法错误和语义错误。对于语法错误,编译器可以查出来,并可以定位错误,一般错误就是在指定的那行,如果那行没有错误,就向上找,如果再找不出来,就看程序的整体结构。对于语义错误,让学生自己把程序“执行”一遍,分析错误的结果是怎么执行出来的,然后通过对比,就可以发现语义错误。

[参考文献]

[1]谭浩强.C程序设计第三版[M].北京:清华大学出版社,2005,.

[2]化志章,揭安全,钟林辉.Java程序设计―从方法学角度描述[M].北京:机械工业出版社,2012.

[3]卢照,南丽丽,杨秀荣.C语言程序设计教学中问题和改进方法的探讨[J].现代计算机,2012,(1).