c语言程序设计实例范例6篇

c语言程序设计实例

c语言程序设计实例范文1

关键词:案例教学;现场编程;分组教学

中图分类号:G642.3 文献标识码:A 文章编号:1674-9324(2012)05-0239-03

一、引言

程序设计类课程是大学生计算机基础教育的必修课,目的是培养学生的计算思维,培养学生利用计算机解决实际问题的能力。由于“C++语言”在工业控制领域应用较多而被选为理工类大学生的计算机语言程序设计课程,并安排在一年级学习。大学一年级的学生大多数延续高中的学习和思维方式,但是“C++语言程序设计”的学习方法和思维方式与物理数学都不一样,学生碰到了课程学习的第一个难题,教师必须引导学生转变思维方式尽快适应C++的学习。在教学过程中,我们发现“C++语言程序设计”与高等数学和大学物理等课程有明显的区别,高等数学和大学物理等课程偏重理论教学,而“C++语言程序设计”除了理论教学之外还有大量的实践教学,是一门突出实践性的课程。因此,在教学设计中应该突出培养程序设计基础理论知识的应用和动手编写程序,不能只关注知识点的讲解和检查,而忽视程序编写调试能力的培养。为此我们针对如何在程序设计中培养学生的动手能力,对“C++语言程序设计”这门课程的教学目标定位和教学方法选择进行了一些分析和研究,并应用于2010级的机械实验班的“C++语言程序设计”课程的教学实践中。

二、教学目标

人们在学习人类自然语言的时候,强调语言的语法是基础,学习的目标是和其他人进行交流。相应的,在学习“C++语言程序设计”时,C++的语法也是编写程序的基础,学习的目标是使用C++语言编写程序。而对于大多数大学生而言,C++程序设计语言和英语一样,是未来工作中的一个重要工具,因此,我们要告诉学生把C++语言当作工具来学习,强调实用性,不要过多地关注内部细节和繁杂的语法。在讲授基本语法之外,我们重点放在教会学生如何写C++程序,如何优化程序,以及学习怎么去学习C++语言的新领域。计算机语言的语法不是计算机语言学习的全部,一个熟练的BASIC程序员学习新C++语言的语法,也许只需要3-4个小时,但是要熟练使用C++这门语言,特别熟练使用C++的类库时,就必须认真阅读类库参考和相关的例程,并进行大量的上机编程练习。所以,在“C++语言程序设计”课程教学过程中,我们既要让学生知道常用的语法现象,又不能局限于C++语法的掌握。同时我们也充分认识到语言只是一种表达工具,自然语言亦是如此。程序设计语言可以用来表达需要解决的问题和解决问题的方法,但是方法本身不属于语言的范畴,要在其它课程中学习。例如:计算方法、数据结构等。学习语言需要实践,因而离不开对分析问题和解决问题方法的学习。但是初学者的目标应定位在编写小程序、解决简单问题。我们的教学目标是通过《C++语言程序设计》课程的学习,学生能掌握一些常用的经典算法和相应的例程。可是仅仅掌握这些经典算法和相应的例程是不够的,我们还希望通过“C++语言程序设计”课程的学习,让学生掌握从算法到程序代码的转化,使他们能够将一个实际问题,先描述为一个计算机算法,然后再编写相应的C++代码。同时强调“自顶向下”和“细分”的程序设计思想的培养,让学生充分了解任何看似复杂的算法,都可以分解为若干个简单算法的逻辑组合。所以任何一个题目,在编写代码之前,都要认真分析,分解成若干的小问题进行处理。

三、教学方法

1.案例教学。在以前,“C++语言程序设计”课程的教学围绕C++的基本语法知识来展开。而从本质上来说,计算机程序设计的最终目的是为了用计算机解决实际问题,因此“C++语言程序设计”课程的目的是培养学生的计算思维能力、创新能力和综合能力。要提高学生的学习“C++语言”的兴趣,就必须让学生亲生感受并体会C++语言程序设计的无穷魅力。而“案例教学”这种教学方法,改变了“满堂灌”C++语法的做法。通过一个有趣的案例吸引起学生的注意力,从而将学生的眼、手、脑全部调动起来,培养学生学习《C++语言程序设计》的兴趣。因此,我们在《C++语言程序设计》课程的课堂教学中采用案例教学法来组织教学。课堂教学以C++程序为主线,通过使用多媒体教学设备,在VC6.0的编程环境下现场演示程序的运行结果。在讲课过程中,将教学内容分为不同的几个主题,用C++程序设计作为贯穿期中的主线。通过对案例例题的分析,着重讲解C++程序设计的编程思想和编程方法,同时介绍相关的C++语言的语法知识。然后在机房上机实验的时候,教师针对学生在上机实际编程中的突出,进行有针对性讲解。通过案例法教学,教师在课堂上通过分析程序设计的原理和程序设计的过程,使学生一步一步熟悉C++语言的语法,学会应用相应的C++语句,进而培养学生分析问题和解决问题的能力。

