c程序设计实验报告

2024-08-06

c程序设计实验报告(精选12篇)

1.c程序设计实验报告 篇一

中国计量学院 实 验 报 告

实验课程: C语言程序设计(2)实验名称: 综合实验 班 级: XXXXX 学 号: XXXXXX 姓 名: XX 实验日期: 2011/10/13

一、实验目的

1.熟练掌握用户自定义函数的定义及调用 2.掌握函数间的参数传递 3.掌握函数的嵌套调用及递归调用 4.掌握文件的基本操作

二、实验内容

1.编写程序:定义函数sum(n)计算整数n的各位数之和,函数类型是int。主函数输入整数n,将n的各个位数之和写入到design1.dat文件中,要求调用自定义函数sum。

2.定义函数fact(n)计算n的阶乘,函数返回值类型是double;定义函数cal(x,n)计算xn/n!,函数返回值类型是double,要求调用fact函数计算n!;定义函数main(),输入正整数n和实数x,计算并将下列算式的值写入到design2.dat文件中。要求

xx2x3xn调用函数cal(x,n)计算每一项。y1

1!2!3!n!

实验成绩: 指导教师签名:

三、算法分析及源程序

1.(1)算法分析:定义变量、数组等……

从键盘输入……

……(具体的算法描述)

输出……

(2)源代码:#include …… 2.(1)算法分析:……

(2)源代码:#include ……

四、实验数据分析及结论 1.上机调试,输入……

运行结果: ……

调试结果分析:运行结果符合要求。或者运行结果有错,分析错误原因。2.上机调试,输入……

运行结果: ……

调试结果分析:运行结果符合要求。或者运行结果有错,分析错误原因。

2.c程序设计实验报告 篇二

在C语言实验中,主要是引导学生突破传统的思维方式,培养学生读、写程序和调试程序的能力以及提高上机的学习兴趣和自主实验的方法技巧等。以下是笔者结合教学实践,从几个方面总结如何加强实践环节的教学。

1 编写符合学生实际情况的实验讲义,注重学生综合实验能力的培养

目前,C语言实验方面的教材和参考资料很多,但是绝大部分内容广泛,针对性不强,不好直接拿来当作学生的实验指导书,主要有以下几个原因:第一,学生没有明确的实验目标,实验兴趣不大。上机时一些学生无所事事或玩游戏,不但害了自己,还影响其他同学。第二,现有教材中上机实验都立足于C语言本身的一些语言规则,和实际开发脱节,没有较容易理解和生动有趣的范例,比较死板、枯燥。第三、现有实验大多注重语句、语法等,没有把编程解题思路和程序测试等放在首位,对学生分析问题和解决问题的能力训练不够。为此,教师需要结合自己的教学经验,针对专业特色和教学要求编写针对性较强的实验指导书,以达到以下几个目的:(1)每个实验目的明确;(2)明确实验预习内容,让学生每次实验都作好预习准备;(3)实验指导部分重在指出此次实验的重点内容、不易理解和易出错的环节,而不是理论教材的重复讲述;(4)精选实验题目,以达到每一道题都能体现一个或多个知识点,并较多地设置“陷阱”,尽量让学生出错,把问题留给学生去思考和解决。根据难易程度分必作题和选作题,必作题要求在上机时间内完成,选作题供学有余力的同学参考,以满足不同层次学生的需求。

2 规范实验活动过程,量化评分标准

学生是实验的主体,要提高实验教学效果,学生必须要对实验有足够的兴趣和重视。然而,认为实验课无关紧要的思想还是比较普遍,因此作为实验教师就应当制定一些规章制度来规范整个实验过程,在C语言实验教学过程中实验教学过程中主要从以下几个方面进行规范。

2.1 检查实验预习报告

由于是程序设计课程,如果学生上机时才来思考、写程序和调试,绝大部分同学根本不能完成实验任务,甚至根本没法动手。为了提高实验教学效果,在自编的实验指导书中设有“预习与思考”内容。要求学生在上课之前思考相关问题并将“实验内容”部分的源程序写好。每次上课前,老师严格检查实验预习报告,凡没有预习的同学一律不允许进实验室。这样,可以促使学生对相关的内容进行一定时间的预习和思考,实验教学效果较明显。

2.2 严格考勤制度和实验现场考评

在实验教学过程中应注意培养学生的动手能力、独立科研能力及合作精神,绝不允许“一人动手大家看”这种“放羊式”现象出现。学生在做完实验后都必须由教师检查其结果,打分后方可离开,凡无结果或结果不理想者,必须补做或提供条件让其重做,促使学生在实验中勤动手,也使学生们具有成就感。对于部分综合型的实验尤其强调分工合作,实行小组长负责制,争取小组成员一起协调配合完成。

2.3 认真批阅实验报告加强反馈

每次实验结束,要求学生上交实验报告。对每一份实验报告都认真批阅,在不正确的地方作出批注,并提示学生错误的原因让他进一步思考;对表现好的学生下评语给予鼓励。这样做有几个好处:(1)能够检验学生上机实践的效果;(2)能及时发现和校正学生所出现的问题;(3)能够激发学生对此门实验课程的学习兴趣;(4)老师能清楚地了解学生对相关知识的掌握情况,教学更加有针对性。实践证明,认真批阅实验报告后,下次同学们上机时会更认真,所写的实验报告更工整、规范。

2.4 量化评分标准

实验课不同于理论课,实验操作能力是评价学生成绩的一个主要方面,不能仅以试卷的形式来评分,因此需要制定了严格的评分标准,将学生们在课堂上的表现以分数形式量化,比如可这样规定(实验成绩30分):其中操作和实验结果10分、实验报告5分、实验考试5分、提问5分、纪律5分:包括迟到早、旷课、环境整洁等。这样可以让学生有紧迫感,杜绝“放羊”现象的发生。

3 改革实验教学方法

在以前的实验教学中,老师在上机之前将实验过程中可能涉及到的问题先作讲解,在实验过程中,当学生问到问题时,马上给出正确的解决方案,甚至帮学生将问题解决,很少让学生去思考。这样可能下次学生遇到相同的问题时仍然没法解决。然而,学生在整个实验过程中,是否积极开动脑筋,所收到的效果是大不一样的。现在,在教学过程中切实采用“启发式”教学方法,主要体现在:(1)在课前,针对本次实验的内容提出几个问题让学生思考后作答,这样就会促使学生应用所学过的理论知识对教师所提的问题积极思考,并通过实验来验证解决;(2)对学生在实验过程中所遇到问题,并不马上将解决的方法都告诉学生,而是引导学生分析,在什么情况下才会出现这种错误,如果要解决它有哪几种思路,留几分钟的时间给学生自己思考。比如针对以下3个C语句:int b=7;float a=2.5,c=4.7;a+(int)(b/3*(int)(a+c)/2)%4,让学生计算表达式的值并上机验证。采用的教学方法是先让学生用笔计算,之后上机验证,看两个结果是否一致。一般会发现一部分学生出错,就可提出以下几个问题供他们思考:(1)整个表达式的结果是int型还是float型?(2)(int)(a+c)的结果是多少?是整型还是实型?(3)两个整型数据相除结果是什么类型?(4)“%”运算符的功能是什么?左右两边的数据要求是什么类型?

比起“填鸭式”的灌输,“启发式”教学方法可以让学生积极开动脑筋思考,对本实验的理解就会更加深刻,学到的知识也更扎实。

4 设计综合性的实验

