c程序设计实验报告

2024-08-26|版权声明|我要投稿

c程序设计实验报告(通用10篇)

c程序设计实验报告 篇1

C语言程序设计实验报告

实验二 循环结构程序设计

班级 2012196 学号 201219628 姓名 李明月

一、实验目的

(1)掌握用while语句,do-while语句和for语句实现循环的方法;(2)掌握循环结构的嵌套;

(3)掌握break语句和continue语句的使用方法。

二、实验内容及步骤

1.相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第一个格子中放1粒,第2格中放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。国王能兑现他的许诺吗?

程序1:试编程计算舍罕王共要多少粒麦子赏赐他的宰相,这些麦子合多少立方米?(已知1立方米麦子约1.42e8粒)总粒数为:sum=1+2+22+23+„+263 程序代码:

#include int main()//定义一个主函数 { int i;double t=1,sum=1,v;//定义变量

for(i=1;i<=63;i++)//用for循环语句实现循环运算 { t=t*2;sum+=t;//循环表达式 } printf(“总麦粒数为:%fn”,sum);v=sum/1.42e8;printf(“折合体积为: %f立方米n”,v);//对结果进行输出

return 0;} 运行结果:

2.求完数。

程序2:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数,输出所有的完数(要求:一行显示6个数);

程序代码:

#include int main(){ int i,j,sum,n=0;printf(“ 1000以内的完数有:n”);for(i=1;i<=1000;i++){

sum=0;for(j=1;j

if(i%j==0)

{

sum=sum+j;

} } if(sum==i)

{ printf(“ %d”,i);

n=n+1;

if(n%2==0)

printf(“n”);

} } printf(“n”);return 0;} 运行结果:

3.打印九九乘法表

程序3:编程输出如下上三角形式的九九乘法表。2 3 4 5 6 7 8 9-------n“);for(i=1;i<10;i++)//i { for(j=1;j<=i;j++)// printf(” “);for(j=i;j<10;j++)//j printf(”%-2d “,i*j);// printf(”n“);}

代表行 输出空格达到来使得向右对齐代表列

输出行与列的乘积 3 1 2 3 4 5 6 7 8 9

运行结果:

三、问题讨论

break语句和continue语句在循环结构中使用时有何区别?举例说明。

break语句是跳出整个循环过程,不再判断执行循环的田间是否成立,并且break语句不能用于循环语句和switch语句之外的任何其他语句中。而continue语句则只是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。

例子:

#include int main(){ int i;for(i=100;i<=200;i++){ if(i%3==0)continue;

printf(”%d“,i);} printf(”n");return 0;} 输出:

但是换成break之后:

四、实验心得

个人感觉对于这几个循环语句还是for循环最为灵活,不进可以用于循环次数一句in个确定的情况,还可用于不确定的情况下,它也完全可以代替while语句。并且是程序看起来更为简洁明了。

c程序设计实验报告 篇2

“C程序设计”是一门非常重要的计算机基础课程[1]。近十几年来, C语言一直是较热门的世界编程语言之一, 它的表达能力强, 语法功能丰富, 使得大多数高职院校、本科院校都把它作为第一门计算机课程进行讲授。

光靠听课和看书是学不会程序设计的, 学好C程序设计既要掌握概念, 又必须动手编程, 还要亲自上机调试运行。[2]对于初学者来说, 实验课是学好C程序设计的重要一环, 实验教学的成败直接影响学生对C程序设计掌握的好坏。

黄河科技学院计算机科学系开设C程序设计的主要目的是通过对C的基本语法概念、解题思路、基本算法等的学习, 使得学生具备基本的构造算法能力、动手编程能力和自主学习能力, 为后续的数据结构、高级编程语言等课程的学习打下一个坚实的基础。如何培养上述这些能力, 是我们在设计实验教学时需要解决的核心问题[3]。

二、教学中存在的问题

由于C语言是学生首次接触到程序设计, 而且理论课堂上教授的目的是突出基本语法知识点, 例题侧重于说明问题, 而无法对大而全的程序进行讲授, 但是实验教学中, 教师可以充分利用2 个课时, 来注重分析设计以及知识综合应用能力的培养, 目前的教学中主要存在以下几个方面的问题[4,5,6]:

2.1 实验内容单一

之前的C程序设计实验教学内容基本上是以验证C的基本语法知识为主。实验教学内容围绕验证课堂讲授知识点设置, 不如输入输出实验、分支程序实验等, 以单一的基础型、知识型、验证型实验为主, 并且更新慢, 而综合型、设计型的实验较少。

2.2 调试能力差

教材及课堂教学通常注重基本语法规则的讲授, 对程序可能错误的情况 (当然可能的情况很多, 也没法讲完) 以及解决方法涉及的较少, 各种实验平台的Debug调试工具使用方法未做介绍或一带而过, 导致学生不知道有Debug或者不会使用De-bug工具, 当面临复杂问题的逻辑错误或运行错误时, 往往手足无措, 不知道如何解决。

2.3 依赖性大

由于C语言概念复杂, 规矩繁多。实验课上一个小的标点符号的错误就会导致程序运行失败, 很容易使人产生难学, 学不会的情绪。导致学习兴趣下降, 甚至产生厌学情绪, 一些学生在上机过程中遇到问题后, 立刻举手找老师解决, 缺乏主动学习能力。

2.4 未能实现差异化教学

对于大一新生来说, 刚刚进入大学阶段的学习, 一切还都是那么的新鲜而又陌生, 在学习环境和学习方法上都需要有个适应转变的过程。另一方面, 一个班级的学生中基础知识和能力方面也存在较大的差异, 部分学生可能在高中阶段因为参加信息技术竞赛而对编程有了相当的基础, 还有些学生可能都没有除了上网以外, 对编程基本没有概念。在教学中往往只照顾大多数即中等程度学生的接受能力, 而这使得基础薄弱和扎实的学生在实验课上都会出现“吃不饱”的现象。

2.5 实验成绩评价单一

考核方式是实验教学的重要一环, 将各次实验报告成绩综合是目前的做法, 该做法的弊端是:首先学生在课下书写实验报告, 有部分抄袭现象发生, 另外, 课下书写的实验报告也不能真实地反应其在实验过程中遇到的问题、解决方法等细节。不能立体地反应学生的真实状态。

三、教学改革及教学方法探讨

针对以上这些教学中产生的实际问题, 为了进一步地提高实验教学效果, 在平时的实验课教学中, 我们从以下四个部分进行改革、提高。

3.1 切实完善实验内容

充分了解教学大纲, 在实现大纲要求的前提下, 尽可能地使实验题目具有吸引学生注意力的一面, 比如百钱百鸡问题、杨辉三角问题等。另一方面, 在设计实验题目时, 还需要在整体基本水平的基础上引入差异化的题目, 以满足学生个体差异的需求。

基于以上两个方面, 我们在实验教学内容里引入了一些验证性实验题目, 这些题目和课堂理论教学结合紧密, 是过渡性题目, 目的是使得基础薄弱的学生也能够跟上进度, 同时确保大多数学生掌握编程基本知识和技能。另一方面, 这些验证性的题目还起到帮助学生掌握VC++6.0 编程环境, 会编辑、编译、运行、懂简单的Debug。为后面的复杂的设计性、综合性实验打下基础。

此外, 在C实验教学中还引入1-2 个主题实训作业, 相当于一个缩小版的课程设计的训练量, 这些主题作业和理论课堂教授相结合, 以利于学生及时将所学知识应用到主题作业中, 而不必等到学期末才能开始;另外, 同一个主题应能够满足不同层次的学生, 设置难度差异将其分组 (难度高、中和低) 。学生根据自己学习的情况来决定自己的主题作业的难度, 对于有兴趣的同学, 可以利用课外时间从低难度到高难度逐个击破, 以进一步加强他的成就感, 替升学期兴趣。

针对个别特别拔尖的学生, 我们也允许学生自己提出问题, 自己设计实验题目, 只要经过老师的同意即可。

3.2 强调学生在实验教学中的主体地位

为学生提供自我发挥的空间。实验教师不仅要科学合理地设计教学模式与内容以提高学生的兴趣和投入度, 还要注重学生主动学习能力的培养。

这种主动能力的培养中要求学生独立完成实验内容, 能够进行独立思考, 发现程序中的错误, 并练习debug调试程序的方法。从而在降低学生依赖性的同时, 达到提高调试能力的目的。

以学生为主体, 绝不意味着教师放任不管, 在学生自己进行编程、调试的过程中, 教师必须在实验室中不断巡视, 以及时注意并解决学生遇到的普遍性问题。

3.3 强化实验过程管理

每次实验结束后, 教师都要将下一次实验题目布置给学生, 该题目涉及的知识点需要一并下发, 让学生能够提前准备, 并有针对性地查阅资料学习。

每次实验课开始前, 学生要能够画出实验题目的程序流程图, 最好能编写出程序或部分核心代码。老师应该检查学生的完成情况, 并进行适当地评价记录。

在每次实验课堂上, 学生应尽快将自己的程序输入计算机, 并进行调试验证, 教师应在机房进行巡查, 不仅要及时解决举手的学生的问题, 还要能够有针对性地解决巡查中发现的学生犯的共性问题, 比如:采用缩进形式编写程序, 死循环的跳出方法等。

每次实验课后, 学生要应认真书写实验报告并在离开实验室用网络进行提交;教师应及时对实验报告进行批阅, 并对好的提出表扬, 差的进行不点名的批评指正。时间允许的话, 教师也可召集部分学生做一些相关师生互动。

3.4 建立立体评价体系

为了培养学生的“基本构造算法、动手编程和自主学习的能力”, 需要有一套合适的评价体系, 对学生进行适当地激励和引导。

此外, 老师对学生实验前的准备情况、实验过程中的表现状况做出评价并及时反馈, 还可以帮助学生正确认识其在实验过程中取得的成绩及存在的问题, 从而使其能够正确认识自己在实验中的表现, 巩固获取的知识, 明确需要补充的短板, 并进而激发学习的积极性和兴趣。

我们建立的立体评价包括三个部分:实验准备和过程评价 (具体来说即为实验开始前老师检查学生准备的材料并进行评分记录, 实验过程中对同学的分析解决问题能力的评价) ;增加激励性评价 (实验过程中及时肯定学生取得的成绩, 使其体会到编程的成就感, 从而替升学习编程的兴趣) ;创新作品加分, 针对主题作业完成较好, 有自己思考创新的实验报告, 适当给予加分处理, 鼓励学生创新。

另一方面, 加大力度打击抄袭现象, 不管是何种性质的实验题目, 都要求自己独立完成, 可以就某些问题和同学进行讨论, 但不能进行简单的复制、粘贴。目前的做法是发现抄袭者, 该次实验记为0 分, 对于被抄袭者的实验成绩要酌情扣分。

四、总结

文章首先罗列了“C程序设计”实验教学中存在的问题, 然后提出了我们在教学中的改进及实践方法, 通过近几年的实践, 完善实验内容、强调学生主体地位、强化实验过程管理以及构建立体评价体系的一系列措施较好地解决了之前的问题, 大多数同学对C程序设计课程的学习兴趣被培养出来, 近年来部分学生在全国软件人才设计大赛C/C++语言组的竞赛中获得了较好的名次。

摘要:“C程序设计”实验课以培养学生的学习兴趣、提高动手能力为主要目的。本文首先探讨了以往C程序设计实验教学中存在的问题后, 提出了采取完善实验内容、突出学生主体地位、强化过程管理以及构建立体评价体系等措施来解决这些问题, 教学效果得到了较好地提升。

关键词:C程序设计,实验能力,成绩评价

参考文献

[1]教育部高等学校计算机基础课程教学指导委员会.高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求[M].北京:高等教育出版社, 2009.

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

[3]储岳中, 秦锋, 刘宏申.“C语言程序设计”理论与实践一体化教学的几点实践[J].计算机教育, 2012 (12) :22-25.

[4]李瑞生, 王秋云, 安德智.计算机程序设计类课程实践教学的改革与创新[J].实验技术与管理, 2012 (4) :193-195.

[5]孙慧然, 刘刚, 孙静波.“程序设计基础课”理论与实践教学的改革与实践[J].实验技术与管理, 2012 (4) :309-310.

c程序设计实验报告 篇3

【关键词】C语言 程序设计 实验 考核体系

【中图分类号】G64【文献标识码】A 【文章编号】2095-3089(2016)37-0234-01

1.引言

C语言程序设计(实验)通过上机实践,可以帮助学生巩固课堂教学的理论知识,真正体现学生将知识“内化”的过程[1],意在培养学生分析问题、解决问题的实际动手能力和创新能力。传统的实验课程考核方式单一,不能公正的评价学生的实际综合能力。为了全面培养学生的学习兴趣、全面考查学生的综合知识点,全面注重学生的创新能力和实践能力的提高,以达到培养创新人才的目的,切实推进课程考核改革及考核体系已经刻不容缓[2]。

2.课程简介

程序设计基础是一门专业基础课,这门课通过全面、深入、系统地介绍程序设计方法和程序设计语言,使学生初步建立起程序设计的基本概念,通过学习一种典型的程序设计语言(C语言),初步掌握程序设计方法,具有一定的程序设计能力。我院的程序设计基础(C语言)分上下两个学期,程序设计基础(一)和(二),程序设计实验是单独的一门课程,有程序设计基础(一)实验和(二)实验,实验内容主要是辅助,强化理论各个章节的知识点,提高学生的动手能力为目的进行设计的。

本考核体系是基于程序设计基础(一)实验设计的。我院程序设计基础(一)主要的内容有:数据的表示、组织和处理、程序的基本结构控制(顺序、选择和循环)。

3.現行的考核方式

现行的考核方式比较单一,是从三个方面进行成绩给定:(1)考勤;(2)实验报告;(3)创新设计。这里的(2)和(3)都是以实验报告来给定成绩,其中一部分以实验报告的书面结果给定成绩,另一部分以答辩实验报告的方式给定成绩。现行的考核方式不能公正的评定学生的实际综合能力,也没有促进学生进行创新设计。

4.全程考核体系的构建

全程考核体系意在促进学生核心能力的提升,在学习过程和学习结果两个维度上设置考核指标:过程考核可以提高课程的教学质量,培养学生的学习能力以及提高学生的协作能力、表达能力、沟通能力等综合素质;结果考核目标是使学生掌握基本理论、基本知识的基础上增强职业素养与专业技能,提高分析问题及解决问题的能力。

全程考核体系:

(1)考勤

考勤是学生学习的基础和保证,能促使学生养成遵章守纪的习惯,以培养学生进行自我管理。每次实验使用E-learning系统进行签到记录。

(2)实验报告

实验课中,教师观察、了解学生学习的过程,学生参与课堂活动的广度和深度,学生学习过程中表现出来的解决问题的能力。而实验报告是实验过程中唯一存档的资料,是值得重视的环节。教师根据学生的实验报告的完成步骤、完成程度以及答辩等对每次实验进行综合评价。

(3)综合大作业

为培养学生的创新能力及实践工程能力,让学生以三人一组,综合运用所学知识,共同自主学习、相互启发、收集资料、团队协作开发一个趣味性、实用性的小系统。

大作业从三个方面给定成绩:一是系统的整体评价;二是团队分工;三是团队成员各自答辩情况。

成绩给定之一:系统的整体评价包括科学正确性、趣味性/适用性、界面的清晰性。成绩给定之二:根据团队的分工,评价团队各成员的工作量。成绩给定之三:团队成员各自的答辩情况加入各自的成绩。

(4)期末无纸化考试

为对学习结果进行公正的考核,且激发学生对C语言的热爱,我们用C语言编写了一个无纸化考试系统,并让学生观摩编制考试系统中的主要算法。考试系统的中的试题均为编程题目,按照实验教学大纲的知识模块将试题划分成几个组,每个组中的题目难度相当,考试系统从每个组中抽取一道编程题目,随机组成程序设计试卷。

考试过程中,为保证公正,避免学生考试上网查阅资料,使用E-learning系统控制学生,禁止其使用电脑的浏览器、U盘。

考试成绩从三个方面给定:一是程序结果,单纯地考核程序运行的正确性;二是程序设计思路;三是理论基础知识。

5.结束语

本考核体系应用于本学院15级数字媒体专业,将考核贯穿于整个学习过程中,调动了学生学习的兴趣,学生的实践能力和创新能力得到了一定的提升,能更公正地评价学生的综合能力,学生也表现出了对该门课程的热情和自信,本考核体系得到了学生的一致认可。

参考文献:

[1]王丽娜,吕红,张杰,任颖.《计算机程序设计实验》课程的教学改革与实践.计算机工程与科学.2014年.第A1期.

C语言程序设计II实验报告 篇4

一、实验目的1、掌握一维数组的定义和引用

2、掌握一维数组的初始化方法

3、了解与一维数组有关的应用编程方法

二、实验意义

数组的定义,元素引用特征和数组的编程特色,同时可接触到更多的经典算法,的,有了这些基础后,数组的实验能让

三、实验重点2

四、实验难点

1.从键盘输入10个整数存放在一维数组里,用冒泡法进行排序输出。

2.从键盘输入10个整数,找出最大的数并输出该数及其下标。

实验报告C ++ 篇5

实验一

C++基础

开课实验室:数学实验室 指导老师:韩逢庆 时间:2009.3 学院:理学院

专业:信息与计算科学

班级:2007级1

姓名:

学号:

一、实验目的

1、进一步了解和熟悉 VC++6.0 开发环境,学会在 VC++6.0 环境下调试程序;

2、熟悉 C++ 中简单的标准输入输出函数的实用;

3、理解 const 修饰符的作用,并学会应用 const 修饰符;

4、理解内置(内联)函数的优缺点并学会使用内置函数;

5、理解和使用函数重载以及带默认参数的函数;

6、使用 new 和 delete 进行动态内存管理;

7、理解和使用引用。

二、实验内容

程序理解、程序设计

三、实验要求

1、使用函数重载的方法定义两个重名函数,分别求出整形数平面间两点间距离和双精度平面间两点间距离,如果没有输入第二点的坐标则默认为圆点(0,0)。

2、设计一个函数:exchange(float x, float y, float z),当调用 exchange(a,b,c)时,将 a 的内容赋值给 b,b 的内容赋值给 c,c 的内容赋值给 a,要求采用引用的方式来实现。

3、设计一个程序,测试 const 的三种用法:指向常量的指针,常指

2008-2009学年 第2学期

C++程序设计实验报告

针,指向常量的常指针。

4、编写一个函数,实现两个字符串变量的交换,要求参数用引用。

5、设计一个程序,比较内联函数和普通函数在时间开销和目标文件大小等方面的区别。

四、实验过程设计

略。

五、实验结果分析

(一)、程序理解

(二)、程序设计

六、实验体会

七、附录:(源代码)

c语言实验报告实验4.doc 篇6

1、实验目的、要求

(1)C语言表示逻辑量的方法。

(2)学会正确使用逻辑运算符和逻辑表达式。

(3)熟悉掌握if语句和switch语句。

(4)掌握简单的算法及程序调试。

2、实验内容:

(1)输入程序并运行,观察运行结果并分析。

#include

int main()

{int a=1,b=3,c=5,d=4,x;

if(a

If(c

Else „„„„„„„„„„„„„„„„„„„„„„„„2

If(a

If(b

Else x=3;„„„„„„„„„„„„„„„„„„„„„„„„4

Else x=6;„„„„„„„„„„„„„„„„„„„„„„„„2

Else x=7;„„„„„„„„„„„„„„„„„„„„„„„„1

printf(“x=%dn”,x);

Return(0);}

实验前分析:因已知:A,B,C,D分别为1,3,5,4,故可知只有A

(2)、编写程序:

Y=X(X<1);Y=2X-1(1==10).要求用SCANF输入X的值,输出Y的值。

程序编写如下:

#include

Int main()

{int x,y;

Scanf(“%d”,x);

If(x<1)y=x;

If(x>=1&&x,10)y=2*x-1;

If(x>=10)y=3*x-11;

Printf(“%d”,y);

Return(0);}

进行检验,发现程序有错误,无法运行。

将程序改为:

#include

Int main()

{int x,y;

Scanf(“%d”,x);

If(x<1)y=x;

Else if(x>=1&&x<10)y=2*x-1;

Else if(x>=10)y=3*x-11;

Printf(“%d”,y);

Return(0);}

实验分析:

1、在if语句中,要注意IF和ELSE的配合使用,不能单独使用IF。

2、此程序中还应注意if语句的嵌套和各层之间的逻辑关系。

3、再输入该程序时,涉及到乘法运算的表示,应注意计算机语言与书面语言的区别,在C语言中,*表示乘法运算。

在程序中加入clrscr()运算符,清空遗留数据:

#include

Int main()

{int x,y;

Scanf(“%d”,x);

Clrscr();

If(x<1)y=x;

Else if(x>=1&&x<10)y=2*x-1;

Else if(x>=10)y=3*x-11;

Printf(“%d”,y);

Return(0);}

运行该程序,得到预期结果,但输入数据被清除;将clrscr()移动到scanf之前。再次运行,得到了预期的输入和输出数据,故可知,clrscr()函数的作用是清楚该语句之前的所有的输出的数据和输入的数据。以后用此语句时要注意输入位置。

(3)补足程序并运行。

输入两个数,将较小者输出,应用条件运算符。

#include

Int main()

{int a, b,min;

Printf(“n please input two numbersn”);

Scanf(“%d%d”,&a,&b);

Min=min(a,b);

Printf(“min=%d”,min);

Return(0;)}

运行该程序,显示程序错误,无法输出结果。

将程序改为:

#include

Int main()

{int a, b,min;

Printf(“n please input two numbersn”);

Scanf(“%d%d”,&a,&b);

Min=(a>b?b:a);

Printf(“min=%d”,min);

再次运行程序,屏幕上显示“please input two numbers”,输入两个数字6和9,输出数字为6,再换多组数字,结果与与其相同,可知实验成功。

实验分析:输入比较两数大小的函数时,不能想当然,如认为“min=min(a,b)”就是输出较小数的函数,而应使用三目运算符(A?B:C)来表示。

(5)给出一个百分制成绩,要求输出成绩等级A,B,C,D,E:90分以上为A,80——89分为

B,70——79分为C,60——69分为D,60分以下为E。

1、分别用IF和SWITCH语句来实现。

2、输入成绩为大于100分或小于0分时,显示出错成绩,程序结束。

用IF函数表示:

#include

Int main()

{int a;

Printf(“n please input your scoren ”);

Scanf(“%d”,&a);

If(a>=90&&a<=100)printf(“A”);

Else if(a>=80&&a<=89)printf(“B”);

Else if(a>=70&&a<=79)printf(“C”);

Else if(a>=60&&a<=69)printf(“D”);

Else if(a>=0&&a<=59)printf(“E”);

Else printf(“data error”);

Return(0);}

检查无错误,运行程序,无论输入数值为多少,输出结果均为“data error”。

将程序改为:

#include

Int main()

{int a;

Printf(“n please input your scoren ”);

Scanf(“%d”,&a);

{If(a>=90&&a<=100)printf(“A”);

Else if(a>=80&&a<=89)printf(“B”);

Else if(a>=70&&a<=79)printf(“C”);

Else if(a>=60&&a<=69)printf(“D”);

Else if(a>=0&&a<=59)printf(“E”);

Else printf(“data error”);}

Return(0);}

即在if函数外套一组大括号,使之成为一个语句。再次输入数据,得到正确结果。实验分析:

1、注意if和else的配套使用,不能遗漏。

2、逻辑运算符&&表示“并且”,除此之外,“!”表示“非”,“||”表示“或”,以后使用注

意区分。

3、使用switch语句:

#include

{int a,b;

Printf(“n please input your scoren”);

Scanf(“%d”,&a);

If(a<=100&&a>=0)

{b=a/10;

Switch(b)

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

Case 9 printf(“A”);break;

Case 8 printf(“B”);break;

Case 7 printf(“C”);break;

Case 6 printf(“E”);break;

Case 5 printf(“E”);break;

Case 4 printf(“E”);break;

Case 3 printf(“E”);break;

Case 2 printf(“E”);break;

Case 1 printf(“E”);break;

Case 0 printf(“E”);break;

Default printf(“data error”);}}

Else printf(“data error);

Return(0);}

运行程序,显示程序有误,经检验,错误为case语句后没有加冒号,加上后,限制结果与预期相同。

实验改进:该程序中,反复输入case语句,效率低下,可将条件相同的情况进行合并,进行简化,变成如下形式:

#include

Int main()

{int a,b;

Printf(“n please input your scoren”);

Scanf(“%d”,&a);

If(a<=100&&a>=0)

{b=a/10;

Switch(b)

{case 10:Case 9 :printf(“A”);break;

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

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

Case 6 :Case 5 :Case 4 :Case 3 :Case 2 :Case 1 :Case 0:printf(“E”);break;Default printf(“data error”);}}

Else printf(“data error);

Return(0);}

运行后,得到相同的结果,故简化成功。

实验分析:此实验中,应注意break语句的使用,不能遗漏;case语句应用大括号括住,表示整体的使用;条件允许可以对程序进行适当的简化,提高运算效率;区分IF和SWITCH函数的共性与区别,提高对两者的认识。

实验心得:

1、注意IF语句的使用规则,要与ELSE搭配使用,掌握了多层IF函数的使用方法。

2、掌握了关系运算符与逻辑运算符“与”“或”“非”的使用法方法,“&&”“||”“!”。

3、注意区分数学表达语句与计算机语句的区别,了解计算机语句的特点。

4、必要时可以利用辅助设计语句对程序进行改进,或对程序进行简化,便于加深理解,方

便操作。

c程序设计实验报告 篇7

关键词:实验教学,立体化教材,网络学习平台,过程性评价

0 引言

《C语言程序设计》是计算机专业以及理工类非计算机专业一门重要的基础课程, 该课程作为一门程序设计语言的入门课程, 不仅要求学生掌握一门高级程序设计语言, 更重要的是学习程序设计的思想, 培养学生良好的程序设计风格和思维方式。衡量学生是否真正掌握了这门课程, 不仅仅是熟悉了语法, 掌握了一些算法, 更重要的是, 能够利用所学的知识独立解决一些问题, 因此这门课程是一门实用性很强的课程。切实加强实践教学环节重视对学生自主学习、研究能力和创新能力的培养, 对于提高C语言程序设计课程的教学质量具有重要的意义。鉴于此, 探索对实验教学的改革对提高该课程的教学质量有着重要的作用。多数任该课程的老师都普遍反映, 一些学生对编程实验兴趣不大, 尤其是进行到课程相对较难的内容时, 更是如此。这就要求我们必须重新审视该课程实践教学环节所面临的种种问题, 以期得到很好的解决。

1 存在的问题

1.1 实验课时间相对较少

在C语言的教学中, 实验课的时间占课程的三分之一, 明显感觉学生无法按时完成实验任务。较少的实验时间让学生无法在实验课上完成当次实验所要完成的任务, 只能依靠学生课下自己找时间再继续完成, 这样势必会存在一些问题, 学生可能因为在完成实验任务的时候, 对于遇到的问题不能及时得到辅导与解决, 而会“知难而退”, 大大削减了学生对课程学习的积极性。

1.2 实验教材与教学资料有待完善

目前大部分实验教材都是实验指导与习题集合二为一, 实验项目基本上都是编写程序, 而每一个实验题目都可在本书中找到答案, 学生只要把源程序输入计算机, 进行简单的调试就可以得到实验结果 , 用不着去温习、思考和创新, 因此, 一旦布置一些实验指导书以外的问题, 或者将原有的问题进行扩展, 大部分学生就会束手无策, 不知如何解决。这样不利于培养学生循序渐进的发现问题、分析问题、解决问题的能力和创新能力。

1.3 实验教学与理论教学结合不紧密

传统的语言程序设计的实验教学就是上机调试程序, 只追求将程序调试通过就万事大吉, 但往往结果却事与愿违, 很多同学独立解决一个问题, 不是想不出问题解决的算法, 就是即使有了算法, 编写出来的程序也是语法错误一大堆。因此, 要想实验任务能够很好的完成, 还要督促加强相关的理论知识的学习和掌握, 只有这两个环节都抓好, 才能真正提高教学质量。

2 加强实验教材建设

2009年10月广东省教育厅下达的“广东省高等学校计算机基础课程教改与实践项目”的课题“C语言程序设计立体教材开发”的资助及要求下, 我们集中精力编写一本好用的、有助于提高学生的自学能力和动手实践能力的一本立体化实验教材。

教材本着是通过大量的不同层次的实验任务训练, 着重培养学生读程序、分析程序、修改程序以及编写程序的能力, 以达到提高学生动手编程、解决实际问题的能力以及知识的综合运用能力这一目标, 构建了“文字教材+辅

导学习光盘+网络学习平台”三位一体的立体化学习资源, 使本课程的实践教学由原来单一的按照实验指导书上机调试程序, 转变为学生依托立体化学习资源进行自主学习。

该实验教材除了介绍实验环境和与各实验配套的习题及答案外, 重点集中在实验指导部分, 该部分共有11个实验, 其中2个为综合性实验。每个实验项目的设置如下所示 (综合性实验除外) :

实验名称、实验目的、相关知识点概要及示例、实验任务、读程序改错、程序扩展、编写程序。

每个实验的实验任务都设置了3个层次, 第1层次为读程序改错, 目的是读简单程序, 读懂并纠正程序中的错误, 这些错误, 一般都是初学者易犯的常见错误, 通过改错训练, 避免以后编写程序时犯同样错误;第2层次为程序扩展, 目的是训练学生读程序的能力, 在分析、理解程序的基础上, 模仿原来的程序对程序进行扩充改写, 使得学生能够完成部分编程, 为独立完成编写程序打下基础;第3层次为程序编写, 训练学生独立编程的能力以及解决实际问题的能力。经过“读懂-模仿改写-编写”的实践过程, 在由浅至深的逐步引导中熟悉理解和掌握程序设计的思想、方法和技巧, 并能熟练掌握及运用程序的调试、追踪方法。同时在配套的光碟中还提供了每个实验项目的训练目的、问题分析及解决方法、流程图、参考程序等, 以便于学生自主学习。网络学习平台是基于Blackboard构建的, 里面包括实验环境介绍视频、教学资源、教学难点动画演示, 在线练习, 网络答疑等。

3 实验教学改革

鉴于之前在实验教学中存在的问题, 我们对《C语言程序设计》课程进行了教学改革, 主要体现在以下几方面:

3.1 加强实践教学环节

加大实验学时, 将理论和实验学时的分配比例定为1:1, 这样学生可以有充分的时间进行上机实践, 促进学生对课程的消化理解, 提高学生动手解决问题的能力。除此以外, 期末考试采用上机考试, 因此要求学生不仅能够编写出程序, 而且还要能够调试、运行出程序的结果, 因此学生会更重视上机实践环节。

3.2 借助立体化资源, 培养学生自主学习、协作学习的能力

利用现有立体化教材, 我们把过去简单的布置给学生编程的实验任务转变为“预习-实践-总结”相结合的方式, 避免学生在实验课上因为没有准备而无作事事, 避免学生写出的程序错误一大堆而不知所措, 浪费了很多实验课的宝贵时间。具体做法是:在理论课之后, 实验课之前必须自行完成基本的上机实验任务, 首先包括实验指导书上面的阅读程序改错题、网络学习平台上的在线测试题, 为顺利完成程序扩展和编程题扫清语法障碍;其次, 完成程序扩展题和编程题程序的编写, 为顺利完成实验任务奠定了基础。在此期间, 学生存在的问题可以根据学习平台上的学习资源 (C语言实训教程光盘中的相关资源选择性的放在课程的学习平台上) 进行自主学习, 也可以通过平台上的讨论板进行交流。实验课的任务主要是完成前期预习阶段编写好的程序的调试、运行, 解决预习过程中遗留的问题。完成所有的实验任务后, 对本次试验进行总结, 完成实验报告, 使得学生对本次实验有更深刻的认识。

3.3 加强过程性评价

对于一门实践性较强, 同时逻辑性又较强的课程来说, 要想能够取得良好的教学效果, 平时学习的积累过程是非常重要的。因此, 我们非常重视学生平时的学习过程, 除了传统的记录学生的到课情况、完成作业和实验情况外, 我们鼓励学生积极利用网络教学平台上提供的各种学习资源, 包括巩固基础知识的教学课件、在线练习题、常见问题解答, 也包括教学重点难点解析的动画和视频, 开阔学生视野的经典编程案例以及其它的优秀的课程网站等等。鼓励学生共同探讨学习, 分组讨论, 积极在讨论板中发言, 提出问题或者解决问题, 并且利用Blackboard的课程统计功能, 将学生在平台上学习的痕迹记录下来, 作为平时成绩的一部分, 提高学生对本课程学习的兴趣以及自主学习的意识。这样, 通过日常的积累, 巩固了学生的基础理论知识, 极大的提高了实践教学质量。

4 结束语

针对《C语言实训教程》课程实践教学环节存在的问题, 我们从实验教材建设入手, 按照最初制订的 “边建设, 边使用, 边改进”的原则, 在2010年上半年以网络教材的形式在全校9个开设《C语言程序设计》的班级试用, 并且进行了一系列教学改革, 取得了良好的效果。学生的总评成绩较以前有明显提高, 学生对课程和老师的满意率也显著提高, 在学生对整个部门任课的26名教师的教学质量评价中前7名就有5位是《C语言程序设计》的任课教师, 这是历届以来对C语言课程组老师总体评价最好的一次。这说明我们通过立体化教材资源的建设, 以及通过资源利用采取的一系列实践教学改革得到了学生的认可, 取得了初步的成效。

参考文献

浅析高职C语言实验课程教学改革 篇8

关键词 C语言 实验课程 实验教学改革

中图分类号:G420 文献标识码:A

0 前言

C语言具有过程性、程序化的特点,同有具备高级语言和汇编语言的双重优点,运用C语言不仅能编写操作系统软件,还可以开发各个领域的应用软件。因此,更好地掌握好C语言,可以为进一步学习掌握C++/VC++,JAVA,数据结构等后续相关课程奠定良好的基础。理论教学在C语言课程教学过程中只能让学生学习基础知识,真正地让学生将理论课所学的内容应用到实际当中则是通过实验教学。只有依据学生的具体特点,采用恰当的教学模式、教学方法手段对学生逐步引导、启发学生,才能培养他们较高的逻辑思维能力和编程思想,最终达到C语言课程开设的最终目的。

1 当前高职教育中C语言实验课存在的问题

(1)学生综合能力薄弱。高职院校的学生一般高考分数比较偏低,学习能力和自我控制能力比较差,且综合分析能力及逻辑思维能力要比本科层次的院校学生低一些,因此在大一学习C语言尤其是上好编程实验课程有一定的难度。

(2)理论课时远大于实验课时。在不少高职院校,学校为了完成理论课程的教学计划,不重视实验课程的开设情况,私自缩减其课时数,从而减少了学生亲自动手编程操作的机会,进而降低了其编程思想的培养和编程能力的提高。

(3)实验类型单一。在高职C语言的实验教学过程中,实验类型主要是一些验证型的实验,缺乏设计型实验,学生只是简单地验证一些理论结果,这不利于培养学生主动思考问题的能力、逻辑思维能力和编程能力。

(4)实验环境相对落后。不少高校目前C语言的编译软件还在用DOS下的TC,该环境界面是纯英文,学生运行一系列的DOS命令都比较困难,并且TC本身也不支持鼠标操作,中文输入不方便,但仔细分析调试程序时会产生诸多英文提示,给学生学习带来不便,且全国计算机等级考试环境是VC++6.0,若长期使用TC的环境也不利于将来学生参加等级考试上机实践环节的顺利通过。

(5)实验内容与现实应用脱节。学生的实验内容仅仅停留在教材理论内容的验证,只能达到对基础知识的巩固和掌握,但由于实验内容与现实应用项目脱节,最终导致学生失去学习编程语言的兴趣,并降低了其编程创新能力和学以致用的综合应用能力。

(6)实验课前准备不足,课程效果无法量化。教师在课前会向学生说明应准备的内容,但并没有及时检查和督导,使得学生上机时缺乏明确的量化指标。另外,期末总成绩与上机情况没有直接挂勾,学生在思想上没有压力,也就没有动力,导致学生上机前准备不充分,上机时不抓紧时间,因此无法真正提高上机调试程序的能力。

(7)教师对实验过程监管不力。部分教师认为实验课就是布置好作业,让学生自我练习,自我验证就可以,不能及时指导学生在实验过程中出现的问题,不能及时总结归纳,把共性的错误加以纠正与提醒,大大降低了实验的目的和效果。

2 高职C语言实验课教学改革措施

(1)认真分析教学对象,能准确把握学生的学习能力和学习程度,主动拉近教与学的距离,让学生由被动学习转变为主动学习,增强其学习C语言的兴趣及积极性,真正做到因材施教,最终达到较好的学习效果。

(2)结合国内外优秀编程语言的实验教学方法和模式,以及C语言课程多年的教学实践经验,将理论课和实验课的比例设置成1:1。

(3)任课教师应认真设计好每一个实验模块、实验过程,有效地将理论内容融入到实验课中,实验过程中多结合现实项目需求进行有针对性的练习加以巩固,从而增强学生的学习积极性。

(4)改进C语言的编译环境,选用WINDOWS下的编译软件,比如WIN—TC或VC++6.0,WIN—TC的操作界面不一样,但内核实质上和TC是完全一样的,在WINDOWS下编辑TC代码,充分利用WINDOWS的剪贴版,可以很方便地输入和显示汉字等,使用VC++6.0可以让学生提前多接触等级考试环境,有利于学生的考试过关率提升。

(5)习题量化。在学生上机过程中,要求他们一定的时间内独立完成所布置的任务,然后老师再进行现场指导,及时纠正学生习题中的错误并公平公正地打分,做为平时成绩,以便成为本课程总成绩的评分依据。在学生上机之前可以先把实验内容告诉学生,让他们课前做好准备工作。这样不仅可以使学生互抄作业、不求甚解的弊端降到最低,还可以使教师掌握学生的真实学习状况。

(6)转变学生课堂角色。将实验课交给学生,真正体现学生主体地位,整个实验过程,教师只起到辅助作用,先由学生自主实验,发现问题后提倡学生相互交流沟通,小组讨论解决问题的方法,并让学生自己以教师的角色讲解相应知识点。这不仅有利于培养学生的团队协作精神,还能锻炼学生的逻辑思维能力和语言组织表达能力,对学生将来走上工作岗位奠定了坚实的基础。

3 C语言实验课教学改革的效果

(1)学生学习兴趣和积极性显著提高。因为能在实验课过程中真正体现所学理论知识,并能将其应用到现实问题的解决过程中,学生能感觉到学有所用,能做到学以致用,这些都显著提高了其学习C语言的课堂听课质量。

(2)实验课上机效率明显提高。若学生未能及时将所编写程序顺利通过老师的检查,该学生的此次作业则视为没成绩,学生在上机过程中争分夺秒地学习,根本没有多余时间上网玩游戏,更有甚者在下课后仍要进行调试程序,这会使实验课上机效率得到明显提高。

(3)通过实验课的辅导,任课老师能更深入地了解学生的学习情况,有利于进行个别辅导,这样更具针对性,也能够了更加公正客观地对学生的成绩作出评定,与此同时可以调动学生学习的主动性和积极性,利于学生自主学习。

(4)学生通过在实验课上的自我练习、沟通交流和问题讲解,真正感觉到自主学习的乐趣,并不断全面提升了自己的综合素质,对将来走出校门、走向工作岗位更加信心满怀。

实践证明,这些措施有效实施后,明显提高了同学们掌握并应用C语言的能力和上机调试程序的水平。实行教改措施,对学生而言,提出了更加严格的要求,势必会更加严格要求任课教师和实验教师的各方面能力,其工作量也会随之增加,教师要付出比平时更多的心血才能胜任。

参考文献

[1] 陈国英.提高计算机语言课上机实践教学的改革与实践[J].洛阳农业高等专科学校学报,2002(4).

[2] 谭浩强,张基温.C语言习题集与上机指导[M].高等教育出版社,1993.

[3] 张震.论课堂教学的信息沟通与教学效果的提高[J].山东师大学报,1998(3).

C语言实验报告3 篇9

1.掌握使用if~else语句和switch~case语句实现分支结构的方法。

2.掌握使用三种循环语句实现循环结构的方法。

二、实验内容

1.显示两级成绩

程序填空,不要改变与输入输出有关的语句。

输入一个学生的数学成绩,如果它低于 60,输出“Fail”,否则,输出“Pass”。

文件命名---学号B1.C

源程序:

#include int main(){ int mark;scanf(“%d”,&mark);If(mark<60){

/*运用if~else实现分支结构*/ printf(“Fail.n”);

/*mark<60为真时执行*/ } else{ printf(“Pass.n”);

/*mark<60为假时执行*/ }

return 0;

/*程序的结束状态*/ }

2.求三角形的面积和周长

程序填空,不要改变与输入输出有关的语句。

输入三角形的三条边 a, b, c,如果能构成一个三角形,输出面积area 和周长perimeter(保

留2 位小数);否则,输出“These sides do not correspond to a valid triangle”。

在一个三角形中,任意两边之和大于第三边。三角形的面积计算公式: aere*area = s(s-a)(s-b)(s-c)其中:s =(a+b+c)/2 文件命名---学号B2.C

源程序:

#include #include int main(){ float a, b, c, area, perimeter,s;scanf(“%f%f%f”, &a, &b, &c);if((a+b>c)&&(a+c>b)&&(b+c>a)){

/*运用if~else实现分支结构,逻辑与的运用要到位*/

s=(a+b+c)/2;printf(“perimeter=%.2fn”,a+b+c);

/*调用printf()函数输出周长*/ printf(“area=%.2fn”,sqrt(s*(s-a)*(s-b)*(s-c)));/*平方根函数sqrt()*/ } else{ printf(“These sides do not corrrespond to a valid trianglen”);/*if条件语句为假时执行*/ } return 0;}

3.计算个人所得税

程序填空,不要改变与输入输出有关的语句。

输入一个职工的月薪 salary,输出应交的个人所得税tax(保留2 位小数)。

tax = rate *(salary-850)当 salary <= 850 时,rate = 0;当 850 < salary <= 1350 时,rate = 5;当 1350 < salary <= 2850 时,rate = 10;当 2850 < salary <= 5850 时,rate = 15;当 5850 < salary 时,rate = 20;文件命名---学号B3.C

源程序:

#include int main(){ float rate, salary, tax;scanf(“%f”, &salary);if(salary<=850){

/*运用else-if语句求解多分段函数*/ rate=0;} else if(salary<=1350){

rate=5;} else if(salary<=2850){

rate=10;} else if(salary<=5850){

rate=15;} else{ rate=20;} tax = rate *(salary-850);printf(“tax=%0.2fn”, tax);}

