c语言课程范例6篇

前言:中文期刊网精心挑选了c语言课程范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

c语言课程

c语言课程范文1

关键词:C语言课程设计;学生成绩管理系统

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)19-30092-02

Practice and Analysis in C Language Design

CAI Ya-ling

(Nanhua College of Industry and Commerce, Guangzhou 510507, China)

Abstract: C language design is very important in C language learning to master this programming language. In this paper, I describe the flowchart of the student management system design in C language. Moreover, some important problems in C language design are specified.

Key words: C language; language design; student management system

1 设计要求

矩阵乘法:编写一个函数实现矩阵A(2行3列)与矩阵B相乘(3行2列),乘积放在C数组中。在主函数中输入相乘的两数组,并输出结果。

学生成绩管理:结构体数组、函数、指针、算法、流程结构及文件等的综合应用。

程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统。

2 功能模块的设计

2.1 输入记录函数STUDENT *create()

算法:先声明一个首节点head,并将head->next设为NULL。每输入一个数据就声明一个新节点p,把p->next设为NULL,并且链接到之前列表的尾端。

N-S流程图如图1:

图1

2.2 记录函数void print(STUDENT *head)

算法:先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。重复执行此步聚直到p指针指向NULL为止。

N-S流程图如图2:

2.3 找记录函数void search(STUDENT *head)

算法:采用线性查找法往下一个节点查找。输入所要查找的学生的学号s,设一个指针变量p,先指向第一个结点,当strcmp(p->name,s) && p!= NULL时,使p后移一个结点,如果p!=NULL,输出p所指的结点。

N-S流程图如图3:

图3

3 设计中应注意的问题

3.1 程序效率分析

在程序中频繁的调用函数会增加系统的负担,降低程序的执行速度,花费较多的时间,影响C程序的执行效率。同一个程序编写方式的不同,它们运行的效率也就不同,这就要求我们在编写程序时,在程序的可靠性得到保证的前提下,根据具体情况找出最优的、能充分利用系统资源和提高程序运行效率的一种最佳方法。当然,在不同的系统和不同配置的计算机上程序的运行效率是不尽相同的,程序的效率问题是在编写较大或较复杂程序时应该充分考虑的。

3.2 数据类型的使用

数据类型是C语言中的一个既简单又基本的问题,如果我们对它没有充分的理解,往往会导致一些莫名其妙的错误。C语言追求简捷、自然,编起程序来简单、方便、可读性好。另一方面,C编译程序的语法检查很不严格,所以程序即使通过了编译连接仍然可能得不到正确结果。特别是对于一些运行时错误,如运算溢出、数组越界,编译程序根本不做什么检查。这就要求程序员认真研究、掌握规律、避免错误。对于某些微妙的问题,如果能从书本上找到现成的答案固然好,但可能性不大。最好的办法还是用机器实验,实践是检验真理的唯一标准。如果程序员懂得汇编语言,那是大有好处的。不仅能提高联想力,而且可以阅读TCC产生的C源程序的汇编语言版本,那么我们几乎可以搞懂C语言的一切细节。

3.3 指针的使用

指针是C语言中的一个重要概念,也是C语言的一个重要特色。正确而灵活地运用它,可以有效的表示复杂的数据结构;能动态分配内存;能方便地使用字符串等。掌握指针的应用,可以使程序简洁、紧凑、高效。指针较难掌握,在使用时稍有不慎,将给C程序带来隐患甚至是致命的错误。

在指针的使用中经常容易产生以下错误:1) 定义和应用的错误;2) 类型匹配的错误;3) 共享内存和双向传递的错误;4) 指针在数组中的错误使用。

3.4 函数浮点形参的使用

在使用Turbo C语言开发程序时,并非需要将函数的形参float类型数据进行转换为double,也并非Turbo C在处理此类问题时存在缺陷和错误。本文通过实例分析,阐明了在Turbo C开发环境下,在进行函数说明和定义时,有两种方式可以使用,第一种是使用传统型函数说明和传统型函数定义,第二种是使用函数原型定义和说明,不能任意组合。

3.5 ++运算符的使用

在C语言中原本规定++运算是定义在整型上的,但是由于C语言中提供了自动类型转换,所以对于float类型使用++运算的时候编译器投有检查出错误。然而其运算过程不同于int类型,主要是由干要进行类型转换的原因。因此一般情况一下不必利用float类型进行++运算。

4 结论

本文在结合学生管理信息系统课程设计的经验的基础上,探讨了在C语言课程设计中的设计方法和应注意的一些重要问题,这对C语言的学习和课程设计有一定的指导作用。

参考文献:

[1]袁蒲佳,唐谦,韩丽娟. C语言程序设计[M]. 武汉: 华中科技大学出版社,2007.

[2]朱玉龙,任文岚. C语言中的数据类型[J]. 小型微型计算机系统,2001,22(9):1146-1179.

