C语言设计

2024-05-08

C语言设计(精选十篇)

C语言设计 篇1

关键词:C++/C,指针,教学设计

引言

“C++/C”是一门计算机程序设计高级语言, 内容丰富, 其中的“指针”部分是重要内容之一。“指针”中的“多重指针”是教学难点, 普遍认为这个内容“难教难学”。如何突破这个教学难点?在现有的相关文献中是否有成功的方法可以借鉴?文献[1]是介绍“C++”的著名教材。在这本书里, 作者用两个例子完成了“多重指针”的介绍:第一个例子是“指针数组”, 第二个例子是“指向该数组元素的指针”, 即“指向指针的指针”。这两个例子, 难度跨度过大, 学生不容易理解和掌握该概念。文献[2]将二重指针分别和变量以及数组结合在一起, 讨论了二级指针变量与二级指针数据的用法与区别。除了上述文献之外, 还有不少文献讨论C++/C教学法。文献[3]提出了C++/C教学的“指导思想”:“正确处理新理论、新技术与旧内容的关系”等。文献[4]提出了如下教学方法:采用启发式教学、采用任务驱动教学法、采用“框架法”和“求异法”和采用“多媒体”等。文献[5]结合教学实践, 提出了“渐进式教学法”和“启发式教学法”, 主张通过“编程”来理解新概念, 通过“由易到难”启发学生并引入新概念。

受以上参考文献启发, 本文将提出一个突破该教学难点的教学过程, 以课堂教学设计的形式介绍于下:

一、C++/C多重指针的课堂教学设计

我们先将教学的基本条件以及学生的基本情况做一介绍, 然后再谈课堂教学设计的内容和步骤。

(一) 教学的基本条件

一间教室, 可容纳100人左右, 配备有多媒体教学设备。

(二) 学生的基本情况

学生在接触C++/C之前仅学过《计算机应用基础》, 从未接触过另外的编程语言, 也没有学过另外的计算机课程。对于该课程, 学生已学过“函数”、“数组”和“单重指针”等内容。

(三) 教学目的

让学生理解并掌握概念:“二重指针”和“多重指针”。

(四) 教学设计的基本思想

基于以上的教学基本条件和学生的实际情况, 笔者认为应该按以下原则进行教学:

先简后繁, 先易后难, 循序渐进, 前后对比, 归纳总结。

下面我们按这个原则设计教学过程。

(五) 教学过程

预备:在课堂上, 老师降落银幕, 打开投影仪, 启动电脑, 启动VC系统, 进入编辑界面;老师组织学生简单地复习一下指针的概念, 然后介绍下面的内容:

1、多重指针 (含单重指针, 下同) 与变量的关系

我们将通过一个简单例子, 引入多重指针的概念, 并举例该概念的初步应用。在这里, 老师结合下例指出:一个变量对应一个内存单元, 我们可以用一重指针变量指向这个内存单元, 如果有必要的话, 也可以用多重指针变量通过特定的传递关系指向这个内存单元。

老师将下列程序输入系统并运行, 将结果输出到银幕上:

银幕上显示的结果是:

当上面的程序运行结束之后, 老师面向学生分析上述程序:

该程序的前三条语句“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语言里, 字符串有其特殊的操作规则, 特别是将一个字符串常量赋给一个字符指针或者输入到一个字符数组时, 该指针或者数组名接收该字符串首字符的地址, 而不是接收字符串本身, 将字符串和多重指针结合时更要注意这一点。另外, 要输出整个字符串, 只需将该字符串的首字符地址置入输出语句即可。

老师将下列程序输入系统并运行, 将结果输出到银幕上:

银幕上显示的结果是:

当上面的程序运行结束之后, 老师面向学生分析上述程序:

变量bb, qq以及rr的顺序关系和上例类似, 即两条语句“qq=&bb;rr=&qq;”顺序不可颠倒。同时, 变量rr通过qq指向bb, qq直接指向bb, 以上的程序运行结果也验证了这一点。另外, 老师应提醒学生注意语句“cout”, 其中列出的是存储有字符串首字符地址的指针。

3、多重指针与字符串数组的关系

在这里, 老师应指出:上面的例子表明存储字符串的数组应该是指针数组, 其中的每一个元素, 相当一个指针变量, 记录对应字符串的地址。

老师将下面的程序输入系统并运行, 将结果输出到银幕上:

上面程序运行的结果是:

到此, 老师面对学生应做如下分析:语句c h a r*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

C语言课程设计 篇2

让自己所学的知识应用于实际生活中,理论联系生活,学以致用,我们将更好服务于民。我们是新一代的年轻人,要想将来在社会上更好的立足,就必须让自己强大起来,努力的学习新东西,了解新事物,跟上时代的步伐,这样我们才能与时俱进,不被社会所淘汰。C语言在大学里是一门很重要的课程,也是一门很实用的课程,学好C语言在当今的信息时代是一个很好的敲门砖。而且,我们是电子信息工程专业的,更应该学好C语言,这对我们以后走向社会有很大的帮助,为我们以后大学毕业去求职提升竞争力。从C语言产生到现在,它已经成为最重要和最流行的编程语言之一。在各种流行编程语言中,都能看到C语言的影子,如Java的语法与C语言基本相同。学习、掌握C语言是每一个计算机技术人员的基本功之一。C语言具有高级语言的强大功能,却又有很多直接操作计算机硬件的功能(这些都是汇编语言的功能),因此,C语言通常又被称为中级语言。学习和掌握C语言,既可以增进对于计算机底层工作机制的了解,又为进一步学习其他高级语言打下了坚实的基础。需求分析

当今社会是信息社会,谁的信息越快速越准确,谁就会更好的生活在这个社会上,他的人生也将走向成功。信息业正在21世纪扮演着越来越重要的角色,也是中国十二五规划中的重要一环,因此,我们应该努力的去学习好这门课程,力争在以后的生活工作中大展身手。现在的社会日新月异,各种信息在不断的传递交流,谁最先获取了信息谁就会成功。所以,作为我们这类专业的人才,在毕业以后一定会大显身手,实现自己的人生价值。

2.1 课程设计目的

本课程设计为信息类公共课《计算方法与程序设计》配套的课程设计。是该课程的理论学习的延伸。通过本课程设计有助于锻炼综合运用C语言相关知识设

为1;若n大于1,则开始循环运算(见图3.22流程图),直到i小于n不成立时结束循环。在循环运算的过程中,要调用两个函数即函数pit1和函数pit2(见图3.23流程图)。在调用函数pit1和函数pit2中,这两个函数进行相互递归调用。最后将调用函数pit1和pit2的值返回主函数main函数中,再输出高能质子数目t3和低能质子数目t4。

3.1 系统流程图

程序一系统流程图(如图3.11所示):

开始输入nt1=3,t2=1,i=1否n==0否是n==1是否i

3.2主要模块的流程图

程序一模块流程图如图3.21所示:

否i

图3.21流程图

程序二模块流程图如图3.22和图3.23所示:

i=1否i

图3.22流程图

} {t3=3*t1+2*t2;t4=t1+t2;t1=t3;t2=t4;} printf(“n the high=%d the low=%dn”,t3,t4);

程序代码4.1

程序二代码如下所示:

