c语言程序实习报告

2022-08-01

实习是大学阶段必不可少的一部分,通过实习大学生不仅能实现理论知识与社会实践的统一,更是能对社会有初步的了解,为毕业后走出社会奠定一定的基础。以下是小编收集整理的《c语言程序实习报告》仅供参考,希望能够帮助到大家。

第一篇:c语言程序实习报告

C语言程序设计实习报告

实习报告

目: C语言程序设计 所属系、部 : 电气工程学院 班

级: 电子商务131 姓

名:

贺道君 学

号: 20130102212035 指 导 教 师: 费 玲 玲

2014年6月

一、 实习目的

加深理解C语言基础知识及其编程技术,了解高级程序设计语言的结构,熟练掌握程序设计方法和技巧,掌握基本的分析和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。

二、 实习时间、地点

6月16日(星期一)上午:微机室5

下午:微机室5

6月17日(星期二)

3、4:微机室5

下午:微机室3

6月18日(星期三)上午:微机室5

下午:学校

6月19日(星期四)上午:微机室5

下午:微机室3

6月20日(星期五)上午:C101

下午:学校

三、 实习内容

综合

四、 实习总结

在学C语言的一个学期后,我们进行了C语言实训阶段,尝试自己编写一个比较复杂的程序系统。在为期一周周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。在这里,我作为其中的参与者,自然感触良多

刚开始接触到C的时候,我已经学过一些有关VB的内容,这个在算法和思维上稍微有点帮助。回想本学期的学习,首先,最基本的,是C的数据格式,让我们知道整数,浮点数以及字符常量在C中的运用。然后,在学会了数据转化,以及熟练的可以对各种数据处理之后,我开始进行有关数据结构,像数组,结构体等的学习,因为有的东西从现有的知识来看都是非常简单的,还没有联系到指针等等一些复杂的概念。可是,仅仅学会这些是远远不够的,C语言中,还有很多更加经典、重要、实用的知识。

说说函数。虽说很多程序语言都有函数这一内容,但我觉得C语言的函数是最有魅力的了。学习函数的方法是比较简单的,只有两个字“牢记”,即:牢记函数的功能,牢记函数的用途以及如何输入输出。函数从本质上讲是一段通用程序,用它可以帮助我们节约很多编程的时间,学习C语言的“高人”都说,一个聪明的编程者在编写程序前往往总是先找自己所编写的程序中有多少是可以用函数来代替的。比如,大家可以作一个比较字符串的实验,用C语言中的strcmp()函数只要一句话,而自己编写的话,30句都很难实现,可想而知函数的实用和快捷。在我们C语言实训的代码中,函数更是得到了充分的应用,可以说,实训题目的复杂代码,就是用无数个函数的调用和嵌套积累出来的。要注意的是,有的同学刚刚开始的时候,都是被一些大的程序激励的,所以当开始的时候看到繁琐的数据转化和简单的算法,都觉得很无聊,都想自己做几个自己满意的程序来看看,虽然这种想法很好,但是,我们说,没有基础,纯粹是搬照一些现成设计方法,是不足取的。要知道,程序设计讲究的是个人的思维的,假如刚开始就被一些现成的思想束缚住,以后就会觉得很无趣。

我们知道,指针其实是C语言的灵魂,许多的数据结构在我们学到这里之前都可以说是精通了。所以我们的任务就是,让数据结构在指针中运行。当然,刚刚开始接触到这些新的东西,是一件非常痛苦的事情,所以我们一定要用非常形象的思维去看待指针,不能太固化。所以,新的东西,比如结构体在指针中的表现方法,数组及多维数组在结构体中的运用,都一点一点的加了进来,同时丰满了我们对原来C的数据机构,数据表示的理解。当我们完成了这三步的学习,我们已经可以自豪的说,我们的基础都扎实了,可以进一步的学习有关算法,设计概念等等深层次的东西了。