[3]郝蕊洁. 谈谈C语言中的变量[J]. 中国科技信息,2008,5:94-95.

[4]王学超. 浅谈职高C语言函数的教学[J]. 电脑知识与技术,2008,2:332-334.

[5]施炜. 灵活应用C语言中的++/--运算符[J]. 科技资讯,2007,35:199-200.

c语言课程范文2

摘要:以CDIO工程教育理念为指导,结合我院C语言课程设计的教学现状,对课程设计的教学模式进行研究与改革,详细阐述课程设计教学改革的具体措施。教学实践结果表明,教学改革拓展学生的思路,激发学生的学习兴趣,提高学生综合实践的能力和创新能力.

关键词 :CDIO;C语言;课程设计

CDIO(Conceive-Design-Implement-Operate)[1]是近几年来国际工程教育改革的最新成果,目前已经在全世界几十所著名大学得到了应用。CDIO教育模式与传统的课堂教育有着明显差异,是为学生提供一种强调工程基础的、建立在真实世界的产品和系统的构思-设计-实现-运行(CDIO)过程的背景环境基础上的工程教育,使学生毕业后能够熟练掌握技术基础知识,领导和参与新产品和新系统的开发和运行,了解技术的研究与发展对社会的重要性和战略影响。C语言课程具有一定的工程应用背景,是目前计算机类专业的一门重要的专业基础课,作者结合我院C语言课程设计的实际教学情况,以提高学生的职业能力为目标,以CDIO设计理念为导向,将案例演示、问题驱动、实际应用和项目化教学进行整合,旨在对教学的各个环节继续研究和改革,有效地提高教学质量。

1、C语言课程教学现状

C语言这门课程在我们系各个专业均有开设,属于专业基础课。通过这门课程的学习,主要是让学生建立清晰的程序开发思想,掌握相关的程序设计技巧和方法,培养学生分析问题解决问题的能力。在以往的教学中,这门课程存在诸多问题,主要表现在以下四个方面:

(1)入门困难,学生普遍反映语法繁多,概念抽象,还要动手编程,在一定程度上可能会产生畏惧心理。

(2)教师过多注重理论知识讲解,往往忽略程序设计思想的培养。

(3)教学模式枯燥,教师立足语法本身,学生分析问题解决问题的能力培养方面很少涉及。

(4)考试形式单一,不能全面了解学生能力,不能满足工作需要。

2、基于CDIO模式的课程设计改革措施

2.1 课程设计理念的改革

在课程设计理念方面,我们引入了CDIO这一创新型高等教育模式,其培养大纲对毕业生从四个层面做出要求。首先在工程系统方面,要求对学生的知识技能进行强化;在个体能力方面,要求在教学中渗透学生职业能力以及职业素养的培养;另外,我们还需要在教学中以工作过程为导向,以典型的工作任务为载体,培养学生人际团队协作能力,第四个层面即构思-设计-运行-实现,是CDIO的核心所在,为我们的课程设计思路提供了参考。具体来讲,就是课题组和企业合作共同完成对工作任务的分析和整合,这可以理解为“构思阶段”;接下来,是课程标准的制定,整体设计单元设计以及校本教材的开发,这个阶段归为“设计阶段”,之后,就是具体的课堂实施阶段,当然,还要对课程进行不断的改进,由此看来,CDIO的理念渗透到了课程设计的各个环节当中,对课程设计起到了重要的指导作用。

2.2 课程设计教学模式的改革

C语言课程设计由于其自身较强的实践性,特别符合CDIO工程教育理念倡导的“做中学”和“基于项目的教育和学习”[2],在整个教学过程中应坚持“教学做”一体化的原则,增加主动学习和动手实践。教师在这一过程中承担起主导的作用,帮助学生建立起清晰的程序开发思想,掌握基本的程序设计方法和技巧,培养学生形成分析问题解决问题的方法,即怎样从生活中的实际案例出发,形成一套从构造问题到分析问题,最终解决问题的思路。

首先在任务导入阶段,教师负责提出任务,对任务的效果进行演示,学生通过观看演示效果,明确本次任务的学习目标(包括能力目标、知识目标以及素质目标)和学习内容。在接下来的方案制定阶段,教师需要就工作任务中所涉及到的知识点以及重点难点进行讲解,教师可以让学生进行程序的模拟练习,学生在练习过程中可以完成知识的前期储备,为后续独立完成任务打下基础。探究讨论和即时训练阶段要求学生以小组为单位共同探讨任务的实施过程,安装所选择的C编译器,了解使用的界面和操作方法,并采用截图的办法将其记录在任务书的过程记录中,并进行文字的归纳,在此过程中,教师需要参与到小组讨论中,给予学生全面的指导和过程监控。最后,在任务检查评价以及归纳总结阶段,各小组需要上交完整的程序代码、模块流程图以及功能说明文档,教师挑选小组进行成果展示,组织学生对学生任务进行互评、查错,当学生互评完成后,教师对学生任务进行点评,肯定学生实现任务的采用的新方法并提示学生任务中出现的普遍问题。

