C语言题库1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//1、已知:Sn=2/1+3/2+4/3+…+(n+1)/n, 求Sn不超过50的最大值(按四舍五入的方式精确到小数点后第三位)
#include"stdio.h"
void main()
{
int n=1;
float s=0;
while(s<=50)
{s=s+(n+1)*1.0/n;
n++;}
printf("%.3f",s-n*1.0/(n-1));
}
//2、已知S1=2, S2=2+4, S3=2+4+6, S4=2+4+6+8,S5=2+4+6+8+10,…,求 S=S1+S2+S3+S4+S5+…+S20的值。
#include"stdio.h"
void main()
{
int i,t=0;
int s=0;
for(i=1;i<=20;i++)
{t=t+2*i;
s=s+t;
}
printf("%d",s);
}
//3、设S=1+1/2+1/3+…1/n,n为正整数,求使S不超过10(S≤10)的最大的n。
#include"stdio.h"
void main()
{
int n=1;
float s=0;
while(s<=10)
{s=s+1.0/n;
n++;
}
printf("%d",n-2);
}
//4、设S(n)=1-1/3+1/5-1/7+…1/(2n-1),求S(100)的值,要求S(100)按四舍五入方式精确到小数点后4位。
#include"stdio.h"
void main()
{
int i;
float s=0;
for(i=1;i<=100;i++)
if(i%2==1) s=s+1.0/(2*i-1);
else s=s-1.0/(2*i-1);
printf("%.4f",s);
}
//5、求数学式1-1/2+1/3-1/4+1/5-1/6+…+1/99-1/100的值。(按四舍五入方式精确到小数点后4位)
#include"stdio.h"
void main()
{
int i;
float s=0;
for(i=1;i<=100;i++)
if(i%2==1) s=s+1.0/i;
else s=s-1.0/i;
printf("%.4f",s);
}
//6当n=100时,计算S=(1-1/2)+(1/3-1/4)+……+(1/(2n-1)-1/(2n))的值。.要求:按四舍五入的方式精确到小数点后第三位。
#include"stdio.h"
void main()
{
int i;
float s=0;
for(i=1;i<=100;i++)
s=s+1.0/(2*i-1)-1.0/(2*i);
printf("%.3f",s);
}
//7已知 S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+N) ,当N的值为50时,求S的值。要求:按四舍五入的方式精确到小数点后第四位。
#include"stdio.h"
void main()
{
int i, t=0;
float s=0;
for(i=1;i<=50;i++)
{t=t+i;
s=s+1.0/t;}
printf("%.4f",s);
}
//8求Y=1-1/2+1/3-1/4+1/5... 前30项之和。要求:按四舍五入的方式精确到小数点后第二位
#include"stdio.h"
void main()
{
int i;
float s=0;
for(i=1;i<=30;i++)
if(i%2==0)s=s-1.0/i;
else s=s+1.0/i;
printf("%.2f",s);
}
//9当n的值为25时,计算下列公式的值: s=1+1/1!+1/2!+1/3!+…+1/n!要求:按四舍五入的方式精确到小数点后第四位。
#include"stdio.h"
void main()
{
int i;
float s=1,t=1;
for(i=1;i<=30;i++)
{t=t*i;
s=s+1/t;}
printf("%.4f",s);
}
//10当m的值为50时,计算下列公式之值:t=1-1/(2*2)-1/(3*3)-…-1/(m*m)要求:按四舍五入的方式精确到小数点后第四位。
#include"stdio.h"
void main()
{
int i;
float s=1;
for(i=2;i<=50;i++)
s=s-1.0/(i*i);
printf("%.4f",s);
}
//11设某四位数的各位数字的平
方和等于100,问共有多少个这种四位数?
#include"stdio.h"
void main()
{
int i,a,b,c,d;
int n=0;
for(i=1000;i<=9999;i++)
{a=i/1000;
b=i/100%10;
c=i/10%10;
d=i%10;
if(a*a+b*b+c*c+d*d==100)n++;
}
printf("%d",n);
}
//12当m的值为50时,计算下列公式之值: t=1+1/2^2+1/3^2+…+1/m^2(按四舍五入的方式精确到小数点后第四位)。
#include"stdio.h"
void main()
{
int i;
float t=0;
for(i=1;i<=50;i++)
t=t+1.0/(i*i);
printf("%.4f",t);
}
//13当n=50时,求下列级数和:S=1/(1*2)+1/(2*3)+…+1/(n*(n+1))要求:按四舍五入的方式精确到小数点后第四位。
#include"stdio.h"
void main()
{
int i;
float t=0;
for(i=1;i<=50;i++)
t=t+1.0/(i*(i+1));
printf("%.4f",t);
}
//14计算y=1+2/3+3/5+4/7+…+n/(2*n-1)的值, n=50, 要求:按四舍五入的方式精确到小数点后第二位。
#include"stdio.h"
void main()
{
int i;
float t=0;
for(i=1;i<=50;i++)
t=t+i*1.0/(2*i-1);
printf("%.2f",t);
}
//15求1/(1*2)+1/(2*3)+1/(3*4)+....+1/(N*(N+1))的值,N=20, 要求:按四舍五入的方式精确到小数点后第二位。
#include"stdio.h"
void main()
{
int i;
float t=0;
for(i=1;i<=20;i++)
t=t+1.0/(i*(i+1));
printf("%.2f",t);
}
//16编写程序,已知:S=2+4+8+16+32+…,求S不大于2500的最大值。
#include"stdio.h"
void main()
{
int n=1,t=1;
int s=0;
while(s<=2500)
{
t=2*t;
s=s+t;
}
printf("%d",s-t);
}
//17编写程序,求三位数的奇数中,所有各位数字之和是12的倍数的数的和。
#include"stdio.h"
void main()
{
int a,b,c,i;
int s=0;
for(i=100;i<=999;i++)
if(i%2)
{a=i/100;
b=i/10%10;
c=i%10;
if((a+b+c)%12==0)s=s+i;
}
printf("%d",s);
}
//18编写程序,求在四位数的奇数中,所有各位数字之和是25的倍数的数的和。
#include"stdio.h"
void main()
{
int a,b,c,d,i;
int s=0;
for(i=1001;i<=9999;i=i+2)
{a=i/1000;
b=i/100%10;
c=i/10%10;
d=i%10;
if((a+b+c+d)%25==0)s=s+i;
}
printf("%d",s);
}
//19用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到某一项的绝对值小于0.000001为止。请编写程序,结果保留6位小数。
#include"stdio.h"
void main()
{
int i=1;
float t,s=0;
t=1;
while(1/t>1e-6)
{ t=2*i-1;
if(i%2)s=s+1.0/t;
else s=s-1.0/t;
i++;
}
printf("%.6f",4*s);
}
//20求(1+2+...+100)+(1+2^2+...+50^2)+(1+1/2+...+1/10)的值,k^n表示k的n次方,结果保留两位小数。请编写程序
#include"stdio.h"
void main()
{
int i;
float s=0;
for(i=1;i<=100;i++)
s=s+i;
for(i=1;i<=50;i++)
s=s+i*i;
for(i=1;i<=10;i++)
s=s+1.0/i;
printf("%.2f",s);
}
//21计算下列算式的值:C=1+1/x+1/(x^2)+1/(x^3)+1/(x^4)+.... (x>1),x^n表示x的n次方,直到某一项A<=0.000001时为止。当x=4时,输出最后C的值。请编写程序,结果保留6位小数。
#include"stdio.h"
void main()
{
float x;
int i;
float s=1,t;
x=4;
t=x;
while(1.0/t>1e-6)
{s=s+1.0/t;
t=t*x;
}
printf("%.6f",s);
}
//22计算下列序列的值:1+1/(1*2)+1/(2*3)+1/(3*4)+1/(4*5)+....+1/(N*(N-1)),要求最后一项小于0.001时,停止计算。请编写程序,结果保留6位小数。
#include"stdio.h"
void main()
{
float s,t;
int n;
s=1;
n=2;
t=1.0/(n*(n-1));
while(t>=1e-3)
{
s=s+t;
n++;
t=t=1.0/(n*(n-1));
}
printf("%.6f",s);
}
//23根据公式S=1+1/(1+2)+1/(1+2+3)+ … +1/(1+2+3+ … +n),求n=20时S的值,结果保留两位小数。请编写程序。
#include"stdio.h"
void main()
{
int i,t=0;
float s=0;
for(i=1;i<=20;i++)
{t=t+i;
s=s+1.0/t;
}
printf("%.2f",s);
}
//24计算以下式子的值:1+(1+2)+(l+2+3)+(l+2+3+4)+(……)+(1+2+3+…l00)。请编写程序。
#include"stdio.h"
void main()
{
int i,t=0;
int s=0;
for(i=1;i<=100;i++)
{t=t+i;
s=s+t;
}
printf("%d",s);
}
//25计算并输出 1+1/3+1/5+...+1/99 的值,结果保留2位小数。请编写程序。
#include"stdio.h"
void main()
{
int i;
float s=0;
for(i=1;i<=99;i=i+2)
s=s+1.0/i;
printf("%.2f",s);
}
//26计算并输出 5+10+15+……+490+495+500 的值(要求用循环语句实现)。请编写程序。
#include"stdio.h"
void main()
{
int i;
int s=0;
for(i=5;i<=500;i=i+5)
s=s+i;
printf("%d",s);
}
//27根据算式S=(1-1/(2*2))+(1/(3*3)-1/(4*4))+…+(1/((2n-1)* (2n-1))-1/((2n)* (2n))),求n=8时,S的值,结果保留4位小数。请编写程序。
#include"stdio.h"
void main()
{
int n;
float s=0;
for(n=1;n<=8;n++)
s=s+1.0/((2*n-1)* (2*n-1))-1.0/((2*n)* (2*n));
printf("%.4f",s);
}
//28用近似公式求自然对数的底e的值,e≈1+1!+1/2!+1/3!+…1/10!,结果保留6位小数。请编写程序。
#include"stdio.h"
void main()
{
int n;
float s=1, t=1;
for(n=1;n<=10;n++)
{ t=t*n;
s=s+1.0/t;}
printf("%.6f",s);
}
//29根据算式S=1/(1*2)+1/(2*3)+…+1/(n*(n-1)),求n=10时,S的值,结果保留4位小数。请编写程序。此题答案为0。9000 当n=11时为0。9091
#include"stdio.h"
void main()
{
int n;
float s=0;
for(n=2;n<=11;n++)
s=s+1.0/(n*(n-1));
printf("%.4f",s);
}
//30根据算式S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n),求n=8时,S的值,结果保留4位小数。请编写程序。
#include"stdio.h"
void ma
in()
{
int n;
float s=0;
for(n=1;n<=8;n++)
s=s+1.0/(2*n-1)-1.0/(2*n);
printf("%.4f",s);
}
//31根据算式S=(ln(1)+ln(2)+ln(3)+…+ln(m))^0.5,k^n表示k的n次方,求m=20时,S的值,结果保留4位小数。请编写程序。
#include"stdio.h"
#include"math.h"
void main()
{
int n;
float s=0;
for(n=1;n<=20;n++)
s=s+log(n);
printf("%.4f",sqrt(s));
}
//32根据算式S=1+x+(x^2)/2!+(x^3)/3!+…+(x^n)/n!,x^n表示x的n次方,求n=10,x=0.3时,S的值,结果保留4位小数。请编写程序。
#include"stdio.h"
void main()
{
int n;
float x=0.3;
float s=1,t=1,f=1;
for(n=1;n<=10;n++)
{ t=t*n;
f=f*x;
s=s+f/t;
}
printf("%.4f",s);
}
//33根据算式S=1+(1+2^0.5)+(1+2^0.5+3^0.5)+…+(1+2^0.5+3^0.5+…+n^0.5),k^n表示k的n次方,求n=20时,S的值,结果保留4位小数。请编写程序。
#include"stdio.h"
#include"math.h"
void main()
{
int i;
float s=0,t=0;
for(i=1;i<=20;i++)
{t=t+sqrt(i);
s=s+t;
}
printf("%.4f",s);
}
//34根据算式S=(1-ln(1)-ln(2)-ln(3)-…-ln(m))^2,k^n表示k的n次方,求m=15时,S的值,结果保留4位小数。请编写程序。
#include"stdio.h"
#include"math.h"
void main()
{
int i;
float s=1;
for(i=1;i<=15;i++)
s=s-log(i);
printf("%.4f",s*s);
}
//35根据算式S=1-x+(x^2)/2!-(x^3)/3!+…+(-1*x)^n/n!,x^n表示x的n次方,求当n=15,x=0.5时,S的值,结果保留4位小数。请编写程序。
#include"stdio.h"
void main()
{
int i;
float x=0.5;
float t=1,f=1,s=1;
for(i=1;i<=15;i++)
{ t=t*i;
f=f*x;
if(i%2==0)s=s+f/t;
else s=s-f/t;
}
printf("%.4f",s);
}
//36编写程序,求共有几组i,j,k符合算式ijk+kji=1534,其中i,j,k是[0,9]之间的一个整数且i
#include"stdio.h"
void main()
{
int n=0;
int i,j,k;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
for(k=1;k<=9;k++)
if((i*100+j*10+k+k*100+j*10+i==1534)&&i
printf("%d",n);
}
//37设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0, e不等于0或1),求满足上述条件的最大四位数abcd的值。
#include"stdio.h"
void main()
{int a,b,c,d,e,i;
for(i=9999;i>=1000;i--)
{ a=i/1000;
b=i/100%10;
c=i/10%10;
d=i%10;
for(e=2;e<=9;e++)
if(i*e==b*1000+c*100+d*10+e){printf("%d ",i);break;}
if(e<=9)break;
}
}
//38设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0, e不等于0或1),求满足上述条件的四位数abcd的个数。
#include"stdio.h"
void main()
{int a,b,c,d,e,i;
int n=0;
for(i=9999;i>=1000;i--)
{ a=i/1000;
b=i/100%10;
c=i/10%10;
d=i%10;
for(e=2;e<=9;e++)
if(i*e==b*1000+c*100+d*10+e)n
++;
}
printf("%d ",n);
}
//39设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0, e不等于0或1),求满足上述条件的所有四位数abcd的和。
#include"stdio.h"
void main()
{int a,b,c,d,e,i;
int s=0;
for(i=9999;i>=1000;i--)
{ a=i/1000;
b=i/100%10;
c=i/10%10;
d=i%10;
for(e=2;e<=9;e++)
if(i*e==b*1000+c*100+d*10+e)s=s+i;
}
printf("%d ",s);
}
//40设有十进制数字a、b、c、d和e,求满足下列式子:abcd×e=dcba(a≠0,e≠0,e≠1)的最小四位数abcd
#include"stdio.h"
void main()
{int a,b,c,d,e,i;
int s=0;
for(i=1000;i<=9999;i++)
{ a=i/1000;
b=i/100%10;
c=i/10%10;
d=i%10;
for(e=2;e<=9;e++)
if(i*e==d*1000+c*100+b*10+a){printf("%d ",i);break;}
if(e<=9)break;
}
}
//41设有十进制数字a、b、c、d和e,且要求下列式子:abcd×e=dcba(a≠0,e≠0,e≠1)成立,当abcd是满足上述关系式的最小四位数时,求其对应的e值的大小
#include"stdio.h"
void main()
{int a,b,c,d,e,i;
int s=0;
for(i=1000;i<=9999;i++)
{ a=i/1000;
b=i/100%10;
c=i/10%10;
d=i%10;
for(e=2;e<=9;e++)
if(i*e==d*1000+c*100+b*10+a){printf("%d ",e);break;}
if(e<=9)break;
}
}
//42求500以内(含500)能被5或9整除的所有自然数的倒数之和。按四舍五入的方式精确到小数点后第二位。
#include"stdio.h"
void main()
{
int i;
float s=0;
for(i=5;i<=500;i++)
if(i%5==0||i%9==0)s=s+1.0/i;
printf("%.2f",s);
}
//43所谓"水仙花数"是指一个三位数,其各位数字的三次方之和等于该数本身,例如:153=1^3+3^3+5^3,故153是水仙花数,求[100,999]之间所有水仙花数之和。
#include"stdio.h"
void main()
{
int i,a,b,c;
int s=0;
for(i=100;i<=999;i++)
{
a=i/100;
b=i/10%10;
c=i%10;
if(a*a*a+b*b*b+c*c*c==i)s=s+i;
}
printf("%d",s);
}
//44求[1,999]之间能被3整除,且个位数字是5的所有正整数的个数。
#include"stdio.h"
void main()
{
int i;
int n=0;
for(i=1;i<=999;i++)
if(i%3==0&&i%10==5)n++;
printf("%d",n);
}
//45设某四位数的千位数字与十位数字的和等于百位数字与个位数字的积,例如,对于四位数:9512,9+1=5*2,试问所有这样的四位数之和是多少?
#include"stdio.h"
void main()
{
int i,a,b,c,d;
int s=0;
for(i=1000;i<=9999;i++)
{a=i/1000;
b=i/100%10
;
c=i/10%10;
d=i%10;
if(a+c==b*d)s=s+i;
}
printf("%d",s);
}
//46设某四位数的千位数字平方与十位数字的平方之和等于百位数字的立方与个位数字的立方之和,例如,对于四位数:3201, 3^2+0^2=2^3+1^3,试问所有这样的四位数之和是多少?
#include"stdio.h"
void main()
{
int i,a,b,c,d;
int s=0;
for(i=1000;i<=9999;i++)
{a=i/1000;
b=i/100%10;
c=i/10%10;
d=i%10;
if(a*a+c*c==b*b*b+d*d*d)s=s+i;
}
printf("%d",s);
}
//47编写程序,求在四位数的偶数中,所有各位数字之和是30的倍数的数的和。
#include"stdio.h"
void main()
{
int i,a,b,c,d;
int s=0;
for(i=1000;i<=9999;i=i+2)
{a=i/1000;
b=i/100%10;
c=i/10%10;
d=i%10;
if((a+b+c+d)%30==0)s=s+i;
}
printf("%d",s);
}
//48编写程序,求三位数的奇数中,所有各位数字之和是15的倍数的数的和。
#include"stdio.h"
void main()
{
int i,a,b,c;
int s=0;
for(i=101;i<=999;i=i+2)
{a=i/100;
b=i/10%10;
c=i%10;
if((a+b+c)%15==0)s=s+i;
}
printf("%d",s);
}
//49编写程序,求四位数的偶数中,所有各位数字之和是15的倍数的数的和。
#include"stdio.h"
void main()
{
int i,a,b,c,d;
int s=0;
for(i=1000;i<=9999;i=i+2)
{a=i/1000;
b=i/100%10;
c=i/10%10;
d=i%10;
if((a+b+c+d)%15==0)s=s+i;
}
printf("%d",s);
}
//5 //编写程序,求三位数的奇数中,所有各位数字之和是12的倍数的数的个数。
#include"stdio.h"
void main()
{
int i,j,k;
int m=0,n;
for(n=101;n<=999;n=n+2)
{i=n/100;
j=n/10%10;
k=n%10;
if((i+j+k)%12==0)m++;
}
printf("%d",m);
}
//51编写程序,求共有几组i、j、k符合算式ijk+kji=1333,其中i、j、k是0~9之间的
#include"stdio.h"
void main()
{
int i,j,k;
int m=0,n;
for(n=100;n<=999;n++)
{i=n/100;
j=n/10%10;
k=n%10;
if(n+k*100+j*10+i==1333)m++;
}
printf("%d",m);
}
//52编写程序,求在10~1000之间所有能被4除余3,被7除余4,被9除
余4的数之和。
#include"stdio.h"
void main()
{
int n,s=0;
for(n=10;n<=1000;n++)
if(n%4==3&&n%7==4&&n%9==4)s=s+n;
printf("%d",s);
}