以往大多数同学在学完C语言后,普遍反映能看懂例题,但遇到实际问题就无从下手,这主要是教材上的例题缺少实际意义。为此,我们可以设计短期任务与长期任务结合的上机内容。以一个大题目作为长期任务,再按不同功能模块分解开来,形成一个个短期任务。每一章学过之后要求完成一项或几项编程作业,而各章的编程作业不是孤立的,而是相互联系的,实际上它们都是一个较大型较复杂程序的组成部分。这样就可以使学生的任务形成一种连贯性,在整个学科的学习过程中始终都有一个总任务的驱动,而学生又在一个又一个短期任务的驱动下,体验着一次又一次迈向成功的喜悦。例如,以“学生成绩管理系统”为课程设计的长期任务,从常用输入/输出语句printf和scanf开始,让学生编写主函数并在主函数中调用若干个空函数形成一个文本型菜单的雏形;学习常用数据类型后,再编写一个验证密码输入的函数;选择结构后,要求编写一个菜单选取函数;循环控制和数组后,要求建立班级课程的成绩输入输出函数;学完结构体类型后,要求使用结构体数组来存储和处理学生的信息;学习链表后,要求利用单链表动态管理学生的成绩;最后在“文件”这一章,要求利用文件操作完成学生成绩管理。当学完整个课程,完成了平时要求的各项编程作业之后,就会发现,原来自己完成的远不是零碎的程序段,而是在制作程序的各个部件,只要通过简单的程序拼装,就可以构成一个比较复杂的程序。这也在潜移默化中培养了学生采用各个击破的方法解决实际问题的意识。最后,学生从整体的角度来审视整个程序的设计,并通过上机进行综合调试,达到提高编程能力的目的。

5 采用协作方式的实验组织形式

协作学习由David W.和Roger R.Jonson教授提出,是学生以小组形式参与、为达到共同的学习目标、在一定的激励机制下最大化个人和他人习得成果,而合作互助的一切相关行为。协作学习是一种通过小组或团队的形式组织学生进行学习的一种策略。小组成员的协同工作是实现班级学习目标的有机组成部分。小组协作活动中的个体(学生)可以将其在学习过程中探索、发现的信息和学习材料与小组中的其他成员共享,甚至可以同其他组或全班同学共享。在此过程中,学生之间为了达到小组学习目标,个体之间可以采用对话、商讨、争论等形式对问题进行充分论证,以期获得达到学习目标的最佳途径。学生学习中的协作活动有利于发展学生个体的思维能力,增强学生个体之间的沟通能力以及对学生个体之间差异的包容能力。此外,协作学习对提高学生的学习业绩、形成学生的批判性思维与创新性思维、对待学习内容与学校的乐观态度、小组个体之间及其与社会成员的交流沟通能力、自尊心与个体间相互尊重关系的处理等都有明显的积极作用。

采用协作方式来组织实验,是值得广大教师探讨并推广的一种形式。在C语言实验教学过程中,在尊重学生个体差异和一人一机基础上,利用局域网,将学生分成小组进行协作实验,将实验心得体会、结论等在网上共享。改变以前那种各自为阵,互不往来的实验组织方式。协作学习对提高学生的学习业绩、形成学生的批判性思维与创新性思维、对待学习内容与学校的乐观态度、小组个体之间及其与社会成员的交流沟通能力、自尊心与个体间相互尊重关系的处理等都有明显的积极作用。

6 结束语

C语言的实践教学在该课程的教学过程中占有举足轻重的地位,本文通过对C语言课程多年的教学经验和教学改革的实践和体会,提出了增强实践教学和加强学生动手能力的培养想结合的思想,使学生在实践教学的同时,也锻炼和培养了都手能力,为大学计算机语言课程的实践教学提出了一个新的思路和方法。当然,对于实验课的教学,还有许多方面需要我们进一步完善和提高。

摘要:《C语言程序设计》是高校计算机教学的一门基础课,实验教学在其中占有非常重要的地位。本文就如何强化C语言实验教学进行了探索,并提出了一些可行的方法。通过教学实践表明,这些方法和措施能有效地提高教学效果以及学生的动手能力。

关键词:C语言,实验教学改革,探讨

参考文献

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

3.c程序设计实验报告 篇三

许多院校的专业开设了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教授提出,是学生以小组形式参与、为达到共同的学习目标、在一定的激励机制下最大化个人和他人习得成果,而合作互助的一切相关行为。

采用这种形式在上机过程中,学生之间为了达到小组学习目标,个体之间可以采用对话、商讨、争论等形式对问题进行充分论证,以期获得达到学习目标的最佳途径。学生学习中的协作活动有利于发展学生个体的思维能力,增强学生个体之间的沟通能力以及对学生个体之间差异的包容能力。此外,协作学习对提高学生的学习业绩、形成学生的批判性思维与创新性思维、对待学习内容与学校的乐观态度、小组个体之间及其与社会成员的交流沟通能力、自尊心与个体间相互尊重关系的处理等都有明显的积极作用。

在尊重学生个体差异和一人一机基础上,利用局域网,将学生分成小组进行协作实验;将实验心得体会、结论等在网上共享。改变以前那种各自为阵,互不往来的实验组织方式。

三、结束语

4.c程序设计实验报告 篇四

《C语言程序设计》实验报告

年级:2009级(必修)

学号:姓名:专业:

实验题目:

输入一个班N个学生(N为符号常量,自定人数)的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求:

1)排序用一个函数实现。

2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。

3)按实验报告电子模板格式填写实验内容。

可用多个函数或多个源文件实现

可以用数组法、指针法、结构体法编写程序。

源程序清单:

主要标识符说明:(说明变量、函数、指针、结构体等)

实验结果贴图:

实验环境:

intel Pentium 4 计算机,windowsXP操作系统,Microsoft Visual C++ 6编译环境。

教师评语:

5.c语言实验报告 篇五

学生姓名: 学 号: 专业班级:

√ 综合 □ 设计 □ 创新 实验日期: 实验成绩: 实验类型:□ 验证 □一.实验名称

实验3 控制语句

二.实验目的

1.熟练掌握if、if…else、if……elseif语句和switch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。

2.熟练掌握while语句、do……while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。

3.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。

三.实验内容

1. 选择结构程序设计; 2. if语句的使用;

3. 使用switch语句实现多分支选择结构; 4. 三种循环语句的应用; 5. 循环结构的嵌套;

6. break和continue语句的使用。

三.实验环境

PC微机

DOS操作系统或 Windows 操作系统 Visual c++程序集成环境

四.实验内容和步骤

本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。学会单步调试和断点调试程序及变量跟踪方法。

1. 任意输入4个整数,要求按由小到大的顺序输出。

2.编程实现:输入一个整数,将其数值按照①小于10,②10~99,③100~999,④1000以上四个类别分类并显示。

要求:(1)将变量定义为整型。

(2)输入整数前,利用puts()/printf()给出提示信息。

(3)输出结果时要有必要的说明,例如:输入358时,显示358 is 100 to 999。(4)该程序利用if语句实现。

运行程序,分别输入9,21,321,4321数据检查输出信息的正确性。

3.编写程序:根据公式

261111......,输出 π的值。

122232n2要求:

(1)变量π为单精度类型,n为整型;

(2)计算当n的取值分别为20,50,100,200时的π值,说明什么问题?

(3)修改程序,不给出n值,而改为求π值,直到最后一项的数值小于10-4 为止。