2.3 课程设计教学方法的改革

工程项目教学法由以教师为主体转变为以学生为主体,由以课本为中心转变为以“项目”为中心,由以学习理论知识为中心转变为以实际操作为中心,其实在一定程度上就是CDIO教育理念所提倡的在工程基础知识、个人能力、人际团队能力和工程系统能力四个层面上进行综合培养的教学模式。例如我们在C语言教学中可以采用任务驱动教学方法。学习情境采用任务驱动法进行实施,每位学生的每项工作任务必须正确完成,才能进行到下一个任务,在工作任务的驱动和全程任务考核评价的监控下,培养学生作风严谨和坚持不懈的职业责任感。另外还可以采用自学法。C语言程序的构成初步理解比较难,教材上列举简单的例子,教师在课堂也讲授一些例子,学生不一定能够理解,需要慢慢适应,因此要求学生课后自学,教师进行指导。再者,项目教学法,即先练后讲,先学后教,强调学生的自主学习,主动参与,从尝试入手,从练习开始,调动学生学习的主动性、创造性、积极性等,学生唱“主角”,而老师转为“配角”,实现了教师角色的换位,有利于加强对学生自学能力、创新能力的培养。

2.4 课程设计考核方式的改革

基于CDIO工程教育理念的课程设计的改革,主要目的是实现学生对工程系统的构思、设计、实施和运作,建立以往教学模式中缺乏的工程价值观,激发学生的学习兴趣,转变学生的学习态度,培养学生的个人能力,将项目设计考核纳入综合评定中,打破单一传统考核方式,做到不仅考理论,同时还要考实际能力。因此,基于以上原则,采用期末考核与过程考核相结合的方式。过程考核也就是项目考核,每完成一个项目,就要作出相应的评价,通过提高过程考核所占比例,有利于激发学生的学习兴趣,提升学习效果,更能体现“以学生为主,以教师为辅,以能力为根本”的指导思想。其中,过程考核占课程总分的60%,结果考核占课程总分的40%。过程考核由教师评价、学生自评价以及小组互评三部分组成。通过学生自评,可以让学生体验到自身的存在对他人和对社会的价值;通过互评,可以培养学生倾听、尊重、分享、悦纳的情感态度。

3、结束语

本文提出的基于CDIO工程教育模式的C语言课程设计的改革,打破以往传统课程设计的教学模式,能够较好地渗透CDIO“构思—设计—运行—实现”的指导思想,通过案例和项目将知识点融入到教学当中,按照项目化的要求设计标准化的授课教案,以项目经验为学习目标,注重培养学生的学术能力、职业能力以及团队协作能力。实践证明,课程设计的改革取得较好的成果,学生普遍反映课程设计效果有很大提高。

参考文献:

[1] 王硕旺,洪成文.CDIO美国麻省理工学院工程教育的经典模式:基于对CDIO课程大纲的解读[J].理工高教研究2009(28)4:116-119.

[2] 于波,李阳阳.CDIO工程教育模式在Windows CE嵌入式系统教学中的应用研究[J].大庆社会科学,2010(6):145-147.

[3] 顾佩华,沈民奋,陆小华 译.重新认识工程教育:国际CDIO培养模式与方法[M].北京:高等教育出版社,2009.

c语言课程范文3

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

中图分类号TP39 文献标识码A 文章编号 1674-6708(2010)25-0198-02

C语言程序设计课程是我校理工类各专业必修的计算机程序设计基础课,是一门实践性很强的课程,学习者必须通过大量的编程练习,在实践中掌握语言知识,培养程序设计的基本能力,并逐步理解和掌握程序设计的思想和方法,培养学生编程兴趣和编程能力是我们教师的责任,也是该课程的目标。

现行的教学中存在一些问题:一是按照从基础知识讲起,然后讲解语句语法,最后应用举例;二是教材内容安排不尽合理,语法规则编写过细[1];三是教学理念、教学方法和考核方法比较老套,不适应当今教学的发展。为了让学生学好这门课程,提高动手能力,必须进行教学改革,探索改革的思路和方法。

1 转变教学理念

传统的“盖房子”教学理念,强调必须先打好地基再砌墙,即强调先打好基础,然后再进行实际编程。这种教学理念教师往往先介绍概念和定义,再举例进行讲解,这种教学方法死板而枯燥,由于课程的教学重点往往放在了语言语法知识点上,而语言的语法是相当烦琐而复杂的,这种教学方法缺少应用型、趣味性的案例,使学生一步步地陷入到纷多繁杂而索然乏味的语法学习当中,很难充分调动学生的积极性和启发学生思维。

研究自然界中“树”的生长规律可以发现,“树”并不是先长成发达的根系,再长树干和枝叶,树的根系、树干和枝叶是同步生长的。“树”的生长过程应用到教学上,就是基础语法和编程的教学同步进行,甚至先教编程技能再教理论,在不断地实践中掌握技能,在技能学习中提高基础理论。

