c语言实验报告总结(精选8篇)
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,以下是小编为大家整理分享的c语言实验报告分析总结。欢迎阅读。
c语言实验报告分析总结1
在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:
1.加深对课堂讲授内容的理解
课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去”掩盖”程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。
2.熟悉程序开发环境、学习计算机系统的操作方法
一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓”环境”就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
3.学习上机调试程序
完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。
通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难!
c语言实验报告分析总结2
一周的C语言实训,虽然时间略显仓促,但却让我学到了很多实际运用的技能!
一、心得与感想
首先,在实训中的第一步是编写功能较为单一的小程序,虽然是小程序,但所用的知识却都是我们本学期学习的重点知识。在做题的过程中让我们把这些知识复习了一遍,强化了知识!
其次,这次作中所碰到的题目,在实训中已经接触过,所我们都比较深知这些题目的要求和算法,因次在编写小程序时比较快,而且算法也是比较简化,运算准确。鉴次我明白很多编程题要经过多次编写修改与调试,才会得到最简略的算法。
再次,平时我们学C语言视乎都是为了考试或者做一些比较常规的题目,而这次实训却给我们的将所学知识运用于解决实际问题的机会,让人更有激情,这就是编写软件的在雏形,也让我们感受到了编写软件程序的乐趣。但是不仅仅是如此,更为重要的是在运用所学知识的过程中,记住这些知识,并能够广泛的运用!
虽然我这次是编写一个菜单的程序,但是如果我么留心的话,我们身边有许多电子设备都是内置有程序的,我们也可以在此次专题实训过后,自行确定其他的专题进行编写程序,这样可以让我们的知识更加深化丰富!
这次实训似乎是对我巨大的考验,程序在不慌不忙的进行着,按照我自身的进度,提前完成是没有问题的,但是很多客观条件让我不得不在最后的时间里才上交的作业。每当我把程序写完以后,却由于每一台电脑的识别格式不一样而导致我所写的文件一次次的被损坏,尽管这样,我仍然没有放弃,最后还赶在截止时间到来之前上交了我的作业!
这一次编写大作业的程序又让我感受到学程序可以锻炼缜密的思维了。因为平时练习的都是小程序,所以句段比较少,一些错误都很容易被检查出来,但是这次实训却是上百段的语句,难以检查,似乎也没有经验去怎么检查,那一刹那感觉到很急,但又不知如何是好,可是又不轻易的向老师询问,因为好像蛮简单,相信自己能够检查出来,所以我一般都是独立思考的完成的,只有少部分是在老师和与同学讨论下完成的。
在编写程序中,真的是细节决定成败,因为不管程序的语句是多是少,但是只要有一条语句或语法不正确,就不能使程序得到所需要的结果。没能够使自己编写出来的程序等到想要的结果,意味着这是一个不理想的程序,对于本次编写来说则是失败的。
一、C语言实验课的重要性
作为一个教学工作者, 深知学生要学到真正属于自己的知识、能力, 那么在C语言教学过程中, 实验教学就是一个相当重要的环节。C语言的数据类型较多、表达式丰富、语法结构较复杂, 使它成为一门教师难教、学生难学的课程。因此, 在重视理论教学的同时, 必须加强实验环节。只有在上机实践中学生才能正真学会如何编写程序和调试程序, 也只有通过上机实践才能更好地掌握程序设计的理论知识。
首先老师在上实验课时尽量要求学生多编写程序, 多上机调试程序, 上机实验的目的决不仅是为了验证所编程序的正确性, 其主要目的在于让学生熟练掌握上机操作要领和调试程序技术, 积累编程经验。其次上机实验可以加深学生对讲授内容的理解, 尤其是一些语法规定, 光靠课堂讲授比较枯燥又难以记住, 但它们又很重要, 通过多次上机就能自然地熟练掌握, 通过上机来掌握语法规则是行之有效的一种方法。最后, 学生在上机调试通过一个程序后, 可以自己改变程序中某些部分, 甚至故意设置一些障碍, 观察和分析在不同情况下的编译和运行结果。应当说, 上机实验的重要性绝不亚于课堂听课, 这是巩固和发展课堂知识的十分重要的环节。
二、C语言实验课存在的问题
第一, 学生没有明确的实验目标, 实验兴趣不大。上机时一些学生无所事事或玩游戏, 不但害了自己, 还影响其他同学。第二, 现有教材中上机实验都立足于C语言本身的一些语言规则, 而C语言的许多基础知识都是概念性强、理论性强, 内容丰富且抽象, 具有严密逻辑性的, 学习难度比较大。这时有的学生会产生畏难情绪, 而老师又没有及时引导, 因此许多学生学习兴趣开始降低, 不听教师讲授理论课, 甚至实验课也干脆不去。第三、学生的作业存在抄袭现象, 有的程序错误百出, 根本就没上机调试过。对批改过的作业, 有相当一部分学生也不认真去分析, 交作业仅仅是为了应付老师。对于C语言这样一门实践性很强的课程, 仅靠布置作业和书面批改作业的方法来督促学生学习和了解学习情况是很不全面和客观的, 很难提高教学质量。第四、学生每次上机时缺乏明确的量化指标, 虽然教师事先也向学生布置应准备的内容, 但没有督促和检查, 完成完不成无所谓。上机情况与期末总成绩没有直接关系, 这常常导致学生上机前不充分准备, 上机过程中时间抓得不紧, 思想上没压力, 故而上机调试程序的能力提高不快。
三、实验教学探讨
作为高职院校的教师, 我们在教学过程中更注重职业岗位能力与职业技能的训练, 注重解决问题、分析问题和自学等能力的培养。在C语言实验课教学中, 主要是引导学生突破传统的思维方式, 培养学生读、写程序和调试程序的能力以及提高上机的学习兴趣和自主实验的方法技巧等。具体到实验课教学时, 重点注意好以下几点:
第一、加强机房管理, 端正学生的上机目的。在实验课上做好上机考勤、纪律情况记载, 记入期末成绩。
第二、要求学生在规定时间内独立完成一定数量的练习题、填写实验报告。老师根据每人完成练习题的数量、质量与时间, 现场打分并做为平时成绩, 影响该课程的总成绩。练习题可在上机之前提前告诉学生, 方便他们事先做好准备。这样一来即可有效地避免学生互相抄袭作业、不求甚解的弊端。
为此我们学校制定了统一的实验报告表, 便于实验报告的管理工作。
第三、教师在实验课的过程中加强对学生的辅导工作。在实验课的过程中, 教师可以首先分析该实验题目, 比如:表1中的题目, 就分别针对分支结构中的两分支结构和多分支结构进行了练习。然后再引导学生完成该实验报告。同时在布置实验报告题目时, 应注意题目的难度、题量等问题。
在实验课时, 教师还可以适当的改变教学方法, 比如:给出一程序段, 让学生找出程序段中的错误;还可以给出一程序段, 让学生完整填写程序。
例如:输入三个数a, b, c, 按照由小到大的顺序输出。
第四、实验课教师要当场检查程序。在实验课上, 任课教师一定要对学生的作业进行当场检查、提问, 只有这样才能杜绝学生去抄袭别人的, 就算抄来弄不明白也是白费心机。要想上机时顺利通过, 课堂上必须认真听讲, 记笔记。因此课堂教学时学生基本上没有迟到和无故缺的, 并且课堂上都能专心听讲, 记笔记, 课间10分钟还问个不停, 因为上机时就没有这么多时间详细问老师了。同时在实验课上, 老师还可以有针对性地个别辅导, 对比过去单纯的批改书面作业老师对学生成绩的评定也更客观, 同时也有效地避免学生互相抄袭作业、不求甚解的弊端。同时大家提问的积极性也充分调动起来了。
总之, 在实验课教学的过程中, 教师要尽心、尽责, 同时加强对学生的管理工作, 对每个同学严格要求, 同时在自己的教学方法和教学手段上下更多的功夫。
实践证明, 通过以上措施, 在C语言实验课上增加了学生的学习热情, 在一定程度上提高了学生程序的编写、调试能力, 对今后学习其他计算机课程打下了良好的基础。这些改革措施不但对学生提出了更严格的要求, 而且对任课教师的要求也提高了, 工作量也势必增加, 这就要求我们老师要比平常付出更多。当然, 这只是我对于C语言实验课教学的一点经验, 还希望得到进一度的完善和提高。
摘要:本文首先介绍了C语言实验课教学的重要性, 然后探讨了一些在C语言实验课教学中的方法, 最后总结了实验课教学的效果和体会。
关键词:C语言;实验;教学改革
作者简介:吕风杰(1973-),男,山东沾化人,滨州学院计算机科学技术系,讲师;马士明(1983-),男,山东滨州人,滨州学院计算机科学技术系,助教。(山东滨州256600)
基金项目:本文系滨州学院教学研究资助项目(项目编号:BZXYJYXM200737)的研究成果。
中图分类号:G642.423 文献标识码:A 文章编号:1007-0079(2012)10-0118-02
C语言以其结构化、灵活性好、可移植性强、效率高等优点被广大院校理工科专业选为程序设计的入门课程。[1]随着应用型人才培养改革的不断深入,学生培养目标和教育教学理念也不断更新,但自进入高校课堂20余年来,受传统应试教育的引导,大都将授课重点放在C语言的基本语法的理论讲授上,而实验教学大多用于C语言的语法规则的验证和说明,这种教学模式仅从语言的使用这个单一的角度进行教学而使得大多数学生在学完之后吃不透、用不活所学语言知识。面对这种形势,原先的实验教学计划已远不能满足要求,如何从培养学生能力的角度出发优化实验教学内容,使实验教学与理论教学形成一个目标明确、由浅入深、紧密联系的有机整体已成为当前C语言教学中的迫切性问题。本文从C语言的特点出发,对如何在当前课时、实验资源有限的情况下,通过实验教学促进、完善课堂教学效果,培养学生实践能力、创新能力和应用能力进行了深入的探讨与实践。
一、改革实验教学内容
在应用型人才培养模式下,实验教学的组织要兼顾实践性与创新性。我们在原有教学大纲的基础上,根据电子信息类专业的特点重新修订了实验大纲,教学内容中提高了设计性和综合性实验的比例。
1.改革实验内容组织结构
为了不影响专业教学计划,又能保证实验教学改革的顺利进行,我们结合理论教学进度,编写了相对开放的实验教学大纲和讲义,将实验分为基础性实验、设计性实验和综合性实验三个层次,又将每个层次的实验内容分为必做和选做两类,以供不同专业按要求进行灵活选择。根据理论教学进度安排基础性实验,让学生熟悉编程、调试环境,掌握基本指令并学会简单编程,加深对课堂理论教学内容的理解;在单元章节之后安排设计型实验,采用任务驱动教学法,验证性与应用性实验相结合,在完成基础性实验的基础上,逐步丰富功能要求,并要求学生在实验报告中加以总结归纳,培养学生的综合思维能力;综合型实验其实是一个开放性试验,安排于每个知识单元或模块(从知识的角度出发,独立于理论教材编排)完成之后,每一个项目只给出具体的功能及性能要求,对具体方法不作要求和指导,并将一个实验课题分为设计、调试、总结、改进等几个进程,先由学生根据题目要求完成功能设计并通过调试,再由教师根据学生的设计从功能及性能方面进行有针对性的分析讲解,进而提出设计建议,然后由学生完成设计改进并写出实验报告及分析总结,以达到实践性与创新性的同步提高。
2.创新实验内容
目前,高校教學过程中所用教材及参考书大都以普教为目标,极少有针对专业或行业的例题和习题出现,而各高校开设的C语言实验教学内容恰恰大多为所用教材或参考书的习题。这类经典习题专业针对性差,对学生来说缺乏趣味性,用以进行功能验证尚可,但对于能力提高或创新教育的确是勉为其难了。而且随着网络等学习资源的普及使得问题的解决极为简单,学生仅需上网搜索一下即可得到完整答案,于是实验课程就成了简单的验证,很难起到锻炼和提高的作用。
为此,我们专门针对电子信息类专业的特点精心设计了实验内容,基础性实验采用经典案例,针对性强,利于学生的入门学习;设计型和综合型实验尽量选择与学生专业相关的项目,如数字滤波的实现、数据分析与验证等。这样一方面能够贴近学生所学专业,使学生不但学会了C语言,而且使得C语言有了“用武之地”;另一方面,在实际学习过程中,能够将学过的其他专业知识融入进来,提高了学生的兴趣及学习积极性,对其他专业课程的学习以至学生的学习风貌与学习态度起到了积极的推动作用。
二、改革实验教学模式
随着各高校对高等教育应用型人才培养改革的不断深入,各专业的教学内容有了较大幅度的修改和增加,在实际教学安排中“C语言程序设计”的理论与实践课时都进行了一定程度的压缩,为保证实践教学效果,在组织教学时进行了一些改革。
1.推行任务推动教学
随着计算机技术的应用与发展,C语言作为各理工科专业的程序设计入门课程,其培养方向应该是掌握程序设计及调试的一般方法,所以在实验教学组织中应以程序设计为主线,有意识地淡化C语言本身语句、语法的介绍,并积极推行典型算法与案例教学相结合的方法,通过精心设计与编排,将复杂枯燥的语法知识分解到每个生动、有趣、实用的程序实例中,把软件工程学的思想贯穿于算法分析和程序设计的过程中。例如,在每个知识单元开始之前先提出一个典型问题,如“业绩提成计算”、“数据排序”等,从问题入手,然后循循善诱,通过任务的分解、解决、综合逐步加以解决,这样不但使学生在程序分析与解决中掌握了相关语法,而且程序设计和解决问题的能力也得到了极大的提高。[2-3]
2.突出结构化程序设计特点
结构化程序设计是C语言程序设计的一大特点,而在当前的教材中却极少涉及到相关的实例,从而使得结构化程序设计在C语言教学中成了一句实实在在的空话。有些学生平时学得很认真,对语法、语句等细节也很熟悉,但碰到稍微复杂一点的编程则无从下手。在教学中,教师应该将现代程序设计的相关理念传授给学生:一般来讲,一个较复杂的软件常可以按功能分割为若干个典型的小模块,每个小模块最终都成为功能单一、结构清晰、接口简单、容易理解和编写的小程序,而加工对象——“数据流”就是将这些模块串接起来的“主线”,只要让学生掌握了典型的算法就可将这些算法变成像搭积木一样组装成相应软件的算法。
如在学过数组部分后,教师给出一个由计时函数GetTickCount()、格式输出函数printf()函数、格式输入函数scanf()一起构成的能够测试人的反应时间的“反应计时器”函数。在此基础之上布置学生设计主函数和相关函数,通过调用“反应计时器”函数完成两个个体各一组样本的采集(如各采集并存储10个独立的反应时间),并计算各自平均值、标准差等指标;进而进行t检验,对个体差别进行分析验证。这样不但使学生学会了相应的算法实现,而且对结构化程序的灵活性和易于扩展等特点及工程应用中的程序设计方法有了较为深刻的理解,同时对工程数学中较为“死板”的统计与检验内容的实际应用有了一个感性的认识,达到了实践能力与创新能力共同提高的培养目标。
另外,在教学过程中,教师还应有意识地总结归纳一些典型算法,并作为验证型实验内容,要求学生熟练掌握,如累加、累乘、查找、排序等,在后续设计型和综合型实验中将相关内容加入,使得学生能够用会、用活,为以后的程序设计奠定基础。同时,典型算法的熟练掌握也可增加学生学习计算机语言的信心,并提高学习兴趣。[4]
3.充分利用多媒体及网络教学平台
多媒体课件具有演示直观、动态性强等特点,易于被学生所接受和理解,尤其对于实践教学,多媒体课件能够进行直观的演示与模拟,满足了实验教学的要求,把难以理解的内容或不容易观察到的事物用多媒体充分显示出来,调动学生的视觉直观功能,为突破难点创造出良好的氛围,有效地弥补传统教学的不足。
運用网络教学平台进行课后习题的布置与讨论,引导学生提出问题并找寻解决方案。一方面,充分节约了课堂教学时间,缓解了课时不足带来的影响;另一方面,能够将更多的学生吸引到问题的分析与讨论中,“讨论出真知”——相对课堂教学而言,网络讨论扩大了讨论的参与面,能够最大限度地穷尽并纠正学生在问题理解过程中可能出现的问题,极大地提高了学生的学习积极性与学习效果。
4.强化实验教学过程管理
C语言是一门实践性很强的课程,除了要把理论知识学好外,上机实践也是相当重要的一个关键环节。学习中存在的疑点或难点,学生可通过上机调试得到明确解答,同时也加深对学习内容的理解。对学生而言,在每一次的上机前应做好充分准备,编写好上机内容;对上机中出现的问题应能调试分析,编写实验报告,分析程序结果。学生只有反复上机操作才能对C语言有更深、更全面的认识和理解,逐步提高实际操作和学习的能力。对教师而言,应精心设计上机实验内容。设计上机内容时,尽量把所学的内容综合起来,达到知识的系统化。同时,也可布置一些趣味性较浓的内容,以提高学生的学习兴趣,变学生的被动学习为主动学习。另外,上机内容尽量结合学生专业,让学生觉得学有所用。
三、改革实验教学评价模式
注意综合素质的培养与评价,在“C语言程序设计”期末考核中采用实验与理论考核相结合、平时成绩与期终考核成绩相结合的综合考核评价方式,并采用实验教学成绩一票否决的形式,从而改变学生在以往课程学习中“重理论,轻实践”的思想,激发学生学习的积极性与自主性,尤其在创新性培养上。具体做法是摒弃原先那种以对错判分的一刀切的评价方式,在平时教学中对学生实验完成的成绩评判要采用个案分析的方法,在充分理解学生设计意图的基础上因势利导,对设计中的创新之处或闪光点要给予充分的肯定;对不足和错误之处要帮助学生仔细分析,然后由学生自己总结改正,以提高学生的自信心,保护其学习兴趣,最后根据学生的完成情况及钻研态度进行综合评判。
四、总结
任何一种程序设计语言都有其独有的语法特点,作为程序设计入门课程的“C语言程序设计”也不例外,但是,应该认识到在高校C语言教学中,学习语法不是学习程序设计语言的真正目的,而是应该在掌握语法的基础上,通过学习与实践,真正地学会使用C语言来解决各种实际问题,进而使学生掌握程序设计思想,真正成为学生进入程序设计领域的“敲门砖”、“导航灯”。通过对近两年的学生期终理论考试成绩对比分析发现,改革前后对于语法部分的得分率没有明显变化,而综合编程题的得分率比以前有了大约25%的提高,且学生学习的积极性比以前有较大的提高,课程结束后不少学生又通过计算机等级考试等各种形式进行了进一步的学习与提高,C语言实践教学改革取得了理想的效果。
参考文献:
[1]谭浩强.C程序设计[M].北京:清华大学出版社,2006.
[2]郑人杰,马素霞,殷人昆,等.软件工程概论[M].北京:机械工业出版社,2001.
[3]敖志广,吕振辽,高克宁.非计算机专业本科生C语言的教学实践[J].计算机教育,2007,(1):53-54.
[4]林向宝.C语言教学探讨[J].黑龙江交通科技,2007,(4):120-121.
(责任编辑:王祝萍)
2、求圆环的面积。(函数的嵌套调用;定义求圆的面积和圆环面积实现)#include
} float area_ring(float x,float y){ float c;c=fabs(area(x)-area(y));return(c);} float area(float r){ return(PI*r*r);}
3、设计求n!的函数(分别使用连乘和递归法)再调用函数求x!-y!+z!。递归
#include
t*=i;return t;} void main(){ { unsigned int n;printf(“input a unsignded interger number:n”);scanf(“%d”,&n);printf(“%d!=%10ldn”,n,fac(n));} {
(四)一、实验目的
1.掌握C语言中函数和模块
2.掌握怎样定义函数,如何调用或使用函数,如何声明函数 3.掌握函数的参数,了解在函数调用时,参数是如何传递的 4.在使用函数的过程中怎样确定函数的参数 5.如何使用局部变量和全局变量
二、实验内容
1.偶数判断
描述: 编写一个用户自定义函数,该函数有一个整型参数,函数的功能是:当这个整型数的值是偶数时,函数的返回值为0,当这个整型数的值是奇数时,返回值为1。编写一个程序,从键盘输入m个整数,分别调用用户自定义函数来判断这m个整数的奇偶性。
输入: 第一行为一个整数m,表示要判断m个整数的奇偶性;紧接着是m行,每行一个整数。
输出:有m行,分别对应输入的第2到第m+1行的整数的奇偶性 样例输入: 2 1 6 样例输出: 奇数
偶数 ·程序代码:
#include“stdio.h” int isEven(int a){ if(a%2==0)
return 1;else
return 0;} int main(){ int m,i,b;scanf(“%d”,&m);
for(i=1;i<=m;i++)
{
scanf(“%d”,&b);
if(isEven(b)==1)
printf(“偶数n”);
else printf(“奇数n”);
}
return 0;}
2.温度转换
描述: 编写一个用户自定义函数,函数的功能是:将华氏温度转F换为摄氏温度C。转换公式为:C=5*(F-32)/9。编写一个程序,输出指定范围的华氏温度与摄氏温度的对照表,其中华氏温度步长为4。
输入: 两个空格隔开的整数n,m(且0 #include “stdio.h” float conver(int f){ return 5*(f-32)/9.0;} int main(){ int n,m,i;scanf(“%d%d”,&n,&m);for(i=n;i<=m;i+=4) printf(“%d%10.2fn”,i,conver(i));return 0;} 3.最大值函数 描述:编写一个用户自定义函数,该函数有三个整数参数,函数的功能是:求解这三个整数的最大值,函数的返回值为三个参数的最大值。编写一个程序,从键盘输入任意5个整数,分别两次调用用户自定义函数来求出这5个整数中的最大值。 输入:第一行为N,表示有N组数据,接下来是N行,每行是5个用空格隔开的整数(在VC++6.0 int范围)。输出:有N行,每行是对应输入的5个整数的最大值。样例输入: 3 1 2 3 4 5 5 4 3 2 1 1 2 5 3 4 样例输出: 5 5 5 ·程序代码: #include “stdio.h” int max(int a, int b, int c){ int t;t=a;if(b>t) t=b;if(c>t) t=c;return t;} int main(){ int n,a,b,c,d,e,i;scanf(“%d”,&n);for(i=1;i<=n;i++){ scanf(“%d%d%d%d%d”,&a,&b,&c,&d,&e); printf(“%dn”,max(a,b,max(c,d,e)));} return 0;} 4.三位数数字排序 描述: 对于给定的若干个三位正整数,将它们的各位上的数字按由小到大的顺序输出。要求,写一个函数,能将其整型参数的各位数字按照由小到大进行输出。主函数完成对输入的若干个三位数,分别调用该函数,完成指定的输出。输入: 若干行,每行有一个三位正整数,输入为0结束。输出: 有若干行,依次对应于非0的整数,将相应三位正整数的数字由小到大输出,数字间没有空格。 样例输入: 123 987 670 0 样例输出: 123 789 067 ·程序代码: #include “stdio.h” int main(void){ int n,a[4],xx,sum;scanf(“%d”,&n);while(n!=0){ int i,j; for(i=1;i<=3;i++) { a[i]=n%10; n/=10; } for(i=1;i<=3;i++) { for(j=i;j<=3;j++) { if(a[i]>a[j]) { xx=a[j]; a[j]=a[i]; a[i]=xx; } } } for(i=1;i<=3;i++) } { printf(“%d”,a[i]);} printf(“n”); scanf(“%d”,&n);} return 0;5.排列数计算 描述: 表示从m个元素中抽出n个元素的排列的个数。 计算公式为:编写一个用户自定义函数,该函数有一个整数参数,函数的功能是求解这个整数的阶乘,函数的返回值为这个整数的阶乘。编写一个程序,从键盘输入m、n值,分别两次调用用户自定义函数来求解 : 多行测试数据,每行两个用空格隔开的整数,0 0 表示结束。 输出: 有多行,对应于非0 0行的排列值。 样例输入: 5 3 8 2 0 0 样例输出: 60 56 ·程序代码: #include “stdio.h” int main(void){ double n,m,t;double x1,x2,i,k,kk;scanf(“%lf%lf”,&m,&n);while(n!=0&&m!=0){ x1=1; /*if(m { t=m; m=n; n=t; } */ for(i=1;i<=m;i++) { x1*=i; } k=m-n; x2=1; for(i=1;i<=k;i++) { x2*=i; } kk=x1/x2; printf(“%.0lfn”,kk); scanf(“%lf%lf”,&m,&n);} return 0;} 6.素数对 描述: 哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数.做好了这件实事,就能说明这个猜想是成立的.由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的,而且素数对中的第一个数不大于第二个数.输入:输入中是一些偶整数M(6 #include “stdio.h” int prime(int n){ int i;for(i=2;i if(n%i==0) return 0; return 1;} int main(){ int m,i;while(scanf(“%d”,&m)==1)for(i=m/2;i>=2;i--) if(prime(i)&&prime(m-i)&&i!=m-i) { printf(“%d %dn”,i,m-i); break; } return 0;} 7.函数表达式计算 描述:计算下列表达式的值: 输入:输入x和n的值,其中x为非负实数,n为正整数。输出:输出f(x,n),保留2位小数。样例输入: 3 2 样例输出: 2.00 ·程序代码: #include “math.h” #include “stdio.h” /* f(x,1)=sqrt(1+x);f(x,2)=sqrt(2+sqrt(1+x))=sqrt(2+f(x,1));f(3,x)=sqrt(3+sqrt(2+qrt(1+x)))=sqrt(3+f(x,2));......f(x,n)=sqrt(n+f(x,n-1));*/ double f(double x,int n){ if(n>1) return sqrt(n+f(x,n-1));else return sqrt(1+x);} int main(){ int n;double x;scanf(“%lf%d”,&x,&n);printf(“%.2fn”,f(x,n));return 0;} 8.递归公约数 描述:递归形式的公约数定义如下: 使用此定义求两个整数的最大公约数。 输入: 有多行,每行为两个用空格隔开的整数。 输出: 对应的有多行,每行为对应输入的两个整数的最大公约数。 样例输入: 12 6 9 5 11 3 样例输出: 6 1 1 ·程序代码: # include “stdio.h” int gcd(int m, int n){ if(m%n==0) return n;else gcd(n,m%n);} int main(void){ int a,b;while(scanf(“%d%d”,&a,&b)==2){ 课程名称 _____C语言程序设计____ 实验项目 _实验一 顺序结构程序设计___ 实验仪器 ______ ___________ 系别_____光电学院_______ 专业______电信__________ 班级/学号 学生姓名 ______***_________实验日期 ____2011年10月17日___ 成绩 _______________________指导教师 一、实验目的1、掌握C语言中,基本的输入输出函数的使用方法。 2、掌握printf中转义字符’t’,’n’的用法。 3、掌握赋值语句的用法。 4、掌握算术表达式、赋值表达式的计算。 5、掌握数学函数的使用。 二、实验内容 1、输入圆的半径 r,计算圆的周长和面积。其中 π =3.1416程序代码: …… 执行结果: [输入] …… [输出] …… 2、3、…… 三、实验体会 《C语言程序设计》是计算机专业中一门重要的基础课程。该课程不仅要求学生掌握一门高级程序设计语言, 更重更的是学习程序设计的思想, 培养学生良好的程序设计风格和思维方式[2], 它又是一门实用性很强的语言, 切实加强实践教学环节, 重视对学生自主学习、研究能力和创新能力的培养, 对于提高C语言程序设计课程的教学质量具有重要的意义。基于此实验教学是该课程不可缺少的重要组成部分。探索对实验教学的改革, 对提高该课程的教学质量有着重要的作用。但笔者在多年的教学中却发现一些学生对实验兴趣不大。上机时无所事事或玩游戏, 不但浪费了自己的时间, 还影响其他同学。因此现有的教学模式改革事在必行。 2、存在的问题 2.1 实验课程与理论课程时间配置不合理[1]。 在C语言的教学中, 实验时间约占三分之一左右。首先, 较少的实验时间, 让学生无法熟练掌握当前练习内容, 影响后面实验的进行。其次, 实验课时少导致了理论教学与实践教学内容安排的不同步。比如理论教学在讲数组, 却在做循环结构的实验。知识的不同步, 对于学生的学习, 势必会造成一定的影响, 不利于学生及时掌握所学的知识, 甚至会造成知识混淆的现象。 2.2 实验教材与教学资料有待完善[4]。 课程采用的实验教材与习题集合二为一的, 每一个实验题目都能在本书中找到答案, 学生只要把源程序输入计算机, 进行简单的调试就可以得到实验结果, 用不着去查找资料、思考和创新, 编译出错时不是根据错误提示查找原因, 而是与书上的程序进行比对, 改正录入错误。这样不利于培养学生发现问题、分析问题、解决问题的研究能力和创新能力。 2.3 实验教学条件落后, 学生的问题不能及时得到解决[1]。 由于扩招。为了充分利用有限的教学资源, 理论课实验课都是采用合班教学这种形式。一个实验室只有一个教师, 程序调试出现错误的学生同时有多个, 教师不可能及时解答每个学生提出的问题, 就会导致部分学生不能继续往下调试而出现厌学、害怕的情绪, 进而不调试程序而去玩游戏或做一些与程序调试无关的事情。 2.4 考试形式单一, 实践考核缺乏。 传统的语言程序设计的考试考核要求简单, 考试形式单一, 以期末笔试为主;平时成绩主要侧重于考勤、作业、实验报告。在课程成绩中比例远小于期末理论考。不重视上机实践能力的现场考核, 只偏重于理论考试, 这也导致了学生本身对于上机实践的不重视。 3、试验教学改革 C语言程序设计实验教学方法的改革措施实验性教学是C语言程序设计教学的重要环节, 是学好C语言程序设计关键。目的是通过上机实验, 让学生多动手、多动脑, 使学生在实验中提高分析问题、思考问题和解决问题的能力, 进而达到掌握理论知识, 提高操作和编程的能力。具体措施总结如下: 3.1 制定实验计划, 编写实验指导材料 根据C语言程序设计教学大纲和实验大纲的要求, 制定详细的、规范的实验计划, 编写实验指导材料, 提出实验要求, 以及要达到的目的。在制定实验项目时, 明确规定哪些实验是学生必须做的, 哪些实验是学生可以选做的, 甚至可以留有余地, 让学生在某些指定的框架下自己制定实验。同时, 在实验的编排上, 注意验证性、设计性和综合性实验的比例, 一般是在保证验证原理, 加深对理论知识的理解和进行基本技能、方法、能力等训练的基础上, 对验证性实验进行精选、合并, 减少验证性实验项目, 增加设计性和综合性实验项目。 3.2 精心选择试验项目, 激发学生的学习兴趣[3] 托尔斯泰曾经说过:"成功的教学, 所需的不是强制, 而是激发学生的学习兴趣"。同学们有了学习的兴趣, 才有学习的动力.而C语言程序设计是一门理论性较强的课程, 知识点较多、涉及面较广, 对于刚开始学习的学生来说, 常会感到内容枯燥难学, 产生畏难情绪, 导致理论知识掌握不好, 而影响了上机实验。因此, 为了激发学生的学习兴趣, 寓学于"乐", 在C语言程序设计实验教学过程中选择实验例子时, 不妨多选择一些具有趣味性的例子, 如:"水仙花数"、"百钱买百鸡", "三角形的面积"、"爱因斯坦阶梯"等有趣或经典的问题, 这些充满乐趣的问题, 有利于学生轻松愉快地学习, 积极主动地思考, 而且学过以后也不易忘记。 3.3 充分利用网络资源, 提高教学效率 在实验教学中充分利用网络资源, 这也是与以往教学相区别的重要地方。首先, 机房实验室里安装了网络教室软件, 配置了教师机, 上课时老师布置本次试验内容, 让同学自己练习10分钟, 然后所有的学生通过网络将抽出的作业拷贝到自己的计算机上, 随机抽出一个学生的作业作为示例, 由教师在自己的计算机上边调试边讲解, 学生边看投影屏幕及教师的讲解边操作计算机;每次实验课结束, 通过网络教室把实验中出现比较普遍的问题集中讲解, 因为每一个学生都已亲自动手调试过程序, 那么教师对该问题给出的提示讲解就会使学生能关注且记忆深刻。这样让学生及时了解自己学习中的问题以便避免或是改正。其次, 实验室提供了专为学生使用的FTP服务器, 每个班级具有合理的空间上课, 每次学生登录到自己班级里查看该次实验要求, 按时完成实验, 并把实验结果以文件的形式上传到自己班级文件夹下, 以供课后教师检查。 3.4 设计综合性的实验, 提高学生编程能力 "纸上得来终觉浅, 绝知此事要躬行"。只有亲自动手、亲自实践, 才能真正体会到语言编程的乐趣。这里的实验, 并不仅仅是每节课结束后的上机练习, 而是要通过课程设计, 来进一步加深对语言编程的理解, 这将有利于培养学生的创造思维、独立分析问题和解决问题的能力以及培养学生实际编程的能力。为此, 每学期末, 安排这门课程的课程设计, 以学生最为熟悉的"学生成绩管理系统"为例, 要求建立班级课程的成绩输入输出函数;使用结构体数组来存储和处理学生的信息;利用单链表动态管理学生的成绩;利用文件操作完成学生成绩管理。这样通过课程设计, 把我们C语言中的函数, 数组、结构体、指针, 文件一个个的知识电形成一个有机的整体。让学生并通过上机进行综合调试, 达到提高编程能力的目的。 3.5 改进试验考核方法 一是提高课程成绩中实验成绩所占比例, 让其成为课程成绩评定的重要组成部分.二是改变实验成绩的评定方式。为了全面反映学生各种能力, 我们要制定合理的实验成绩综合评估办法, 既要考虑学生实验出勤率和实验操作能力, 以及实验完成情况和结果的正确性, 还要考核学生综合知识运用能力、实际编程能力和实际操作能力。因此试验成绩的制定采用各实验项目的考核成绩加权平均, 其中实验预习和考勤占10%, 实验报告占30%, 实验现场考试占40%, 期末课程设计占20%。使用这样的考核方法后, 既调动了学生学习的积极性、提高了他们对实验的重视程度, 又保证了成绩评定的客观和公正性。 4. 结束语 以上所述, 只是笔者多年在《C语言程序设计》实验教学方法改革过程中的一点体会, 实际上在《C语言程序设计》实验教学方法改革与创新过程中要注意的问题还有很多, 但只要勇于探索, 善于总结, 就一定可以不断完善实验教学模式, 使学生通过本门实验课程的学习很好地培养编程能力和程序设计思维能力, 真正实现在实验教学中培养学生分析问题与解决问题的能力、独立自主的能力、合作与交流的能力、改革与创新的能力. 摘要:本文分析了C语言程序设计实验教学存在的问题, 探讨C语言实验教学方式方法的改进, 并从实验教学内容、教学方法、教材建设和实验考核等方面提出了相应的改革措施。 关键词:C程序设计,实验教学,改革 参考文献 [1]曹红.C程序设计试验教学改革探讨[J].科技广场, 2007, (04) :152-153 [2]邓维斌, 周玉敏.提高C语言实验教学效果的探索[J].实验室研究与探索, 2006, 25 (3) :359-361. [3]陈世基.C语言程序设计实验教学方法的改革与创新[J].福建电脑, 2007, (06) :207. 许多院校的专业开设了C语言课程,将其作为学生学习程序设计技术的入门课程,这与C语言的特点是分不开的。C语言不但可以编写系统软件,而且可以根据用户的需要编写出满足用户要求的应用软件,尤其是C语言具有很好的对计算机的硬件编程能力。同时,C语言具有逻辑性强、处理问题周密、严谨的特点,是集知识和技能于一体,实践性很强的课程。学生通过学习C语言可掌握程序设计的一些基本方法和技巧。然而C语言的数据类型较多、表达式丰富、语法结构较复杂,使它成为一门教师难教、学生难学的课程。因此,在重视理论教学的同时,必须加强实验环节。只有上机实践才能正真学会如何编写程序和调试程序,体会到“优化”程序;也只有通过上机实践才能更好地掌握程序设计的理论知识。然而,在C语言实验课中,我这两年的教学观察中发现普遍存在以下几个问题: 第一,学生没有明确的实验目标,实验兴趣不大。上机时一些学生无所事事或玩游戏,不但害了自己,还影响其他同学。第二,现有教材中上机实验都立足于C语言本身的一些语言规则,和实际开发脱节,没有较容易理解和生动有趣的范例,比较死板、枯燥。第三、现有实验大多注重语句、语法等,没有把编程解题思路和程序测试等放在首位,对学生分析问题和解决问题的能力训练不够。 二、实验教学探讨 我在教学的过程中,职借鉴职业技术学院的职业性教学的经验,注重职业岗位能力与职业技能的训练,注重解决问题、分析问题和自学等能力的培养。在C语言实验上机课中,主要是引导学生突破传统的思维方式,培养学生读、写程序和调试程序的能力以及提高上机的学习兴趣和自主实验的方法技巧等。 1、简化入门实验,提高学生实验兴趣 学生大多已习惯于计算机的图形操作界面,且基础比较薄弱,动手能力相对也差,加上或多或少的惰性,而开始学习C语言后,突然进入的是一个纯英文的界面和纯键盘操作,这种反差很大。为减轻学生畏惧压力,让学生容易上手,可简化C语言的入门实验操作:(1)在桌面上创建TC的快捷方式,双击后可直接进入TC编辑环境。(2)在编辑、编译、连接及运行C语言程序时,教学生直接按F2键进行存盘操作,Ctrl+F9运行程序,Alt+F5看到运行结果。而没必要让学生先认识TC的菜单中每个英文单词的意义等,将TC环境的细节认识和程序的编译、连接等单步操作留到后面实验中逐步了解。学生一上机就能体会到成功,并利用发音和动画程序引起学生的兴趣。 2、设计针对性的实验 设计一些学生们比较感兴趣的编程题目,加强学生对程序错误的诊察和校正能力、测试关系和逻辑表达式的能力、程序代码优化能力等方面的培养。从输入输出语句上机开始,我有意设计了相应的上机实验。如在选择结构中,设计如下过程: (1)实验内容和步骤:①例:有如下程序段(让学生填写成完整的程序): if(a>b)scanf(“%d”,&x); else scanf(“%d”,&x); 为了更容易看明白程序的逻辑结构,用流程图来加以描述。要求增加一些输入语句和输出语句,以便使上述程序段能在不同a,b和x值下运行,并且能观察程序流程经过(覆盖)了哪些语句、哪些分支及哪些路径。 ②实验步骤:记下分别使用下列各组数据运行时的操作流程。 ⑴a=1,b=1,x=1; ⑵a=1,b=1,x=2; ⑶a=3,b=0,x=1; ⑷a=2,b=0,x=4; ⑸a=2,b=1,x=1; ⑹a=1,b=0,x=2; ⑺a=2,b=1,x=1; ⑻a=3,b=0,x=2; (2)分析讨论:①用哪一组数据就可以使程序段中的每个处理语句都执行一次?为了找出程序中2各条处理语句中的错误,应该使用什么样的数据对程序进行测试?请上机验证自己的结论。②用哪两组数据就可以使程序段中的每个分支都至少运行一次?这种情形与上面的讨论有何不同?如果为了找出程序中各分支中的错误,应该使用什么样的数据对程序进行测试?请上机验证自己的结论。③用哪两组数据就可以把判定框中的每个条件都运算一次?如果为了测试出判定条件中的错误,应使用哪些数据对程序进行测试?请上机验证自己的结论。④用哪四组数据才可以把各种条件的组合都检测一遍?如果为了测试各种条件组合的情形,应该使用什么样的测试数据?请上机验证自己的结论。⑤用哪四组数据才可以把从起始到终止的各条路径都覆盖一次?如果为了测试出程序在不同路径下的错误,应该使用什么样的测试数据?请上机验证自己的结论。 (3)进一步的实验:①从键盘输入三个数,代表三条线段的长度。请写一个判定这三条线段所组成的三角形属于什么类型(不等边、等腰、等边或不能构成三角形)的C程序。②请分别设计下列数据对自己的程序进行测试。 A.找出各条语句中的错误。 B.找出各分支中的错误。 C.找出各条件中的错误。 D.找出各种条件组合中的错误。 E.找出各条路径中的错误。 而在循环语句上机中,对学生进行代码优化训练,让学生学会删除多余运算、代码外提、强度削弱、变换循环控制条件等代码优化手段。通过这些上机实践,学生大致知道一些软件测试、程序优化知识,提高了学生上机的积极性,使学生从上机就是检验书本例题、习题中解脱出来。 3、设计综合性的实验 以往大多数学生在学完C语言后,普遍反映看得清程序的设计代码意义,但遇到实际问题就无从下手。这主要是教材上缺少实际意义的题目,为此,一定要设计短期上机实验任务与长期任务结合的上机内容。以一个大题目作为长期任务,再按不同功能模块分解开来,形成一个个短期任务。每一章学过之后要求完成一项或几项编程作业,而各章的编程作业不是孤立的,而是相互联系的,实际上它们都是一个较大型较复杂程序的组成部分。这样就可以使学生的任务形成一种连贯性,在整个学科的学习过程中始终都有一个总任务的驱动,而学生又在一个又一个短期任务的驱动下,体验着一次又一次迈向成功的喜悦。 例如,以“学生成绩管理系统”为课程设计的长期任务,从常用输入/输出语句printf和scanf开始,让学生编写主函数并在主函数中调用若干个空函数形成一个文本型菜单的雏形;学习常用数据类型后,再编写一个验证密码输入的函数;选择结构后,要求编写一个菜单选取函数;循环控制和数组后,要求建立班级课程的成绩输入输出函数;学完结构体类型后,要求使用结构体数组来存储和处理学生的信息;学习链表后,要求利用单链表动态管理学生的成绩;最后在“文件”这一章,要求利用文件操作完成学生成绩管理。当学完整个课程,完成了平时要求的各项编程作业之后,就会发现,原来自己完成的远不是一个一个零碎的程序段,而是在一块一块制作程序的各个部件,只要通过简单的程序拼装,就可以构成一个比较复杂的程序。这也在潜移默化中培养了学生采用各个击破的方法解决实际问题的意识。最后,学生从整体的角度来审视整个程序的设计,并通过上机进行综合调试,达到提高编程能力的目的。 4、采用协作方式的实验组织形式 协作学习由David W. 和Roger R. Jonson教授提出,是学生以小组形式参与、为达到共同的学习目标、在一定的激励机制下最大化个人和他人习得成果,而合作互助的一切相关行为。 采用这种形式在上机过程中,学生之间为了达到小组学习目标,个体之间可以采用对话、商讨、争论等形式对问题进行充分论证,以期获得达到学习目标的最佳途径。学生学习中的协作活动有利于发展学生个体的思维能力,增强学生个体之间的沟通能力以及对学生个体之间差异的包容能力。此外,协作学习对提高学生的学习业绩、形成学生的批判性思维与创新性思维、对待学习内容与学校的乐观态度、小组个体之间及其与社会成员的交流沟通能力、自尊心与个体间相互尊重关系的处理等都有明显的积极作用。 在尊重学生个体差异和一人一机基础上,利用局域网,将学生分成小组进行协作实验;将实验心得体会、结论等在网上共享。改变以前那种各自为阵,互不往来的实验组织方式。 三、结束语 【c语言实验报告总结】推荐阅读: C语言实验报告模版07-10 c语言课内实验报告四09-13 进程管理实验c语言版10-26 c语言总结07-15 C语言图形程序设计报告10-13 c语言排序算法总结06-25 计算机二级考试C语言知识点总结09-13 c语言概念题09-22 C语言教学建议10-25 c语言递归程序11-06C语言上机实验报告_书写格式 篇6
c语言实验报告总结 篇7
c语言实验报告总结 篇8