但是,指针,结构体,这些太抽象的东西,在学习C语言的时候我们就有点“似懂非懂”,可是在眼下的C语言实训中,像这么重要的C语言知识,一定要达到能熟练掌握,实际运用的程度。在实训的大程序中,结构体在指针中的表现方法,数组及在结构体中的运用等具体的技术环节,都得到了体现,不会指针,我们的工作是没法展开的。所以,在实训期间,大家在巩固基本知识的基础上,逐块攻克实训课题,克服了困难,自信心得到了提高。

最后,谈谈我们组的程序软件。商店商品管理系统,是一个比较利于应用,解决实际问题,方便实际管理的程序。设计代码比较复杂,结构比较严谨。在程序编写的1周左右的时间里,组员们遇到了上述的困难,包括程序设计构思,甚至是指针等某些知识点的欠缺,导致的工作中出现的困难。但是,当大家一起团结协作,解决了这些困难之后,发现自己也可以编写复杂的、应用性的程序了,更发现自己对C语言这门学科的兴趣也提高了。

当然,我们编写的商店商品管理系统,还存在很多疏漏和不合理之处。比如,程序复杂冗长,如果时间充裕,我们将在不改变程序运行结果的基础上,简化程序,使每一句更加精辟,总体上更加简化。另外,在程序的外观上,我们由于时间问题,没有做更多的修饰,运行起来显得比较死板、枯燥乏味。如果增添一些色彩和其他效果,我们的程序也许会更加完美。 以上就是我的C语言实训个人总结

第二篇:C语言实习报告

新疆昌吉学院

《C语言程序设计》 教学实习报告

部门:信息技术分院

专业:计算机应用技术 班级:2010高职应用

姓名: 指导教师:

《C语言程序设计》教学实习报告

2010高职应用班

一、实习时间:

2011 年 6 月 13 日至

2011 年

6 月 17 日

二、实习地点:第一微机室

三、实习目的:(小4宋体,约150字)

(1)能进一步熟悉C程序的编辑、编译、连接和运行的过程;

(2)通过C语言环境下的应用实例,能有编写程序的能力,掌握编程的思路和方法,掌握C语言程序设计的基本概念和基本技能;

(3)在程序调试过程中,能根据运行结果,运用相应的手段,正确地找出并解决程序中的逻辑错误;

(4)可以掌握不同类型数据之间赋值的规律;

(5)通过解题、程序设计和上机实践,能加深对所学概念的理解,使得理论与实践相结合的学习方法;

(6)通过C语言程序设计的课程实习,我们能具有使用计算机解决相关问题的能力,为今后学习其他计算机应用课程打下较好的程序设计基础。

四、实习内容及方法:

实训一 C语言的编程环境:

1、Turbo C运行环境。

了解TC的基本环境,熟悉常用菜单项和快捷键。

2、C程序的编辑、编译、连接和运行过程。 掌握C程序的运行步骤,初步了解C程序的特点。

3、VC6.0环境的熟悉,能按照软件并在软件中能够调试简单的C语言程序。 实训二 C语言数据类型、运算符及表达式:

案例3:字母转换问题。本案例在执行时,将提示输入一个字母,如果输入的是小写字母,程序将输入的小写字母转换为大写字母并输出,否则按原样输出。 步骤:

1、定义变量,和变量类型;

2、寻找大小写字母的 ASC||码值得关系;

3、输入输出变量。 代码:

结果:

实训三 C程序的三种基本结构的应用

案例1:输入某年某月某日,判断这一天是这一年的第几天? 解题步骤:

1、定义变量年year月month、日day、和第几个月的天数总和sum;

2、定义month变量作为switch语句的测试条件;

3、从键盘上输入年、月、日的值;

4、输出这一年的第几天sum。 程序分析:

输入某年某月某日,判断这一天是这一年的第几天?那么需要考虑三个变量,年,月,日。

首先,年主要要考虑的因素是否是闰年的问题。月要考虑的是那一个月的问题。因为不同月的天数不一样。日嘛,就不用说了。