(4)对修改后的程序,输出π值以及总的项数n。输出格式为:π=值;n=值。

4.从键盘输入一个0~1000之间的任意整数,输出该整数的所有因子(例如:输入12,其因子为1,2,3,4,6,12)。

要求:

(1)采用while循环语句实现。

(2)输出格式为:Input:12 Output:1,2,3,4,6,12 5.从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。学生的成绩可分成5个等级,90-100分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分为E级。要求在输入负数时,给出错误提示。

① 事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。

② 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束 6.某航空公司规定:在旅游旺季7~9月份,如果订票20张及其以上,优惠票价的10%,20张以下,优惠5%;在旅游淡季1~6月份,10~12月份,订票20张及其以上,优惠票价的20%,20张以下,优惠10%。编写一个C程序,根据月份和旅客订票张数决定优惠率。已知机票单价,请算出旅客的总付款。请使用不同的测试数据进行测试。7.计算并输出1000以内最大的10个素数以及它们的和。

要求:

(1)在程序内部加必要的注释。

(2)由于偶数不是素数,可以不考虑对偶数的处理。

(3)虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。

(4)输出形式为:素数1+素数2+素数+…+素数10 = 总和值。

五.实验数据及处理结果

/*写出实验内容的算法(用流程图表示)、完整的程序、结果并能对结果的正确性及上机时产生的问题进行分析,注意程序变量命名应见名知意、有适当的注释,程序书写规范*/ 【习题1】

【设计思路】 :输入a,b,c,d四个数,将四个数两两进行比较,如果前者大于后者,则将两数的值交换,否则不变。这样重复操作6次,最后输出a,b,c,d的值,则a,b,c,d从大到小排列。

【数据输入】输入整型变量 a,b,c,d 【数据输出】输出 a,b,c,d的值,使其从大到小排列。【源程序实现】

#include main(){

int a,b,c,d,t;printf(“please input four numbers(example:1 2 3 4):n”);scanf(“%d %d %d %d”,&a,&b,&c,&d);if(a>b){t=a;a=b;b=t;}/* 实现a,b的交换 */ if(a>c){t=a;a=c;c=t;}/* 实现a,c的交换 */ if(a>d)

} {t=a;a=d;d=t;}/* 实现a,d的交换 */ if(b>c){t=b;b=c;c=t;}/* 实现b,c的交换 */ if(b>d){t=b;b=d;d=t;}/* 实现b,d的交换 */ if(c>d){t=c;c=d;d=t;}/* 实现c,d的交换 */ printf(“%d,%d,%d,%d”,a,b,c,d);【结果及截图】

答:输入64 3 5 23,运行结果为3,5,23,64,其截图如下:

输入格式的提示。

【修改后程序实现及结果】 /*习题2、4请添加此步*/

【问题分析】 输入数据时,没有按正确格式输入,所以在输入数据之前,应该给出一个【习题2】

【设计思路】

【数据输入】 输入整型变量x。【数据输出】 输出x的范围。【源程序实现】

#include

main()

{

int x;

printf(“Please input a number:n”);

scanf(“%d”,&x);

printf(“%d is ”,x);

if(x<10)printf(“less than 10n”);

else if(x<100)printf(“10 to 99n”);

else if(x<1000)printf(“100 to 999n”);

else printf(“more than 1000n”);

return 0;

}

【结果及截图】

答:运行程序,分别输入9,21,321,4321,截图如下:

【习题3】

【源程序实现】

#include

#include

main()

{

int n,N;

float pi,sum=0;

printf(“Please input a number:nN=”);

scanf(“%d”,&N);

for(n=1;n<=N;n++)

sum+=1.0/(n*n);

pi=sqrt(6*sum);

printf(“pi=%f”,pi);

return 0;} 修改后的程序: #include #include main(){

int n=0;

float pi,sum=0;

do

{

n++;

sum+=1.0/(n*n);

}while(1.0/(n*n)>=1e-4);

pi=sqrt(6*sum);

printf(“pi=%f;n=%d”,pi,n);

return 0;}

【结果i及截图】

答:计算当N的取值分别为20,50,100,200时,截图如下:

【结果ii及截图】

【习题4】

【源程序实现】

#include main(){ int num,i=2;printf(“Input:”);scanf(“%d”,&num);printf(“Output: 1”);/*第一个因式为 1*/ while(i<1000){ if(num%i==0)printf(“,%d”,i);i++;} return 0;}

【结果及截图】

答:输入30,得其因式为 1,2,3,5,6,10,15,30,截图如下:

【习题5】

【源程序实现】

If 语句

#include main(){

int num;

printf(“Input:”);

scanf(“%d”,&num);

if(num<0||num>100)printf(“The number is wrong!”);

else if(num<=59)printf(“E”);

else if(num<=69)printf(“D”);

else if(num<=79)printf(“C”);

else if(num<=89)printf(“B”);

else printf(“A”);

return 0;}

Switch 语句

#include main(){

int num,n;

printf(“Input:”);

scanf(“%d”,&num);

n=num/10;

switch(n)

{

case 0:

case 1:

case 2:

case 3:

case 4:

case 5: printf(“E”);break;

case 6: printf(“D”);break;

case 7: printf(“C”);break;

case 8: printf(“B”);break;

case 9:

case 10: printf(“A”);break;

default: printf(“error!”);

}

return 0;}

【问题分析】

【习题6】

【源程序实现】

#include main(){ int month,num;float price,cost;printf(“month=”);scanf(“%d”,&month);printf(“nprice=”);scanf(“%f”,&price);printf(“nnum=”);scanf(“%d”,&num);if(month>=7&&month<=9){if(num>=20)cost=price*0.9*num;else cost=price*0.95*num;} if((month>=1&&month<=6)||(month>=11&&month<=12)){if(num>=20)cost=price*0.8*num;else cost=price*0.9*num;} printf(“cost=%f”,cost);}

【习题7】

【源程序实现】

#include #include void main(){ int num,i,sum=0,count=0;for(num=999;count!=10;num-=2){for(i=2;i=sqrt(num)){count++;sum+=num;printf(“%d+”,num);} } printf(“b=%d”,sum);} 【结果及截图】

六.简答题

6.C语言实验报告(一) 篇六

一、实验题目:顺序结构

二、实验目的:(略)

三、实验内容

1.程序验证(略)

2.程序设计

1)编写程序,已知圆半径radius=1.25,求圆周长和面积。

源代码:运行结果:

2)编写程序完成单个字母的大小写转换。

源代码:运行结果:

3)任意从键盘输入一个三位整数,要求正确分离出它的个位、十位和百位数,并分别在屏幕上显示。

7.c程序设计实验报告 篇七

教学是根据特定目标培养人才的主要形式和手段。C程序设计实验教学一般分为如下三部分:布置实验内容、学生自主实验、教师剖析讲解, 这是教师“教”与学生“学”的有机结合, 学生在教师有目的、有计划的指导下, 积极、主动的掌握学科相关知识。我们往往将这样的教学过程界定为传统教学[1]。近年来, 伴随着各门各科课程改革的深入实施, 传统教学过程中许多教学理念已经不能完全适应时代的要求[2], 譬如以知识传授作为学生学习的主要途径, 在教学效果评价上重结果轻过程, 这种凡事以教师为中心的方法, 扼杀了学生的主观能动性, 学生成为知识的被动接受者, 不利于学生创造性思维及学习兴趣的培养, 因此有必要对传统的教学过程进行改革[3]。本文针对传统C语言程序设计教学过程中存在的问题, 将“有效教学理论”引入到C语言实验教学过程中去, 对教学方法及教学内容作出一系列的改革, 并进而形成一个完整的C程序设计实验教学体系。