#include “stdio.h” int pit1(int a){ if(a==1)

} int pit2(int b){ if(b==1)

} main(){ int n,i,t3,t4;printf(“n input n”);scanf(“%d”,&n);if(n==0){ return(1);return(pit1(b-1)+pit2(b-1));else return(3);return(3*pit1(a-1)+2*pit2(a-1));else

图5.11 程序二运行结果:如图5.12(程序运行时,当输入时间变量n是3时,输出高能粒子是41,低能粒子是15。)

图5.12

参考文献

[1 ]张福祥.C语言程序设计[M].辽宁大学出版社,2008.[2] 张福祥,王萌.C语言程序设计习题解答与实验实训.沈阳:辽宁大学出版社,2008. [3] 牛莉,刘远军等.计算机等级考试辅导教程[M].北京:中国铁道出版社,2008. [4]李勇帆,谢兵.大学计算机应用教程.北京:中国铁道出版社,2009. [5]田淑清.全国计算机等级考试二级教程.北京:高等教育出版社,2011. [6]杨振山,龚沛曾.大学计算机基础.北京:高等教育出版社,2006. [7]卢湘鸿.信息技术应用基础.北京:高等教育出版社,2004.

致 谢

浅探《C语言程序设计》教学 篇3

关键词:C语言;项目化教学;教学方法

中图分类号:TP312.1-4 文献标识码:A 文章编号:1674-7712 (2014) 18-0000-01

《C语言程序设计》作为计算机专业的基础课,在整个课程体系中占有重要地位。在C语言教学过程中,教师的教学方法和学生的理解接受能力的差异,对教学效果都会产生直接的影响。总结多年来的教学经验和教学体会,结合学生在学习程序设计类课程的思维规律和模式,把一些经验和方法总结出来,希望能对C语言教学有所帮助。

一、现行教学和学习中存在的问题

现行教学中理论课与实践课相对分离,不能相互促进。理论课中往往只注重对教材知识的分析和灌输,而在实践课程中,老师很难监控到每个学生,了解他们是否都在认真编写、调试程序。这就造成理论课没有起到为实践课打基础的作用,实践课也没有起到巩固、应用理论课的作用。《C语言程序设计》是一个逻辑性很强的课程。学生在面对具体的程序设计时遇到的问题与教材中的内容相距甚远,这使大多数同学感到无从下手。这其中的原因可以分成两类:一方面目前高校使用的大多数教材中,结构都基本相同。在每一章介绍完了概念之后,提供一些例题解释相关概念的使用方法,并在章节结束后针对本章中出现的内容提供一些练习题。考试也主要是测试学生对于教材内容的掌握程度,而与实际应用相距较大。这种考试实际上主要是测试学生对书本中的基本知识的掌握程度,而忽略了对学生解决实际问题的能力的培养。另一方面为了应付考试,学生更多注意的是教材中的典型例题与老师指定的重点内容,对于程序的系统概念没有真正理解,特别是没有程序整体设计的概念。这样做的结果就是学生在学习时一切围绕老师讲课的内容,特别是老师讲授的例题。学生在学习的过程中,没有注意如何综合运用相关内容来解决具体问题,导致学生在学完程序设计课程进入应用阶段时,面对具体的专业设计要求无从下手。

二、提高教学效果的方法和途径

(一)明确课程目标。本课程的目标主要是提高学生解决实际问题的能力,适应社会需求。对C语言程序设计课程的教学而言,强调实践性是在教学中特别重要的问题。老师的教学不应仅仅是传授知识,应该以培养学生的实际应用能力为主。C语言的内容繁多,在有限的课时内不可能也不必要面面俱到,所以必须突出重点,突出实用性,关键在于教会学生正确运用C语言编写程序,一些细节、具体规则和进一步的知识可以让学生在今后的应用中来不断学习和掌握。教师应始终坚持以应用为中心,以算法为基础,以培养学生的实践能力为核心,突出技术实用性和再学习能力的培养。

(二)进行教学改革。1.教学内容改革。高职学校学生的培养就是要直接面对社会需求,招之即能用。因此,程序设计课程要以社会对编程能力的需求和技术发展为依据,调整教学大纲和教学内容,以适应技术岗位能力要求,设计课程体系。在课程设置与建设中,要充分体现教学内容在训练和提高学生实践能力方面的要求,强化学生的实际开发和应用能力。总结本人多年的教学经验,结合其他老师成功的教学方法,采用项目化教学方法可以达到很好的效果。这个项目应具有以下几个特点:(1)实用性。本项目就是一个具体的实际需求,是解决现实性中一个实际问题而设计,这样也能提高学生的兴趣和热情;(2)完整性。本项目的程序设计是系统的、完整的,要能全面运用整个课程学习的知识,案例的设计贯穿整个课程的学习,随着课程的学习不断完善。

2.改变教学思想和方法。培养学生对C语言的兴趣及正确的思维模式。《C语言程序设计》注重由设计算法到书写程序并进行调试的整个过程,显得抽象、复杂,这也是大多数学生抱怨程序设计太难、太深奥、不好学的主要原因。在教学过程中,先介绍项目的整个程序设计框架,目的是使学生先对程序有个初步的印象,再结合教材,简单介绍该例子中用到的语句,让学生对该语言的学习有一个大概的了解,避免学生对学习语言望而生畏。整个教学过程中应该把“解题思路、方法和步骤”当作授课的重点,从而让学生明白如何分析、解决实际问题,逐渐培养学生进行程序设计的正确思维模式。计算机语言程序设计中算法是其灵魂,是教学重点,也是教学难点,而语言只是表示形式。没有正确的算法,计算机将解决不了任何问题。对于C语言所涉及到的算法,应进行部分精讲多练。通过案例分析,重点讲解程序设计的思想和方法,辅以語言知识的介绍,将课程内容分为若干个主题,以项目程序设计为贯穿各主题的主线。每个主题的教学过程由“要点讲解”、“练习/上机实践”和“疑难解答”三个阶段组成,然后提出项目中的问题,以学生独立完成为主,教师只提供必要的辅导,培养学生探索问题和解决问题的能力,更有利于创新能力的培养。整个课程教学围绕一个工程项目进行,通过逐步拓展的实训项目和设计,将每一阶段的学习进行小结性的贯穿与能力提高。将C的知识点都溶化到项目的程序编写中。

3.改革课程考核方式。(1)平时上机训练时给学生留一些编程习题,每次根据学生编写情况进行测评并占据期末总成绩30%;(2)期末前,要求学生完成本课程项目的整体设计,考核学生综合解决问题的能力,占据期末总成绩30%;(3)期末进行理论考试,占期末总成绩的40%。

(三)展示学生作品,激发学生的学习欲望。计算机软件课程具有多样性、复杂性和求异性特点,我们要针对每个学生任务完成的情况,让同学们展示自己的学生成果,及时肯定学生的成绩,这样会有利于激发学生的学习热情,保持学生的学习兴趣,对学生的后续学习将产生强大的动力和自信心。

(四)培养学生的自学能力和创造性。学生学习计算机语言的最终目的是编写满足实际需求的程序,所以在教学中教授的不仅仅是具体语言的语法知识,更重要的是通过这门语言学习,培养学生遇到实际问题自己分析问题、解决问题的能力。我们可以通过给学生布置作业的形式让同学们自学,老师既要要求学生独立思考、自主学习,又要鼓励学生间进行协作学习。教师可以分配一些比较复杂的问题,由几个学生组成一个小组合作解决,这样同学们可以互相探讨学习方法,协作解决一些遇到的问题。通过解决问题,锻炼学生综合应用知识的能力、培养其创造性和合作精神。

参考文献:

C语言程序设计教学探讨 篇4

关键词:C语言,程序设计,教学方法

C语言以其功能丰富、表达能力强、使用灵活、应用面广、目标程序效率高,可移植性好等优点,广泛应用于数据处理、科学计算、系统软件设计和计算机控制等领域。C语言也是一门典型的结构化程序设计语言,既适合编写应用程序,又适合编写系统程序,实用性很强。通过学习C语言,学生不仅能学习有关程序设计的知识,为以后的学习和工作打好基础,而且还能够逐渐培养缜密的思考能力和细致的观察能力,提高整体的工作、学习及生活能力。在学习C语言时,随着开始几堂课大量难以理解和记忆的新概念、新名词、新术语、新规则的介绍,以及枯燥乏味的例题分析后,学生普遍认为这门课难度大、抽象、不太容易学习;而且C语言规则繁多,使用灵活,在实际应用中,常常出错而不知其所以然,使不少学生在学习时感到困难。在教学过程中,作为教师需要加大教学研究力度,应该根据C语言的特点,把握C语言的重点和难点,深入浅出,把课程内容介绍得通俗易懂,以便学生更好地掌握C语言。本人就近年来对C语言程序设计教学的体会进行交流探讨,以抛砖引玉。

1 结合现实生活,激发学习兴趣

为了激发学生对C语言的学习兴趣,通常教师首先会找一些已学课程如数学方面的问题,通过编写C语言程序来实现求解,使学生体会程序设计的用途和一种全新的解决问题的方法。有些教师还会介绍一些趣味性算例,如“鸡兔同笼”、“水仙花数”等,以培养学生的学习兴趣,让大家积极主动、自觉地获取知识,打好学习程序设计语言的基础。整个教学过程中把解题思路、方法和步骤(即“算法”)当作授课的重点,从而让学生明白如何分析并解决实际问题,逐渐培养学生进行程序设计的正确思维模式。

这种教学模式是目前许多教师所采取的一种教学方式,也体现出很多的优点。但是由于学生初次学这门课程,这种方法也使得他们的思维受到制约,产生一种印象,即编程就是为了解决某些数学模型。虽然是一些简单的数学问题,但很多学生会联想到数学的其它难题,这使数学基础差的学生产生一种畏惧感,反而会收到不好的教学效果。大量实践证明,学生的确有如此感受,他们需要简单易懂的程序示例。那么,结合现实生活和学习中的简单且常用的实例来说明C语言程序的应用是非常可行的。

本人注意采用大家平时用得较多的软件如Word中的一个应用(英文字母大小写的自动转换)作为教学引入首例,使用C程序实现。通过运行的效果,使学生对C语言有初步的了解;并一直注意采用一些比较常用的软件功能设计如加密、猜拳、图形设计等作为案例来进行教学示例,从而进一步说明学习C语言后能在平时常用的一些应用软件、以后的课程学习及工作应用中做些什么事情,来激发学生的学习兴趣。

2 注重编程细节,培养缜密的思考能力和细致的观察能力

C语言的规则颇多,编写C程序应该严格按照其规则进行程序设计,对初学者而言,常常马虎大意,所编写的程序不能正常编译和执行结果。因此在教学初期,教师必须强调C语言的许多细节问题,让学生的诸多不良习惯扼杀于“萌芽”状态。如学生常常在写程序时出现以下问题:

2.1 标点符号问题

学生在编写程序时,往往忽视标点符号。问题主要表现在:

1)忘记录入标点。C语言中,经常用到各种括号,括号要求成对出现的,并且一条语句的结束需要用分号与另一语句隔开。对初学的学生,他们通常会忽略掉这个细节问题,这需要教师在讲授中明确地指出,让学生弄清楚。特别是括号太多时,一定要养成缩进书写的良好习惯,以减少错误的发生。

2)标点录入错误。要强调不同标点符号的作用和区别,如分号和逗号,“{}”与“[]”,“()”与“<>”等等。在录入程序时,很多学生录入的标点是不正确的。如分号“;”和“;”是有区别的,前者为中文下的标点符号,而后者才是程序中需要的。必须给学生强调程序中所需要的标点符号都应该是英文状态下的。