/*else-if语句的分支*/

/*else-if语句的分支*/

/*else-if语句的分支*/

/*调用printf()函数输出结果*/

4.求1+1/2+1/3+......+1/n 程序填空,不要改变与输入输出有关的语句。读入 1 个正整数 n(n<=50),计算并输出1+1/2+1/3+......+1/n(保留3 位小数)。

文件命名---学号B4.C 源程序:

#include int main(){ int n,i;float sum;printf(“n<=50,Enter n:”);scanf(“%d”, &n);sum=0;

for(i=1;i<=n;i++){

sum*/

sum=sum+1.0/i;

} printf(“%.3fn”, sum);

}

/*输入提示“n<=50,Enter n:”*/

/*对sum赋初值0*/

/*使用for循环,循环执行n次,计算

/*调用printf()函数输出sum的值*/

5.求n!程序填空,不要改变与输入输出有关的语句。读入 1 个正整数 n(n<=50),计算并输出 n!。

文件命名---学号B5.C 源程序:

#include int main(){ int i, n;float sum;printf(“Enter n,n<=50:”);

/*输入提示*/ scanf(“%d”, &n);i=1,sum=1;do

/*do~while循环语句*/ { sum=sum*i;

/*循环体语句*/ i++;}while(i<=n);printf(“%.3fn”, sum);

/*调用printf()函数输出sum的值*/

}

6.统计素数并求和

程序填空,不要改变与输入输出有关的语句。

输入 2 个正整数m 和n(1<=m,n<=500),统计并输出m 和n 之间的素数的个数以及这些素数的和(素数就是只能被1 和自身整除的正整数,1 不是素数,2 是素数)。注:嵌套循环

文件命名---学号B6.C

#include #include

/*调用求平方根函数,需要包含数学库*/

int main(){ int count, digit, i, j, k, m, n, sum;printf(“Enter m,n,n<=500:”);

/*输入提示*/ scanf(“%d%d”, &m, &n);

/*调用scanf()函数输入m,n*/ count=0,sum=0;

/*count与sum分别记录素数个数与和,用于控制输出格式*/ for(j=m;j<=n;j++){

/*循环嵌套*/ k=sqrt(j);for(i=2;i<=k;i++)

/*for循环,注意素数的判断*/

if(j%i==0)

/*若m能被某个i整除,则j即m不是素数,循环提前结束*/ break;if(i>k&&j!=1){

/*如果m是素数*/ count++;sum=sum+j;} } printf(“count=%d, sum=%dn”, count, sum);}

三、收获、体会及问题

收获、体会:总的来说,这次实验的完成较实验一来说轻松了许多,因为对代码有了近一步的熟悉,实验的完成过程相对得心应手了许多。本次实验我基本掌握了运用三种循环语句循环结构的方法,对do~while、if~else、switch~case三种语句有了更深的理解,并能够准确的将之运用到编程的过程中,同时三类语句的作用与实现方法我也有了近一步的认识。