2 有效教学理论的立足点

有效教学理论要求教师遵循教学活动的客观规律[4], 以促进学生的学习与发展为目的, 以尽可能少的时间、精力和物力取得尽可能多地教学效果, 从而实现特定的教学目标[5]。根据上述目标要求, 教学过程的设置应当考虑到如下几点内容。

(1) 设计出教者与学者均能安心的人际关系和学习环境, 营造出人性化的理解和相互信赖的班级气氛, 培养学生团队合作的精神, 团队中的同学之间彼此信任, 彼此依赖, 为团队而战, 不再是单打独斗;

(2) 学习的内容、方法和评价方式均适于学生, 研究教学过程, 注重教法的选择和学法的指导。所选教学案例要符合学生的实际情况, 内容要涵盖理论课所有知识点, 对学生的作业要做正确的评价, 不能完全根据参考答案来, 对进步大的同学要给予鼓励;

(3) 在活动性的学习过程中, 学生能够积极主动地参与。每个学生在锻炼的过程中能够充分发挥自己的想象力、创造力, 教师要给学生创造展示自我的空间, 使学生在练习的过程中真正发挥主体作用。同时, 根据每个学生的性格特点, 让其参与到团队实践中去, 扮演不同的角色, 从而提高学生的学习兴趣和解决问题的热情。

3 C语言实验课程中的有效教学设计

C语言程序设计是一门实践应用性较强的学科, 在日常的教学过程中需要不断强化实验环节, 让学生在操作实践过程中不断地发现、分析和解决新问题。为了实现上述目标, 教师在教学过程中必须要结合有效教学理论的要求, 努力改进教学方法。

3.1 上好第一堂实验课

教师在课前设计好一个用C语言开发的软件, 该软件应该包括C语言程序设计的主要知识点 (如一个简单的学生管理系统) 。在上第一次实验课的时候, 教师向学生展示该功能软件, 并简单介绍实现该软件所用到的程序设计知识点, 让学生充分理解到“通过学习这门课程可以实现这样的软件”。最后向学生详细介绍本学科的实验课程设置。这一举措将会激发学生浓厚的学习兴趣, 同时也将克服长久以来植根于学生心中“程序设计学为何用”的心里障碍。

3.2 选择合适的教材

教材的选择是教学改革的关键, 良好的教材能唤起学生的学习欲望、引导学习方法、巩固所学知识等。C语言程序设计是一门以培养学生程序设计基本方法和技能为目标, 以实践能力为重点的特色鲜明的课程。为此, 其教材内容需要能够反映本学科的基本原理、技术和方法在相关现实领域中的典型应用。经过多年的课程建设, 由本校王创伟教授所撰写的教材《程序设计基础———从问题到C语言程序》在教学内容、教学方法上作出新的改进, 以学生成绩管理系统的程序设计为主线, 以编程应用为驱动, 通过实例和问题引入内容, 重点讲解程序设计的思想和方法, 并穿插讲解相关的理论知识内容。本教材侧重培养学生从实际问题空间向程序设计空间转换的能力, 让学生领会到C语言知识是一种工具, 利用这个语言工具进行有效的“程序设计”才是本课程设置的核心理念、

3.3 采用“2+2”教学模式

传统的教学过程以“教师教”为主要方法, 学生鲜有机会主动参与到教学实践中去。为了充分激发学生的学习兴趣, 自2009年9月起, C语言程序设计课程全部教学环节被安排在实验室中进行, 每个教学阶段均采用“2+2”模式 (即2节理论+2节实验) 。前2节课主要是教师结合案例讲授相关的理论知识点, 后2节让学生编程实现相应的功能。由于C语言程序设计课程主要面向本专业一年级学生, 其专业基础相对比较薄弱, 对于程序设计的概念还没有十分深入的理解, 所以在理论知识讲解中, 教师要注意突出语言特色, 充分运用形象思维讲授知识点。教学中应该尽量用一些直观形象的比喻来解释一些抽象的概念。例如, 在讲解变量的时候, 可以将变量比喻成一个“房间”, 变量的值就相当于“房间”中的东西, 而指向某变量的指针就相当于房间的门牌号, 通过这些形象直观的比喻, 学生理解起来就比较容易了。在实验环节中要求学生利用所掌握的知识点分阶段的实现学生成绩管理系统, 对于部分与管理系统联系不是十分密切的知识点, 教师可以布置一些常用项目案例让学生来实现, 从而充分调动起他们的学习主动性与积极性。

3.4 加强实验环节管理, 注重学生团队合作能力培养

目前, 国内软件企业需要的计算机专业人才, 除具备熟练的专业素质外, 更重要的是拥有良好的沟通能力, 在传统教学过程中, 这一点被绝大多数教师所忽略。

实验环节是考查学生是否能够熟练运用C语言语法解决实际问题的一个重要途径。传统的实验过程以教师为主导, 一位教师辅导几十位学生, 教师为学生实验过程中出现的问题进行解答。这样的模式存在许多的弊端, 譬如由于课堂时间有限, 教师无法即时解答每个学生提出的问题, 这样会导致部分学生不能继续进行实验, 长此以往会让他们产生厌学的情绪, 并对程序设计这门课程彻底丧失信心。针对这样一些情况, 在实际的实验教学课程中, 采用分组进行的方法, 每4位同学组成一个小组, 对于程序设计过程中某位同学不能解决的问题, 先让其进行小组内讨论, 如果小组内无法解决, 再由教师为小组成员讲解。在此过程中, 还要求小组内成员做好必要的实验笔记, 对于实验过程中遇到的典型问题做相关的记录。这一举措既能及时解决问题, 提高实验效率, 又能培养学生之间的团队协作能力。

4 结束语

基于本校计算机专业C语言程序设计教学的实际情况, 立足于有效教学理论, 对C程序设计实验环节的教学方法进行了一系列的改革。实践表明, 上述改革措施对加深课程理解、培养学生兴趣和提高教学质量有着显著的效果。随着计算机专业基础课程群改革的深入开展, 基于能力和素质培养为基本目标的有效教学理论必将体现出其极大的优势, 作为高校教师的我们必将竭尽全力地为培养高素质的优秀人才而努力。

参考文献

[1]王希杰, 王瑞庆.C语言教学改革的几点建议[J].中国科技信息, 2006 (24) :213-214.

[2]宋楚平, 李少芹.C语言教学改革的思考[J].职业教育研究, 2005 (2) :84-85.

[3]李丽萍, 王冬梅C语言教学改革的探索与实践[J].辽宁工业大学学报, 2009 (58) :114-115.

[4]余文森.论有效教学的三大理论基础[J].课程教材教法.2012 (32) :15-21.

8.c程序设计实验报告 篇八

关键词:计算机C语言实验教学教学方法

0引言

伴随着科学技术的不断提高,计算机强大的功能已为人们所深刻地认识,它已进入人类社会的各个领域,并且在各领域发挥着越来越重要的作用。伴随着计算机技术和网络技术的日益发展,计算机应用技术已经成为现代人的生活中不可或缺的一部分。这种情况必然对高校学生的计算机应用水平提出了更高的要求,当今社会所需要的人才,已经不再是理论型的人才了,更注重的是人才的实践能力和动手能力。这必然给高校的计算机实验教学提出了更高的要求,就是如何进行实验教学改革,从而切实提高学生的动手能力及独立思考的能力,从而培养出更多的适应社会需求的优秀人才,这也是每一所高校办学的最终目标。