2.2 字母大小写问题

C语言程序中大小写字母是不同的,所以应严格区分字母的大、小写,一般情况下字母都有小写。此规则一定要讲清楚,让学生记住那些使用大写字母的特例。如符号常量一般都用大写,在用科学计数法表示浮点数中的“E”,弄清该计数法的规则,其中的字母“E”可以不区分大、小写;再如表示16进制数的符号“0x”,其中字母“x”也可不区分大小写等等。在教学过程中,对该类问题应该进行总结、归纳以方便学生掌握。

2.3 容易混淆的符号

C语言中有一些符号很容易混淆,如字母“o”、“O”与数字符号“0”,字母“l”与数字符号“1”,字母“z”与数字符号“2”的区别等等,需要特别提出。

2.4 运算符问题

C语言的一个显著特点是它的运算符丰富,利用这一点可以巧妙地解决许多在其他语言中难以解决的问题,但另一方面,有时也会出现令人混淆的问题,是许多学生在学习C语言时感到比较头疼的,同样需要教师在教学中重点突出讲授。下面就其中几种有代表性的运算符的运算做一些举例说明。

除(/)、求余(%)这两种运算符进行的都是除法运算,但前者结果是取商,而且结果可为整型亦可为实型,且当被除数和除数都为整型时其取整型(相当多的学生在教师讲授时明白,而一旦自己应用于程序编写时就忘记了),当被除数和除数有任何一个为实型则结果取实型;而后者取余运算的结果是取余数,要求被除数和除数必须都为整型,结果也只能取整型。

自增(++)和自减(--)运算,运算量必须是变量(错误:一些学生将符号常量、表达式也用于自增和自减),结合方式都是右结合性(错误:习惯性左结合),区别只在于一个是使变量自增1,一个是使变量自减1,关于它们的用法在此以自增(++)为例。自增形式有两种:1)i++;2)++i。而对于运算规则建议不要急于在此就先说明它们的区别,最好分为两种情况来讲。

第一种情况,当这两种形式中的任何一种单独作为一个C语句存在时,两者可以看作没有差别,都等价于i=i+1;。如:

这三个程序段的分别运行结果是一样的,i的值都为2。

第二种情况,当这两种形式中任何一种和其他的运算符相结合,一起构成一个复合表达式时,两者的运算规则就有很大的差别。而这个很大的差别可归纳为一口决:“名前先取,名后先增”,理解并记住这口诀就用不怕出错了。无论是i++还是++i在此时的操作都可分解为两步:1)取变量i的值参加其他运算;2)变量i自身的值增1;问题就在于这两步谁先执行谁后执行,而口诀的前半句“名前先取”就是指变量名在前就先作第一步,后半句“名后先增”是指变量名在后就先作第二步。

关系运算(或比较运算)表达式求值,表面上运算规则与数学中的比较运算相同,但是有一点要特别注意的是:关系运算表达式在数学中的值是一个逻辑值,“真”或“假”,“成立”或“不成立”,而在C语言中它的值是算术值,当表达式成立时其值为“1”,不成立时其值为“0”,这样就造成了某个表达式在数学上是成立的、合理的,而在C语言中它变成了非法的、不合理的。如表达式88&&x<10,而不能是8

3 因材施教,任务驱动学习

在C语言的教学中,不可避免地会用到大量的数学知识。教师在教学过程中要针对学生的数学知识基础,将教材中涉及到的学生未掌握的数学知识类例题进行更换,避免因数学方面的问题形成教学障碍。

如在设计“循环语句”教学时,可以先给学生讲清楚学习循环语句的用处及优点,介绍学习重点、难点,要求掌握一些程序设计的算法,让他们明确该语句的重要性。如实现求等差数列s=1+2+3+…+n的和时,主要介绍使用循环语句求解,并要求学生掌握其求解方法,并按照此方法推广,以掌握算法思想,然后再通过作业的形式编写累加算法的相关程序,如求s=1!+2!+3!+…+n!等。

在下面这个图形的输出设计教学中,

本人先比较详细地介绍程序的实现方法,然后要求学生在掌握的基础上自行编写这个图形经过变形后得到的图形的程序代码,图形的变形包括颠倒、塔状、旗状、倒三角等,让学生带着任务学习,在总结中提高编程水平。

学生通过自己的练习不断总结编写循环程序的经验,体会循环的思想,使得他们对循环语句有更深的理解和认识,从而达到较好的教学效果。

4 注重实践教学,提高动手能力

C语言的学习,不仅要掌握理论知识,而且实践操作的经验积累也是非常重要的。教师在讲授C语言时,不能忽视学生上机实践课的教学。

有些教师认为,上机课就是让学生自由练习,及时为有疑问的学生解决问题。实际上这种教学辅导方式是不合理的,应该在以下方面进行改进:

(1)学生上机应有明确的练习目标,提高编程效率。教师要结合上课的理论知识,确定上机课要完成的目标,有目的地给学生安排上机实验的任务;并且引入相关的程序实例,逐步分析解决该程序的思路和相关的程序代码,让学生了解如何下手去编写程序。