2.当堂编程。在课堂上当堂编写程序可以让学生看到编写C++语言程序过程中所出现的各种问题,从而重点讲解用C++语言编写程序时要注意的细节问题。我们首先用PPT分析各种例题的关键算法、类的结构或函数定义,然后在VC6.0的编程环境中当堂编写相应的C++程序。教师一边输入代码,一边讲解代码的含义,同时要控制编程的节奏,使得学生能跟上教师的编程思路。在整个过程中,教师要时不时提出一些问题,与学生进行互动。在2010级机械实验班的《C++语言程序设计》的课堂教学中,我们从第一节课开始就实施了在课堂上当堂编写C++程序的做法,取得了很好的课堂教学效果。在课堂上当堂编写程序的时候,将教师良好的编写风格在不经意间传递给学生,让学生注重诸如如何命名标识、如何正确使用注释和换行。通过教学实践,我们发现教师在课堂上现场编写的程序比其他书本的例题,对学生的示范性更强,对学生培养良好编程习惯的作用更强。在课堂上现场编程对于教师来说也是一个重大的挑战,它要求教师能及时解决C++编程中遇到的各种问题,修改程序错误,并调试和运行程序。教师对于学生容易出错的地方,常常有意留些错误,然后让学生去分析错误,从而加深学生的印象,让他们知道碰到类似的问题如何处理。为了教学生如何正确调试程序,教师还要讲解VC6.0编译器常见的警告和错误信息,并告诉学生错误产生的原因和相应的处理办法。

3.程序调试。《C++语言程序设计》课程的学习中,影响学生学习积极性的最大难题是无法正确处理调试过程中遇到各种错误。例如学生编写的C++程序,编译时编译器报告了若干个错误,但是学生不知道如何修改;或者编译通过了运行的时候却出现死循环,但是学生也无法发现。一旦学生编写的程序经常不能正确运行,就会影响学生的学习兴趣,进而使学生失去学习《C++语言程序设计》课程的信心。所以,教师应该让学生学会常用的调试方法和步骤,并且鼓励学生主动和老师一起帮助其他同学调试程序,一起解决C++编程中遇到的问题。要解决C++程序在运行中所碰到的错误,正确的调试方法和手段是学生必须掌握的。只有通过使用正确的调试方法和手段,才能让学生在最短的时间之内找到程序中出错的语句及其原因。在VC6.0的编程环境中,学生要学会使用单步跟踪技术,熟练使用相应的快捷键,例如F9、F10、F11、Shift+F1等。并配合使用内存变量查看工具“Watch”和“Variables”等来查看相关变量的值,从而找到错误发生的原因。4.分组教学。分组教学是把学生分成若干小组,每个小组可由5~6名不同能力的学生组成,以小组合作的形式,在教师的指导下,通过组内学生的互助活动共同完成学习任务。分组教学与传统的班级授课制相比,有很多优越性。分组教学可以增加学生之间的互动交流,从而可以实现学生的优势互补。通过开展小组合作学习,有意识地培养学生的合作意识和合作,也能减轻学生的学习压力;通过互帮互学还能增强学生的自信心,促进全体学生的个性发展。在实验环节和项目设计中,采用我们分组教学的模式来组织教学。项目设计全过程基本上让学生以小组团队的方式独立完成,教师只是提供相应的辅导和监督项目的进展。经过了这种模拟实际项目开发过程的训练,不但可以提高学生学习C++的兴趣,培养学生的C++动手编程能力,还有利于培养他们探索精神和学习积极性。

综上所述,我们认为C++语言本身是一个软件开发的工具,在教学中应该将C++语言定位为一个通用软件开发工具,并且在教学过程中突出C++语言编程的实用性,注重培养学生实际动手编程的能力、分析处理问题的能力和自主学习的能力。我们也将此观点用于指导2010级机械实验班的《C++语言程序设计》课程的教学中,取得了较好的教学效果。

参考文献:

[1]陈福松.案例教学与创新型人才培养[J].扬州大学学报(高教研究版),2009,(05).

c语言程序设计实例范文2

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

1概述

C语言是当今计算机应用中最重要且被广泛使用的一门程序设计语言,它兼具高级和低级语言的优点,特别适合于编写计算机系统软件。高校的很多计算机专业课程,如数据结构、操作系统、算法设计等,多选用C语言作为教学语言。学生学好C语言,不仅是一门课和一种技能的问题,而且涉及到能否学好整个专业课。因此,C语言程序设计的教学越来越被提高到重要的位置,各校纷纷进行C语言教学方法的改革和试点工作[1-3],并取得了一定的经验和成绩。

笔者所在高校也进行了有益的探索[4]。在部级教学团队“计算机基础系列课程教学团队”共同确立的教改思想和指导原则下,各授课教师根据自己的教学经验,进行了多种教学方法的尝试,取得了良好的成果。其核心思想是,不断加大C语言的实践课时,注重学生编程技巧和编程能力的提高。尽管如此,部分学生仍然不能很好地掌握C程序设计技术。在C语言考试中,学生更易于完成填空、选择、判断正误等检验“基础知识”的题型,程序设计或上机编程题则完成质量较差。直到学习数据结构等课程时,部分学生仍然难以用C语言编写算法,这直接影响到了数据结构等课程的教学效果,对后续课程造成了影响,甚至严重影响了毕业论文的进度和质量。

C语言是一门程序设计语言,它是程序员和计算机相互交流的语言。作为语言学习,它也遵守人学习语言的最一般规律:在实践中学习语言,重视单词的学习和积累,重视语言的交流能力。

2像婴幼儿学习说话一样,学习计算机语言

婴幼儿学习语言的方法对C语言程序设计课程的教学组织具有很大的启示作用。

2.1跟着大人,重复学习说话

婴儿学习说话,是从“mama、baba”开始,爸爸妈妈积极应答,并鼓励孩子继续“说话”。期间没有人在意,孩子是有意识或者是无意识的,孩子的发音是否准确,只要有声音,就给予足够的鼓励。之后,婴儿继续学习其他称呼和各种词汇,会说“开门、妈妈抱”等短句,直到“我要出去”等简单的句子。这一语言学习的过程特征很明显:跟着大人,重复说话,不在乎语法是否正确,能简单表达意思,大人能听懂即可。

