以编写高质量程序为目标的C语言教学探讨
- 格式:pdf
- 大小:156.14 KB
- 文档页数:3
独立学院C语言程序设计的教学探讨摘要:c语言是独立学院开设的计算机语言课程之一。
为了使学生更好地掌握这门语言,结合c语言和独立学院学生特点,对c语言这门课程从理论教学和实践教学两方面进行探讨。
首先,介绍了c语言的发展及特点,针对独立学院这一特殊教学对象群体,提出了在教学过程中更加需要教师认真对待;然后,在理论教学的基础上,说明了激发学生学习兴趣、培养学生编程能力的重要性及实际可行的教学方法;最后,提出了上机练习与实践应用相结合的实践教学模式,让学生在实践中逐步掌握c语言的语法规则及算法,教学效果良好。
关键词:c语言;编程能力;教学方法中图分类号:tp3 文献标识码:a 文章编号:1009-3044(2013)12-2840-04c语言是目前最流行的语言之一,它既具有高级语言程序设计的特点,又具有汇编语言的功能[1]。
同时,c语言概念简洁、语句紧凑、表达能力强、程序结构性和可读性好,很多院校都将c语言作为第一门计算机语言课程开设。
但是,由于c语言灵活性大以及内容抽象等特点,加之授课对象是刚刚接触程序设计语言的大一或大二的学生,在实际的教学过程中,很多学生由于对概念理解模糊、逻辑思维理解能力不强,导致普遍认为c语言很难学,甚至是畏惧c语言编程。
该文针对c语言特点以及独立学院学生这一特殊教学对象,结合对c语言的学习体会、教学过程及c的实践应用对c语言在独立学校的开设进行教学探讨。
1 语言的介绍c语言是国际上广泛流行的计算机高级语言。
它既可用来写系统软件,也可用来写应用软件。
c语言的祖先是bcpl语言。
c语言既保持了bcpl和b语言精炼,且接近硬件的优点,又克服了它们过于简单,无数据类型等的缺点,c语言的新特点主要表现在具有多种数据类型[2]。
开发c语言的目的在于尽可能降低用它开发的软件对硬件平台的依赖程度,使之具有可移植性。
c语言是一种通用性很强的结构化程序设计语言,它具有丰富的运算符号和数据类型,语言简单灵活,表达能力强等特点。
《C语言程序设计》的教学探讨李振涛1)(石家庄铁路工程职业技术学院计算机系1)石家庄050041摘要:C语言是一门功能强大、应用广泛的程序设计语言,但由于其数据类型繁多、结构复杂、运用灵活多变,而成为难学难教的语言,传统教学模式很难适应目前思维开阔的学生。
本文探讨了通过改变教学方法与考试模式、培养学生学习兴趣、激发学生学习的潜在动力、课上课下两条线、实践教学与多媒体课件相结合、学生自主学习和教师适当协助相结合,来提高教学效果。
关键词:C语言教学质量教学模式教学改革一、前言《C语言程序设计》以其功能丰富、表达能力强、目标程序效率高、可移植性好等特点,深受计算机程序设计人员的喜爱和依赖。
另外,全国计算机等级考试、全国计算机应用技术证书考试(NIT)和全国各地区组织的大学生计算机统一考试都将C 语言列为必考范围。
因此目前许多大学理工科院校在低年级开设了《C语言程序设计》,作为学习计算机语言知识或作为其它基础课(如《数据结构》,《面向对象程序设计C++》等课程)的先修课。
C语言作为培养大学生计算机技能至关重要的一门计算机语言,其难度也是相当大的,经常听学生反映该语言难学、难懂、太抽象。
对以往学习过C语言的学生进行软件编程测试,结果也表现出学生编程能力、调试能力较差,甚至影响到后续课程的学习问题。
如何提高这门课程的教学质量和教学效果,在有限的时间内使C语言学习化难为易,把抽象的东西变成具体的,笔者结合近几年C语言教学的经验,尝试了一些新的教学方法,收到了良好的教学效果。
二、明确教学目标,恰当把握教材内容,合理分配教学课时教学目标是期望学生在完成学习任务后达到的程度,是预期的教学效果,是组织、设计、实施和评价教学的基本出发点。
教学目标可分为长期目标和近期目标。
长期目标被称为教育目标,如C语言课程结束后达到什么样的编程能力、为后继课程打下什么样的基础等等,这些无法在具体教学中一次性实现,而是长期努力的方向。
近期目标被称为教学目标,这一目标,主要确定一节课教什么内容,通过哪些活动方式来学习等。
《c语言程序设计》教学探索与实践摘要:C语言时高校理工科的一门重要基础课,本文是在多年的C 语言教学实践中,总结得出的一些C语言的理论和实验的教学经验,通过细致的实例讲解,提出一些行之有效的C语言教学方法。
在理论教学上,提出对教材全局认识来关联各章节的知识,在关联中强化理解语言中的相关专业术语;掌握学习语言的思路,同时对教材内容要有所轻重取舍,避免讲解过细的语法,从简到难;并激发同学们学有所思,多提为什么。
对实验强调背思改的练习过程,背程序是学习的基础,思是对编写程序的理解,最后通过改程序来强化学生们对计算机执行程序过程的理解和灵活应用能力,最终能自如的编写程序。
关键词:C语言程序设计教学目前,随着计算机的广泛应用,人们无论是生活还是学习,对计算机的使用和利用日益增多,新世纪对大学生不仅仅要求掌握计算机操作,如学习Windows和Office等工具软件的使用,还要具备一定的实际应用编程能力。
C语言是理工科专业的一门重要的基础课程,学好C 语言,为今后借助计算机解决理工科的各个专业上的问题打下坚实的基础。
C语言一般开设在大学一年级或大学二年级的上学期,由此可见其重要性和基础性。
在学习过程中,一开始,同学们非常重视C语言的学习,表现得积极主动,认真听讲,但是,几堂课后,这样的状态难以维持,普遍认为学习难度过大,枯燥,特别是上机实验,严格1的语法让同学们几行代码换来十多行英文错误信息提示,本来英语就不是强项,再加上专业性词汇掺杂其中,能看懂错误提示的同学寥寥无几,更查不出错误,失败感油然而生,学习兴趣2和学习信心倍受挫折,很多同学开始放弃学习C语言。
除了这个,C语言难学还有很多原因,首先,C语言本身不是一门简单的课程;其次,学生们自身的基础知识不牢固,数学和英语都涉及到;第三,学生学习能力不强;最后教师教授的方式方法也会影响到C语言的学习。
C语言对初学者来说,是一个全新的天地,就如同学习一门新外语,它有自己的专业词汇,语法和语序。
福建电脑2010年第12期以编写高质量程序为目标的C语言教学探讨王永华,杨健(广东工业大学自动化学院广东广州510006)【摘要】:针对目前C语言教学中存在忽略C程序质量的问题,分析了C语言常见错误、编程规范、程序效率等方面涉及程序质量的内容,提出了在讲授C语言中要加入该方面的内容,以培养学生形成良好的C语言编程习惯。
【关键词】:C语言教学;高质量程序;编程规范C语言是广泛使用的一种计算机语言。
C语言功能丰富、表达能力强,使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又保留了低级语言的许多优点[1],因此国内绝大多数院校工科学生基本都开设了C语言课程。
然而在实际教学中,选用的教材和授课的老师主要关注的是程序结果的正确及基本语法的讲解,而忽略了程序的质量方面的传授和训练。
正确的程序不一定是高质量的程序,程序的质量包括编程规范、出错处理、算法复杂度分析等方面因素[2]。
而这方面的训练是提高程序质量及可维护性、可重用性等的重要保证。
因此在教学中需要增加如何编写高质量C程序的内容,以培养学生这方面的意识,让学生养成良好的习惯。
1、C语言常见误区及错误的避免由于C语言涉及的概念比较复杂,规则多,语法限制不太严格,使用灵活,所以容易出错。
因此在讲授C 语言语句语法等内容的时候,要把C语言的常见错误归纳出来并告知学生,避免学生出错。
编写C语言程序常见错误包括:词法错误、语法错误、语义错误等方面的错误[3]。
以下为常见错误举例[4][5]:(1)void main()的误区目前一些教材,使用了void main(),其实这是错误的,这也是在一些C编译系统里程序往往调试不能成功的原因。
在C89中,main()是可以接受的,但是在最新的C99标准中,只有两种定义方式是正确的:int main(void)和int main(int argc,char*argv[])。
如果不需要从命令行中获取参数,请用int main(void),否则请用int main(int argc,char*argv[])。
main函数的返回值类型必须是int,这样返回值才能传递给程序的调用者(如操作系统)。
所以如果main函数的最后没有写return 语句的话,C99规定编译器要自动在生成的目标文件中(如exe文件)加入return0,表示程序正常退出。
要建议学生最好在main函数的最后加上return语句,养成良好的习惯。
(2)书写标识符时,忽略了大小写字母的区别。
C语言规定大写字母和小写字母是不同的字符,而有些编程语言是不分大小写的。
习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。
(3)忽略了变量的类型,进行了不合法的运算。
例如:int main(void){float a,b;printf("%d",a%b);return0;}“%”是求余运算符,“a%b”的结果是a除以b的余数。
只有“%”左右两边的操作数都是整型时,才可以进行求余运算。
故而上面的程序是错误的,因为a和b 是浮点型变量。
(4)忽略了“=”与“==”的区别,忽略了“&”和“&&”、“|”和“||”的区别。
(5)分号的错误使用,包括语句后忘记加分号和多加分号两种情况。
(6)表达式求值顺序的问题,最好采用括号确定表达式的操作顺序。
(7)忽视了while和do-while语句在细节上的区别。
(8)输入数据的方式与要求不符;输入数据时,企图规定精度;输出的数据类型与所用格式说明符不一致。
(8)没彻底弄清指针和数组的区别;忽略数组下标从零开始,而认为是从1开始;定义数组时误用变量。
(9)函数的形参、实参与返回值方面的问题。
还有其他一些常见错误,这里就不一一列出。
要避免犯这些错误,不仅需要学生学习时认真多看书,多看代码,弄清楚基本概念,还要多动手,多实践。
C语言是一门实践性很强的课程,上机实验是学习C语言语法、加深对基础知识和算法理解的重要途径,也会不断强化错误处理的能力。
另外,还需要引导学生养成良好的编程风格。
2、良好编程风格编程风格是指编程者在程序设计过程中共同遵守200的一些规则或者约定,是一种编程习惯[6]。
在讲授C语言时应让学生遵循一些行业人士所共同遵守编程风格和规则,在保证程序正确性的前提下,能使程序结构清楚,易移植,易读。
采用良好的编程风格和技术还可以提高程序的开发速度和质量,培养学生养成良好的编程习惯,也会避免一些人为常犯的的错误。
良好的编程风格包括文件的结构、标识符的命名规则、程序排版、函数的设计、内存管理等方面的规则[2]。
2.1文件结构C程序一般分为头文件(以“.h”)和定义文件(程序的实现文件,以“.C”为后缀)。
这部分的规则包括版权、版本声明和目录结构管理,一般在版本声明部分要写清版本号、作者、修改者,完成日期;头文件较多时,将头文件和定义文件分别保存于不同的目录。
以方便管理[2]。
2.2程序排版程序排版遵循需要以下规则[2][7]:(1)程序块要采用缩进风格编写,缩进量为一个TAB键。
对齐只使用TAB键,不使用空格键。
(2)函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。
(3)相对独立的程序块之间、变量说明之后必须加空行;函数体内,逻辑上密切相关的语句之问不加空行,其它地方应加空行分隔。
(4)if、while、for、default、do等语句自占一行。
不允许把多个短语句写在一行中,即一行只写一条语句。
较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
(5)程序块的分界符(如C/C++语言的大括号“{”和“}”)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。
在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while0、switch、case语句中的程序都要采用如上的缩进方式。
(6)循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
若函数或过程中的参数较长,则要进行适当的划分。
(7)在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如->),后不应加空格。
2.3程序注释C语言的注释符为“/*?*/”,行注释一般采用“//”。
加注释的原则是[2][7]:(1)适当注释。
不可太多太花哨。
简单的代码不必加注释。
如A=2;/*将2赋给A*/是多余的注释。
(2)避免在注释中使用缩写,特别是不常用的缩写。
(3)边写代码边注释,修改代码要同时修改相应的注释,以保证注释与代码的一致性。
不再有用的注释要删除。
(4)注释准确、易懂,防止注释有二义性。
错误的注释不但无益反而有害。
(5)不使用缩写,注释不只是给自己看的。
(6)注释的位置可以在代码的上方或右方,不可放在下方。
(7)函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用关系(函数、表)等。
(8)对常量、变量的定义和分支语句(条件分支、循环语句等)必须编写注释。
2.4标识符命名标识符包括变量名、常量名、函数名以及类型名等。
标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。
命名中若使用特殊约定或缩写,则要有注释说明。
对于变量命名,禁止取单个字符(如i、j、k...),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但i、j、k作局部循环变量是允许的。
命名规范必须与所使用的系统风格保持一致,并在同一项目中统一。
推荐使用如下方式命名:变量和参数名用小写字母开头,尽量使用名词;宏和常量用大写字母开头;函数名用大写字母开头,尽量使用动词或以动词开头;表示相反意义变量或相反动作的变量或函数可以用反意词区别[2][7]。
2.5变量规范如下:去掉没必要的公共变量;仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系;明确公共变量与操作此公共变量的函数或过程的关系,如访问、修改及创建等;当向公共变量传递数据时,要十分小心,防止赋予不合理的值或越界等现象发生;防止局部变量与公共变量同名;严禁使用未经初始化的变量作为右值[7]。
2.6函数函数应该短小而精悍,功能要单一,明确函数功能,精确(而不是近似)地实现函数设计。
一个函数尽量控制在50行代码之内。
有一个好习惯是把主函数尽量写简短,通常主函数只有几行,几个函数调用语句,而定义全在主函数外部。
这样一是减少了主函数内部的嵌套,二是比较精简,容易读懂[8]。
函数参数的书写要完整,如果没有参数,要用void 填充,不要省略返回值的类型。
对所调用函数的错误返回码要仔细、全面地处理,不要将正常值和错误标志混在一起返回。
编写可重入函数时,应注意局部变量的使用(如编写C/C++语言的可重入函数时,应使用auto即缺省态局部变量或寄存器变量)。
编写(下转第179页)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(上接第201页)可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、V操作)等手段对其加以保护。
3、提高程序效率程序效率包括时间效率、空间效率、全局效率和局部效率等[2]。
编程时要经常注意代码的效率。
但要注意是在保证软件系统的正确性、稳定性、可靠性、可读性及可测性的前提下,提高代码效率。
以提高程序的全局效率为主,局部效率应为全局效率服务,不能因为提高局部效率而对全局效率造成影响。
通过对系统数据结构的划分与组织的改进,以及对程序算法的优化来提高空间效率,先优化数据结构和算法,再优化执行代码;尽量使循环体内工作量最小化[2][7]。
4、结束语C语言表达力强、使用灵活方便,要想学好C语言,学生需要掌握前述的C语言常见错误以及其编程风格等内容。
除了在课堂上加强讲解外,还必须在C程序设计实验过程中将其融入实践环节,通过实例强化训练,并加入考核内容,以从多方面强化学生这方面的意识。
只有当学生彻底领悟了高质量程序的要求和内涵,并将其方法和手段应用到实际的程序设计中,才能编写出高质量的C程序,从而真正达到C语言程序设计课程的培养目标。
参考文献:[1]谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005[2]林锐.高质量的C/C++编程指南[M].电子工业出版社,2005[3]Andrew Koenig著,高魏译.C陷阱与缺陷[M].人民邮电出版社,2002[4]C/C++误区./html/3/3/[5]C语言编程中的常见错误./mcu/clan-guage/0069051.html[6]丁红胜,田金琴.C语言教学中学生编程风格的培养[J].计算机时代,2006年第lO期:65-67[7]C语言编码规范./html/89/n-159189. html[8]严轶群,刘涛.浅谈C语言学习方法和编程风格[J].兰州工业高等专科学校学报,2009.3期.1-3.校在计算机房的管理过程中,必须加强对学生的管理。