(2)根据引入的程序实例再扩展开,让同学们自己动手完成相关的程序代码。

(3)鼓励学生相互讨论、共同完成,鼓励公开自己的程序设计,评讲相关的程序代码,并引出新的程序,引导学生自己独立完成。

(4)整个上机课堂中教师随时走动,进行课堂答疑,并敦促学生完成相关程序编写。

C语言具有许多的优点,是使用性很强的程序设计语言之一,它的知识点比较多,初学的学生不好掌握。这就要求教师在教学过程中,注重条理性,多从技巧性入手,把一些琐碎复杂的规则用一些简洁、形象的语言来描述代替,提高教学效率,降低学生学习难度,激发他们的学习兴趣,这样才有可能达到良好的教学效果。

参考文献

[1]谭浩强.C语言程序设计[M].2版.北京:清华大学出版社,1998.

[2]李凤霞.C语言程序设计[M].北京:北京理工大学出版社,2001.

[3]谭浩强,张基温,唐永兴.C语言程序设计教程[M].北京:高等教育出版社,1992.

C语言设计 篇5

结构化程序设计的优点是便于分工合作,便于调试、维护和扩充。这种程序设计方法是将一个大程序分成若千个模块,每个模块完成一个功能,由一个总控模块来控制和协调各个模块来实现总的功能;因此,这种程序设计方法又称为模块化程序设计方法。在C语言中,函数是构成C谙言程序的最小模块。实际上,C语言的程序是由一个或者多个文件组成的,每个文件叉是由一个或多个函数组成的。因此,一个程序是由一个或多个函数组成的,其中,须有且仅有一个主函数,生函数的名字规定为rnaino这样,组成一个程序的者干个文件中,仅有一个是主文件,只有主艾件中才含有main()函数。另外,函数是由若干条语句组成的,语句是由若干个单词组成的‘单词是由若干个字符组成的。字符是构成程序的最小单元。e语言程序的构成如下所示:

程序~文件~函数~语句~单词、字符。

C语言是结构化程序设计语言,它具有构成三种基本结构模式的语句,这种结构化程序设计应具有的三种基本结构模式如下:

顺序结构棋式

它将由若干条顺序执行的语句构成,这是程序设计的最基本形式。

分支结构模式

C语言中具有条件语句和开关语句,它将会构成各种需要的分支结构模式。

循环结构模式

C语言中提供了三种循环语句(for循环,whil。循环和do-while循环),用它们可以构成

各种循环结构模式

在讲述C语言是一种结构化程序设计语言的同时,还必须指出它与其他结构化程序设计语言(如PASCAL语言)相比较,还有一些不完全之处,因此,C语言是一种不完全的结构化程序设计语言。其表现如下:

第一,完全的结构化程序设计语言不允许使用goto语句,因为goto语句会破坏结构化。

但是。got。语句在某些时候会使得程序简练,因此,在C语言中原则上允许使用goto语句,为了减少它对结构化的影响,采取了限制使用的办法,即规定got。语句的转向范围只能在一个函数体内。不得使用gates语句从一个函数体内转向到另一个函数体中,这种限制性地使用goto语句会给编程带来一些方便,又不会影响棋块之间的结构化。但是,建议在G语言的程序中尽量少使用goto语句。

第二,完全的结构化程序设计语言要求一个模块只有一个入口和一个出口,这样便于结构化的管理。但是,C语言程序中允许函数使用多个返回语句(return语句),即允许函数有多个出口,返回到调用函数。这样做也是为了编程中的方便。在C语言程序中,可以使用条件语句来返回不同的函数值。

由此可见,C语言虽然是一个不够严格的结构化程序设计语言,但它是一个使用起来十分灵活的高级语言。

1.计算机二级C语言程序设计考点解析:C语言程序实例

2.计算机二级C语言程序设计考点:指针

3.计算机二级C语言程序设计考点:函数

4.计算机二级C语言程序设计考点:数组

5.计算机二级C语言考点:字符型数据

6.计算机二级c语言试题

7.计算机二级C语言程序设计考点解析:常用的输人函数

8.计算机二级C语言程序设计考点解析:常用的输出函数

9.计算机二级C语言程序设计考点:单词及词法规则

C语言程序设计教学方法探讨 篇6

关键词:C语言;程序设计;教学方法

1.前言

C语言是目前最流行的、功能强大的、面向对象的编程语言,在教学过程中发现,学生经常会出现听得懂、编不出程序的现象,影响学生的在专业方面的需求。笔者结合多年教学经验,认为在教学过程中要将学生分为三个不同的阶段,具体为引导入门、基础充实和实践提高三个阶段,分阶段采用不同的教学方法与手段,提高教学效果。

2.引导入门阶段

学生刚开始学习《C语言程序设计》,感觉内容抽象,学习枯燥,失去学习兴趣,因而没有学习动力。入门阶段关键在于激发学生学习C语言程序设计的兴趣,引导学生入门。有些老师恨不得学生一下子掌握自己所有的知识,不知老师的知识是多年积累下来的,学生很难一下子接受,更不用说掌握了。教师对所教内容需精心选择,以简单有趣为主,关键是能够激发学生学习兴趣。可通过多媒体课件,用一些趣味性的程序或者小游戏来调动学生的积极性,提高他们学习编程的兴趣。学生具有差异性,为了让所有学生都能产生浓厚的学习兴趣,适宜采用分层教学法。入门阶段也需注重理论联系实际,但不必要求学生编程,可考虑让学生编辑或修改程序,可以通过给出源代码的、简单的并有详细输入、输出结果的程序,让学生进行编辑并调试,利用输出结果让学生收获成功的喜悦,以轻松愉快的心态学习程序设计。在此基础上,以循序渐进的方式,逐步引导,进行一些简单的修改,让程序得到不同的结果,并解释原因,然后提出新的问题,让学生思考如何修改程序以解决新的问题,培养学生的创造性。

3.基础充实阶段

兴趣是最好的老师,学生经过入门阶段的学习产生了兴趣,就可以进入基础充实阶段了。这一阶段主要是打基础,主要是一些基本概念的讲解和语法的学习,为提高教学质量,也要求老师能够根据不同的概念灵活采用教法,常用的教学方法有类比法、对比法、归纳法和实例教学等方法。

3.1教学方法

相对抽象的概念教学时可选用类比法,例如《数据及其类型》章节中类型的概念,可以采用类比法来进行教学,把C语言中所涉及的数据类型和生活中重量单位做类比,加深概念的认识;可以采用对比法传授《顺序、分支、循环》三种程序设计,通过对比,分清三种程序设计的异同,从根本上掌握三种程序设计。按顺序执行是顺序结构程序设计的特点;分支结构程序设计的特点是需要根据条件而执行不同的操作;而循环结构程序设计中存在重复执行的某种操作。在基础阶段,选取的例题要具有代表性,针对不同的知识点选择典型例题,重点是要学生通过典型例题的掌握,理解程序思想,教师可采用归纳教学法,帮助学生归纳出某一类型程序的程序设计。《指针》是C语言的精华,主要采用实例教学法,参照生活中具体的事例将理论实例化,指针就是地址,学会如何描述地址也就掌握了指针的主要应用(以一维数组和指针为例来进行说明)。一维数组中各元素的地址利用指针法描述,讲解时可以类比第一层教学楼的教室,例如a[O]所在的地址为东1 101,则a[1]所在的地址为东1102,可以假想P为一个人,处于东1101的位置,移动到东1 102即往下走了一个教室,即下一个元素的地址值为P+I。再运用类比的教学方法讲解二维数组和指针,应用类比法可以推广到更加一般的情形。

3.2教学手段

3.2.1科学安排内容,灵活运用多媒体课件

不必所有的内容都讲到,更不必所有内容详细讲,要科学安排内容,可以安排学生在老师的指点下自学简单的内容;如函数、指针等重点内容需要借助多媒体课件详细讲解,最好能够应用一些具有代表性的实例,让学生在理解的基础上掌握概念与思想。