还有就是,月份是一月或者二月,那么就不需要考虑是否闰年的问题,因为不需要计算二月总共多少天。

上述程序,首先是在默认闰年的情况下计算某月前面所有月的天数和,然后加上当月的零头天数,最后才是判断当月是否大于二月,如果大于二月,那么必须考虑闰年的问题,再接着判断是否闰年,如果非闰年总天数减一,是闰年不变,因为在开始计算的过程中时默认闰年的。

3 代码:

main() { int day,month,year,sum,leap; clrscr(); printf(" please input year,month,day "); scanf("%d%d%d",&year,&month,&day); switch(month) { case1:sum=0;break; case2:sum=31;break; case3:sum=59;break; case4:sum=90;break; case5:sum=120;break; case6:sum=151;break; case7:sum=181;break; case8:sum=212;break; case9:sum=243;break; case10:sum=273;break; case11:sum=304;break; case12:sum=334;break; default:printf("data error");break; } sum=sum+day; if(year%400==0||(year%4==0&&year%100!=0)) leap=1; else leap=0; if(leap==1&&month>2) sum++; printf("it is the %dth day.",sum); getch(); }_ 案例4:求200-300之间所有素数,每5个换行。 程序分析:先将1挖掉(为什么?因为1不是素数) 用2去除它后面的各个数,把能被2整除的数挖掉,

用3去除它后面各数,把3的倍数挖掉,用循环体分别将

4、5„各数作为除数去除这些数以后的各数。直到除数后面的数已全部挖掉为止

代码:

main() {

4 int i,j,n=0; clrscr(); for(i=200;i<=300;i++) { for(j=2;j<=i;j++) if(i%j==0) break; if(j>=i) { printf("%4d",i); n++; } if(n%5==0) printf(" "); } getch(); }_

案例8:打印输出九九乘法表。 解题步骤:

1、定义行变量、列变量。

2、循环输出行乘列的值。

3、每行最后输出一个换行符。 程序分析:

两个循环嵌套时,第一个循环语句为外循环,第二个循环语句为内循环,外循环执行一次,内循环从头到尾执行一遍(可能执行多次循环体),因此本题的执行次数为:1+2+3+4+5+6+7+8+9=45次。

代码:

结果:

实训四 数组的定义和使用:

案例

3、打印杨辉三角,输出前10行数据。 解题步骤: (1) 定义变量;

(2) 确定数组的行与列; (3) FOR循环给数组赋值。 (4) 输出这个数组。 程序分析:

杨辉三角是(a+b)的n次幂的展开式系数,如: (a+b) 系统数是1 1 (a+b)2展开后的系数是 1 2 1 (a+b)3展开后的系数是 1 3 3 1 从而得到杨辉三解的系数规律(指数为n):

1、共有n+1组系数,且第K组(从0)开始有K+1个数。

2、每组最后一位与第一位均为1

3、若用二维数组存放系数,每行存放一组,则从第二行开始除最后一个数与第一个数外,每个数都是其所在行的前一行同一列与前一列之各。 代码:

#include "stdio.h" main() { int i,j,a[10][10]; for(i=0;i<10;i++) for(j=0;j<10;j++) a[i][j]=0; for(i=0;i<10;i++) { a[i][0]=1; a[i][i]=1; } 6 for(i=0;i<10;i++) { for(j=0;j<10;j++) printf("%d ",a[i][j]); printf(" "); } 结果:

实训五 函数的应用:

案例3:用函数和递归实现求n! 程序分析:

(1)首先在有限递归中,必须有一个测试避免递归调用的条件,即当满足该条件时,不再递归。而在递归函数中,应该是先测试,后进行递归调用。在本例中,if语句就是这种测试条件,当n等于0时,则不再递归,即退出该递归函数。

(2)在递归函数中,至少要有一个递归调用的语句,并且该语句的参数应该逐渐逼近递归结束的条件。其中,该语句参数n-1是逐次减1,当n为0时,则不再调用递归函数。

(3)完成该递归函数。