2 教材编写思路

从课程的教学目标出发制定教材的编写思路,采用实例引导法、归纳教学法和任务教学法编写教材,在编写内容上抛弃过多的语法细节和非通用的或实际用途很少的语言特性,算法描述力求通俗易懂。理论教材以实例引导法思想为主导,介绍概念、语句格式、语句用法和算法描述。用归纳教学法思想编写多个函数中相同参数的使用问题。实验教材以任务教学法思想,确定每一个实验的任务、内容、要求和思考题。

3 教学方法探索

3.1实例引导法[2]

一切从实际例子出发,引导学生理解程序中的概念和算法,例如:在讲解变量、运算符和表达式时,先通过一个具体实例程序介绍,如:求圆面积和周长,指出程序中临时存放数据的单元和公式中的运算符号,然后再引出变量、运算符和表达式进一步讲解。又如:在讲解指针的概念时,变量的“间接访问”,可以通过“办公桌抽屉”实例讲解:一个办公桌有A,B两个抽屉,每个抽屉有一把钥匙,可以把B抽屉的钥匙放在A抽屉中,若要打开B抽屉,就需要先打开A抽屉,取出B钥匙,再打开B抽屉,取出B抽屉中的物品,引出“间接访问”。这样学生很快就能理解变量、运算符、表达式和指针的概念并掌握它们的用法。

3.2归纳教学法[3]

C语言的定义、概念、语法规则有许多相似的地方,在讲解C语言函数库中函数时,有些函数参数的类型格式符是一样的,在讲解一个函数中类型格式符后,对其它函数的类型格式符可以进行归纳,不讲或简单的提一下即可,例如:printf()和scanf()函数中的类型格式符“%d、%f、%c”等,它们的语法规则是一样的。通过归纳教学,学生只要掌握其中一个,另一个自然就会使用了,免去了重复讲授,提高了教学效率。

3.3任务教学法

C语言程序设计课程必须采用实验教学环节才能把理论算法加以验证。采用任务教学法思想编写实验教材,适度增加实用性和自主性实验任务内容。每章有具体任务实例讲解,可引导学生完成每章设置的实验任务题目。让学生自主选择实验时间,每次实验课前要布置实验任务,学生根据任务,自学和实验任务有关的知识,完成实验任务的编程。这种教学方法能够有效地培养学生的自学能力, 激发学生学习的积极性、主动性和创造性, 锻炼他们利用所学的知识解决实际问题的能力。

3.4网络教学法

依托先进完备的校园网络环境,建立C语言程序设计网络教学平台。可以把课程教学大纲、教案、多媒体课件、教学录像、综合实例库、习题库、学习参考资料、模拟考试系统等教学资源全部上网,通过这个网络教学平台,学生可以浏览、下载学习资料,也可以提交电子作业,在线提问题,老师在线辅导和答疑等,为学生自主学习提供强大的网络支持。

4 师资队伍建设

成立C语言程序设计课程组,建立结构合理的教师梯队。由具有丰富教学经验和科研能力的教授任组长,激励教师努力钻研教学内容和教学方法,拓宽知识结构。同时,针对组内教师的不同特点,课程组制定了切实可行的目标,并定期进行集体备课,相互探讨,号召组内教师积极参与教学研究和科研开发,为提高教学水平打下良好的基础。建立主讲教师之间互相听课和评课制度,定期召开学生座谈会和课程质量分析会,并针对反馈意见提出改进教学的具体措施,从而规范教学的各个环节,为更好地提高教学质量奠定良好的基础。

5 考核评价体系

对课程考核评价体系进行改革,突出过程考核和编程能力考核,促进学生实际动手能力和创新能力的提高。例如:总评成绩=理论课出勤成绩+作业成绩+实验出勤成绩+实验完成成绩+期末考试成绩。期末考试采用《C语言程序设计机考系统》,机考系统为每个考生随机出题,体现了公平考试的原则。改革后的考核评价体系主要体现了考核形式多样化、考核标准合理化以及考核试卷个性化三大特征。

6 结论

鉴于目前C语言程序设计课程教学中存在的一些问题,文章通过改革探索,一切从培养学生编程能力的角度出发,按着新的教学理念对教材编写思路和教学方法进行了探索,提出了教学改革的具体措施。希望对C语言程序设计课程的教学改革有所借鉴。

参考文献

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

c语言课程范文4

【关键词】c语言课程 教学资源 资源建设 信息技术

前言:伴随着改革开放的不断深入,我国在步入二十一世纪之后,教育事业的发展取得了长足的进步。而教育事业快速发展的主要原因便在于人们思想意识的不断改变。经济全球化时代的到来,促进了信息化进程逐渐加快。而IT作为一个为适应时展的行业,在社会各界的强烈要求之下逐渐形成。而作为培育计算机专业性人才的基本教材《c语言程序设计》应该发挥更大的作用,但c语言课程的教学资源不能局限于此。因此,对c语言课程教学资源建设研究有着鲜明的现实意义。

