C语言实验.docx
《C语言实验.docx》由会员分享,可在线阅读,更多相关《C语言实验.docx(15页珍藏版)》请在冰豆网上搜索。
C语言实验
C语言实验报告
课程名称:
高级语言程序设计
系(院):
信息工程学院
专业:
电子信息工程
班级:
学生姓名
学号:
指导教师:
开课时间:
学年第学期
关于实验报告的说明
(一)对教师和学生的基本要求
1、加实验的学生需提交实验报告,一次实验写一个实验报告。
实验报告要求字迹工整,文字简练,数据齐全,图表规范,计算正确,分析充分、具体、定量。
2、教师应根据学生在实验中和在实验报告书写中反映出来的认真程度、实验效果、理解深度、独立工作能力、科学态度等给予出恰当的评语,并指出实验报告中的不妥之处,然后依照评分细则,采用100分制评出成绩并签名和评定日期。
如学生抄袭或缺交实验报告达该课程全学期实验报告总次数三分之一以上,不得同意其参加本课程的考核。
3、学期结束后任课教师要及时收交学生实验报告,并按要求给出学生实验报告成绩册和学生实验报告上交到系办公室。
(二)内容填写要求
1、实验项目名称:
要用最简练的语言反映实验的内容。
2、实验目的和要求:
目的和要求要明确,在理论上验证定理、公式、算法,并使实验者获得深刻和系统的理解,在实践上,掌握使用实验设备的技能技巧和程序的调试方法。
3、实验内容及步骤:
这是实验报告极其重要的内容。
要抓住重点,可以从理论和实践两个方面考虑。
只写主要操作步骤,不要照抄实习指导,要简明扼要。
还应该画出实验流程图,再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。
4、实验结果:
根据实验目的将原始资料系统化、条理化,用准确的专业术语客观地描述实验现象和结果,要有时间顺序以及各项指标在时间上的关系。
5、实验总结:
根据相关的理论知识对所得到的实验结果进行解释和分析和总结。
也可以写一些本次实验的心得以及提出一些问题或建议。
实验报告
课程名称
高级语言程序设计
实验日期
实验项目名称
模块化程序设计
1#609机房
实验类型
☐验证型☑设计型
☐综合型
学时
6
一、实验目的及要求(本实验所涉及并要求掌握的知识点)
1.掌握自定义函数的一般结构及定义函数的方法;
2.掌握函数声明、函数调用的一般方法;
3.掌握变量的存储属性;
4.掌握函数的嵌套调用与递归调用;
5.掌握编译预处理命令的使用。
二、实验环境(本实验所使用的硬件设备和相关软件)
1.硬件:
个人计算机
2.软件:
WindowsXP、VC++6.0
三、实验内容及步骤
实验内容:
1.编写程序,输入精度e,用下列公式求cosx的近似值,精确到最后一项的绝对值小于。
要求定义和调用函数funcos(e,x)求余弦函数的近似值。
2.编写一个判断素数的函数。
调用该函数,计算并输出区间[1450,1550]内所有素数的和。
(提示:
只能被1和自身整除的自然数称为素数。
)
3.编写函数,判断一个5位数是否满足以下条件:
它的中间一位数能被6整除,截取它的前2位数和后2位数,这两个数也能被6整除,例如:
12000、54624、78696。
要求调用该函数,计算并输出区间[10000,40000]之间满足条件的数据的个数。
4.编写一计算阶乘值的函数。
调用该函数,计算并输出n!
+m!
*(n-m)!
(不妨设n>m)。
5.编写程序,输入两个正整数m和n(
),输出m~n之间的所有满足各位数字的立方和等于它本身的数。
要求定义并调用函数is(number)判断number的各位数字之立方各是否等于它本身。
6.编写程序,输入一个整数,将它逆序输出。
要求定义并调用函数reverse(number),它的功能是返回number的逆序数。
例如reverse(12345)的返回值是否54321。
7.编写一计算阶乘值的递归函数。
调用该函数,计算并输出n!
+m!
*(n-m)!
(不妨设n>m)
8.用递归法编写求fibonacci数列项的函数,返回值为整型,并写出相应的主函数,递归公式为
。
9.输入一个整数n,将其转换为二进制后输出,要求定义并调用函数dectobin(n),它的功能是输出n的二进制。
例如,调用dectobin(10),输出1010。
选做题:
1.输入n(n<10)个整数,统计其中素数的个数。
要求程序由两个文件组成,一个文件中编写main函数,另一个文件中编写素数判断的函数。
使用文件包含的方式实现。
2.编写一个函数,利用参数传入一个3位数n,找出101~n间所有满足下列两个条件的数:
它是完全平方数,又有两位数字相同,如144、676等,函数返回找出这样的数据的个数。
请同时编写主函数。
操作步骤:
(1)启动VC++6.0(双击桌面上的快捷方式图标);
(2)在编辑器窗口中输入程序1源代码;
(3)编译源程序;
(4)连接运行源程序。
四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图)
程序1:
#include
#include
//n!
doublefact(intn)
{
inti;
doublep=1;
for(i=1;i<=n;i++)
p=p*i;
returnp;
}
//funcos(e,x)
doublefuncos(doublee,doublex)
{
doublem=1,n=0,t=1,coss=0;
while(fabs(t)>=e)
{t=m*pow(x,n)/fact(n);
coss=t+coss;
n=n+2;
m=-m;
}
returncoss;
}
intmain()
{
doublee,x,coss;
printf("entere,x:
");
scanf("%lf%lf",&e,&x);
coss=funcos(e,x);
printf("%.7lf\n",coss);
return0;
}
程序2:
#include
intprime(intm)
{
inti;
for(i=2;i<=m/2;i++)
{
if(m%i==0)
break;
if(i>=m/2)
return0;
else
return1;
}
}
main()
{
intsum=0,m;
for(m=1450;m<=1550;m++)
{
if(prime(m)==1)
sum=m+sum;
}
printf("sum=%d\n",sum);
return0;
}
程序3:
#include
intfun(intn)
{
if(n/100%10%6==0&&n/1000%6==0&&n%100%6==0)
return1;
else
return0;
}
intmain()
{
intcount=0,n;
for(n=10000;n<40000;n++)
{
if(fun(n)==1)
count=count+1;
}
printf("count=%d\n",count);
return0;
}
程序4:
#include
intfact(intn)
{
intp=1,i;
for(i=1;i<=n;i++)
p=p*i;
returnp;
}
intmain()
{
intm,n,t;
printf("entern,m");
scanf("%d%d",&n,&m);
t=fact(n)+fact(m)*fact(n-m);
printf("n!
+m!
*(n-m)!
=%d\n",t);
return0;
}
程序5:
#include
#include
intis(intnumber)
{
intt,sum=0,m;
m=number;
while(number!
=0)
{
t=number%10;
sum=sum+pow(t,3);
number=number/10;
}
if(sum==m)
return1;
else
return0;
}
intmain()
{
intm,n,i;
printf("enterm,n:
");
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{if(is(i)==1)
printf("%d\n",i);
}
return0;
}
程序6:
#include
#include
intreverse(intnumber)
{
intt,s=0;
while(number!
=0)
{
t=number%10;
s=s*10+t;
number=number/10;
}
returns;
}
intmain()
{
intmn,number;
printf("enternumber:
");
scanf("%d",&number);
mn=reverse(number);
printf("%d\n",mn);
return0;
}
程序7:
#include
intfact(intn)
{
if(n==1||n==0)
return1;
else
returnfact(n-1)*n;
}
main()
{
intn,m;
printf("entern,m:
");
scanf("%d%d",&n,&m);
printf("%d\n",fact(n)+fact(m)*fact(n-m));
return0;
}
程序8:
#include
intf(intn)
{
if(n==0)
return0;
if(n==1)
return1;
else
returnf(n-2)+f(n-1);
}
intmain()
{
intn;
printf("entern:
");
scanf("%d",&n);
printf("%d\n",f(n));
return0;
}
程序9:
#include
voiddectobin(intn)
{
if(n>1)
dectobin(n/2);
printf("%d",n%2);
return;
}
main()
{
intn;
printf("entern:
");
scanf("%d",&n);
dectobin(n);
}
#include
voiddectobin(intn)
{
if(n>0)
dectobin(n/2);
else
return;
printf("%d",n%2);
}
main()
{
intn;
printf("entern:
");
scanf("%d",&n);
dectobin(n);
}
选作一:
42401.cpp
intfun(intt)
{
inti;
for(i=2;i<=t/2;i++)
if(t%i==0)
break;
if(i>t/2)
return1;
}
#include
#include"G:
\CYY\42401.cpp"
intmain()
{
intt,count=0,i,n;
printf("entern:
");
scanf("%d",&n);
printf("输入一个数t:
");
scanf("%d",&t);
for(i=1;i{
printf("输入一个数t:
");
scanf("%d",&t);
if(fun(t)==1)
count++;
}
printf("%d\n",count);
}
#include
#include
intfun(intt)
{
inta,b,c;
doublei;
a=t/100;
b=t%100/10;
c=t%10;
i=(int)sqrt(t);
if(i*i!
=t)
return0;
elseif((a==b)||(a==c)||(b==c))
return1;
else
return0;
}
intmain()
{
intn,t,count=0;
printf("entern:
");
scanf("%d",&n);
for(t=101;t<=n;t++)
if(fun(t==1))
count++;
printf("%d\n",count);
return0;
}
五、实验总结(对本实验结果进行分析,实验心得体会及改进意见)
实验评语
实验成绩
指导教师签名: