信阳师院计算机C语言.docx
- 文档编号:4943082
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:31
- 大小:22.93KB
信阳师院计算机C语言.docx
《信阳师院计算机C语言.docx》由会员分享,可在线阅读,更多相关《信阳师院计算机C语言.docx(31页珍藏版)》请在冰豆网上搜索。
信阳师院计算机C语言
Sy303.c本程序的功能为:
取出一个不大于1000的整数的每一位数字,并按逆序排列*/
#include
main()
{
intn,x,y,z;
printf("请输入一个不大于1000的整数:
");
scanf("%d",&n);
x=n/100;
y=(n%100)/10;
z=n%10;
printf("\n%d%d%d\n",z,y,x);
}
/*请输入一个不大于1000的整数:
265
562
Pressanykeytocontinue*/
Sy304.c下列程序要求编程者输入球体的半径r,输出球的体积v。
#include
#definePI3.14159/*定义符号常量PI代表3.14159*/
main()
{
doubler,v;
printf("输入球体半径r:
");
scanf("%lf",&r);
v=4.0/3*PI*r*r*r;
printf("v=%.2lf\n",v);
}
/*输入球体半径r:
1.0
v=4.19
Pressanykeytocontinue*/
/*输入球体半径r:
2.0
v=33.51
Pressanykeytocontinue*/
Sy405.c本程序功能:
批发市场买苹果,每斤3.20元。
按购买的数量可以给予以下优惠:
1、购买满1000斤,优惠5%。
2、购买2000斤以上,优惠7%。
3、购买3000斤以上,优惠9%。
4、购买4000斤以上,优惠11%。
购买5000斤以上,优惠15%。
#include
main()
{
intn;
floatp,total;
printf("pleaseinputthenum:
");
scanf("%d",&n);
switch(n/1000)
{
case0:
p=0;break;
case1:
p=0.05;break;
case2:
p=0.07;break;
case3:
p=0.09;break;
case4:
p=0.11;break;
default:
p=0.15;
}
total=3.20*n*(1.0-p);
printf("total=%6.2f\n",total);
}/*pleaseinputthenum:
5000
total=13600.00
Pressanykeytocontinue*/
Sy407.c编写程序,输入年份和月份,输出这一年的天数。
#include
main()
{
intyear,month,day;
printf("请输入年份与月份,例如:
20114,空格隔开");
scanf("%d%d",&year,&month);
switch(month)
{
case1:
case3:
case5:
case7:
case8:
case10:
case12:
day=31;
break;
case4:
case6:
case9:
case11:
day=30;
break;
case2:
if((year%4==0&&year%100!
=0)||year%400==0)
day=29;
else
day=28;
break;
default:
printf("不存在该月份,请重新输入!
\n");
exit(0);
}
printf("%d年%d月有%d天\n",year,month,day);
}/*请输入年份与月份,例如:
20114,空格隔开20115
2011年5月有31天
Pressanykeytocontinue*/
Sy505.c编程序实现功能为:
将500~600之间能同时被5和7整除的数打印出来,并统计其个数。
#include
main()
{
inti,count=0;
for(i=500;i<=600;i++)
{
if(i%5!
=0||i%7!
=0)
continue;
else
count++;
if(count%10==0)
printf("%4d\n",i);
else
printf("%4d",i);
}
printf("\n能同时被5和7整除的数的个数为%4d个。
\n",count);
}
/*525560595
能同时被5和7整除的数的个数为3个。
Pressanykeytocontinue*/
Sy506.c编程序实现功能为:
输入一个整数k,计算k以内最大的10个能被13或17整除的自然数之和.
#include
main()
{
intk,i=0;
intsum=0;
printf("请输入一个整数k,并按回车:
\n");
scanf("%d",&k);
do
{
if((k%13==0)||(k%17==0))
{
sum=sum+k;
i++;
}
k--;
}while(i<=10);
printf("k以内最大的10个能被13或17整除的自然数之和为%d\n",sum);
}/*请输入一个整数k,并按回车:
566468
k以内最大的10个能被13或17整除的自然数之和为6230653
Pressanykeytocontinue*/
Sy507.c编程序实现功能为:
求1!
+2!
+3!
+4!
+……+10!
的值.
#include
main()
{
intn=10,i,sum=0;
doublefac=1;/*用fac来记录累乘之积*/
i=1;/*i来控制循环次数*/
while(i<=n)
{
fac=fac*i;
i++;
sum=sum+fac;
}
printf("1!
+2!
+3!
+4!
+……10!
=%d\n",sum);
}
/*1!
+2!
+3!
+4!
+……10!
=4037913
Pressanykeytocontinue*/
Sy508.c编程序输出九九乘法表.
#include
#include
main()
{
inti,j;
for(i=1;i<=9;i++)
{
printf("\n");
for(j=1;j<=i;j++)
printf("%d*%d=%2d\t",i,j,i*j);
}
printf("\n");
}
/*
1*1=1
2*1=22*2=4
3*1=33*2=63*3=9
4*1=44*2=84*3=124*4=16
5*1=55*2=105*3=155*4=205*5=25
6*1=66*2=126*3=186*4=246*5=306*6=36
7*1=77*2=147*3=217*4=287*5=357*6=427*7=49
8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=64
9*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81
Pressanykeytocontinue*/
Sy602.c下面程序的功能是输出金字塔图案,如图所示:
*
***
*****
*******
#include
main()
{
inti,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)
printf("");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
}/*
*
***
*****
*******
Pressanykeytocontinue*/
Sy605.c编程序统计并输出[10,100]之间素数的个数,并以每行8个数据输出各素数.
#include
#include
main()
{
inti,j,k,count=0;
for(i=11;i<=100;i=i+2)
{
k=sqrt(i);
for(j=2;j<=k&&i%j!
=0;j++)
;
if(j>k)
{
printf("%4d",i);
count++;
}
if(count%8==0)
printf("\n");
}
printf("\n");
printf("10到100之间的素数共有%d个.\n",count);
}/*
1113171923293137
4143475359616771
7379838997
10到100之间的素数共有21个.
Pressanykeytocontinue*/
Sy606.c三色球问题。
若一个口袋中放有12个球,其中3个红色的,3个白色的,6个黑色的,从中任取8个球,编程序输出所有不同的颜色搭配方案.
#include
main()
{
inta,b,c;/*a,b,c分别表示每次取出的红色,白色,黑色球的个数*/
for(a=0;a<=3;a++)
for(b=0;b<=3;b++)
for(c=0;c<=6;c++)
{
if(a+b+c==8)
printf("红色球为%d个,白色球为%d个,黑色球为%d个.\n",a,b,c);
}
printf("\n");
}
/*红色球为0个,白色球为2个,黑色球为6个.
红色球为0个,白色球为3个,黑色球为5个.
红色球为1个,白色球为1个,黑色球为6个.
红色球为1个,白色球为2个,黑色球为5个.
红色球为1个,白色球为3个,黑色球为4个.
红色球为2个,白色球为0个,黑色球为6个.
红色球为2个,白色球为1个,黑色球为5个.
红色球为2个,白色球为2个,黑色球为4个.
红色球为2个,白色球为3个,黑色球为3个.
红色球为3个,白色球为0个,黑色球为5个.
红色球为3个,白色球为1个,黑色球为4个.
红色球为3个,白色球为2个,黑色球为3个.
红色球为3个,白色球为3个,黑色球为2个.
Pressanykeytocontinue*/
Sy608.c编写程序,求下面数列的前若干项之积,直到第一次出现积小于0.0001为止,并输出此时已经参与运算的数列项数和最终的积。
结果保留6位小数. 1/(1*2),1/(3*4),1/(5*6),……,1/((2n-1)*(2n)),……
#include
main()
{
intn=1,count=0;
floatfac=1,x;
x=(float)1/((2*n-1)*(2*n));
fac=fac*x;
while(fac>=0.0001)
{
count++;
x=(float)1/((2*n-1)*(2*n));
fac=fac*x;
}
printf("参与运算的共有%d项,最终的积为%.6f。
\n",count,fac);
}
/*参与运算的共有13项,最终的积为0.000061。
Pressanykeytocontinue*/
Sy609.c编写程序,求下面数列前20项之和。
结果保留2位小数。
(-1)1/2,(-1)2/(2+4),(-1)3/(2+4+6),...,(-1)n /(2+4+6+...+2n)。
#include
#include
main()
{
intn;
doublesum=0,m=0;
for(n=1;n<=20;n++)
{
m=m+2*(0+n);
sum+=(double)pow(-1,n)/m;
}
printf("sum=%.2f\n",sum);
}
/*sum=-0.39
Pressanykeytocontinue*/
Sy701.c编写程序,用“矩形法”求一元函数
f(x) = x^3 + 2x^2 - 12x - 6
在区间[3.5,5]上的积分近似值s,保留2位小数,小区间数n=25,此参数不能改动,否则影响答案。
#include
#include
main()
{
intn,k;
doublea,b,h,f0,s=0,s1,x;
printf("请输入积分分段数,如n=5:
");
scanf("%d",&n);
a=3.5;b=5;
h=(b-a)/n;
x=a;
f0=pow(x,3)+2*x*x-12*x-6;
for(k=1;k<=n;k++)
{
s1=f0*h;
s=s+s1;
x=x+h;
f0=pow(x,3)+2*pow(x,2)-12*x-6;
}
printf("s=%.2lf\n",s);
}
/*请输入积分分段数,如n=5:
25
s=85.31
Pressanykeytocontinue*/
Sy703.c编写程序,用“梯形法”求一元函数
f(x) = sin(2x) +3x
在区间[0,3.1416]上的积分近似值s,小区间数n=10,要求结果保留3位小数。
#include
#include
main()
{
intn,k;
doublea,b,h,f0,f1,s=0,s1,x;
printf("请输入积分分段数,如n=5:
");
scanf("%d",&n);
a=0;b=3.1416;
h=(b-a)/n;
x=a;
f0=sin(2*x)+3*x;
for(k=1;k<=n;k++)
{
f0=sin(2*x)+3*x;
x=x+h;
f1=sin(2*x)+3*x;
s1=(f0+f1)*h/2;
s=s+s1;
}
printf("s=%.3lf\n",s);
}
/*请输入积分分段数,如n=5:
10
s=14.804
Pressanykeytocontinue*/
/*
编写程序,用“梯形法”求一元函数
f(x) = sin(2x) +3x
在区间[0,3.1416]上的积分近似值s,小区间数n=10,
要求结果保留3位小数,程序名为sy703.c。
*/
#include
#include
main()
{
double s=0,x,h,f1,f2,a=0,b=3.1416;
int i,n=10;
h=fabs(b-a)/n;
for(i=1;i<=10;i++)
{
x=a+(i-1)*h;
f1=sin(2*x)+3*x;
x=x+h;
f2=sin(2*x)+3*x;
s=s+(f1+f2)*h/2;
}
printf("s=%.3lf\n",s);
Sy705.c编写程序,用“普通迭代法”求方程
f(x)=x + cos( 1.2x ) - 2.45=0
在区间[0,5]上的近似实根x,迭代初值自选,精确到0.0001
#include
#include
main()
{
doublex,x0;
x0=2.5;
do
{
x=x0;
x0=2.45-cos(1.2*x);
}
while(fabs(x-x0)>=(1e-4));
printf("方程的根为%.4f\n",x0);
}
/*方程的根为3.2089
Pressanykeytocontinue*/
Sy706.c编写程序,用“二分法”求一元非线性方程
f(x)=x^3-2x-9=0
在区间[2,3]上的近似实根x,精确到0.0001,
#include
#include
main()
{
doublea,b,x0,fa,fb,f0;
do
{
printf("请输入根的范围(a,b):
");
scanf("%lf,%lf",&a,&b);
fa=pow(a,3)-2*a-9;
fb=pow(b,3)-2*b-9;
}while(fa*fb>0);
do
{
x0=(a+b)/2;
f0=pow(x0,3)-2*x0-9;
if(fa*f0<0)
{
b=x0;fb=f0;
}
else
{
a=x0;fb=f0;
}
}while(fabs(f0)>=1e-4);
printf("x=%.4lf\n",x0);
}
/*请输入根的范围(a,b):
2,3
x=2.3984
Pressanykeytocontinue*/
Sy707.c编写程序,用“牛顿切线法”求方程
f(x)=2x+sinx-4.18=0
在区间[0,5]上的近似实根x,迭代初值自选,精确到0.0001,
#include
#include
main()
{
floatx,x0,f,fl;
x=2;
do
{
x0=x;
f=2*x0+sin(x0)-4.18;
fl=2-cos(x0);
x=x0-f/fl;
}while(fabs(x-x0)>=1e-4);
printf("方程的根为:
%.4lf\n",x);
}
/*方程的根为:
1.5901
Pressanykeytocontinue*/
Sy709.c使用双重循环,任意挑选一种空心三角形进行输出,程序名为sy709.c。
* *************
* * * *
* * * *
* * * *
* * * *
* * * *
* * *
* *
* *
* *
*
/*#include
main()
{
inti,j;
for(i=0;i<6;i++)
{
for(j=0;j<13;j++)
{
if(j==0||j==2*i)
printf("*");
else
printf("");
}
printf("\n");
}
for(i=0;i<5;i++)
{
for(j=0;j<13;j++)
{
if(j==0||j==8-2*i)
printf("*");
else
printf("");
}
printf("\n");
}
}*/
/*
*
**
**
**
**
**
**
**
**
**
*
Pressanykeytocontinue*/
#include
main()
{
inti,j;
for(i=1;i<=7;i++)
{
for(j=1;j<=13;j++)
{
if(j==14-i||j==i||i==1)
printf("*");
else
printf("");
}
printf("\n");
}
}/*
*************
**
**
**
**
**
*
Pressanykeytocontinue*/
Sy710.c使用双重循环,任意挑选一种ASCII字符图形进行输出,程序名为sy710.c
m m zzzzzzz
m m m m z
m m m m z
m m m z
m m z
m m z
m m zzzzzzz
/*#include
main()
{
inti,j;
for(i=1;i<=4;i++)
{
for(j=0;j<13;j++)
{
if(j==2*i-2||j==0||j==14-2*i||j==12)
printf("m");
else
printf("");
}
printf("\n");
}
for(i=5;i<=7;i++)
{
for(j=0;j<13;j++)
{
if(j==12||j==0)
printf("m");
else
printf("");
}
printf("\n");
}
}*/
/*
mm
mmmm
mmmm
mmm
mm
mm
mm
Pressanykeytocontinue*/
#include
main()
{
inti,j;
for(i=0;i<=6;i++)
{
for(j=0;j<=6;j++)
{
if(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信阳 师院 计算机 语言