资源描述
1.题目标题:
四位反序数
题目描述:
设N是一个四位数,它的n倍恰好是其反序数(例如:123的反序数是321),编程,输出一个满足条件的N。(知识点:控制语句)
输入描述:
输入为一个整形数n(2<=n<=9)
输出描述:
输出为一个四位数的整形数
样式输入:
9
样式输出:
1089
#include<stdio.h>
main()
{
int n,g,s,b,q,i;
scanf("%d",&n);
for(i=1000;i<10000;i++)
{
q=i/1000;
b=i/100%10;
s=i/10%10;
g=i%10;
if(i*n==q+b*10+s*100+g*1000)
printf("%d\n",i);
}
}
2. 题目标题:
年龄分组
题目描述:
统计各年龄段的人数。N(N=20)个年龄通过键盘输入,并放在age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中, 把20至29岁年龄段的人数放在d[2]中, 其余依此类推, 把100岁 (含100)以上年龄的人数都放在d[10]中。依次输出d[0]至d[10]。
输入描述:
输入为20个正整数;
输出描述:
输出为11个正整数;
样式输入:
1 2 11 12 22 23 33 34 44 45 55 56 66 67 68 88 99 100 101 102
样式输出:
2 2 2 2 2 2 3 0 1 1 3
#include<stdio.h>
main()
{
int i,age[20],d[11]={0};
for(i=0;i<20;i++)
scanf("%d",&age[i]);
for(i=0;i<20;i++)
switch(age[i]/10)
{
case 0: d[0]++; break;
case 1: d[1]++; break;
case 2: d[2]++; break;
case 3: d[3]++; break;
case 4: d[4]++; break;
case 5: d[5]++; break;
case 6: d[6]++; break;
case 7: d[7]++; break;
case 8: d[8]++; break;
case 9: d[9]++; break;
default: d[10]++; break;
}
for(i=0;i<=10;i++)
printf("%d\n",d[i]);
}
3.题目标题:
求三个整数的最大公约数
题目描述:
对任意三个整数,求它们的最大公约数
输入描述:
三个整数a,b,c
输出描述:
a,b,c的最大公约数
样式输入:
4 24 32
样式输出:
4
#include<stdio.h>
int gcd(int n,int m)
{
if(m==0) return n;
return gcd(m,n%m);
}
int main()
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("%d",gcd(gcd(x,y),z));
return 0;
}
4.题目标题:
发放奖金
题目描述:
某车间按工人加工零件的数量发放奖金,奖金分为五个等级:每月加工零件数N < 100者奖金为10元;100 < = N < 110者奖金为30元;110 < = N <120 者奖金为50元;120 < = N <130 者奖金为70元;N > 130者奖金为80元。 请编程,由键盘输入加工零件数量,显示应发奖金数。
输入描述:
输入10个加工零件数量,数量小于400.
输出描述:
对每一个加工零件个数,输出应发奖金数,每个奖金数之间用空格隔开
样式输入:
85 85 85 85 85 85 85 85 85 85
样式输出:
10 10 10 10 10 10 10 10 10 10
#include <stdio.h>
main()
{
int a[10],i,k;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{
k=a[i]/10;
if(k<10) a[i]=10;
else
switch(k)
{
case 10: a[i]=30; break;
case 11: a[i]=50; break;
case 12: a[i]=70; break;
default: a[i]=80; break;
}
}
printf("%d",a[0]);
for(i=1;i<10;i++)
printf(" %d",a[i]);
return 0;
}
5.题目标题:
矩阵计算
题目描述:
求一个3*3矩阵对角线元素之和。
输入描述:
按行输入9个整数。
输出描述:
对角线元素之和
样式输入:
1 2 3 4 5 6 7 8 9
样式输出:
15
#include<stdio.h>
int main()
{
int a[3][3];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("%d",a[0][0]+a[1][1]+a[2][2]);
return 0;
}
6.题目标题:
歌手比赛
题目描述:
青年歌手参加歌曲大奖赛,有10个评委对她的进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。
输入描述:
10个评委的分数,每个分数是一个浮点数.输入数据保证有一个最低分,一个最高分,且最高分,最低分不相同.其它是数据与最低、最高均不相同
输出描述:
输出歌手的得分,保留一位小数.所有输出的最后一行不能有回车
样式输入:
8.5 9 9.8 6.5 8.7 8.5 9.3 9.6 8.9 8.2
样式输出:
8.8
#include<stdio.h>
int main()
{
double a[10],max,min,sum;
int i;
for(i=0;i<10;i++)
scanf("%lf",&a[i]);
sum=min=max=a[0];
for(i=1;i<10;i++)
{
if(max<a[i]) max=a[i];
if(min>a[i]) min=a[i];
sum+=a[i];
}
printf("%.1lf",(sum-min-max)/8);
return 0;
}
7.题目标题:
统计
题目描述:
统计个位数为6的n位数,且能被m整除的共有多少个?
输入描述:
一个整数n(n<=5),表示该整数的位数,一个整数m(1~9);
输出描述:
符合条件的数的个数。
样式输入:
2 3
样式输出:
3
#include<stdio.h>
int f(int n)
{
int t=1,i;
for(i=1;i<=n;i++)
t*=10;
return t;
}
int main()
{
int n,m,i,count=0;
scanf("%d%d",&n,&m);
for(i=f(n-1)+6;i<f(n);i+=10)
if(i%m==0)
count++;
printf("%d",count);
return 0;
}
8.题目标题:
四位数
题目描述:
计算满足下述条件的四位数的个数:把数字abcd重新组成两个新的两位数:ac与db,如果新组成的两个十位数ac>db,且ac必须是偶数且能被n(n为1~9的整数)整除,db必须是奇数,同时两个新数的十位数字均不为零。
输入描述:
一个1~9的整数。
输出描述:
符合条件的数的个数。
样式输入:
5
样式输出:
180
#include<stdio.h>
int main()
{
int i,j,count=0,n;
scanf("%d",&n);
for(i=10;i<100;i+=2)
for(j=11;j<100;j+=2)
if(i>j&&i%n==0)
count++;
printf("%d",count);
return 0;
}
9.题目标题:
产值翻番计算
题目描述:
假设当年工业产值为100,工业产值的增长率每年为c%,从键盘输入一个c(0<=c<=30),试求工业产值过多少年可实现翻番(即增加一倍)。注:后一年的产值是在前一年的基础上增长c%。
输入描述:
一个0~30的实数(增长率)。
输出描述:
实现翻番的年数。
样式输入:
6
样式输出:
12
#include <stdio.h>
int main()
{
int count=0;
double c,t=1;
scanf("%lf",&c);
while(t<2)
{
t*=(c/100+1);
count++;
}
printf("%d",count);
return 0;
}
10.题目标题:
行托运
题目描述:
铁路托运行规定:行重不超过50公斤的,托运费按每公斤0.15元计费;如超过50公斤,超过部分每公斤按0.25元计费。请编程实现自动计费功能。
输入描述:
输入一个整数,表述要托运的行的重量,单位为公斤
输出描述:
托运的行重量(单位公斤)空格和运费(单位为元,保留2位小数)。
样式输入:
45
样式输出:
45 6.75
#include <stdio.h>
int main()
{
double x,y;
scanf("%lf",&x);
if(x<50)
y=x*0.15;
else
y=(x-50)*0.25+50*0.15;
printf("%.0lf %.2lf",x,y);
return 0;
}
11.题目标题:
分数比较
题目描述:
请编程实现比较两个分数的大小。(注:进行分数的通分后再比较分子的大小)
输入描述:
输入两个分数,格式为分子/分母 分子/分母,分子,分母均为整数。
输出描述:
输出比较后的结果。如果等于,则输出分子/分母=分子/分母;如果小于分子/分母<分子/分母;如果大于,则输出分子/分母>分子/分母
样式输入:
1/2 1/3
样式输出:
1/2>1/3
#include <stdio.h>
int gcd(int x,int y)
{
int r=x%y;
while(r)
{
x=y;
y=r;
r=x%y;
}
return y;
}
int main()
{
int a,b,c,d,t;
scanf("%d/%d %d/%d",&a,&b,&c,&d);
if(b>d)
t=gcd(b,d);
else
t=gcd(d,b);
if(a*d/t>c*b/t)
printf("%d/%d>%d/%d",a,b,c,d);
else if(a*d/t==c*b/t)
printf("%d/%d=%d/%d",a,b,c,d);
else
printf("%d/%d<%d/%d",a,b,c,d);
return 0;
}
12.题目标题:
求人数
题目描述:
定义一个函数,功能是计算n个学生的成绩中,高于平均成绩的人数,并作为函数值。用主函数来调用它,统计50个学生成绩中,高于平均成绩的有多少人?
输入描述:
输入50个学生的成绩
输出描述:
输出一个整数表示高于平均成绩的人数
样式输入:
45 46 47 48 49 50 41 52 53 54
55 56 57 58 59 60 61 62 63 64
65 66 67 68 69 70 71 72 73 74
75 76 77 78 79 80 81 82 83 84
85 86 87 88 89 90 91 92 93 94
样式输出:
25
#include<stdio.h>
#include<math.h>
#include<string.h>
int aver(int a[],double sum)
{
int i=0,n=0;
for(;i<50;i++)
if(a[i]>sum)
n++;
return n;
}
int main()
{
int a[55],i;
double sum=0;
for(i=0;i<50;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
sum/=50;
printf("%d",aver(a,sum));
return 0;
}
13.题目标题:
求圆的周长和面积
题目描述:
从键盘输入圆的半径,求该圆的周长和面积。(注: 取3.14)
输入描述:
一个实数r。
输出描述:
圆的周长和面积。
样式输入:
1
样式输出:
r=1.00,l=6.28,s=3.14
#include <stdio.h>
#define PI 3.14
int main()
{
double r,l,s;
scanf("%lf",&r);
l=2*PI*r;
s=PI*r*r;
printf("r=%.2f,l=%.2f,s=%.2f",r,l,s);
return 0;
}
14.题目标题:
确定一个数的位数
题目描述:
编写程序用来确定一个数的位数。如:输入: 567 输出:The number 567 has 3 digits 假设输入的数最多不超过四位。
输入描述:
一个整数n。
输出描述:
按指定格式输出这个数的位数。
样式输入:
567
样式输出:
The number 567 has 3 digits
#include <stdio.h>
main()
{
int n,x,digits=0;
scanf("%d",&n);
x=n;
do
{
x=x/10;
digits++;
}while(x);
printf("The number %d has %d digits",n,digits);
}
15.题目标题:
阶乘累加
题目描述:
计算1!+2!+3!……+n!
输入描述:
一个整数n(n<=20)。
输出描述:
1到n的阶乘累加之和。
样式输入:
5
样式输出:
s=153
#include<stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
long long s=1,sum=0;
for(i=1;i<=n;i++)
{
s*=i;
sum+=s;
}
printf("s=%lld",sum);
return 0;
}
16.题目标题:
计算e的近似值
题目描述:
利用泰勒级数 e=1+1/1!+1/2!+……+1/n!, 计算e的近似值。精度要求最后一项的绝对值小于f(如:f=1e-5)。
输入描述:
精度。
输出描述:
e的近似值,保留6位小数。
样式输入:
1e-5
样式输出:
e=2.718282
#include<stdio.h>
#include<math.h>
double fac(int n)
{
if(n==1)
return 1;
else
return n*fac(n-1);
}
int main()
{
int i=1;
double e=1.0,t,f;
scanf("%le",&f);
for(t=1.0;t>f;i++)
{
t=1.0/fac(i);
e+=t;
}
printf("e=%.6lf",e);
return 0;
}
17.题目标题:
求水仙花数
题目描述:
打印n(三位的整数)以的所有水仙花数。所谓水仙花数是指一个三位的整数,其各位数字的立方和等于该数本身。例如:153是水仙花数,因为153=1^3+5^3+3^3。
输入描述:
一个整数n。
输出描述:
符合条件的水仙花数。
样式输入:
400
样式输出:
153
370
371
#include <stdio.h>
int main()
{
int i,x,y,z,a;
scanf("%d",&a);
for(i=100;i<=a;i++)
{
x=i/100;
y=i/10%10;
z=i%10;
if(i==x*x*x+y*y*y+z*z*z)
printf("%d\n",i);
}
return 0;
}
18.题目标题:
百马百担问题
题目描述:
百马百担问题:有n1匹马,驮n2担货,大马驮3担,中马驮2担,两匹小马驮1担,问有多少种驮法?注意:每种马至少有1匹.
输入描述:
两个整数n1(马匹数)和n2(担货数)。
输出描述:
驮法数。
样式输入:
100 100
样式输出:
6
#include <stdio.h>
int main()
{
int d,z,x;
int sum=0,n1,n2;
scanf("%d %d",&n1,&n2);
for(d=1;d<=n1;d++)
for(z=1;z<=n1-d;z++)
{
x=n1-d-z;
if((3*d+2*z+0.5*x)==n2)
sum++;
}
printf("%d",sum);
return 0;
}
19.题目标题:
函数求解1/n的累乘
题目描述:
利用自定义函数编写程序,求下面的式子: Y=1*1/2*1/3……*1/n (n的数值由键盘输入,n<=10)
输入描述:
输入一个正整数
输出描述:
输出为小数,保留小数点后12位有效数字。
样式输入:
3
样式输出:
0.7
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int n,i;
double t=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
t/=i;
printf("%.12lf",t);
return 0;
}
20.题目标题:
整数的分解)
题目描述:
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
输入描述:
输入一个正整数。
输出描述:
等式左边输出整数,等式右边整数相乘形式。
样式输入:
90
样式输出:
90=2*3*3*5
#include <stdio.h>
int isprime(int n)
{
int i;
for(i=2;i*i<=n;i++)
if(n%i==0)
return 0;
return 1;
}
int main()
{
int num,i;
scanf("%d",&num);
printf("%d=",num);
if(isprime(num))
printf("1*%d",num);
else{
for(i=2; i<=num; i++)
if(num%i==0)
{
num/=i;
printf("%d",i);
break;
}
for(i=2; i<=num; i++)
while(num%i==0)
{
num/=i;
printf("*%d",i);
}
}
return 0;
}
16 / 16
展开阅读全文