C语言学习也一样。教师把自己看作大人,学生就是婴儿。从语言教学上看,不首先去强调语法等规则,而是教授“例子”。教师可以在课堂上重点讲授一个又一个例子,在课堂上编译、连接并调试运行程序,让学生课后去重复这些程序。这种方法可以让学生在最短的时间内,真正“接触”到C语言,通过老师的程序实例和计算机实现对话。教师通过作业,鼓励和引导学生修改这些简单的程序,并鼓励学生独立完成一些新的程序。这种方法使学生在刚开始上课时就接触计算机,重视学生快速和计算机建立联系,让学生在编辑、排错、调试和运行程序的实践过程中,和计算机对话,达到从实践中学习的目的。

“在例子中,学习和计算机的对话,让计算机训练自己。”

2.2不断学习单词,丰富语言的内涵

会说话的婴儿有了新的渴求,他需要通过不断学习,拓展自己的知识和生存空间,大人们也非常配合他,不断教他新的“知识”,这些新知识,首先就是“单词”。婴儿会指着电视机“啊啊”地叫,大人们教给他说“电视”,于是婴儿学会了“电视”这个单词。他可能说“宝宝要电视”,虽然不符合语法,但他已经勇敢地清楚地表达了自己的需求。宝宝在大人的纠正过程中不断学习,掌握的词汇越来越多,他也越来越具有和人交流的能力。这种能力是通过不断学到“新词”开始的,是不断被大人们纠正提高的。

C语言学习也一样。教会学生编写基本的C程序后,接下来的工作,不是要写复杂的“让计算机唱歌跳舞”的程序,而是让学生不断掌握新词汇,扩大和计算机的交流范围。在C中,这些新词汇就是C的库函数。C语言提供了丰富的库函数,程序员不可能脱离开这些库函数妄谈编程。以往的C教学中,可能会忽视这些库函数的介绍,只有在课本的附录里,才能找到他们的索引。教师课堂上的主要时间,花费在介绍C的各种语法上。考试中,这些语法就是“基础”知识,这又会把学生的学习重点,引导在学习和背这些语法上,无形中又忽视了实际编程能力的培养和锻炼。这是造成学生不会“写程序”重要原因。

婴儿不认识新事物,就无法开口说话。学生如没有很好地掌握库函数,就难以写程序。比如,若没有printf()函数,学生就不可能知道如何把信息显示在屏幕上。因此,学习写C程序,首先需要学好C的库函数。教师在课堂上的重点,就在于在例子中,尽可能多地使用库函数。让学生“见过”并“知道”有这样的库函数可以用,再通过编程作业,促使学生掌握库函数。库函数就是C语言中的“单词”,有了这些单词,才能开始编程,和计算机“对话”。

“不仅要会和计算机说话,而且可以天南海北地聊。”

2.3多说多练

学会说话的婴幼儿对这个世界充满了好奇,他已经长大了。他不仅和他的爸爸妈妈说话,他还要和其他人说。他要去上幼儿园,可以和老师说话,可以和幼儿园的其他小朋友说话,他的语言能力不断进步,他会唱歌,会背唐诗、三字经、弟子规,他已经像个大人了。

学生学习C语言也一样。最开始模仿老师的程序,编写程序,按照老师布置的作业练习编程,最后可以根据自己的兴趣,编写一些应用程序。学生解决问题的能力越来越强,可以排除程序中的错误,掌握调试程序的方法,逐渐能够书写小规模的程序了。

这些能力的提高和培养不是教师在课堂上能够完成的,需要学生在实践中提高。此时教师可以使用特殊资源了,即上机课时。高校中C语言的课时一般由3部分构成:课堂学时、课后机时和专门的上机课时。利用上机课时,教师可以布置小规模的系统编程作业,让学生去完成。通过这种作业,让学生系统掌握C的编程知识,提高程序设计能力和水平。

“多写多练,可以和计算机讨论问题。”

2.4上学后,我们再学语法

婴幼儿长成了小学生,他要开始上学了。在学校,他开始学习课文,通过课文认字、认词、认成语,写字、写词、写句子,他开始锻炼写作文。不知不觉中,他读了很多书,从童话开始,到小说、散文、诗歌,最后是名著。他开始系统学习语法,主谓宾定状补,不胜枚举。

C语言的学习也没有止步。实际上,C语言程序设计课程只能完成上述2.1~2.3部分的内容,这些部分教会了学生写程序,而不是教会了学生C语言的语法。C语言的语法,可以融于课堂的例子中,通过程序设计和调试,直观地介绍C的语法,通过程序练习和调试,由计算机来告诉学生,怎样符合规则,怎样不符合。对于一般的语法,要求学生自学。C程序中的众多语法,比如C语言从main()函数开始执行、变量定义位置、注释写法、函数命名、参数以及函数返回、变量作用域、运算符的优先级等,多是规则,并不难理解,需要学生记住并掌握,而单调的看书和记忆,效果远不如在程序排错和调试过程中学习。

通过程序实践和例子学习语法,而不是只是在课堂上讲授语法。这样,当学生有了一定的编程能力后,再回过头去研究语法,可以更好地提高对C语言的理解水平。如果在一开始就把重点放在语法上,可能反而无法掌握C程序设计技术。

实际上,C的一些语法细节在实际工作中是不常用的。例如,判断闰年的逻辑表达式:( Year%4==0 && year%100!=0 )||year%400==0,其中涉及到运算符、运算表达式以及运算符优先级等问题。若要计算该表达式的值,当然需要记住表达式的优先级顺序等语法知识。但实际工作中,是不鼓励把程序写成那种样子的,实际工作中,要求程序书写清晰明了,简单易懂,强调程序的可读性。因此,上述代码可以写为:

(( ( year%4 == 0 ) && ( year%100 != 0 )) || ( year%400 == 0 ))

“不仅让计算机能听懂,而且要易于听懂。”

2.5学无止境

经过了中学阶段的学习,孩子已经完全掌握了“汉语”这一门语言,此后能否成为编辑、记者、作家、诗人,则需要更多的学习和锻炼。他需要研读名著,体验生活,笔耕不辍。

C语言也如此。C语言课程结束后,学生可以通过参加课外兴趣小组、各种计算机编程竞赛、后续的专业课学习、毕业设计等,不断锤炼自己用C语言进行程序设计的能力。他可能逐渐接触到C语言课程永远无法讲授的东西,比如socket编程、进程与多线程、并发与竞态、Linux驱动程序、Windows驱动程序、研究开源代码等。他成了一名高级程序员、资深程序员、专家,他开始“用Word写程序”。

“计算机编程,一个玩具(计算机)的更高级的玩法(写软件)而已。”

3结语

C语言是一门程序设计语言,教学的目标在于让学生“掌握”C语言。所谓掌握,不仅指C的基础知识、语法结构等,最重要的目的是会用C语言写程序。C的其他所有知识,都在程序编写和调试中得到学习和掌握。

本文根据婴幼儿学习语言的特点,提出了C语言的教学思想和教学方法,其主要思想为:教学目的在于教会学生用C语言写程序,让学生在不断实践中提高程序设计的水平;课堂上,主要通过程序讲授编程的方法和技巧,强调C语言的库函数学习及其使用方法,通过程序重点介绍难点和重要语法知识,一般语法由学生自学;强调大量的C程序锻炼,在C语言的编写、调试中,由计算机教会学生编写程序,在编写程序和调试程序中,学习C语言的语法。

致谢:本论文得到了部级教改项目“部级教学团队――计算机基础系列课程教学团队”的支持。

参考文献:

[1] 李莉. C语言程序设计的教学改革[J]. 计算机教育,2009(12):28-29.

[2] 李业丽. “C语言程序设计”课程建设的思考[J]. 计算机教育,2009(12):31-32.

[3] 赵金萍. “任务驱动式”的C语言程序设计教学[J]. 计算机时代,2007(8):25-26.

[4] 王冰. C语言程序设计课程教学方法的探讨[C]//王永生. 研究型大学建设本科教学改革的研究与实践. 北京:北京交通大学出版社,2008:624-628.

Teaching Methods of C Programming Language Learned from Baby’s Language Learning

ZHAO Shuaifeng, HU Shaohai

(School of Computer and Information Technology, Beijing Jiaotong University, Beijing 100044, China)

c语言程序设计实例范文3

在教学过程中不能以是否将C语言所有知识点都讲授完为教学目标,而应该转向以培养学生“分析问题和解决问题”的能力为核心,淡化语法细节,让学生建立完整的程序设计思想。针对不同专业的教学需求和学时数的区别,制定不同的教学大纲,注重能力培养为主,以C语言基本体系结构为基础,覆盖C语言基本语法集。信息工程学院各专业侧重于基本命题的求解和编程,将构造类型和文件的读写作为选讲内容。而计算机学院各专业则侧重于综合性和设计性问题的求解和编程,特别强调指针的应用,动态内存分配以及链表的基本操作,重点培养算法设计能力。

2编写教材

现有C语言教材中,大多数追求大而全,注重语法细节,测试用例多为纯数学问题,这与我校的C语言教学现状有较大的偏差。为此,C语言教学组结合当前我校的实际情况,组织人力根据教学大纲的需求编写了一本适合我校师生的C语言教材。2012年8月,教材《C语言程序设计》在清华大学出版社出版,该教材介绍了程序设计的基本概念和基本方法,不拘泥于语法细节,注重解题思路、算法实现和程序设计思想,在保证概念清晰、准确的前提下力求做到语言通俗易懂,引导学生真正进入程序设计的门槛,为后续专业课程的学习与计算机技术的实际应用打下良好的基础。该教材率先在我校2012级和2013级学生上投入使用,每年使用数大约1300本,普遍受到了好评,同时从出版社反馈回来的信息,除我校学生自用外,其他一些高校也使用了该教材。

3教学手段探索

常规的C语言课堂教学,都遵循语法规则的讲解,然后讲解例子,最后在集成开发环境中实现。这种教学思路有其固有的优点——严谨,然后存在以下几个问题:方式比较枯燥,学生很难长时间保持学生兴趣;学生上课听得明白,而实践时对题目无从下手;导致学生产生误解,认为学习语法知识是为写程序而学,而不是为解决问题而学。因此,对传统的教学模式进行改革就成为必然。在课堂教学过程中,以一个较大的案例为主线主导整个教学,将其按教学知识点分割成小模块,在教学时,从日常生活中常见的例子着手,结合C语言的语法来讲,这样令学生更易理解,且不会觉得枯燥,然后讲解案例的实现,如此整个学期下来,一个较好的案例自然就完成了,达到培养学生“自顶向下、逐步细化、自底向上、逐步积累”的能力。在每个知识点的教学实例讲解中,不直接给出正确的代码,而是主动设置一些错误,引导学生去思考并解决存在的问题,让学生掌握排查程序代码中错误的方法。构建C语言自主学习网站,延伸学习的时间和空间。

4考核模式改革