C语言作为目前每一所高校的一门必修课,在进行C语言课程的教学过程中,理论教学只是让学生掌握基础知识,而实验教学才能真正的让学生将理论课所学的内容应用到实践过程中,培养学生的应用能力和动手能力、独立思考问题的能力。在C语言的实验教学过程中,依据学生的能力,采用以学生为主体逐步引导、启发学生,即教师在实验教学过程中起主体引导的作用,让学生上机演练,在学生动手的过程中学生发现问题、提出疑问,根据提出的问题教师进行答疑,最后根据实验的全过程进行总结。这种方法应用到了实践教学的过程中,取得了良好的效果。

通过对C语言实验教学的真实情况,现将实验教学方法做以下总结:

1要想上好一节实验课,实验教师必须做好充足的准备

首先就是必须了解教学大纲的内容,可以说教学大纲是计算机教学的指导棒,它不仅仅对理论教学起到指导和约束的作用,对于C语言实验教学同样也是很重要的。无论是教师的教学过程,还是学生的学习过程都必须围绕教学大纲进行,才能使教学工作顺利的开展。教师的首要任务就是熟练掌握大纲中的每一个知识点,并将其完美的融入到实验教学当中。设计出的实验题目不仅要新颖,还要引起学生们的兴趣,还不能够背离教学大纲的内容。充分的将大纲中的重点、难点内容编入实验教学中,使学生在实验的动手过程中能够充分理解。语言编程是一项很枯燥乏味的工作,所以要采用合适的方法引起学生的兴趣。比如说:C语言的实验教学可以根据理论课的内容划分为几个部分,例如C语言的三种基本结构,按照每一部分的内容编写出实验内容,这三部分之间又有相互的联系,应该举出比较典型的例题来进行实验教学。

其次就是教师必须在实验教学之前做好充分的准备工作,确定实验内容。教学目的要明确、便于理解,利用明白的讲解让学生清楚的知道每次实验课都要做什么、学什么:实验内容的设计也是非常重要的,不但不能脱离大纲,还要每节课都突出重点,使学生了解自己应该掌握哪些内容。教师还要在每一节上实验课之前将每次的实验题目都做一遍,及时发现问题和解决问题,以免在课堂演示的的过程中出现问题再来解决,这样会浪费课堂时间。教师还要对实验机房的机器进行调试与维护,对有故障的机器要及时进行维修,以减少在实验过程中出现问题,浪费时间。最后就是要了解学生的状态,这是上好计算机C语言实验教学课的一个重要前提条件。每一个学生的基础不同,有的对计算机编程了解得多一些,有的根本没有基础,完全不理解,如果教师只是教,而不顾及学生的感受,会的同学知道怎样学,而不会的同学不知道怎样学、学什么,这样肯定不会得到很好的教学效果。教师的教学不能再采用填鸭式教学方式给学生灌输实验内容,而是要对学生的个体差别进行引导、启发,教给学生如何学习C语言和在学习C语言的过程中遇到问题该如何解决。根据学生的不同层次,有基础的学生可以增加难度,没有基础的学生可以耐心讲解,细心指导。为了达到更好的教学效果在每次C语言实验课前,要求学生先复习理论课所学的知识,然后对实验题目进行预习,完成对实验课的预习工作,并列出疑难问题。有了课前预习,教师在讲解的过程中就会比较容易,学生也能更快的掌握应该掌握的内容。

2教师的实验教学方法

对于初识编程语言的学生来说,C语言是一门相当难理解的课程。他们没有语言编程的理论和模式,一切都是新的。所以,指导学生在学习的过程中初步建立编程理念和编程模型,要比让他们机械的把程序敲入计算机,简单的查看运行结果更重要。那么如何通过实验课使学生们对C语言变成感兴趣,如何建立编程思想才是实验老师应该考虑的重要内容。具体的讲课过程如下:

首先要把理论课上所学的与实验课相关的内容做一下简要的复习,加深学生们对C语言重点难点的理解,因为理论知识是进行实验操作的前提基础,只有充分掌握了理论知识才能上号实验课;然后针对学生们在预习过程中遇到的难以解决、难以理解的问题,教师要进行详细的讲解,再按照实验教学计划进行实验课内容的教学。在C语言实验课上,一般教师都是先把教学步骤从头到尾的演示一遍,或者是让学生跟随老师的操作,在正确操作的基础上查看程序运行的结果。实际上,这种教学方法使得讲解和实际操作分离,不符合计算机实验教学的学习规律,学生往往在课堂上是听懂了,但是一到实际操作,还是做不出来,教学效果很不理想。教师应该把重点内容进行讲解和演示,每次讲解的时间不要太长,要把时间留给学生自己去实践,着重强调操作要点,让学生自己完成实验题目。现在的C语言实验教学都采用多媒体教学方式,利用大屏幕和投影仪向学生展示操作步骤及效果,使得学生加深了印象,在税后的动手操作中增强了信心,教学效果较好。实验教学中实验内容的设计也是非常重要的。如果实验课的内容不结合实际,很乏味,没有任何现实意义,那么就不会引起学生的兴趣,也不会给学生留下什么深刻的印象。举个简单的例子,比如说对于C语言中循环这一问题的编程实例,如果用简单的方法和程序来讲解不会给学生留下什么印象,但相反,我可以这样给学生上课,我要求和学生做一笔生意,把循环当中“富翁和陌生人”的典型例题带入到实验课堂上。引起学生的兴趣。学生自然会想办法把程序编写出来,他们也想知道这样的问题到底是怎样的答案。学生只要认真考虑这个问题了,在不知不觉中就会建立起一套正确的编程思想,这就达到了我们实验教学的最终目的。

3让学生自行动手操作

9.c语言的实验报告 篇九

一、实验目的1、熟练掌握C语言编程环境的使用。

2、掌握C语言程序的基本框架。

3、理解程序调试的思想,能找出并改正C程序中的语法错误。

二、实验内容和步骤

(一)实验11、实验题目:求三角形的面积和周长

2、上机过程

①正确的程序清单

#include

#include

int main()

{

int x, repeat;

float a, b, c, area, perimeter, s;

scanf(“%d”, &repeat);

for(x=1;x<=repeat;ri++)

{

scanf(“%f%f%f”, &a, &b, &c);

s=(a+b+c)/2;

if(a+b>c&&a+c>b&&b+c>a)

{

area=sqrt(s*(s-a)*(s-b)*(s-c));

perimeter=a+b+c;

printf(“area=%.2f;perimeter=%.2fn”,area,perimeter);}

else

printf(“These sides do not correspond to a valid

trianglen”);

}

}

②本题小结:上机时会遇到main,stdio.h等会打错,会忘记双引号。

所以在检查时要仔细,认真。

(二)实验21、实验题目:计算个人所得税

2、上机过程

①正确的程序清单

②本题小结:本题主要检测的是对C语言编程环境的使用,还要注意要写分号来结束一个语句。并且n是代表在执行时的换行,要在分号内的。

(三)实验31、实验题目:求华氏温度100°F对应的摄氏温度

2、上机过程

①正确的程序清单

#include

int main(void)

{

int celsius, fahr;

fahr = 100;

celsius = 5 *(fahr-32)/ 9;

printf(“fahr =% d, celsius = %dn”, fahr, celsius);

return 0;

}