一、c语言课程教学现状分析

c语言课程作为一种基本的教育课程可以说是计算机专业学生最先接触到的专业性书籍。而c语言课程作为“数据结构”课程与“软件工程”课程的先导课,对于促进学生学习有着重要的现实意义。但是就目前的发展情况来说,C语言课程教学存在很多的问题,对学生学习该类课程带来了极大的影响。接下来,本文将会结合现阶段的教学实际情况,对C语言教学当中存在的问题进行如下总结:

(一)教学内容的不全面

就C语言教学来说,其基本教学载体为《C语言程序设计》教材,通过对于该本教材的内容研究笔者发现,这本教材当中的基本内容包含了程序设计基本语法、数据类型、数据计算、程序设计基本语句、函数等。这就表明该本教材当中的内容是比较丰富的,但是在现实的教学活动当中,由于课时较少等其它原因,使得C语言的教材教育不能全部的进行讲解,大部分的教师往往都是将《C语言程序设计》教材当中的语法语义部分单独剥离出来进行教学。这就抛弃了其它大部分的教学内容,同时这种方法也使得教学内容不尽全面,而其内容较为浅显则是不可避免的问题之一[1]。

(二)教学方式方法单一

在现阶段的C语言教学活动当中,大部分教师仍然在采用传统的教学方式。在传统教学方式的长期影响之下,教师认为自己应该作为课堂的主体,发挥主导地位。就计算机专业教育来说,其教育内容大部分都是十分抽象的东西,类似于传统的一根粉笔、一块黑板的教学方法其最终所起到的作用并不明显。即使在以上方法当中加入多媒体教学。但是因为教师仍然在其中占据着主要的地位,因此使得学生往往会产生这样的问题“老师讲的都懂、教学例题也懂,但是就是不会编程”。这是现阶段教育者急需解决的问题之一[2]。

(三)考核方式传统

随着各大、各等级教育机构纷纷降低了教育门槛,使得生源数量不断增加。就大学教育来说,其一个班级将会拥有很多的学生,这就使得大学教育的最终考核制度一般采用试卷的形式。但是这种传统的考核方式也只是考察学生的知识掌握情况。并不能对学生解决实际能力做出最终的评判。并且在考核当中缺少学生自我评价机制。

综上所述,我们应该结合现实的情况,提出合理的解决方案,切实的解决现实中存在的问题,针对现有C语言传统教育资源严重不足的问题,应该开发多层次的教学资源,促进学生更好的发展。

二、c语言课程教学资源建设

(一)电子教案建设

电子教案是教师的主要辅助教学用具,内容虽然言简意赅,但是却包含了教师的一些基本思想。对于学生来说具有鲜明的教育意义。为弥补现阶段教育资源的不足,可以将教师教案以电子的形式进行传播。虽然教育的主体应该是学生,但是我们同样不能忽略了教师的作用。例如教师的眼界与思维就是学生需要借鉴的地方[3]。

(二)试题库

虽然我们认为传统的试卷考核方式存在一定的局限性,但是试卷考核的方式也是最为有效的理论知识考核方式。每一套试卷都不是随意为之的,其中的每一道试题都具有着鲜明的意义。都是编辑者的智慧所在。而为弥补教学资源的不足,则可以建立一个试题库,收集各个阶段的试题,帮助学生进行查缺补漏。而对于一些“吃不饱”的学生来说,则可以收集一些软件设计大赛当中所涉及到的知识。例如“蓝桥杯”等[4]。

(三)网络资源建设

鉴于现阶段互联网技术十分发达,因此可以基于互联网平台建立一个相对应的C语言教学网络平台,实现远距离的交流与实时的在线学习。网络教学综合平台按功能分为了精品课程、研究型教学和教学资源中心。在这个系统里,教师可以把自己有关课程的所有相关资料上传,为今后的精品课建设提供了资料保障。并且在此种环境之下,老师对集中出现的问题进行答疑,不必局限于课堂。而学生也可以在网络平台之上进行实时的学习。是一种双赢的教学方法[5]。

结束语:学生是我国经济建设与社会发展的主要原动力,是我国可持续发展的根本动力。因此,无论我们出于何种原因,处于哪种发展阶段,都不能忽视了对于下一代的教育。计算机专业性的人才是信息化时代下必不可少的一个部分。虽然这一专业的产生时间并没有哲学、法学等专业具有“悠久的历史”。但却具有着独特的存在价值。综上所述,本文对c语言课程教学资源不足的问题给出了相应解决方案,虽然仍然存在一定的片面性,但是还是希望可以对广大读者起到借鉴作用。

【参考文献】