代码:

结果:

7

实训六 指针的应用

案例1:分析并对比如下2个程序,写出运行结果,并上机验证。

1.1 main() {int *p1,*p2,*p,a,b; a=5;b=9; p1=&a;p2=&b; if(a

a=5 , b=9 Max=9 , min=5

五、结论(小4宋体,约1500字)

1、收获:

(1)通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,当一个程序写完以后,经常会有很多错误。不过,通过这几天的实训和小组讨论,逐渐让自己积攒了一些经验,有些错误可以很快就看出来。

(2)这次实训让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了较多的兴趣和更深层的认识。

(3)C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌 8 套,条理很清楚,不是一个零散的知识,而是一门较有逻辑思维能力培养的学科。

2、不足:

(1)通过实训我也知道了自己的不足,存在的很多问题。比如自己写的写的小程序出了问题,不会解决了就叫同组的帮忙,虽然说一定意义上增加了同学之间的感情,但是会养成一种依赖的心理,碰到问题了个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到没有别人帮助的时候也可以完成一些简单的程序编写与错误排除。

(2)还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。其实只要理清了思路,把基础知识掌握了,然后有条不紊的分析,一步一步理解,感觉C语言还是很有意思的课程。

(3)自己亲自动手编写程序让我增加了对C语言程序开发环境的了解,在上课的时候老师就讲,学习C语言最重要的是学习C语言的逻辑思维,不管以后从事什么行业,学习C语言都对自己的职业很有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的编程工作可能不用C语言,但是拥有扎实的C语言基础是对工作很有用的。当初在初步接触C语言的时候,看着一堆“奇形怪状”的符号,觉得甚是无聊,通过这次实训,摆脱了那种似懂非懂的状态!

六、致谢

感谢学校安排这次实训和老师的耐心讲解,让我学到了很多知识,在实训过程中,同学之间的相互探讨,老师的循循善诱,最终让我们达到了举一反三的效果,在学知识的同时,也增加了同学老师之间的感情。希望以后还会有更多类似的实训课程,在有限的大学时间内学到更多的实用技能,为以后的工作打下一个良好的基础。

第三篇:C语言实验报告

C语言第一学期实验:

第1次实验: 时间 2010-9-15

项目名称:创建第一个C语言程序

仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0

实验程序:

1、 单击“开始”“程序”“Microsoft Visual Studio 6.0”“Microsoft Visual C++ 6.0”,打开VC++。

2、 在菜单中选择“文件”“新建”,在“工程”选项卡中选择“Win32 Console Application”,

输入一个名称,点“确定”,新建一个新的工程。

3、 再选择“文件”“新建”命令,在“文件”选项卡中选择“C++ Source File”,输入一个

名称,点“确定”,新建一个C++源文件。由于C++全面支持C,因此可以在此输入C语言的源代码,进行实验。

4、 在代码框中输入如下代码:

#include

void main ( )

{

int a,b,sum;

a=123; b=456;

sum=a+b;

printf ("sum is %d ", sum);

}

5、 编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中

选择“构建”最后在“编译”中选择“执行”。

实验结果:

sum is 579

讨论:本实验让我们了解了如何创建一个C语言的控制台应用程序,并学会了C语言程序的基本构架和个别特殊语句如“main”“printf”等。

实验地点:3B-20

3第2次实验:时间:2010-10-6

项目名称:顺序结构程序设计实验

(书89页4.9题,先把题抄下来)

仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0

实验程序:

1、打开VC++6.0,新建一个C++源程序,在代码窗口输入程序如下:

(自己写代码)

2、编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中选择“构建”最后在“编译”中选择“执行”。

实验结果:„„

讨论:„„

实验地点:3B-20

3第3次实验:时间:2010-10-27

项目名称: 选择语句switch的使用

(书111页5.6题,先抄题)

仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0 实验程序:

1、打开VC++6.0,新建一个C++源程序,在代码窗口输入程序如下:

(自己写代码)

2、 编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中选择“构建”最后在“编译”中选择“执行”。 实验结果:„„ 讨论:„„ 实验地点:3B-20

3第4次实验:时间:2010-11-17 项目名称:循环语句for的使用(书129页6.1,先抄题)

仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0 实验程序:

1、打开VC++6.0,新建一个C++源程序,在代码窗口输入程序如下:

(自己写代码)

2、编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中选择“构建”最后在“编译”中选择“执行” 实验结果:„„ 讨论:„„

实验地点:3B-20

3第5次实验:时间: 2010-12-8 项目名称: 数组的应用(书134页例题7.3,先抄题)

仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0 实验程序:

1、打开VC++6.0,新建一个C++源程序,在代码窗口输入程序如下: (自己写代码)

2、编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中选择“构建”最后在“编译”中选择“执行” 实验结果:„„ 讨论:„„

实验地点:3B-20

3第二学期实验:

第1次实验: 时间 2011-2-25 项目名称:编写函数

(在主函数中输入两个数,分别调用四个自定义函数,实现两个数的加、减、乘、

除并输出结果。)

仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0 实验程序:

6、 打开VC++6.0,新建一个C++源程序,在代码窗口输入程序如下: #include void main() {

int add(int x,int y); int sub(int x,int y); int mul(int x,int y); float div(int x,int y); int c,a,b; float d;

scanf("%d,%d",&a,&b); c=add(a,b);

printf("%d+%d=%d ",a,b,c); c=sub(a,b);

printf("%d-%d=%d ",a,b,c); c=mul(a,b);

printf("%d*%d=%d ",a,b,c);

d=div(a,b);printf("%d/%d=%f ",a,b,d); }

int add(int x,int y) {

return x+y;

}

int sub(int x,int y) {}

return x-y;

int mul(int x,int y) {} {

return x*y;

float div(int x,int y)

return (float)x/(float)y;

}

2、编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中选择“构建”最后在“编译”中选择“执行”。 实验结果:„„ 讨论:„„。

实验地点:3B-20

1第2次实验:时间:2011-3-11 项目名称:指针的应用(书278页10.3,先抄题)

仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0 实验程序:

1、打开VC++6.0,新建一个C++源程序,在代码窗口输入程序如下: (自己写代码)

2、编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中选择“构建”最后在“编译”中选择“执行”。 实验结果:„„ 讨论:„„

实验地点:3B-20

3第3次实验:时间:2011-4-8

项目名称:顺序结构程序设计实验(书318页11.3题,先把题抄下来)

仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0 实验程序:

1、打开VC++6.0,新建一个C++源程序,在代码窗口输入程序如下:

(自己写代码)

2、编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中选择“构建”最后在“编译”中选择“执行”。 实验结果:„„ 讨论:„„

实验地点:3B-203

9.1

#include

#define S(A,B,T) T=A;A=B;B=T void main(){} 9.6

#include #define PR printf #define NL " "

int a,b,t;

scanf("%d,%d",&a,&b); S(a,b,t);

printf("%d,%d ",a,b);

#define F "%6.2f"

#define F1 F NL #define F2 F F NL #define F3 F F F NL void main() {

float a,b,c; a=1;b=2;c=3; PR(F1,a);

PR(F2,a,b);PR(F3,a,b,c); }