②本题小结:该题测试的是对%d的认识,如果只有d那输出的只有d,而加上%意义就不同,输出的则是函数中计算的数。当然要注意main等词的拼写。分号是结束一个语句,所以在 定义celsius与 fahr两个变量时要用逗号。

(四)实验41、实验题目:求一元二次方程的根

2、上机过程

①正确的程序清单

② 本题小结:本题还是要注意stdio等词的拼写。但更关键的是:在“/* 输出”中后面要加上“*/”来结尾,起解释作用;还有

“%d=%d*%d”后必须要有三个用逗号分开的所要求的字母,来表示

“%d=%d*%d”所表示的内容。

(五)实验51、实验题目

2、上机过程

① 正确的程序清单

② 本题小结

总结:上机时要仔细,认真。更重要的是熟练掌握C语言编程环境的使用

实验报告完成人:周笑莉

10.《C程序设计》实验教案 篇十

一、实验的目的与任务:

《C程序设计》是一门实践性很强的课程。通过实验使学生加深对课堂讲授的概念、语法、算法、编程技术的理解;熟悉C程序设计的开发环境;掌握程序设计和调试的基本技能。并通过实践激发学生进一步学习的积极性,培养学生的学习兴趣和创新思维。通过8个实验,使学生经过一定数量的上机训练,了解和掌握C程序设计的环境、程序的数据表示、程序的执行流程控制、程序的整体结构等C程序设计的基本概念和应用技术。

二、实验项目与要求

实验一:C程序的运行环境和运行一个C程序的方法(2学时)

实验性质:验证性实验

一、实验目的

1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。2.了解在该系统上如何编辑、编译、连接和运行一个C程序。3.通过运行简单的C程序,初步了解C源程序的特点。

二、实验内容

1.调用编辑程序,输入教材第一章习题1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的?

2.输入并运行教材第一章中习题1.4。

3.输入并运行教材第一章中习题1.9,了解如何在运行时向程序变量输入数据。

实验二 数据类型、运算符和表达式(2学时)

实验性质:验证性实验

一、实验目的

1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。

2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

3.进一步熟悉C程序的编辑、编译、连接和运行的过程。

二、实验内容

1.输入并运行教材第三章例3.6.即: #include void main(){char c1,c2; c1=97; c2=98;

printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); } 在此基础上 ①将第二行改为: int c1,c2;再使之运行,分析结果。②再将第三行、第四行改为: c1=300;c2=400;再使之运行,分析其运行结果。

2.输入并运行教材第三章习题3.6,在上机前先用人工分析程序写出应得结果,上机后将二者对照。

3.输入并运行习题3.10。即: #include void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);} 2 分别作以下改动并运行: ①将第4行改为: m=i++;n=++j;②程序改为: #include void main(){int i,j;i=8;j=10;printf(“%d,%d”,i++,j++);} ③在②的基础上,将printf语句改为: printf(“%d,%d”,++i,++j);④再将printf语句改为:

printf(“%d,%d,%d,%d”,i,j, i++,j++);⑤程序改为: main(){int i,j,m=0,n=0;;i=8;j=10;m+=i++;n-=--j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);}

实验三 最简单的C程序设计(2学时)

实验性质:验证性实验

一、实验目的

1.掌握C语言中使用最多的一种语句—赋值语句的使用。2.掌握数据的输入输出的方法,能正确使用各种格式转换符。

二、实验内容

1.输入并运行以下程序: #include

void main(){int a,b; float d,e; char c1,c2; double f,g; long m,n;

unsigned int p,q; a=61;b=62; c1=’a’;c2=’b’; d=3.56;e=-6.87;

f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000;

printf(“a=%d,b=%dn c1=%c,c2=%cnd=%6.2f,e=%6.2fn”,a,b,c1,c2,d,e);

printf(“f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un”,f,g,m,m,p,q); } 在此基础上,做以下改动: ① 将程序第8-13行改为: a=61;b=62; c1=a;c2=b;

f=3157.890121;g=0.123456789; d=f;e=g;

p=a=m=50000;q=b=n=-60000; 运行程序,分析结果。

② 在①的基础上将printf语句改为:

printf(“a=%d,b=%dn c1=%c,c2=%cnd=%15.6f,e=%15.12fn”,a,b,c1,c2,d,e);

printf(“f=%f,g=%fn m=%ld,n=%ldn p=%d,q=%dn”,f,g,m,n,p,q); 运行程序。

2.编写程序,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符。

上机运行程序,比较用printf和putchar函数输出字符的特点。

实验四 选择结构程序设计(2学时)

实验性质:设计性实验

一、实验目的

1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”); 2.学会正确使用逻辑运算符和逻辑表达式; 3.熟练掌握if语句和switch语句。

二、实验内容

先编程序,解决以下问题,然后上机调试运行程序。1.有一个函数

xy2x13x11x11x10 x10用scanf函数输入x的值(分别为x<1、1~

10、≥10三种情况),求y值。2.给出一个百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。

实验五 循环控制(4学时)

实验性质:设计性实验

一、实验目的

1.熟悉用while语句,do-while语句和for语句实现循环的方法。2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。

二、实验内容

编程序并上机调试运行。

1.输入两个正整数,求其中最大公约数和最小公倍数。2.用牛顿迭代法求方程2x-4x+3x-6=0在1.5附近的根。

32实验六 数组(4学时)

实验性质:设计性实验

一、实验目的

1.掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(特别是排序算法)。

二、实验内容

编程序并上机调试运行。

1.用选择法对10个整数排序。10个整数用scanf函数输入。2.将两个字符串连接起来,不要用strcat函数。

实验七 函数(4学时)

实验性质:设计性实验

一、实验目的

1.掌握定义函数的方法;

2.掌握函数实参与形参的对应关系,以及“值传递”的方式; 3.掌握函数的嵌套调用和递归调用的方法;

4.掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。

二、实验内容

编程序并上机调试运行。

1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。2.求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一函数根据求出的最大公约数求最小公倍数。

(1)用全局变量的方法。将两个整数的最大公约数、最小公倍数都设为全局变 量。

(2)不用全局变量,两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。

实验八 预处理命令(2学时)

实验性质:设计性实验

一、实验目的

1.掌握宏定义的方法; 2.掌握文件包含处理方法; 3.掌握条件编译的方法。

二、实验内容

编程序并上机调试运行。

1.定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。

说明:在程序主函数使用宏时只能用两个实参,如SWAP(a,b),不能用三个参数。2.用条件编译方法实现以下功能:

输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下字母(如‘a’变成‘b’,„,‘z’变成‘a’。其它字符不变)。用#define命令来控制是否要译成密码。例如: #define CHANGE 1 则输出密码。若 #define CHANGE 0 则不译成密码,按原码输出。用条件编译方法来处理。

实验九 指针(4学时)

实验性质:设计性实验

一、实验目的 1.掌握指针的概念,会定义和使用指针变量; 2.学会使用数组的指针和指向数组的指针变量; 3.学会使用字符串的指针和指向字符串的指针变量; 4.学会使用指向函数的指针变量;

二、实验内容

编程序并上机调试运行程序(都要求用指针处理)。1.输入三个整数,按由小到大的顺序输出。

2.将一个3*3的矩阵转置,用一函数实现之。在主函数中用scanf函数输入以下矩阵元素:

17 133915511 19将数组名作为函数实参。函数调用后在主函数中输出已转置的矩阵。3.用一个函数实现两个字符串的比较,即自己写一个strcmp函数: strcmp(s1,s2)如果s1=s2,则函数返回值为0;如果s1≠s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如s1

两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。

实验十 结构体和共用体(4学时)

实验性质:设计性实验

一、实验目的

1.掌握结构体类型变量的定义和使用; 2.掌握结构体类型数组的概念和应用; 3.掌握共用体的概念与使用。

二、实验内容

编程序,然后上机调试运行。

1.有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5 8 个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课的成绩、平均分数)。

要求用一个input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。

2.输入和运行以下程序:

#include

union data {int i[2]; float a; long b; char c[4]; };

void main(){union data u;

scanf(“%d,%d”,&u.i[0],&u.i[1]);

printf(“i[0]=%d,i[1]=%dna=%fnb=%ldnc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%cn”,u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]);} 输入两个整数10000、20000给u.i[0]和u.i[1]。分析运行结果。

然后将scanf语句改为: scanf(“%ld”,&u.b);

输入60000给b。分析运行结果。

实验十一 文件(2学时)

实验性质:设计性实验

一、实验目的 1.掌握文件以及缓冲文件系统、文件指针的概念; 2.学会使用文件打开、关闭、读、写等文件操作函数。3.学会用缓冲文件系统对文件进行简单的操作。

二、实验内容

1.从键盘输入一个字符,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符以“!”结束。

实验十二 学生成绩管理(4学时)

实验性质:综合性设计性实验

一、实验目的

1.综合运用C程序设计知识,解决实际问题。

二、实验内容

1.有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。

2.将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu-sort”中。

3.将上题已排序的学生成绩文件进行插入处理。插入一个学生的三门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。

学生的原有数据为:

91101 Wang 89,98,67.5 91103 Li 60,80,90 91106 Fun 75.5,91.5,99 91110 Ling 100,50,62.5 91113 Yuan 58,68,71 要插入的学生数据为:

11.c程序设计实验报告 篇十一

随着科技的不断进步, 计算机基础教学已不再局限于围绕Windows操作系统及几种常见办公软件而进行, 更需要对程序设计能力进行培养。目前计算机程序设计语言教学主要涉及C语言、Visual Basic、Visual FoxPro等, 其中C语言作为C++、C#、Java等功能强大的主流语言的前身, 尤其适合用来作为对计算机编程要求较高的一些专业计算机程序设计启蒙语言。C语言是一种高度过程化的语言, 语法灵活, 逻辑性非常强。对于C语言的学习, 必须依赖大量的上机实践来巩固理论教学内容, 强化对编程思维的理解, 掌握C语言的精髓。所以, 在C语言程序设计教学中, 实验的设置显得尤为重要, 实验方案设置是否合理直接影响到学生对C语言的理解和掌握。

1计算思维

计算思维是目前的一个研究热点, 自2006年被提出以来, 国内外许多著名的计算机科学家和计算机教育家都不遗余力地对它的内涵和外延进行了卓有成效的研究和应用, “计算思维”一经问世, 就散发着超强的魔力, 引领着计算机科学界尤其是计算机教育界的发展方向。

1.1计算思维内涵

2006年3月, 美国卡内基 · 梅隆大学计算机科学系主任周以真教授[1,2]首次在权威杂志Communications of the ACM上提出了“计算思维” (Computational Thinking) 概念:计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解的思维活动。按照周以真教授的解释, 计算思维建立在计算过程的基础上, 但是又超越了计算机本身。计算思维现今已不仅仅运用在计算机学科上, 也广泛应用在其它自然学科甚至是人文学科中, 它是一种思维方式, 是一种解决问题的思考过程, 从现实角度来说, 计算思维就是将问题引入、归纳、求解、引申的过程, 也就是将未知问题归纳成若干已知问题从而求解的过程。计算思维不是一个单独的、与其它思维方法毫无关联的孤立方法。计算思维产生于计算机科学, 而与计算机科学联系最紧密的思维方法是数学思维、逻辑思维和工程思维。可以将计算思维看作是计算机科学与数学思维、 逻辑思维和工程思维的交集, 而它们也代表了计算思维的不同层次要求[3]。在计算机课程教学中引入和培养学生的计算思维, 进而让计算思维影响学生的一生, 帮助学生以计算思维的方式来分析、解决各类科学及社会问题。

1.2计算思维在C语言实验中的体现

C语言作为一种结构化的程序设计语言, 它的学习过程必然是理论与实践相结合, 在实验中逐渐进步的过程。 同任何计算机编程语言一样, C语言编程能力的提高必须依靠一个又一个上机实验, 在不断的 “思考—编程—调试—运行—反思”过程中逐步提高。同Visual Basic、Vis- ual FoxPro等面向对象的计算机编程语言不同, C语言是高度过程化的, 结构非常严谨, 并不像其它语言那样松散和随意, 这就需要格外注意其语法和语义的准确性和完整性, 而编程者的这些良好习惯和注意度都需要在大量的上机实践中培养。

C语言是一种过程化的语言, 它是以时间轴驱动的, 用C编写的程序执行过程, 类似于我们处理日常问题的一般过程:先做什么, 再做什么;如果发生了什么, 就做什么;必须要做了什么, 才能再去做什么, 等等。从宏观上看, C语言采用的是自顶向下、逐步求精、模块化的设计思路, 而计算思维就是将问题引入、归纳、分解、进而求解的过程。可以在C语言实验中引入计算思维的思想, 帮助我们对实验进行分析和总体设计;反过来, 也可以在C语言实验中培养学生的计算思维。

2引入计算思维的C语言综合实验设计

2.1问题描述

设计一个万年历, 要求实现以下功能:1能显示某一具体日期的星期数;2能显示任一日期所在月的月历;3具备翻页功能, 能利用键盘上的左右方向键进行月份的切换, 上下方向键进行年度的切换[4]。

说明:以1582年10月15日 (星期五) 为起始日期 (历史上多次修改历法, 其中最后一次修改是1582年10月15日, 在此之前的星期数是不准确的) 。

2.2问题分析与分解

计算思维的方法就是分解、归纳、化未知为已知的过程。首先对问题进行分解, 要完成这个实验, 需要解决3个问题:

(1) 确定某一输入日期的星期数。按问题描述, 输入任一日期后, 首先要求出它的星期数。问题描述中已经给出了初始日期1582年10月15日为星期五, 那么只要先求出输入日期与1582年10月15日之间相差的天数day, 就可用公式 (day%7+5) %7求出该日期的星期数。

在求解这个问题时, 又需要考虑一个子问题:怎样解决闰年的问题。闰年的2月有29天, 其规则是年份数字能够整除4但不能整除100, 或者能够整除400。因此, 可以用#define Year (x) (x%4==0&&x%100!=0||x% 400==0) ?1:0这条参数宏来表示是否闰年。

(2) 如何显示该日期所在月的月历。根据第一个问题的结果, 已经知道该日期的星期数, 接下来的事情是只要在该日期的基础上向前递减、向后递推就能知道该月每一天的星期数, 这个问题又可分成两个子问题:1确定月历的样式、设计格式;2分析并确定该月份中每一个日期在月历中的位置。在求解这个子问题时, 需要考虑星期的排列以及日期的换行问题, 可以用循环语句加以控制。