3.2.2成立兴趣小组,培养学生的合作能力。

对一些学习能力较好的同学,以四到五人为单位,按照自愿的原则组织起来成立兴趣小组,通过小组内同学之间互相帮助,培养学生的团队合作精神;通过小组之间相互竞争,锻炼学生的竞争意识。还可以指导兴趣小组参与实际项目的开发,或者组织兴趣小組成员参加一些软件开发竞赛,进一步提高学生的实际动手能力。

3.2.3构建网络平台,加强学生学习的能力。

如今计算机网络已经走进校园,构建网络教学资源平台,构建一个学生可以在任何时候、反复进行互动学习的平台,提供一个师生互动的教学环境。分章节将知识重点、难点放在网站上,让学生通过网络自行解决实践课上那些出现的错误。学生利用网络把每次实践课上程序编写和调试中所犯的错误进行交流、总结,加强学生学习的能力。

4.实践提高阶段

实践提高阶段,采用最适合计算机软件应用课的教学方法项目教学法。通过实施一个完整的项目工作而进行的教学活动,采取小组讨论、协作学习的方式,学生学习的过程就是一个探究的过程。在C语言程序设计课程中应用这种方法的目的在于培养学生综合运用所学知识解决实际问题的能力。它将以往以传授知识为主的传统教学理念,转变为以解决问题、完成任务为主的多维互动式的教学理念;将再现式教学转变为探究式学习,使学生处于积极的学习状态,每一位学生都能根据自己对当前问题的理解,运用共有的知识和自己特有的经验提出方案、解决问题。改变过去单纯讲理论的现状,运用项目引导的方法,学生在分组解决项目的过程中学会语法的使用,逐步过渡到独立的编写简单小程序,通过项目训练多模块程序的编写,最终实现开发一定规模的大型程序。

5.结束语

C语言程序设计教学浅析 篇7

关键词:C语言,程序设计,教学方法

一、前言

C语言是一种通用性计算机程序设计语言。它兼有汇编语言和高级语言的双重优点, 运用它既能编写操作系统软件, 又能开发各个领域的应用软件, C语言的实用性使之成为编程的首选语言。在计算机课程中, “C语言程序设计”是计算机专业的一门必修基础课, 同时“C语言程序设计”又是“数据结构”、“操作系统”、“编译原理”、“软件工程”以及其它相关课程的先修课程, 因此, “C语言程序设计”在整个计算机教学体系中占据十分重要的地位。

二、C语言程序设计教学中存在的普遍问题

1、难以培养学生实际操作能力

程序设计类课程一般以程序设计语言自身的体系为教学路线, 侧重于编程语言的基本概念、基本语句和语法的详细讲解, 而没有把逻辑与实际编程解题思路作为教学的主线。所以很难达到培养学生分析问题和解决问题的实际能力的目的。学生面对的是一大堆语言符号, 需要记忆的内容过多。在教学过程中学生们感觉学习相应的知识点 (语法) 并不困难, 课堂上听老师讲解例题时也容易明白, 但真正让学生去解决实际问题, 有相当一部分学生感到无从下手, 觉得问题太难。学生对于课本上的例子容易理解, 但不会举一反三。

2、实践性教学薄弱

只有在上机实践中学生才能真正学会如何编写程序和调试程序, 才能更好地掌握程序设计的理论知识。可在C语言实践教学中, 由于课时有限, 教学条件有限等, 没有把编程思路和程序调试放在首位, 对学生分析问题和解决问题的能力训练不够, 上机内容基本上都是立足于C语言本身的一些语法规则, 和实际开发应用脱节, 无法激起学生求学的兴趣。

3、学生之间学习差距较大

由于学生水平不一, 并且潜能生学习自觉性较差, 学生学习的效果差异十分明显, 造成潜能生的编程能力逐渐下降。如何开展有效的教学研究, 使大多数学生都能学懂C程序设计的基本概念, 掌握常用的语法及算法, 能用C编写通用程序, 是值得研究的问题。

三、教学与实践改革的具体措施

1、抽象思维到形象思维的转化

对于枯燥的语言叙述, 改用生动的比喻进行引导。比如, 学生学习指针概念时, 对“间接存取”难以理解, 就借用比喻:将甲房间的钥匙放在乙房间里, 若要取甲房间里的物品, 就需要先打开乙房间, 取出甲钥匙, 再打开甲房间, 取出甲房间的物品, 这就是“间接存取”。这样讲学学生很快就能理解, 也加深了指针的概念。

2、理论教学与学生实践相结合

C语言课程是一门实践性很强的课程, 一定要动手多写设计、编写程序才能有所进步。在实践教学中必须做到循序渐进, 对所学的每一部分内容都应该要求学生完成一定数量的实验内容。每部分的上机习题必须精心挑选, 既要有基本的、较简单的题目, 又要有一些具有挑战性的新颖有趣的题目。学生自己编写的程序一定要到机器上去实现, 通过调试程序来修订语法错误, 排除逻辑错误, 进而提高编程能力。通过做一定量的习题, 可以积累一定的经验, 同时对程序设计的精髓会有所领悟, 从而重视上机实验。

比如:设计班级成绩管理系统、简易的图书管理系统、简易的通讯录管理系统、小游戏等。让学生利用课余时间去思考, 收集资料, 以教师为主导, 以任务为主线, 以学生为主体, 过一段时间在课堂上组织学生发言和讨论一次, 看看大家对这些问题的思考程度, 提提建议, 鼓励加引导, 最后到完成。这种教学法不仅可以让学生获得许多课外知识, 同时也促进教学内容的改革, 而且也有利于充分挖掘学生的学习潜力。

通过一个阶段C语言的学习, 选拔出一批优秀的同学, 单独培养, 结合所学专业, 加宽加快加深学习内容, 使他们尽早切人实际应用, 有条件的进入相关的开放实验室, 参与计算机应用的小课题研究或参与学生创新设计大赛等, 培养学生中的学术带头人。

以榜样的力量促进良好的学风建设, 形成良好的学习氛围, 促进整体的学习进步。在C语言教学中, 培养学生的自学能力尤为重要, 如果学生的学习完全依赖教师才能掌握, 而没有一定的自学能力, 其所学的知识很快就会被淘汰。对于多数学生, 则把精力放在最基本、最常用的内容上, 让他们学好基本功, 掌握程序设计的方法, 为后续课程的学习打下基础。

3、在校期间进行不间断的C语言编程训练

仅靠一个学期的C语言的学习是远远不够的, 需要在后续课程中进行巩固提高。C语言是C类语言集合的子集, 我们把C语言和C类语言融合为一门课程, 第一学期授课以C语言为主, 第二学期讲授以C++为主, 所有程序都以VC为调式环境。经过这样的整合, 知识内容显得很连贯, 一气呵成, 为第三学期的Windows程序设计课程奠定了基础。该课程利用MFC类库进行Windows应用程序开发。后继的数据结构、算法分析与设计、计算机网络原理、操作系统、编译原理等课程实践环节都利用C语言进行开发, 开展3年不间断的C编程训练。

4、改进成绩的考核方法

对学生学习情况的考核不应以停留“期末试卷”为中心的传统考试观念, 应该进行改进, 以此提高学生对知识的运用能力、自学能力、分析和解决问题的能力。

(1) 加大平时成绩的考核。平时考核的方法有:课堂提问、作业与练习、阶段性测试, 包括学生提出有价值的问题都给予记分。平时考核成绩占总成绩的比例为20%。加大平时成绩的考核, 有利于全面测评学生能力。这样可以激励学生学习的积极性和主动性, 并将这种积极与主动精神贯穿于课程学习的始终。

(2) 加大上机考核。对C语言的掌握情况主要看上机的调试, 要对上机过程和结果给学生进行考核, 既要看结果, 也要看过程。应鼓励学生在程序的设计上精简优化。上机考核成绩占总成绩的比例为20%。