以往总评考试主要分为平时成绩和期末考核成绩,一般的比例为30%:70%,且期末考试为笔试,以理论知识点为主,侧重客观题,设计性等程序操作题所占比例极少,这种考核方式主要的缺点在于忽略了C语言的实践操作性,会导致即使通过了考试但仍然不会编写程序的现象。针对这个问题,对考核方式做了较大的改变,一是将总评成绩的组成分为三部分:平时、上机实践和期末考试,比例为10%:30%:60%,强调平时上机实践成绩,让学生重视上机实践,而不是简单的交差了事。二是将传统的笔试改革为机试,自主开发了一套考试系统,实现自动评卷,试卷大幅度提高程序操作题所占的比例,题型的设置也多样化,包括程序改错、程序填空和程序设计题,着重考核学生的实际应用能力。

5实践反馈

经过2011至2013三个年级的教学实践,课堂教学效果情况逐步变好,学生也能跟着老师的思路来思考问题,学习效率得到了提高。上机实践时一碰到问题就等待老师来解决的现象减少了,说明学生也初步掌握了如何排查程序中的错误以及调试程序的方法。从后续课程的学习情况来看,普遍反映这批学生较前届的学生有更扎实的编程基础,实践动手能力增强了不少。这些好的转变说明了对C语言教学进行的改革是有效的。本文来自于《软件工程师》杂志。软件工程师杂志简介详见

6结论(Conclusion)

c语言程序设计实例范文4

[关键词]高职 C语言程序设计 教材建设

[中图分类号]G642 [文献标识码]A [文章编号]1009-5349(2016)02-0237-02

程序设计课程一直以来都是信息类专业的必学课程,而《C语言程序设计》又是很重要的一门专业基础课,对后续课程如数据结构、面向对象的程序设计、C#程序设计、.Net应用开发等而言,是非常重要的一门前导课。数十年来,《C语言程序设计》在信息类专业的基础课中有着不可取代的地位,该课程旨在培养学生熟练掌握程序设计的语法规则,形成良好的程序设计风格,为进一步学习后续课程奠定基础。教材作为一本工具书,是教师授课与学生学习的主要参考工具,拥有一本集科学性、完整性和趣味性于一体的《C语言程序设计》教材,是学生学好这门课程的必要条件。对于高职院校的信息类学生来说,能够满足自身学习需求,与教师课堂讲授相吻合,便于自己课堂之余进行知识反刍的教材更是必不可少的。

一、 《C语言程序设计》教材现状

高职院校的培养目标、教学模式、教学内容有其鲜明的特色,教材的建设更应该符合学生特点和学习需求。高职院校《C语言程序设计》教材经历了两个发展阶段:在高职办学的早期,高职教学的主要内容是具体的实用技术,不需要也没有教材,因此,高职《C语言程序设计》教材建设明显滞后。随着高职院校的不断发展与完善,诸多《C语言程序设计》的教材相继问世,尽管其中许多冠以“高职”字样,却依然存在不少弊端,主要表现在以下几方面:

(一)延续本科教材风格,不符合高职教学特点

继高职院校广被诟病为本科院校的“压缩饼干”后,高职教材也成为本科教材的压缩版,《C语言程序设计》的教材也存在此类问题。打开最新版的某一册“普通高等教育‘十二五’部级规划教材(高职高专教育)”的《C语言程序设计》教材,发现内容结构依然是C语言基础、顺序结构、选择结构、循环结构、数组、函数、位运算、结构体与共用体、指针、文件等章节,和任一册本科教材内容结构几乎一致,而每一章节的内容也基本是由例题、解题步骤、流程图、代码和课后习题组成的,延续了本科教材的风格,与高职所突出的培养技能型人才的特点不符合。

(二)内容枯燥,实用性差

目前,大多数《C语言程序设计》教材对语法规则的介绍着墨很多,枯燥无味、实用性差。比如,打开任一本C语言程序教材,会发现还有“编写判断一个数是否为素数”“编写斐波那契数列的前20项”这种与生活距离较远、无法吸引学生的案例,因此,使学生在学习过程中把精力多放在记忆各种灵活多样的C语言语法规则上,忽视了使用C语言解决实际问题的能力的培养。

(三)未能给学生提供充足的自学条件

作为高职信息类专业学生的第一门专业基础课,《C语言程序设计》与学生在进入大学之前所学的知识有着本质上的不同,尤其是让初学者理解并掌握“指针”“函数”“数组”等闻所未闻的概念有相当难度。因此,教材不仅是学生课堂学习的参考工具,更是学生课后进行知识反刍的指导书。目前的教材除了课后习题之外,并没有对学生的自学进行有效的指导和知识补充,不利于学生对C语言知识的理解与掌握。

二、 《C语言程序设计》教材建设的指导思想

鉴于当前《C语言程序设计》教材所存在的各种问题,根据实际教学过程中积累的经验和学生的反馈,我们认为《C语言程序设计》教材的建设应遵循这些方面:①教材内容应兼顾高职院校的教学要求中初学者的学习水平;②教材案例设计应兼顾知识性、趣味性和实用性;③教材主体内容应力求通俗易懂、深入浅出,能让绝大多数学生理解和掌握;④教材的建设应使学生能够理解并积极参与教学过程,引导学生积极思考,调动学生学习的积极性,针对学生的练习应建立由浅入深、由简单到复杂、由单一到综合的转变,形成学习梯度;⑤教材应提供参考依据,为学有余力的学生提供了解更多专业知识的条件,同时对学习进度缓慢的学生,也应该让他们课堂之余有具备咀嚼知识的自学条件。

三、《C语言程序设计》教材建设的具体举措