C语言课程实践-实践1实验报告 篇10

1.程序源代码

程序1 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则计算机给出提示“Right!”,否则提示“Wrong!”,并告诉人所猜的数是大还是小,然后结束游戏。要求每次运行程序时机器所“想”的数不能都一样。#include #include #include void main(){

int input_number;

int random_number;srand((unsigned)time(NULL));random_number = rand()%100+1;printf(“输入您想猜的0~100之间的数:”);scanf(“%d”,&input_number);if(input_number >= 0 && input_number <= 100){

if(input_number == random_number)

{

printf(“nright!”);

}

else if(input_number > random_number)

{

printf(“n您猜的数过大n”);

}

else

{

printf(“n您猜的数过小n”);

} }

else

{

printf(“n您猜的数应在0~100之间”);} } 程序2 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。#include #include #include void main(){

int input_number;

int random_number;int n;srand((unsigned)time(NULL));random_number = rand()%100+1;for(n=1;;n++){

printf(“输入您想猜的0~100之间的数:”);scanf(“%d”,&input_number);if(input_number >= 0 && input_number <= 100)

if(input_number == random_number)

{

printf(“nright!n”);

if(n==1)

{

printf(“n您猜了%d次,太牛逼了.n”,n);break;

}

else if(n>1&&n<6)

{

printf(“n您一共猜了%d次,水平还行.n”,n);break;

}

else

{

printf(“n您一共猜了%d次,才猜对,很勉强啊.n”,n);break;

}

}

else if(input_number > random_number)

printf(“n您猜的数过大n”);

else

printf(“n您猜的数过小n”);

else

printf(“n您猜的数应在0~100之间”);} } 程序3 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,结束游戏。