(3) 翻页功能设计。根据上两步的结果, 接下来增加翻页功能, 这里需要从4个方面进行设计:1向左按钮:如果当前月份为2~12月, 则年份不变, 月份-1;如果当前月份为1月, 则年份-1, 月份改为12月;2向右按钮:如果当前月份为1~11月, 则年份不变, 月份+1;如果当前月份为12月, 则年份+1, 月份改为1月;3向上按钮:月份不变, 年份-1;4向下按钮:月份不变, 年份+1。

从以上分析可以得出该实验的问题分解情况, 如图1所示。

2.3问题归纳与引导

根据以上分析, 将问题分解成若干子问题, 每个子问题再进一步细化, 最后分解成已知问题, 例如闰年的求法、 输出格式的设置、月份的加减等问题。计算思维的魅力正在于此。通过对问题的分解、归纳, 最终变换成已知问题。 在这一实验过程中, 为了达到培养学生计算思维的目的, 需要特别注意问题的归纳与引导, 计算思维强调的是从未知到已知的求解过程, 是一种自然归纳、推导、总结的过程, 教师在实验指导过程中, 不能直接给出答案和源程序代码, 而要根据结构化程序设计自顶向下、逐步求精的思想, 并以“问题归纳—分解—求解—引申”的模式逐渐引导学生一步一步走向解决问题的彼岸。

3结语

C程序设计语言的教学离不开上机实践, 上机实践过程中实验方案的好坏和教师的实验指导直接决定着学生的学习效果, 如要在有效的上机实验课时内达到最好的学习效果, 就必须让学生尽早掌握计算思维的能力。计算思维自2006年被提出并被明确定义以来, 逐渐成为计算机科学领域和计算机教育界最先进、最流行的思想之一。在C语言程序设计实验方案设计中, 时刻注意学生计算思维能力的培养, 有着非常重要的积极作用。这种能力的掌握, 不仅对学生本身编程能力和计算机能力的提高大有裨益, 而且对学生今后更全面、更有效、更科学地处理各类问题也具有帮助作用。

参考文献

[1]WING J M.Computational thinking[J].Communications of the ACM, 2006, 49 (3) :33-35.

[2]周以真.计算思维[J].中国计算机学会通讯, 2007, 3 (11) :83-85.

[3]陆汉权, 何钦铭, 徐镜春.基于计算思维的大学计算机基础课程教学内容设计[J].中国大学教育, 2012 (9) :55-58.

12.c程序设计实验报告 篇十二

标 准 实 验 报 告

(实验)课程名称 高级语言程序设计实验

电 子 科 技 大 学

实验时间:

10月12日晚

一、实验室名称:

校公共机房

二、实验项目名称:顺序和分支程序设计

三、实验学时:4学时

四、实验原理:

使用VS2010等C语言集成开发环境(IDE),在微型计算机上对程序进行编辑、编译、连接与运行。通过上机练习掌握在C编译器中编辑、编译、连接、和运行C程序的方法和过程。

五、实验目的:

1.熟悉C程序开发环境,熟悉C程序的编辑、编译、连接和运行的过程。2.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型、指针型变量,以及对它们赋值的方法。

3.掌握C语言的各种运算符,以及这些运算符的混合使用。4.掌握简单顺序程序设计方法。5.学会使用scanf和printf函数。

6.掌握分支结构各种语句的一般功能和执行过程,会使用分支结构编程。

六、实验内容:

上机完成以下编程实验,调试运行程序并完成报告。

1.编写一个C程序,输入三个整数,计算三个整数的和,并将结果输出。2.编写一个C程序,输入一个字符,找到这个字符前后各隔一个字符的字符。例如,输入‘d’,显示:‘b’和‘f’。3.习题2.22(p91)

4.习题2.23(p91)5.习题 3.3(p134)

6.输入一个两位数,输出对应的英文单词。

七、实验器材(设备、元器件):

硬件要求:普通pc机,1G内存,100G硬盘空间即可。

软件要求:Windows 7,包括C编译器的IDE。

八、实验步骤、实验编程与运行结果:

1.程序文件名为ex1_1,源程序清单如下:

#include int main(){

} int a,b,c,d;scanf(“%d %d %d”,&a,&b,&c);d=a+b+c;printf(“%d”,d);

典型测试数据(输入): 25 26 27

应输出(上机前自己分析的结果):78

上机时遇到的问题:wu

实际运行结果:78

2.程序文件名为ex1_2,源程序清单如下:

#include

void main(){

int x,y,z;scanf(“%c”,&x);y=x+2;z=x-2;

} printf(“%c %c”,y,z);

典型测试数据(输入): h

应输出(上机前自己分析的结果): j f

上机时遇到的问题: wu

实际运行结果:j f

3.程序文件名为ex1_3,源程序清单如下:

#include int main(){

} float r,s,c;scanf(“%f”,&r);s=3.14*r*r;c=2*3*r;printf(“s=%fn”,s);printf(“c=%f”,c);

典型测试数据(输入):5

应输出(上机前自己分析的结果):78.5 31.4

上机时遇到的问题: wu

实际运行结果:78.5 31.4

4.程序文件名为ex1_4,源程序清单如下:

#include int main(){ float c,F,a,b;

} scanf(“%f”,&c);a=9*c;b=a/5;F=b+32;printf(“%f”,F);

典型测试数据(输入): 35 应输出(上机前自己分析的结果): 95

上机时遇到的问题: wu 解决办法:

实际运行结果:95

5.程序文件名为ex1_5,源程序清单如下:

#include int main(){

} int a,b,c;scanf(“%d %d”,&a,&c);b=a-110;if(c==b){ } else if(c>=b+5){ } else if(c<=b-5){ } printf(“过瘦n”);printf(“过胖n”);printf(“标准n”);

典型测试数据(输入):180 70

应输出(上机前自己分析的结果):标准

上机时遇到的问题: 无

解决办法:多测试几组典型数据;

实际运行结果:标准

6.程序文件名为ex1_6,源程序清单如下:

#include int main(){

} else if(a>=2){

switch(a){ case 2:printf(“twenty”);break;case 3:printf(“thirty”);break;case 4:printf(“fouty”);break;case 5:printf(“fifty”);break;case 6:printf(“sixty”);break;case 7:printf(“seventy”);break;int a,b;scanf(“%1d%1d”,&a,&b);if(a==1)

{

switch(b){

} case 4:printf(“fourteen”);break;case 2:printf(“twelve”);break;case 5:printf(“fifteen”);break;case 6:printf(“sixteen”);break;case 7:printf(“seventeen”);break;case 8:printf(“eighteen”);break;case 9:printf(“nineteen”);break;default:printf(“n”);case 3:printf(“thirteen”);break;case 1:printf(“eleven”);break;

}

} case 8:printf(“eighty”);break;case 9:printf(“ninety”);break;default:printf(“n”);} switch(b){ case 1:printf(“one”);break;

} case 2:printf(“two”);break;case 3:printf(“threee”);break;case 4:printf(“four”);break;case 5:printf(“five”);break;case 6:printf(“six”);break;case 7:printf(“seven”);break;case 8:printf(“eight”);break;case 9:printf(“nine”);break;default:printf(“n”);

典型测试数据(输入): 55 应输出(上机前自己分析的结果):fiftyfive

上机时遇到的问题: wu 解决办法:

实际运行结果:fiftyfive

九、实验结论:课下应提前做好,不然时间来不及。

十、总结及心得体会:应用生疏

十一、对本实验过程及方法、手段的改进建议:无

报告评分:

上一篇:新入职教师自我介绍下一篇:保洁计划书范文