5、尽量使用现代化教学手段提高教学效率和效果

形式多样的教学手段课堂教学要应用现代化教育技术, 使用多媒体进行课堂教学, 给学生营造一个良好的程序设计环境。与传统教学方式相比, 多媒体教学具有形象生动、图文并茂、交互性好、信息量大、减少文字书写等显著特点, 对课程中难以理解的抽象内容, 可以给予直观展示和动态模拟, 达到既能辅助教师形象地讲授课程中的难点和重点的目的, 又能激发学生学习的兴趣, 从而提高教学效率和教学效果。把讲授法、练习法、实验法、演示法和多媒体网络教学技术结合起来, 将课程中抽象的、难以理解的教学内容, 进行形象化, 这样就更利于学生理解与记忆。

6、在整个教学环节中, 巧妙地引人软件工程的基本思想

计算机科学属工程技术科学, 为使学生有良好的编程思维, 应注重软件工程思想的渗透。对软件生存周期的几个阶段, 即问题定义、可行性研究、需求分析、概要设计、详细设计、编码、调试、运行与维护, 可以通过常规的C程序设计实例来体现, 以培养学生编程中的工程思维。这样并没有费很大力气讲抽象的概念, 却可培养学生在程序设计中从软件工程角度去系统分析问题的良好习惯。

四、结语

本文针对在“C语言程序设计”教学过程中出现的普遍问题, 进行思考和探索, 并将所提出的方案在教学活动中实施, 较好地激发了学生的兴趣, 调动了学生的学习积极性, 培养学生的自学能力, 提高学生的编程思想和解决实际问题的能力, 取得了很好的教学效果。通过这门课的学习, 不仅要使学生掌握语言的基本规则, 而且要切实培养学生分析问题, 解决问题的能力, 培养学生的创新精神, 团队意识, 为学生提供更好的展示才华的舞台。

参考文献

[1]张庆岚.提高《C程序设计》课程教学质量的探讨[J].福建电脑, 2009 (1) .

[2]施敏华, 等.计算机专业实验教学体系探索[J].计算机教育, 2007 (10) .

C语言程序设计教学探讨 篇8

目前国内大多数高职高专院校的教学时间较短, 学生要在有限的时间内学完大量的课程, 因此许多学校在新生一开学就开设了C语言程序设计课程。作为后续课程的基础类核心课, 学好C语言就很关键。而新生的基础知识相对薄弱且在中学所养成的思维模式, 这都对C语言的教学提出了问题。如何使学生在短时间内快速的进入角色, 熟悉C语言的思维方式, 激发学习兴趣就成为了一个值得探讨的问题。在以往的教学模式中, 教师会在初期就介绍C语言这门课程在今后的学习生活中扮演着十分重要的角色, 强调学生要重视对这门课程的学习。这样确实能够使一部分学生重视起这门课程, 但随着大量难以理解的新概念、新名词、新规则的出现, 造成学生普遍认为这门课难度大、难学的印象, 使不少学生在学习初期就对这门课程感到恐惧, 不能更好的进行教学。因此, 要想让学生真正学好此门课, 为后续课程打好坚实的基础, 需要加大C语言课程的教学与研究力度。

首先, 这门课程是以培养学生程序设计思想为目的的, 使其具备基本的程序编写能力, 为后续课程打下基础。根据目前的教学效果反映, 学生在学完这门课程之后并没有达到预期的目的, 甚至连最基本的程序编写代码的能力都不具备。究其原因, 一是不能很好的培养学生的动手能力, 以至于部分同学对C语言的学习还停留在“纸上谈兵”的阶段;二是对学生自主学习能力的培养没有到位, 以至于涉及讲授范围之外的问题学生就不知从何入手。

接下来, 作者就上述两方面原因简单讲述一下教学中的心得体会。

1 学生的动手能力没有到位

学生步入大学校园后都是充满了期待, 都是怀着好奇兴奋得心情开始大学阶段的学习, 然而没过多久就对某些课程的失去了兴趣, 自然就缺乏相应的动手能力。要想提高学生的动手能, 使其在今后的工作中都能熟练发挥出这种技能, 必须从一开始就培养学生的学习兴趣。为提高学生学习C语言的兴趣, 教师通常会在第一节课上就应给学生找些生活中的特殊问题, 例如汉诺塔游戏, 带着学生共同寻找解决方案, 使学生学会面对问题的时候所应采用什么样的思维方式。教师还可以介绍一些能够激发学生兴趣的例子, 如:“菲波纳契兔子问题”、“竞赛记分”、“万年历”、“计算器”等, 以培养学生的学习兴趣, 使大家能积极主动、自觉独立地获取知识。在教学过程中将解题思路、方法和步骤 (即“算法”) 作为的重点, 教会学生如何分析并解决实际问题, 从而使其逐渐形成正确思维模式。目前该教学模式被广泛采用, 也体现出很多优点。但由于学生初次学该课程, 会使他们产生一种印象即编程就是解决某些数学模型。加之学生中学阶段的数学基础可能不是很好, 即便现在需要解决的都是些简单的问题, 出于对数学学习的恐惧感会在授课中产生适得其反的效果。因此授课过程中还要大量的结合现实生活中的C程序实例给学生进行讲解, 并通过运行来激发学生的学习兴趣。

作者曾见过一位教师在第一节课就以超市购物的收银系统为例, 给学生演示使用C程序实现, 通过运行的效果来激发学生学习的兴趣, 使之对C语言有个初步的认识, 学生看到了生动的演示界面, 都产生了浓厚的学习兴趣。接下来老师再进一步讲解学习C语言后可做些什么事情, 使学生明确学习目的, 树立信心。之后的每节课, 每个细节, 学生都会自觉认真地学习。为达到这样成功的教学效果, 需要教师在讲授课之前就必须做好充分准备。才能有效调动学生的学习热情, 引导其从浅到深, 由简入难的学习这门课程。

2 对学生自主学习能力的培养

培养学生自主学习的能力, 其目标是为了让学生在该门课程之外的的其他课程中能运用自己的逻辑思维能力自主学习, 从而在今后的学习工作中能够自如的学习新兴的技术。

C语言作为学生入学以来的第一门程序设计语言类的课程, 注重编程细节, 培养编程技巧很是重要。其规则较多, 编写C程序得严格按照规则进行。初学时, 由于概念模糊可能造成程序不能正常编译和执行, 就会影响学生的学习积极性。因此在教学初期, 教师就必须强调C的许多细节问题, 不要等学生将错误养成习惯之后再改正就已经晚了。如学生常常在写程序时出现以下问题:

2.1 书写标识符时, 忽略了大小写字母的区别

在C语言程序中大写字母和小写字母是两个不同的字符。习惯上, 符号常量名用大写, 变量名用小写表示。教师可以在上机操作中演示一些因为忽略大小而导致程序运行出错的例题。一方面加深了学生对此类错误的印象, 一方面也可以提高学生调试程序的能力。在教学过程中, 教师要对该类问题经常地进行总结、归纳, 帮助学生学习。

2.2 标点符号问题

学生在编写程序初期, 经常会有标点符号的问题。主要表现在: (1) 忘记加分号。分号是C语句中不可缺少的一部分, 语句末尾必须有分号。对初学的学生, 他们通常会忽略掉这个细节问题, 这需要教师在讲授中明确地指出, 如果没有分号, 编译器就会把下一行的内容也作为上一行的一部分去执行, 可能会导致运行错误, 使学生提高警惕。 (2) 多加分号。程序中的复合语句的花括号外不需要再加分号, 否则将画蛇添足。

2.3 容易混淆的符号

