1. (10分) n的最大值
题目描述
编写程序求出下式中n的最大值:22+42+62+…+n2<m。式子左边是求和的过程,每个加数的十位数是从2开始,偶数递增的,个位数固定为2。m由用户输入。
输入描述
m的值(输入的m是一个大于22的值)
输出描述
满足条件的n的最大值。
输入样例
150
输出样例
6
用户代码
#include<stdio.h>
int main()
{
int m,n=0,sum=0;
scanf("%d",&m);
while(sum<m)
{
n=n+2;
sum=sum+n*10+2;
}
printf("%d",n-2);
return 0;
}
2. (10分) 寻找满足条件的数
题目描述
编写程序找出m到n之间所有整数中满足如下条件的数:该数的高端两位数字的和与低端两位数字的和值相等,如1001, 1120。程序能输出所有满足条件的数以及它们的总个数。
输入描述
m和n的值,m和n均为4四位整数,并且m<n。
输出描述
两行,第一行为找到的所有满足条件的数,第二行为找到的数据个数。
输入样例
1000 1100
输出样例
1001 1010
2
用户代码
#include<stdio.h>
int main()
{
int m,n,a,b=0;
scanf("%d%d",&m,&n);
for(a=m;a<=n;a++)
{
if(a/1000+a/100%10==a%10+a%100/10)
{
b++;
printf("%d ",a);
}
}
printf("\n");
printf("%d",b);
}
3. (10分) 细菌繁殖
题目描述
编程求解问题:有一种细菌,从其产生的第4分钟后,每分钟都产生一个同种细菌。若某初始时刻仅有一个这种细菌,那么此后第n分钟时共有多少种这种细菌?
提示:初始时刻(第t=0分钟),a(0)=1,b(0)=c(0)=d(0)=0,细菌总数为s(0)=a(0)+b(0)+c(0)+d(0)=1。下一时刻d(t+1)=c(t)+d(t),c(t+1)=b(t),b(t+1)=a(t),a(t+1)=d(t)。
输入描述
输入正整数n。
输出描述
输出n+1个数,表示从开始时刻(第0分钟)到第n分钟(共n+1个时刻),每个所有产生的细菌数的总数,数据之间用一个空格隔开。
输入样例
10
输出样例
1 1 1 1 2 3 4 5 7 10 14
用户代码
#include<stdio.h>
int main()
{
int i,a=1,b=0,c=0,d=0,s=1,n,t;
scanf("%d",&n);
for(i=0;i<=n;i++)
{
printf("%d ",s);
t=d;
d=c+d;
c=b;
b=a;
a=t;
s=a+b+c+d;
}
return 0;
}
4. (10分) 求6整数中非0偶数的积
题目描述
输入6个整数,求其中非0的偶数积。(用循环完成)
说明:假设输入的6个数中至少有一个是非0的偶数。
输入描述
输入数据为6个整数
输出描述
在一行上输出偶数积。
输入样例
13 12 2 0 3 1
输出样例
24
用户代码
#include<stdio.h>
int main()
{
int a[6],i,s=1;
for(i=0;i<=5;i++)
{
scanf("%d",&a[i]);
if(a[i]!=0&&a[i]%2==0)
s=s*a[i];
}
printf("%d",s);
return 0;
}
5. (10分) 2+22+222+…
题目描述
求Sn=a+aa+aaa+…+a…a(n个a)之值,其中a是一个数字,n表示a的个数.
输入描述
例如2+22+222,此时n=3,a=2,因此在输入时只需输入:2 3
注意:a的值是0~9
输出描述
输出Sn的值
输入样例
2 3
输出样例
246
用户代码
#include<stdio.h>
#include<math.h>
int main()
{
int a,t,n,s=0,i;
scanf("%d%d",&a,&n);
t=a;
for(i=1;i<=n;i++)
{ if(i>=2)
a=a+t*pow(10,(double)i-1);
s=s+a;
}
printf("%d",s);
return 0;
}
6. (10分) 求奇数的乘积
题目描述
给你n个整数,求他们中所有奇数的乘积。
输入描述
每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。
输出描述
输出每组数中的所有奇数的乘积,对于测试实例,输出一行。
输入样例
3 1 2 3
输出样例
3
用户代码
#include<stdio.h>
int main()
{
int a,n,i,s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a);
if(a%2!=0)
s=s*a;
}
printf("%d",s);
return 0;
}
7. (10分) 下落的球
题目描述
一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米? 第5次反弹多高?
输入描述
整数h0,表示球最开始的高度。
输出描述
两个数据s和h,分别表示第5次落地时共经过s米,第5次反弹高度为h米,s和h用空格隔开。
输入样例
10
输出样例
28.75 0.3125
用户代码
#include<stdio.h>
int main()
{
double a,s,h,i;
scanf("%lf",&a);
s=a;
for(i=1;i<=4;i++)
{
a=a/2;
s=s+a*2;
}
h=a/2;
printf("%.2f %.4f",s,h);
return 0;
}
8. (10分) 输出加1秒后的新时间
题目描述
输入一个时间,时间格式为:小时:分:秒,要求加一秒后,输出新的时间。
输入描述
输入数据含3个整数,分别表示小时、分、秒。数据之间用“:”分隔
输出描述
在一行上输出加1秒后的新时间。每个数据占2位,不足2位,在数据左边补0。
输入样例
5:38:59
输出样例
05:39:00
用户代码
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d:%d:%d",&a,&b,&c);
c=c+1;
if(c==60)
{
c=0;
b++;
if(b==60)
{
b=0;
a++;
if(a==24)
{
a=0,b=0,c=0;
}
}
}
printf("%02d:%02d:%02d",a,b,c);
return 0;
}
9. (10分) 打印三角形
题目描述
打印三角形,输入n的值,输出对应形状的三角形
输入描述
输入一个整数N(2<N<20)
输出描述
输出对应形状的三角形
输入样例
3
输出样例
//本行不输出,为控制题目样例输出格式用
*
用户代码
#include<stdio.h>
int main()
{
int i,j,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
printf(" ");
}
for(k=1;k<=2*i-1;k++)
{
printf("*");
}
printf("\n");
}
return 0;
}
10. (10分) 判断回文数字
题目描述
有这样一类数,它们顺着看和倒着看是相同的数,例如:121、656、2332等,这样的数字叫做回文数字。编写一个程序,判断从键盘输入的数字是否为回文数字。
提示:可能通过将一个十进制数“倒置”的办法来判断它是否是回文数字。所谓倒置,就是计算该十进制数倒过来后的结果。如123->321,因为123不等于321,所以不是回文数;121->121,倒置后相同,所以是回文数。
输入描述
一个十进制整数
输出描述
判断该数是否为回文数字的结果
输入样例
121
123
输出样例
121是回文数
123不是回文数
用户代码
#include<stdio.h>
int main()
{int a,b,c;
scanf("%d",&a);
b=0;
c=a;
while(a!=0)
{
b=b*10+a%10,
a=a/10;}
if (b==c)
printf("%d是回文数",c);
else
printf("%d不是回文数",c);
return 0;
}