作业:

#include

#include

void main() {

void fun1(float a,float b, float c);void fun2(float a,float b ,float c);void fun3(float a,float b, float c);float a,b,c,disc;

scanf("%f%f%f",&a,&b,&c);disc=b*b-4*a*c; if(disc>0)fun1(a,b,c); else if(disc==0)fun2(a,b,c); else

fun3(a,b,c); }

void fun1(float a,float b,float c) {

float d=b*b-4*a*c; float x1,x2;

x1=(-b+sqrt(b*b-4*a*c))/(2*a); x2=(-b-sqrt(b*b-4*a*c))/(2*a); printf("%f,%f ",x1,x2); }

void fun2(float a,float b,float c) {

float d=b*b-4*a*c; float x1,x2;

x1=x2=(-b)/(2*a);

printf("%f,%f ",x1,x2); }

void fun3(float a,float b,float c) {

printf("此函数无解"); } P278

#include void main() {void aa(int x[],int n);int i,a[10];

for(i=0;i<10;i++)scanf("%d",&a[i]);

printf("交换前: ");

for(i=0;i<10;i++)printf("%d,",a[i]);printf(" ");aa(a,10);

printf("交换后: ");for(i=0;i<10;i++)

printf("%d,",a[i]);printf(" ");

}

void aa(int x[],int n) {

int

temp,max=x[0],min=x[0],max_n=0,min_n=0,i;//假设第一个数是最大和最小的数,那么max,min的下标就=0for(i=1;i

max=x[i];max_n=i;}