(一)围绕课程定位,精选教材内容

《C语言程序设计》课程的主旨是让学生树立程序设计的理念,而不仅仅定位于C语言本身的知识点上。因此,教材内容的设计应选择程序开发过程中所共有的知识点,尽量删减C语言本身所独有的知识点。比如,在顺序结构、选择结构、循环结构这三种基本结构的内容安排中,应把重点放在这三种结构的应用环境上,特别是围绕这三种基本结构的程序设计思想与方法,而应该弱化这三种基本结构的语法、格式,特别是应该减少输入输出的格式控制符的篇幅,只要让学生了解各种程序设计语言都有各自不同的语法格式规定即可;还比如,C语言在构造数据类型的内容安排中,要重点介绍引入构造数据类型的目的,而非构造数据类型本身的编写格式;此外,C语言对于程序设计非共性的知识,比如二级指针(函数指针)、文件函数等内容,则可以在教材中删减。

(二)遵循学习规律,重整教材结构

学生知识建立的过程是认知与实践交替运用的过程,单纯的认知与单纯的实践都不能形成完整的知识建构,知识学习的过程就是认知、实践、再认知、再实践的循环过程,知与行不断交替以达到统一。前文所述,程序设计类课程对于高职院校信息类专业的学生而言,是入学之后的第一门专业基础课,既没有前导课,也没有同期学习的同类课,而且与他们在大学之前所接触的知识完全不同,是一片极为陌生的知识领域。因此,在教材的结构设计中,应注重将内容由浅入深、循序渐进,切忌将难点重点集中,以免让初学者遇到太多难题,磨灭学习的积极性。比如,数据类型和变量的定义这部分内容,是《C语言程序设计》学习之初的内容,可与C语言程序的小案例结合起来做简单的介绍,目的是让初学者了解数据类型、变量定义的基本方法及作用,当学习了函数的知识之后,可以再对数据的存储、变量的定义过程、变量的作用域和有效性加以深入介绍;还比如,运算符与表达式这部分内容,可以在简单程序设计部分只告诉学生如何使用,让学生较快地进入编程阶段,而在学生学习过三种基本结构之后,再将运算符与表达式进行深入透彻的讲解,则学生能够将结构化程序设计与运算符表达式相结合,对知识的掌握更加完整和彻底。

(三)构造学习框架,强化设计思维

在以往的《C语言程序设计》教学过程中,当要求学生对某个案例进行编程时,学生通常了解程序生成的大致结构,但是对程序具体的编写过程就感觉无从下手,究其根源就在于C语言教学方式与实际解决问题的途径相脱离。当教学内容偏重于语法规则和编程格式的介绍而忽视培养解题思路与解题方法时,学生就无法独立编写完整的程序。因此,为使学生理解和掌握编程方法,教材中各章节在设计编程案例时,应建立一个学习框架,按照“变量分析”“设计思路”“程序代码”“运行结果”“说明与思考”进行设置――对于某一个具体问题,首先分析解决问题需要设置哪些变量及变量的数据类型,接着分析解决问题的具体思路及步骤,给出程序流程;然后,写出程序代码并调试运行,得出结果,并对重点语句进行注释;最后,针对程序设计和实现过程中容易出现的错误及需要注意的问题给出必要的说明,让学生能够充分掌握程序设计整个过程中的思考方法。

(四)针对学生学习特征,适当降低难度

教材的面向对象是学生,所以在教材编写过程中必须首先考虑教材内容与学生的接受能力,高职院校的学生与本科院校的学生在学习态度、学习能力和学习习惯上还是存在一定差距的,高职学生相对来说缺少学习的主观能动性和钻研精神,因此,在保证知识点丰富的前提下适当降低内容的难度是编写高职教材需要遵循的首要原则。其次,高职院校的学生应注重其实际应用能力的培养,在面向高职学生的《C语言程序设计》教材中,我们可以删除或简化难度较大又不涉及程序开发共性的内容,如:浮点类型数据的存储格式、函数指针、数组与指针的关系等内容可以删除;C自增自减运算、位运算、共用体、文件操作等内容可以只介绍基本知识点而不做深入讨论。此外,教材中例题和习题的编排也要注意难度适中,尽量选择贴近生活又较为简单的案例,便于学生理解和接受,并且使之在编程过程中产生兴趣,让学生易于上手,在学习的过程中不断产生成就感,乐于对新知识进行更深入的挖掘和探索。

(五)夯实理论基础,注重实验环节

虽说高职学生注重的是技能培养,但作为信息类学生的第一门专业基础课,《C语言程序设计》还应起到奠定理论基础、训练编程理念的作用。因此,在教材的内容设计中,不能完全轻理论,还要把一些重要的理论讲述清楚。例如,三种基本结构(顺序结构、选择结构、循环结构)的流程及应用,要让学生能够将三种结构整合起来解决实际问题;算法是编程之真是思路之源,对一个问题首先要确定算法,才能根据算法步骤编写具体代码形成程序;“结构体”也是一种构造的数据类型,但对于数据类型的理解要更加透彻,有了数据类型的概念,对以后其他程序语言的学习就会更加轻松。教材内容设计上,还要加大实验环节的设计,实验内容按照设计性、验证性和综合性兼顾的原则设计题目,每道题目给出题目描述、题目分析、测试数据、提示代码和参考运行结果。其中,题目分析从变量分析和设计思路两个角度讨论,让学生能够充分体验程序设计整个过程中的思考方法,提示代码只是给出一小段代码,其余让学生进行补充,能够进一步锻炼学生的程序设计能力和创新思维能力,强调对学生分析解决实际问题能力的培养。