忽略了“=”与“==”的区别。在许多高级语言中, 用“=”符号作为关系运算符“等于”。但C语言中, “=”是赋值运算符, “==”是关系运算符。前者是进行比较, 后者表示把b值赋给a。初学者由于习惯问题, 往往会范这样的错误。一定要引起学生的重视, 这就需要教师多找些有关这类符号的特殊程序让学生自己调试。除了以上这几点之外, C语言中还有一些输入的问题也会导致程序出错, 这都需要教师认真总结, 并通过上机调试的方式使学生加深印象。对于C语言的学习, 我们一直强调理论与实践相结合, 把理论的知识应用于上机操作中, 能更好的帮助学生掌握这门课程, 因此, 教师在讲授C语言课程时, 不能忽视实践课的教学, 尤其是学生的上机辅导课。教师应该在上机课程中有目的有意识的给同学安排上机的任务, 使学生知道本次上机应该干什么, 从而提高学习效率。

制定的上机内容应从以下几个方面着手:

(1) 结合讲授的理论知识, 确定题目, 先以程序补充的形式完成部门代码的编辑;

(2) 引入相关的程序实例, 分析解决该问题的算法, 并编写全部代码, 运行;

(3) 讲评学生的作业, 对于有创新的算法提出表扬, 提高学生的积极性, 也能及时的发现学生所存在的问题;

(4) 多在学生中走动, 也是为了能更快的发现学生的问题, 纠正错误。

总之, 为了使学生能够达到预期的培养目标, 除了采用一定可行的教学方式之外, 还需要教师在课下花费更多的精力和时间对学生进行辅导。

3 结束语

除了上述的两点之外, 作者认为要想教好一门课程, 良好的师生关系也是成功的关键。教学是师生情感双向交流的过程, 教学活动是否充满温馨的互动, 既是产生良好的授课气氛的重要因素, 同时也是衡量和评价课堂气氛的重要标志。因此, 在采用激励教育授课过程中, 师生间情感的交流融汇是不可缺少的, 教师要用自己的爱心来感化学生、关心学生、激励学生, 与学生建立平等和谐的关系。除了在课堂上与学生的交流, 在课下也应该多抽出时间给学生答疑解惑, 帮助学生及时、准确的消化课堂的教学内容。在教学中, 教师以充沛的精力、生动的语言、深切的情感、亲切的教态讲课也会引起学生的情感共鸣, 产生“亲其师而信其道”的良好教学效应, 学生才会兴趣盎然地进行学习。

摘要:C语言作为当前程序设计的入门语言已经有着越来越重要的地位, 为提高C语言的教学效果就不得不花费大量的心血。本文针对高职院校程序设计课程枯燥、难懂, 教师只讲授语法知识, 不注重学生学习兴趣的培养, 学生厌学等问题。文中从两方面阐述了对C语言程序设计教学的心得体会, 提出C语言的教学中应该注意的问题。克服传统“灌输”式教学模式的弊端, 以激发学生的学习兴趣, 提高学生分析问题、解决问题的能力。

关键词:C语言程序设计,程序设计,动手能力,自主学习

参考文献

[1]谢桂芳, 高守平.提高《C程序设计》课程教学质量的探讨, 计算机与信息技术.2008 (Z1期) :101-102

[2]王静.基于兴趣培养的《C语言程序设计》教学研究[J]电脑知识与技术 (学术交流) , 2007, (22) :78-80.

[3]张园, 王青松.浅谈独立学院C程序设计课程教学[J]中国科教创新导刊, 2007, (24) :90-93.

[4]董志民, 崔建平, 肖利娜.《C语言程序设计》教学改革探索与实践[J]福建电脑, 2007, (05) :116-117.

[5]王瑾.高职院校教师提高《C程序设计》课程教学质量的研究, 考试周刊.2010年第29期.

C程序设计语言的教学策略优化设计 篇9

目前关于C语言程序设计课程在教学策略方面所做的探索与改革不少, 而在教学策略的整体结构设计和教学策略的内涵研究方面略显不足。目前, 在C语言课程的教学策略设计、使用和研究中主要存在如下问题。

1. 教学方法与教学内容特性不匹配。

在教学策略的设计中, 对所运用的教学方法必须要考虑学科和教学内容的特点。但是在高校实际的教学活动中, 教师对教学方法的特点、基本操作程序及使用条件了解不足, 对教学方法的选择与使用存在很大的盲目性和单一性, 导致教学内容与教学方法的脱节。

2. 教学手段与教学内容特性的不匹配。

传统课堂教学、多媒体教学和网络教学三种教学手段都有各自的优缺点, 无法用某一个完全替代另一个。同样的教学内容采用何种教学手段虽然没有严格规定, 但简单采用单一的教学手段而不考虑教学内容是否适应所带来不理想的教学效果是显而易见的。

二、C语言课程的主要特点

C语言课程做为程序设计语言的一门重要基础课程, 无论从课程内容还是教学思维上都有其自身特点, 分析与把握这些特点是教学策略优化设计的基础。

1. 程序结构类型和概念多。

C语言课程教学内容按照其描述和作用特点分为多种类型, 而且涉及到的概念众多, 包含大量的定义、语法、概念、语句, 每一章都是以某种程序结构和相应语法规则为主线来进行描述。

2. 操作应用性强, 思维转换要求高。

要达到培养学生具有使用计算机解决实际问题的初步能力这个目标, 就不能仅局限于单纯培养学生的操作技能, 而是要注重在教学内容的组织和讲授中引导学生从自然思维考虑问题转换为从计算机思维考虑问题, 也就是要按照计算机求解问题的基本方式去考虑问题的求解, 提出问题解决的方法, 构建出相应程序等的能力。

三、C语言教学策略设计

1. 教学策略设计宗旨。

教学策略优化设计的宗旨是将教学内容、教学组织形式、教学方法与教学手段这四个教学活动的构成要件, 进行科学的选择与组合而构建起“立体式教学策略”。其中教学方法与教学内容如何相匹配是教学策略能否有效地提高课堂教学质量的核心问题;教学手段与教学内容如何相匹配是能否利用先进技术手段提高教学质量的关键问题。

2. 立体式教学策略设计基础。

立体式教学策略设计首先要完成以下两项基础工作。

(1) 教学内容属性分析。教师作为教学活动的主导者和组织者, 应该对课程教学内容的特点和属性有清晰的理解。在教学实践中, 教师重视和了解教学内容的分类, 对于教师帮助学生获得与生成知识和能力有很好的促进作用。

教学内容的分类属性:C语言的教学内容可以归纳为为概念型、原理型、描述型、推导型、类比型、操作型等类型。比如, 概念型是指反应客观事物的一般的、本质的特征的符号;操作型是指关于如何做事、如何完成一项工作的知识, 通常为一系列动作、行为程序, 或者完成任务所需的步骤等。例如, 概念型:反应客观事物的一般的、本质的特征的符号, 如函数定义、函数的分类。操作型:是关于如何做事、如何完成一项工作的知识, 通常为一系列动作、行为程序, 或者完成任务所需的步骤, 如函数调用。推导型:是由某些已知因素依据定理、公理等逐步推到获得结论的知识, 如函数嵌套调用。策略型:为有效的实施战略或更好地达到某一特定目标而采取的特殊措施。

(2) 教学方法与教学手段特征分析。结合教学内容的属性特点选择不同的教学方法和教学手段, 将其运用于教学中就会显示不同的效果。依据教学方法和教学手段的作用与特点, 对教学方法和教学手段的特征进行了分型和归类。 (1) 教学方法分类。教学方法从大的方面可以分为主导类、主体类和双主兼容类, 进一步细分又有概念获得式、探究式、抛锚式、范例式、自学-辅导式、自主学习式等等。 (2) 教学手段分类。教学手段主要分为传统的口述+黑板的形式、多媒体教学手段和网络教学手段。其中多媒体技术教学手段使用文字、图形、动画、声音等以动态的方式呈现每个知识点, 极大地增加了信息量, 使得学生更加容易接受知识。

3. 立体式教学策略设计步骤。