if(min>x[i]){min=x[i];

min_n=i;

}}

if(min_n!=0){temp=x[0];x[0]=x[min_n];

x[min_n]=temp;

}

if(max_n!=n-1){temp=x[n-1];x[n-1]=x[max_n];x[max_n]=temp;

}

} eee:

#include

void main() {void jiaohuan(int *pt1,int *pt2);int a,b;

scanf("%d,%d",&a,&b);printf(" 交换前: ");printf("a=%d,b=%d ",a,b);jiaohuan(&a,&b);printf(" 交换后: ");printf("a=%d,b=%d ",a,b);

}

void jiaohuan(int *pt1,int *pt2) {int temp;temp=*pt1;*pt1=*pt2;*pt2=temp;

}

习题11.3 方法一: #include void main() {int i;

struct student{int num;

char name[10];int score[3];

}stu[5]={{101,"A",50,60,80},{102,"B",9

0,67,45},{103,"C",30,40,50},{104,"D",90,80,70},{105,"E",60,70,80}};

printf("NUM

NAME SCORE ");for(i=0;i<5;i++)

printf("%4d%8s%8d,%2d,%2d ",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);

}

方法二 : #include void main() {int i;

struct student{int num;

char name[10];

int score[3];}stu[5];for(i=0;i<5;i++){

printf("

学号:");scanf("%d",&stu[i].num);printf("姓名:");scanf("%s",&stu[i].name);printf("成

");scanf("%d,%d,%d",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);}printf("NUMNAME SCORE ");for(i=0;i<5;i++)

printf("%4d%8s%8d,%2d,%2d ",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);}

第四篇:c语言实验报告

实验报告一

(注意:红字不用抄写,其它必须抄写。实验纸不够用写反面。)

一、实验内容

if语句、ifelse语句、ifelse if语句的练习

二、重点难点

分析题目,正确应用相应的选择语句

三、实验目的

掌握if语句、ifelse语句、ifelse if语句的简单用法

四、实验要求

根据题目,编写程序并在vc6.0开发平台运行,查看运行结果是否与期望一致

五、实验题目

输入三角形的三边边长,判断并输出,说明三角形是等边、等腰、直角、一般三角形。

六、实验过程

1. 画流程图

2. 编写完整的程序

3. 写出实验程序运行结果

七、实验总结:(模仿着写三行文字即可)

通过……对……进行了练习……实验中遇到了……经过……解决了……从实验中学到了……以后在实验中应注意……。

第五篇: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): "); 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: ");

scanf("%d",&x);

printf("%d is ",x);

if(x<10) printf("less than 10 ");

else if(x<100) printf("10 to 99 ");

else if(x<1000) printf("100 to 999 ");

else printf("more than 1000 ");

return 0;

}

【结果及截图】

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

【习题3】

【源程序实现】

#include

#include

main()

{

int n,N;

float pi,sum=0;

printf("Please input a number: N=");

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(" price=");scanf("%f",&price); printf(" num=");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("=%d",sum); } 【结果及截图】

六.简答题

七、实验总结及体会

上一篇:第七章第三节印度1下一篇:财务室工作总结

本站热搜