四、结语

高职《C语言程序设计》教材的改革与开发是一项既长期又必要的任务。教材要突出高职教学特色和教学规律,符合高职学生的特点,遵循“理论适度、内容生动、案例实用、难度相当”的编写要求。课题组教师结合多年教学经验和学生反馈,编写适合高职学生的《C语言程序设计》教材,并在使用过程中不断补充和完善,使教材成为课程的有效载体,成为教师的有利教具,成为学生的学习指引。

【参考文献】

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

2005.

[2]廖雷.程序设计(C++版) [M].北京:机械工业出版社,

2004.

c语言程序设计实例范文5

关键词:C语言;教学改革;工程电路

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)16-0120-02

一、引言

C语言是一门通用计算机语言,广泛用于系统与应用软件的开发,具有高效、灵活、功能丰富、表达能力强和较高移植性等优点,是近年来使用最广泛的编程语言,也是众多高校理工科学生的必修课。笔者参阅过市场上部分C语言程序设计教材,发现大部分教材仅针对有扎实的理科基础的学生,理论性较强,实践性较低,而且知识点细化烦琐,不易理解。大部分学生在结束课程后,实践能力并未达到工程人员的要求,存在大量“高分低能”的现象。我国正处于高速发展的阶段,如何培养出高质量的工程应用型人才,是我国高等教育工作者面临的一项重要使命,故笔者认为教学改革势在必行。

二、课程改革存在问题

在C语言程序设计教学实践中,目前主要存在以下几方面的问题。

1.教学模式单调乏味。C语言授课开篇即是类型、变量、运算符、表达式等烦琐的概念性知识,枯燥无味,大部分学生都还未从高中教师全程跟读的教学模式中转出,自主学习能力较差,逻辑思维能力也相对较弱,对重难点把握不准,而部分大学教师在教授这门课程的,缺乏与学生的互动与对学生自主学习的引导,这会使学生产生畏难、抵触甚至厌学的情绪。

2.教材缺乏实例。笔者考察了相关兄弟院校的C语言程序设计教材,发现教材中缺乏实例,理论性较强,在结束C语言课程学习时,学生实践能力并未得到大幅度的提升,培养了一批会考试、不会编程的C语言学习者。目前的C语言教学仅局限于教授学生利用C语言知识去解决数学问题,而缺乏发散性思维的教学,应该用具体实例教授学生如何将C语言应用到其他领域,使学生具备一定编程能力,以求达到光速发展的社会对当代大学生的要求。

3.教学对象单一化。在进行C语言教学实践中,有很多非理工科专业学生对C语言程序设计这门课有着浓厚的兴趣,但作为旁听生,他们表示对C语言课程有入门难、应用难两大问题。笔者认为需要简化教学内容,多增加易于理解的实例,多进行上机实践,在课本中广泛添加C语言与各领域(例如金融、网游等)的应用实例,供学生学习。

4.改革并完善考核方式。由于C语言是一门应用性与创新性很强的计算机语言,所以我们的考核方式不应该局限于常规考题,应在考试题目添加开放性题目,侧面考察学生的创新与应用能力。

三、改革具体措施

笔者在考察相关院校的C语言教学改革后,总结经验得失,在此基础上拟定了一系列适合我院的教学改革具体措施。

1.应该根据教学要求,从切实提高学生程序设计能力上出发,重整课本内容。课本内容应循序渐进地添加程序设计案例。

例1:求a=3、b=5这两数之和,并显示在屏幕上。

学生可按照程序实例,首先掌握最简单的赋值运算,然后再加深一点难度,要求学生学习如何使两个变量的和显示在屏幕上,并要求学生进行编程。笔者经过实践,选取一位主修艺术设计学生的作业,发现类似循序渐进、由浅入深利用程序实例进行教学的方法,不仅适用于有理工基础的学生,也同样可以被无专业基础的学生所掌握,而且切实提高了学生的编程能力。作业示例如图2所示。

例2:使a=3、b=2、c=1,令d为a、b之和,f为a与b。求这两数之和,并显示在屏幕上。

2.在针对不同专业开设的C语言课程中,应该具备专业应用实例,这样学生可以学以致用,应用在将来的专业领域中。例如:如图3所示,已知电流源Is1=1A,电压源US2=10V,电阻RL=20Ω,R1=R2=2Ω,求各支路电流和电路中功率平衡关系。

所列方程如下:

经过多次此类应用实践,笔者发现学生对所学知识有了新的理解,而且将C语言编程与专业知识结合到了一起,这使学生对编程与专业领域知识产生了浓厚的兴趣,纷纷表示要深入学习,而且学生的编程能力也得到了极大提升。

四、结语

以上教学改革经过笔者在实验之初也遇到过重重问题,但都一一解决了。实践证明,经过此种课改实践,发现许多学生对C语言这门课程产生了浓厚的兴趣,并且编程能力也有了实质性的提高。总而言之,C语言教学改革的目的就是激发学生的学习兴趣,提高学生的编程能力,最终可以达到教学目的才是成功的改革。

参考文献:

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

c语言程序设计实例范文6

 

关 键 词:C语言;计算机;软件编程;实验研究

一、C语言的概述

在1967年BCPL语言被英国MartinRichards 推出,到1970 年B 语言以BCPL 语言为基础被美国Ken Thompson推出[1]。但是B 语言过于简单,而且功能有限,经过研究者的多次试验研究,在1972—1973 年,C 语言在B 语言的基础上经过完善,被美国贝尔实验室D.M推出[2]。在各种计算机编程语言中,C语言属于一门高级语言,它是一切计算机语言的基础,拥有高级语言和低级语言的特点,灵活方便,简洁紧凑;而且它的语法限制不严格,程序员在设计时程序书写自由。不仅能够编写系统软件,同时还可以编写应用软件,能够适应于多种操作系统,应用广泛,可移植性强。总之,C语言对于信息技术的发展具有十分重要的作用和价值。

 