分两步对教学策略的教学要件进行组合, 设计C语言课程的立体式教学策略。 (1) 建立教学要件标识表。建立教学方法特征标识表。建立教学手段特征标识表。建立教学内容特征标识表。 (2) 建立组合匹配关系。针对教学要件确定如下组合原则:对于概念型等的易于发挥教师主动施教作用的教学内容可采取实施传递—接受式、概念获得式等教学方法。对于操作型等的强调发挥学生在教师指导下作为学习主体的教学内容, 可采用探究式、抛锚式等教学方法。对于研究型的教学内容, 可在以教师为中心的传递—接受教学模式基础上, 采用探究式或自学—辅导教学模式, 培养学生的创新能力、思维能力和自主学习能力。采用探究式、自学—辅导式等教学方法, 培养学生的程序思维能力, 更多采用多媒体技术的特有手段, 如图形、动画、链接等。 (3) 设计C语言课程立体式教学策略。C语言课程立体式教学策略的设计结构举例如下:A内容属性为事实型, 知识点如什么是函数、指针变量的含义, 教学方法可采用传递─接受式, 教学手段使用板书+多媒体课件+动画演示;内容属性为概念型, 知识点如输入输出函数、选择结构定义、循环结构定义、函数的定义、初始化及指针的运算、一维、二维数组的基本概念等, 教学方法可采用概念获得式、抛锚式式范例式等, 教学手段使用板书+多媒体课件+动画演示。B内容属性为操作型, 知识点如输入输出函数、选择结构、循环结构掌握函数的调用及参数的传递方式、函数语法规则, 指针的运算、指针与变量的关系、指针作为函数的参数, 教学方法采用抛锚式、探究式、自主学习式等, 教学手段可采用多媒体课件+动画演示+网络资源。 (4) 制定教学策略课堂实施方案。在C语言立体式教学策略的基础上, 针对课程的每个章节教学内容, 即可制定出立体式教学策略的具体实施方案与相应的多媒体课件。

四、结束语

立体式教学策略的设计与使用, 通过解决以下三个具体教学问题, 提高了C语言课堂教学的教学质量。

1. 强化了教学方案设计的科学性。

立体式教学策略兼具稳定操作性和动态层次性, 既科学规范了课堂教学活动, 也提供了教师充分发挥自己的创造性、主动性的弹性空间, 克服了课堂教学方案设计的随意性和不合理性, 强化了教学方案设计的科学性。

2. 保证了教学方法使用的针对性。

依据教学内容的属性特点选择合理的教学方法, 将教学的组织形式变“线性式教学设计”为“拓扑式教学设计”, 克服了教学方法的选择与使用中存在的盲目性和单一性, 保证了教学方法使用的针对性。

3. 提升了多媒体课堂的教学效果。

根据教学内容的属性特点, 参考教学方法的运行程式, 结合多媒体技术的表现力、接触面、参与性等因素, 通过教学要件的恰当组合, 克服了多媒体课件的“简单演示化”、“照搬书本化”等缺点, 提升了多媒体课堂的教学效果。

参考文献

[1]张敏, 郑盛娜.基于学生认知风格的教学策略设计[J].浙江教育学院学报, 2009, (06) .

[2]吴文胜, 盛群力.论有效教学策略的设计[J].杭州师范学院学报, 2002, (09) .

[3]斯彩英.浅谈多媒体条件下的课堂教学策略设计[J].职业教育研究, 2004, (09) .

[4]樊泽恒, 基于自主学习的网络教学策略设计[J].中国电化教育, 2005, (10) .

C语言设计 篇10

1“以人为本”开展教学

学生是教学活动的主体,教学活动要以学生为中心而展开。教育心理学的研究表明:学生在没有精神压力、没有心理负担、心情舒畅,情绪饱满的情境下,大脑皮层容易形成兴奋中心,思维最活跃,实践能力最强。因此,在授课过程中,本人尽量以通俗易懂的方式讲解,通过设置问题情景,充分调动学生的积极性和主动性,引导学生参与到教学环节中。课下,深入学生群体,通过与学生交流,把握学生的思想动态,及时做好学生的思想工作。同时利用课余时间与学生打成一片,建立一种民主平等亦师亦友的关系。在评价学生时,根据学生特点,经常运用一些激励性的语言。例如:“你真聪明”、“你真行”、“我为你感到骄傲”、“你虽然说错了,但很勇敢”等等。一次次的表扬和鼓励,使学生充分信任自己,从而达到在课堂教学中的互动。

2 采用“模块化”教学方式

C语言是计算机及其相关专业的一门非常重要的基础课。但这几年的C语言的教学效果总是不理想。主要存在的原因:一是C语言牵涉的概念比较复杂,规则繁多。不容易记忆,而且易混淆。二是C语言应用灵活。学生不能较好地将所掌握的理论知识应用到实践中。针对现状,我在本学期授课中,积极响应职业教育改革要求,进行模块化教学。按照C语言教学大纲和教学计划,我将授课内容划分为6个模块:课程入门、结构化程序设计、数组应用、函数应用、结构体和指针的综合应用以及文件应用。在每一模块的教学过程中,首先介绍一个较完整的程序例子,该例子包含了此模块所涉及的主要语法和语句,目的是使学生先对此部分内容有个初步的印象,再简单介绍该例子中用到的语法和语句,让学生对该模块的学习有一个大概的了解,也不会因为一大堆语句的出现,而对学习语言望而生畏。这样的教学方法,学生先对语言的学习有了整体的概念,再具体介绍语句,学习时心里就有了“底”。整个教学过程中应该把解题思路、方法和步骤(即“算法”)当作授课的重点,从而让学生明白如何分析并解决实际问题,逐渐培养学生进行程序设计的正确思维模式。

3 构建自主探究、小组讨论的学习模式

为了能够及时、全面地关注到每位学生的学习状态,充分调动学生的积极性,我采用分组方式进行教学控制和管理。每周抽出固定时间对组长进行提前培训,并给出一些难度较高、与实际生活接近的题目,加强辅导,引导学生掌握良好的编程思想。然后在课堂讨论和实践课时间,就由组长全权负责。实践证明,自主探究、小组讨论的学习模式,变被动接受为“自主研究”型学习,实现学生学习方式的个性化。这种学习模式能够克服和解决以教师讲授为主要形式带来的许多弊端,尤其在促进调动全体学生参与学习活动方面效果特别明显。这种学习模式是研究型的,力求做到学生人人参与,为其创设了宽松良好的环境,使其可以随想、随说、随问,消除自卑感,让其不同程度的得到发挥、提高。

4 采用丰富多彩的CAI课件进行课堂教学

针对C语言中一些比较抽象、难理解的知识点,积极引入CAI课件进行讲解。CAI课件可创设新颖有趣的动画情境,容直观性、多变形、知识性、趣味性于一体,为学生营造一个图文并茂、动静结合的教学场景,促使学生多种感官同时接受刺激,大大激发了学生的学习兴趣,活跃课堂气氛,从而达到“课伊始,趣亦生”的境界。以指针为例,指针是地址的形象化名称。要想掌握指针,关键是弄清楚指针的指向问题。所以此部分内容需要结合所使用的数据在内存中的存储问题讲解。这就需要形象化的描述出内存的存储。利用CAI课件不但能够形象化地描述出数据在内存中的存储,还可以动态记录指针在某一时刻的变化。从而化抽象为形象,便于学生理解。

总之,经过积极的探索和思考,打破传统的教学模式,采取以人为本、模块化教学、结合CAI课件等方式,充分调动学生的积极性和参与性,才能更好地培养学生的竞争合作精神和独立学习的能力,才能适应职业教育的改革发展要求。

参考文献

[1]张瑞,陈岚.关于多媒体教学的几点思考[J].贵阳金筑大学学报,2004(4):73-74.

[2]薛小锋.C语言程序设计》教学方法探析[J].福建电脑;2004(1):81,87.

[3]魏利华.谈《C语言程序设计》课程的教学定位[J].雁北师范学院学报,2003(3):97-99.

[4]徐章艳.“C语言程序设计”实验教学探讨[J].电气电子教学学报,2004,26(2):84-89.

上一篇:品牌升级下一篇:抗生素使用