#include #include #include void main(){

int input_number;

int random_number;int n;srand((unsigned)time(NULL));random_number = rand()%100+1;for(n=1;n<=10;n++){

printf(“输入您想猜的0~100之间的数:”);scanf(“%d”,&input_number);if(input_number >= 0 && input_number <= 100)

if(input_number == random_number)

{

printf(“nright!n”);

if(n==1)

{

printf(“n您猜了%d次,太牛逼了.n”,n);break;

}

else if(n>1&&n<6)

{

printf(“n您一共猜了%d次,水平还行.n”,n);break;

}

else

{

printf(“n您一共猜了%d次,才猜对,很勉强啊.n”,n);break;

}

}

else if(input_number > random_number)

printf(“n您猜的数过大,您还有%d次机会n”,10-n);

else

printf(“n您猜的数过小,您还有%d次机会n”,10-n);

else

printf(“n您猜的数应在0~100之间”);} if(n==11)

printf(“n你输了!n”);}

程序4 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。每次运行程序可以反复猜多个数,直到操作者想停止时才结束。#include #include #include void main(){

int input_number;

int random_number;int n,i=1;

game: srand((unsigned)time(NULL));random_number = rand()%100+1;for(n=1;n<=10;n++){

printf(“第%d轮游戏,输入您想猜的0~100之间的数:”,i);scanf(“%d”,&input_number);if(input_number >= 0 && input_number <= 100)

if(input_number == random_number)

{

printf(“nright!n”);

if(n==1)

{

printf(“n您猜了%d次,太牛逼了.n”,n);break;

}

else if(n>1&&n<6)

{

printf(“n您一共猜了%d次,水平还行.n”,n);break;

}

else

{

printf(“n您一共猜了%d次,才猜对,很勉强啊.n”,n);break;

}

}

else if(input_number > random_number)

printf(“n您猜的数过大,您还有%d次机会n”,10-n);

else

printf(“n您猜的数过小,您还有%d次机会n”,10-n);

else

printf(“n您猜的数应在0~100之间”);}

} if(n==11){ printf(“n你输了!n”);i=i+1;goto game;} 2.遇到的问题及解决方法