二、基于C语言的计算机软件编程实验研究

(一) C语言的编程技巧

1.灵活运用指针

在C语言编程的时候,指针是一种特殊类型的变量,它能够帮助程序员有效的表达和解决程序设计过程中遇到的复杂问题,熟练掌握指针是必要的。指针具有三要素:指针名以及指针类型和值[3]。在编程时,指针和一般变量名相同,但是在类型以及值上具有区别,另外,指针不仅能够被用于表示数组,还可以被作为函数的参数返回值。

 

2.C 语言的特有函数

在C语言编程的时候,有时需要用到一些特有函数。函数都具有一定的功能,同时函数名也反映了该函数的功能。在进行函数定义时,程序员需要把函数的名字、返回值类型以及参数名等各项都进行定义。另外,因为库函数是由C 编译系统提供的,这些函数均是系统首先定义好的,在程序调用的时候,程序员只需利用“#include 指令”把与之相关的头文件包含到所用文件中即可[4]。例如,在程序运行的过程中,如果用到了sqrt函数,则为了保证程序运行下去,头文件必须含有#include“string .h”。

 

3.算法技巧

在程序设计的过程中,算法是程序的灵魂,因此,掌握一定的算法技巧是必不可少的。通常情况下,算法不仅可以用自然语言表示,有的时候也利用流程图表示。需要注意的是,利用流程图表示算法时,程序设计员必须熟练掌握常用的流程图符号[5]。且“数学乃是计算机之母”,牢固的数学知识同样能够提升编程效率。

 

4.位运算以及文件知识

相比其他计算机高级语言的运算方法,位运算作为C 语言的重要特色,具有独特性和唯一性。位运算是以二进制位为对象,然后结合相关程序要求进行各种运算。文件包含有数据文件以及程序文件,是计算机不可缺少的,程序设计员在进行编程时,需要把所写的程序存储的文件之中,这样可以便于程序员查找数据,提升查找效率。

 

(二) C语言和汇编语言混合的程序设计案例分析

在本次的实验之中,在进行程序嵌入时,有其固定的格式,需要在嵌入的各行代码之前加“asm”关键字,也可以直接在asm代码块中放入汇编语句。但是程序设计者在进行嵌入时,一定要注意满足以下条件:汇编语言指令代码中关键字asm必不可少,且要放在指令代码之前;嵌入汇编语言指令代码能够和正常C语言程序混合,但是C语言的分隔符“;”必不可少;嵌入汇编语言时C语言的注释分界符必不可少,分别是“/*”和“*/” [6]。

 

(2)首先编写C语言程序以及汇编程序,然后独立编译目标代码模块,最终进行链接。

首先,在进行混合编程时,C语言程序能够调用汇编语言的各种子程序以及其定义的变量,同时,C语言编写的函数以及定义的变量等也可以被汇编语言调用。而且混合编程的过程中,一个任务往往是由若干个功能模块组成,且不同的功能模块均是利用合适的语言进行独立编程,且以函数的形式存在。因此,程序设计者要根据每一模块的特点选择相应的语言和语言编程系统进行独立编程,并形成目标文件,继而连接目标文件,形成完整的可执行文件。

 

在混合编程的过程中,设计者需要注意五个问题:参数传递问题;寄存器的使用问题;存储模式;变量以及函数的调用问题;子程序的返回值问题。

其中,关于参数传递问题,在进行C语言程序调用汇编程序时,必须遵从参数传递原则,利用堆栈把参数传递给汇编程序。例如,在C语言程序中含有函数:voidaa(char*p,int i),这个函数是利用汇编语言进行编写的,如果编译是在小内存模式下实施的,系统在进行调用时,则写成aa(&q , n);运行时程序首先把n压入堆栈,然后再把&q压入堆栈,当参数传递过来并被汇编语言的子程序取得时,BP寄存器便被用作基地址寄存器,实现对栈中所存数据进行存取操作。通常情况下,由于调用的子程序和C语言程序往往使用同一个堆栈,所以在程序执行时,汇编语言子程序需要执行两条指令:push bp pop bp、sp[7]。

 

2.混合的软件编程实例分析

三、小结

综上所述,随着信息技术的不断发展,人们对于计算机软件编程的功能要求也将越来越高,而利用C语言能够实现计算机软件的多种功能,因此研究者应当强化对于C语言的计算机软件编程实验研究,开发功能更加强大的软件。

 

参考文献

[1] 侯宏霞.提高“汇编语言”课程实验教学质量的几点思考[J].内蒙古农业大学学报(社会科学版),2011(01):25-26.

[2] 刘海峰.以培养实践能力为导向的“C语言”教学方法探讨[J].科技经济市场,2008(12):33-34.

[3] 阿娜古丽·阿布拉.C语言与汇编语言相互调用实现混合编程[J].电脑编程技巧与维护,2009(10):71-74.

[4] 刘丹,刘德山.C语言程序设计课程综合性和设计性实验研究[J].计算机教育,2012(09):31-32.

[5] 王应军,曲培新,赵晨萍.ARM汇编语言与C语言混合编程的实现方法[J].科技信息,2010(03):69-71.

[6] 方艳红,赵海龙.计算机高级语言程序设计类课程实践教学改革研究[J].中国科技信息,2008(19):12-14.