C语言实验.doc
《C语言实验.doc》由会员分享,可在线阅读,更多相关《C语言实验.doc(40页珍藏版)》请在冰豆网上搜索。
![C语言实验.doc](https://file1.bdocx.com/fileroot1/2022-10/7/be151c67-7efd-4490-ab42-39519adbf215/be151c67-7efd-4490-ab42-39519adbf2151.gif)
扬州大学信息工程学院
实验报告
课程名称C语言程序设计
学生姓名
班级
学号
指导老师
2012年5月18日
自己写的程序
4.8设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
#include"stdio.h"
voidmain()
{
floatr,h,C,s,S,v,V;
floatp=3.141592;
scanf("%f,%f",&r,&h);
C=2*p*r;
s=p*r*r;
S=4*p*r*r;
v=4.0/3.0*p*r*r*r;
V=p*r*r*h;
printf("圆周长为:
%6.2f\n",C);
printf("圆面积为:
%6.2f\n",s);
printf("圆球表面积为:
%6.2f\n",S);
printf("圆球体积为:
%6.2f\n",v);
printf("圆柱体积为:
%6.2f\n",V);
getch();
}
运行结果:
3,4,
圆周长为:
18.85
圆面积为:
28.27
圆球表面积为:
113.10
圆球体积为:
113.10
圆柱体积为:
113.10
4.9输入一个华氏温度,要求输出摄氏温度。
公式为C=5/9(F-32),输出要有文字说明,取两位小数。
#include"stdio.h"
voidmain()
{
floatc,F;
scanf("%f",&F);
c=5.0/9.0*(F-32);
printf("华氏温度为:
%6.2f",c);
getch();
}
运行结果:
华氏温度为:
15.56
6.1输入两个正整数m和n,求其最大公约数和最小公倍数。
#include
#include
voidmain()
{
intm,n,i,j;
printf("输入两个正整数:
");
scanf("%d,%d",&m,&n);
for(i=n;;i--)
{
if((m%i==0)&&(n%i==0))
{printf("其最大公约数为:
%d\n",i);break;}
}
for(j=m;;j=j+m)
{
if(j%n==0)
{printf("m和n的最小公倍数为:
%d\n",j);break;}
}
getch();
}
运行结果:
输入两个正整数:
15,66
其最大公约数为:
3
m和n的最小公倍数为:
330
6.2输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
#include"stdio.h"
#include"conio.h"
voidmain()
{
charc;
inti=0,j=0,k=0,m=0;
printf("输入一行字符:
");
while((c=getchar())!
='\n')
{if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
i++;
elseif(c=='')
j++;
elseif((c>='0')&&(c<='9'))
k++;
elsej++;}
printf("其中英文字母%d个\n空格%d个\n数字%d个\n其他字符%d个\n",i,j,k,m);
getch();
}
未能运行,原因:
15行j++错误。
修改后
运行结果:
6.3求S=a+aa+aaa+…+aaa…a之值,其中a是一个数字,n表示a的位数。
#include"stdio.h"
#include"conio.h"
voidmain()
{inta,n,i,sum;
printf("输入a,n:
");
scanf("%d,%d",&a,&n);
for(i=1,sum=0;n>0;n--)
{sum=sum+n*a*i;
i=i*10;}
printf("a+aa+aaa+…=%d\n",sum);
getch();
}
运行结果:
输入a,n:
2,5
a+aa+aaa+…=24690
6.4求1!
+2!
+3!
+…+20!
。
#include"stdio.h"
#include"conio.h"
voidmain()
{
inti;
floatsum,t;
for(i=1,sum=0,t=1;i<=20;i++)
{t=t*i;
sum=sum+t;}
printf("1!
+2!
+3!
+…+20!
=%e\n",sum);
getch();
}
运行结果:
2.56133e+18
6.5求和1+2+3…+100+1^2+2^2+3^2+…50^2+1/1+1/2+1/3+…1/10。
#include
voidmain()
{
floatk,i,j,n,sum;
for(k=1,i=0;k<=100;k++)
i=i+k;
for(k=1,j=0;k<=50;k++)
j=j+k*k;
for(k=1,n=0;k<=10;k++)
n=n+1/k;
sum=i+j+n;
printf("其值为:
%8.2f\n",sum);
getch();
}
运行结果:
其值为:
47977.93
6.7一个数如果恰好等于它的因子之和,这个数就称为“完数”。
编程找出1000之内的所有完数,并按下面格式输出其因子:
6itsfactorsare1,2,3.
#include
voidmain()
{intn,i,j;
for(n=2;n<1000;n++)
{
for(i=1,j=0;iif(n%i==0)
j=j+i;
if(n==j)
{printf("%ditsfactorsare",n);
for(i=1;iif(n%i==0)
printf("%d,",i);
printf("\n");}
}
getch();
}
运行结果:
6.8有一分数序列2/1,3/2,5/3,,8/5,13/8,21/13…求这个数列的前20项之和。
#include
voidmain()
{
inti;
floatsum=0,m=1,n=2;
for(i=1;i<21;i++)
{sum=sum+n/m;
n=m+n;
m=n-m;
}
printf("这个数列的前20项之和为%8.3f\n",sum);
getch();
}
运行结果:
这个数列的前20项之和为
6.9一个球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。
求它在第十次落地时,共经过多少米?
第十次反弹多高?
#include
voidmain()
{
inti;floats,l,h;
s=100;l=100;h=100;
for(i=2;i<11;i++)
s=s+l;
l=l/2;
printf("第10次落地时共经过%f米\n",s);
for(i=1;i<10;i++)
h=h/2;
printf("第10次反弹高度为%f米",h);
getch();
}
运行结果:
6.15两个兵乓球队进行比赛,各出3人。
甲队为A,B,C三人,乙队为X,Y,Z三人。
已抽签决定比赛名单。
有人向队员打听比赛名单,A说他不和X比,C说他不和X,Z比,请编程序找出三队赛手的名单。
#include"stdio.h"
#include"conio.h"
voidmain()
{
chari,j,k;
for(i='X';i<='Z';i++)
for(j='X';j<='Z';j++)
for(k='X';k<='Z';k++)
if(i!
=j&&i!
=k&&j!
=k)
if(i!
='X'&&k!
='X'&&k!
='Z')
printf("A--%c\nB--%c\nC--%c\n",i,j,k);
getch();
}
运行结果:
7.1用筛选法求100之内的素数。
#include"stdio.h"
#include"math.h"
voidmain()
{inta[101],i,j,n;
for(i=1;i<=100;i++)
a[i]=i;
for(i=2;i{for(j=i+1;j<=99;j++)
{if(a[i]!
=0&&a[j]!
=0)
if(a[j]%a[i]==0)
a[j]=0;}}
for(i=0,n=0;i<=99;i++)
if(a[i]!
=0)
{printf("%d,",a[i]);
n++;
if(n%5==0)
printf("\n");}
getch();
}
运行结果:
7.2用选择法对10个整数排序。
#include"stdio.h"
#include"math.h"
voidmain()
{
inti,j,t=0,min,a[11];
for(i=1;i<=10;i++)
scanf("%d,",&a[i]);
printf("原数据为:
\n");
for(i=1;i<=10;i++)
printf("%d,",a[i]);
printf("\n");
for(i=1;i<=9;i++)
{min=i;
for(j=i+1;j<=10;j++)
if(a[min]>a[j])
min=j;
t=a[i];
a[i]=a[min];
a[min]=t;}
printf("按从小到大的顺序排列为:
\n");
for(i=1;i<=10;i++)
printf("%d,",a[i]);
getch();
}
运行结果:
8.1写两个函数,分别