问题1:随机数如何调用?

解决方法:运用srand((unsigned)time(NULL))函数。

问题2:”直到人猜对为止”功能如何实现? 解决办法:运用一个“无穷循环”,另游戏能够不断进行,并运用break语句停止于猜对情况。

问题3: “以此来反映猜数者“猜”的水平”功能的实现?

解决办法:在猜对情况下的if语句中嵌套if语句实现“猜数次数”的判断,分支输出“猜”的水平。

问题4:“每次运行程序可以反复猜多个数”功能的实现?

解决办法:此功能比较困难,但反复阅读程序后,发现代码并不复杂,运用goto语句和if语句的运用进行循环,即可实现此功能,且不会因为运用goto语句造成程序模块的混乱。

3.总结(心得体会)

这是“C语言课程实践”的第一次实践,由于平时并没接触过Microsoft Visual C++ 6.0这个编译软件,因此刚开始还存在操作方面的苦难。经过一两节课的实践,能够熟悉界面和学会新建工程。

此次实践题目是“猜数游戏”,题目分成4个部分,其实内容相同,只是功能逐渐增加。鉴于这种题目,编写程序中需要思考预留部分,比如运用if语句嵌套时,要注意把“猜对”、“猜错”和“误猜”分支出来,使程序容易阅读也容易进行修改。

在编写程序过程中,遇到几个核心问题,通过学习后把困难一个个突破,并成功实现题目所要求的功能。

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:iwenmi@163.com

上一篇:诉讼请求 范文下一篇:个人简历怎么做?

付费复制
期刊天下网10年专业运营,值得您的信赖

限时特价:7.98元/篇

原价:20元
微信支付
已付款请点这里联系客服
欢迎使用微信支付
扫一扫微信支付
微信支付:
支付成功
已获得文章复制权限
确定
常见问题