[1]鲁红英,肖思和,孙淑霞. “C/C++语言程序设计”课程教学改革与实践[J]. 计算机教育,2013,07:95-98+102.

[2]秦玉平,马靖善. “C语言程序设计”课程教材建设与教学方法研究[J]. 计算机教育,2010,04:157-160.

[3]苏小红,赵玲玲,王甜甜,张宏莉. CS2013指导下的程序设计课程体系设计与精品资源共享课建设[J]. 中国大学教学,2014,05:19-24.

c语言课程范文5

关键词:程序设计;实例教学;错误分析;上机实践

中图分类号:G642文献标识码:A文章编号:1009-3044(2008)08-11ppp-0c

1 引言

随着高等教育事业的不断发展,教学改革正在逐步深化,给我们的教学工作提出了新的要求。从开设C语言课程以来,我们针对教学中发现的各种问题,不断学习探索新的教学手段和方法,以求学生得到最好的学习效果。我们在不断克服传统教学模式的不足、坚持进行教学改革与探索。

2 分析教学过程中存在的问题

传统教学模式以书本为中心,采用从概念到概念的注入式教学,关注的是向学生灌输了哪些知识,造成教学与学生实际脱节,忽视了学生学习潜能的开发。导致学生学不深、学不透、学不懂,甚至不会运用学到的概念去解决实际问题。只能掌握基本概念,不能解决实际问题,不能举一反三。

在传统的教学方法中,由于片面地强调和突出教师的主导作用,忽视和压抑了学生的能动作用;片面地强调知识的传授与灌输,忽视了学生创新能力的培养;注重培养“知识型”人才,忽略了“智能型”人才的培养。

传统的教学方式是教师利用黑板、粉笔、教案等,在一般教室进行授课的一种教学方式,而多媒体辅助教学方式则是在授课过程中利用投影仪、计算机、网络等多种现代媒体,在多媒体教室进行授课的一种新的教学方式。但是在课件制作上过分强调表现形式,忽略了内容本身,往往造成喧宾夺主,达不到预期的效果;另外在课堂上,教师过分依赖课件演示,忽略与学生沟通,削弱了教师在教学过程中应起的主导作用。

针对以上存在的不足,我们在C语言课程的教学过程中,展开了一系列的教学改革,尝试采用了实例教学法、形象化比喻、分析常见错误和加强上机实践,并合理使用多媒体辅助教学,取得了良好的教学效果。

3 采用实例教学,增强了学生综合能力

为了改变传统教学以书本为中心的注入式教学方式,我们探索采用了实例教学法,通过软件开发实例,引入算法思想和语法概念。从而促进学生成为教学主体,引导学生进行自主学习、合作学习、研究性学习、探索性学习,增强学生的综合能力。努力培养和提高学生的思维能力,从而提高教学质量,取得良好的效果。

比如说在讲授数组的应用时,要求学生开发一个实例进行成绩排序。学生在设计时可能会用到不同的排序算法,然后再一一进行分析,每种算法中存在的优点和不足,在什么情况下采用哪一种算法最好,这样能加深学生对知识的理解和掌握。

4 形象化比喻,建立清晰概念

比如指针部分的教学,由于概念比较抽象,多数学生感到很难听懂。我们在引入指针的概念教学时,采用形象生动的比喻来帮助学生理解指针的概念。指针是描述计算机内存的,指针运算是内存地址的运算,很多学生在学习C语言时,由于没有学过操作系统课程,对内存很陌生。因此在给出指针概念前,先让学生建立指针与计算机内存单元地址一对应的关系十分重要。教学中可用学生宿舍形象比喻计算机的内存,内存单元相当于宿舍中的每一个房间,“地址”就是内存单元的编号,相当于宿舍的门牌号,内存中存放的数据,相当于各房间的学生。明确给出指针就是首地址。在讲述“指针变量”时,可以首先给出指针也是一个变量,只是这个变量中存放的是另一个变量的地址(即存放的是指针)。然后用“传达室”作比喻。传达室也是宿舍中的一个房间,只是住在那里的人比较特别,他知道哪个房间里住的是哪些人。在讲到“直接访问”和“间接访问”时,用传达室这个比喻很容易让学生明白。如知道门牌号,直接找到学生,相当于“直接访问”,如果通过传达室查询到门牌号,再找人,相当于“间接访问”。通过这种生活中的形象比喻,学生能够很快接受指针的相关知识。

5 分析常见错误,强化理解

对于C语言初学者来说往往出了错还不知怎么回事。比如输入数据的形式与要求不符。用scanf函数输入数据,应注意如何组织输入数据。假如有以下scanf函数:

scnaf("%d%d\n", &a,&b);

若按下面的方法输入数据:

3 4L

这时会出问题,因为对scanf函数中格式字符串中除了格式说明符外,对其他字符必须按原样输入。因此,应按以下方法输入:

3 4\nL

另外,比如指针变量初始化常见错误:

(1)未初始化错误:定义了一个指针变量后,系统便给该指针变量在内存中分配一个地址单元。该地址单元中存放着一个随机的数,不能确定该指针指向何时地址。如果此时对指向的区域进行写操作,便有可能破坏系统的某种设置,结果使系统瘫痪。

例如:int *ip;*(ip)=100;

上述语句中指针变量ip因没有初始化,而被随机地指向内存单元中的某个地址。由于在执行语句*ip;后ip的内容是未知的,当程序将100赋值给一个没有确定指向内存的指针ip,而使得在内存的某一未知地址被写入100;虽然这个程序很小,所占的内存小,问题不明显,也能够得到正确的答案,但实质上它却隐含着一个致命的错误。这是因为随着程序的增大,很有可能访问到致命的地址单元;如果指针变量中的不定值落到了系统数据区,由于*(ip)=100;的写入操作可能覆盖内存单元中的系统数据区,将会导致计算机系统工作区域内有用数据的破坏,引起数据段、操作系统的损毁,造成机器运行失常,甚至“死机”。未初始化的指针称为“野指针”,它最不显眼,却最具破坏性和危险性。

(2)混淆数组名与指针变量的区别。

int i,a[8];for(i=O;i

C语言中约定,指针是一个变量,取地址为其值;数组名是一个指针,在系统为数组分配存储单元时确定,是一个指针常量。该指针的值是该数组的首元素的地址值。数组名由于是常量,所以不能自增自减,也不能在赋值语句中作左值。上例程中企图通过a的改变使指针下移,每次指向欲输入数据的数组元素。它的错误在于不了解数组名代表的是数组首地址,是一个地址常量,而地址常量的值是不能改变的,不能用a++。应该用指针变量指向数组元素。上例程可改为:

int i,a[8],*p;

p=a;

for(i=O;i

scanf("%d",p++);

另外int (*p)[4]与int *p[4]的区别。前者的p表示的是一个指针变量;后者的p表示是的数组名,是一个指针常量。

(3)指针赋值带来的内存遗漏动态内存分配。C语言虽然可以方便地实现任一数据块的随机分配,但这种操作很可能导致“内存遗漏”。在程序的执行过程中,函数体内的局部变量在函数结束时自动消亡。于是,很多学生认为,在函数结束时,函数体内定义的指针消亡了,它所指的动态分配的内存也将被释放。这种理解是错误的,虽然指针消亡了,但它所指向的内存并没有被释放。编程中,忘记被释放内存是十分危险的。含有这种错误的函数每被调用一次,就会为指针变量分配一定大小的内存空间,当内存空间使用完以后,系统不会自动释放内存空问,而出现对同一指针变量的多次动态分配,在内存中产生一系列无法释放的“无效内存块”,由于这部分内存空间不能再被该程序访问,同时也不能被其后任何程序访问,因此,出现了内存空间的“丢失”,而且这种内存块会随着程序运行次数的增多大量“繁殖”,最终导致内存空间的耗尽。

例如:int *q1=(int *)malloc(10);int *q2=(int *)malloc(10);q1=q2;free(q1);

这个程程序段中用了两个malloc()函数,却只用了一个free()函数,这就造成了内存泄漏。值得注意的是,如果此时用free()函数释放q2,程序仍然不对,这是因为q2所引用的内存已被q1释放,但是最初由q1所引用的内存已经无法释放了。该内存空间成了“无效内存块”,内存空间“丢失”了;如果这个程序段被反复调用,内存愈来愈紧张,最终“死机”。正确的做法是当一个指针赋给另一个指针前,先用free()释放所持有的内存空间,使这部分空间可以由系统重新支配,即应在赋值语句前调用free()函数。上述程序段应该改为:

int *p1=(int *)malloc(10);

int *p2=(int *)malloc(10);

free(p1);

p1=p2;

free(p1);

6 加强上机实践

C程序设计是一门实践性很强的课程,既要求掌握概念,又要求动手编程,且上机调试运行才能够真正理解掌握。特别如指针的使用实在太灵活,对大多数学生而言,在实际编程中很容易出错,而且这种错误往往难以发现。上机实验是程序设计的一个步骤,是教学的一个重要环节,是对教学内容的验证、补充。同时实验课是学生独立操作的课程,只有在实验课内才真正体现了学生的主导地位,发挥学生的创造力。所以针对容易出错的地方,必须要求学生大量上机调试、验证,以弄清一些细节,并积累经验。

7 结束语

综上所述,在C程序设计课程的教学中,不仅要注意理论教学完整连贯、深入浅出,还要增强实例分析、错误分析,并与实践紧密结合,让同学们学得有趣、有劲、有用、有成,同时要注重自学能力的培养,为后续课程的学习打下坚实的基础。

参考文献:

[1]谭浩强. C 语言设计[M](第二版). 北京:清华大学出版社,2003.

[2]林钧海,田沧海. C 语言高级实用编程技巧[M].北京:电子工业出版社,1999.

c语言课程范文6

关键词:职业院校;c语言设计;教学方式;教学体会

C语言设计课程是很多高校计算机专业的专业基础课,本课程不仅要求学生掌握一门高级程序设计语言,还要为培养学生良好的程序设计打下坚实的基础。但是在教学过程中学生对繁多的数据感到困难。很多学生感觉c语言难学、难懂,对解决实际问题编制应用软件时无从下手,对编程能力和调试程序的能力不够,这样就给初学的学生带来不少的困难。所以很多学生对这门课程产生厌学心理,为此,老师必须根据C程序设计这门课本身的特点及教学对象的具体情况来共同探讨教学方法的改进和实践。

一、注重能力的培养,激发学生的学习积极性

随着经济的发展和科技的进步,社会对人才素质提出了更高的要求。在人才培养上各高校重视能力的培养,开始实施理论教学和实践教学的配套改革,进一步加强实践教学,加强学生实践能力、创新能力的培养。

1 强化实践,注重能力的培养

在课程的教学过程中,以实用性、熟练性为基本要求,重视学生分析问题和解决问题能力的培养,强调程序设计的训练。学生只有通过大量的练习,才能真正掌握语言知识,逐步理解和掌握程序设计的思想和方法。并采用综合训练的方式,帮助学生真正掌握程序设计的思想和方法,运用语言解决实际问题。整个过程以学生独立完成为主,教师只提供必要的辅导。不但可以使学生在学习上得到充分的发展,培养综合运用所学知识的能力、问题求解和编程能力,还能够培养学生的自主学习能力和探索创新的能力。

2 教学应注意方式方法,激发学生的兴趣

实际教学过程中,学生由于以前没有接触过程序设计的内容,普遍认为c程序设计太抽象、不容易理解,更有人认为学习C程序设计已经没有必要,直接学习C++程序设计就可以了。其实,这些现象说明了学生对这门课程认识的程度不够。所以,为了使初学者能尽快地掌握,教师要采取适当的教学方式,激发学生的学习兴趣。

3 学习兴趣的培养

C语言是一门涵盖多学科知识的计算机课程,基本概念多,信息含量大,仅靠有限的课堂教学,学生难以学到其丰富的内容,所以应更多地要求学生在课前预习,课后练习和复习,养成自学习惯,这是解决问题的根本方法。如果没有兴趣和爱好,要做到这一点是不太可能的。要想培养学生的兴趣和爱好,首先要从树立学生的信心人手。在教学初期,多举一些简单的实例或结合课程的进度,布置一些简单的编程作业,让学生在上机课中进行操作。通过完成这些简单的编程让他们产生一种成就感,一种学习的信心。要培养学生的兴趣,还需要让学生懂得C语言课程在生活中的实用性。可以利用生活中遇到的问题,如学生成绩排序、学生运动会的赛程安排、比赛记分等,还可利用学习其他课程时,如数学中的一些例子等等,来达到培养学生兴趣的目的。

二、注重课程教学的内容,加强对学生程序设计思维的训练

《C语言程序设计》课程不仅仅是一般意义上的知识传授,还要让学生掌握程序设计的基本方法,对学生进行逻辑思维能力的培养。在实际的教学过程中,我们发现有些学生平时学得很认真,对语法、语句等细节也很熟悉,但碰到稍微复杂的编程则无从下手。教师在教学过程中要树立正确的教学思想,加强学生的程序设计思维训练,帮助学生顺利地实现思维方式的转变,而不能单纯地讲授语言的语法、语义、语用,应该将复杂枯燥的语法知识分解到一个个生动实用的程序实例中。对于从未受过设计训练的初学者来说,可能会感到无从下手,对此,教师应该有意识地加强这种思维方式的训练,通过讲授一些常用算法、典型算法,如记数、累加、连乘、两数交换、求最大(小)值、迭代、排序、分类等为以后编写程序、软件设计奠定基础,同时典型算法熟练的掌握,也可增加学生学习的信心并提高学习的兴趣,培养学生的思维能力。

三、加强实践环节的教学管理,培养学生的动手能力

1 实行实践教学形式的多样化。上机操作,教师通常照着书本的例子进行验证,这样无法增加学生的成就感,使学生觉得很无聊。在《C语言程序设计》上机实验教学中,除传统的课堂实验外,应开展课程设计、典型程序分析与设计等实践环节,这样才有利于培养学生的创新能力。

2 在完成课内的基本实验外,还可以增加一些特色实验。由教师精心设计一些具有较强的实用性、综合性和一定创新性的题目,不向学生具体提出要求,只提出需实现的功能,在学生完成的过程中,教师只提供必要的辅导。这样的实验可以提高学生的创新思维,加强学生的实践训练,拓宽学生的知识面,提高学生的创新设计能力与动手实践能力,提高学习兴趣与教学质量,适应社会对人才的需求。

上一篇新生入学

下一篇写马的作文