c语言简易60题.docx
《c语言简易60题.docx》由会员分享,可在线阅读,更多相关《c语言简易60题.docx(41页珍藏版)》请在冰豆网上搜索。
c语言简易60题
一.1请编写程序,输出1~1000之间能被11整除且个位数为5的所有整数。
#include
intmain()
{
inti;
for(i=5;i<=1000;i=i+10)
if(i%11==0)
printf("%5d",i);
printf("\n");
return0;
}
2请编写程序,输出50~100之间能被7或11整除,但不能同时被7和11整除的所有整数。
#include
intmain()
{
inti;
for(i=50;i<=100;i++)
if((i%7==0||i%11==0)&&(i%77!
=0))
printf("%4d",i);
printf("\n");
return0;
}
二.1从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和。
例如,输入x为1234,则输出结果为10。
#include
intmain()
{
intx;
printf("请输入一个四位数:
\n");
scanf("%d",&x);
printf("%d\n",x%10+x/10%10+x/100%10+x/1000);
return0;
}
2.编程输出100~1000之间的所有个位数字与十位数字之和对10求余等于百位的数字的数。
例如:
835,(3+5)%10=8.
#include
intmain()
{
inti;
for(i=100;i<=1000;i++)
if(((i/10%10+i%10)%10)==i/100%10)
printf("%5d",i);
printf("\n");
return0;
}
3.用户输入一个三位正整数,编程输出该数的个位、十位、百位,例如:
输入356,输出6,5,3.
#include
intmain()
{
intx;
printf("请输入一个三位数:
\n");
scanf("%d",&x);
printf("%d,%d,%d\n",x%10,x/10%10,x/100);
return0;
}
4,给一个不多于5位的正整数,要求:
①求出它是几位数并分别输出每一位数字;②按逆序打印出各位数字,例如原数为321,应输出123
#include
intmain()
{
inta,b,c,d,e,x;
printf("请输入一个不多于5位的整数:
\n");
scanf("%d",&x);
a=x%10;
b=x/10%10;
c=x/100%10;
d=x/1000%10;
e=x/10000%10;
if(e!
=0)
{printf("它是五位数,个位是:
%d,十位是:
%d,百位是:
%d,千位是:
%d,万位是:
%d\n",a,b,c,d,e);
printf("逆序%d\n",e+d*10+c*100+b*1000+a*10000);}
elseif(d!
=0)
{printf("它是四位数,个位是:
%d,十位是:
%d,百位是:
%d,千位是:
%d\n",a,b,c,d);
printf("逆序%d\n",d+c*10+b*100+a*1000);}
elseif(c!
=0)
{printf("它是三位数,个位是:
%d,十位是:
%d,百位是:
%d\n",a,b,c);
printf("逆序%d\n",c+b*10+a*100);}
elseif(b!
=0)
{printf("它是两位数,个位是:
%d,十位是:
%d\n",a,b);
printf("逆序%d\n",b+a*10);}
elseif(a!
=0)
{printf("它是一位数,个位是:
%d\n",a);
printf("逆序%d\n",a);}
return0;
}
三.1请编程计算圆锥体的体积。
已知圆锥的底面直径和高均为10cm。
圆锥体体积计算公式为:
V=(1/3)*S*h,S是圆锥的底面积,h是圆锥的高。
#include
intmain()
{
floath=10,r=5,v;
v=3.14*r*r*h/3;
printf("体积:
v=%f\n",v);
return0;
}
2某铁桶厂应客户要求定做一批铁桶,客户给出了铁桶的规格,高30cm,半径10cm,共订做1500个铁桶。
计算出所需的原材料。
(注意:
铁桶包含一个底面和侧面)
#include
intmain()
{
doubleh=0.3,r=0.1,n=1500.0,s=0.0;
s=n*(2*3.14*r*h+3.14*r*r);
printf("所需原材料为%lf\n",s);
return0;
}
3设圆半径r=1.5,圆柱高h=3,求圆柱体积,圆柱底面积,圆柱表面积。
用scanf()输入数据,输出计算结果。
输出时要有说明,结果取小数点后两位数字。
(圆柱体积计算公式:
底面积*高)
#include
intmain()
{
floath,r,v,s1,s2;
printf("请输入高和半径的数值:
\n");
scanf("%f,%f",&h,&r);
v=3.14*r*r*h;
s1=3.14*r*r;
s2=2*3.14*r*r+2*3.14*r*h;
printf("圆柱体积v=%.2f\n圆柱底面积s1=%.2f\n圆柱表面积s2=%.2f\n",v,s1,s2);
return0;
}
4.假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。
计算公式为:
公式p=(1+r)^n,r为年增长率,n为年数,p为与现在相比的倍数
#include
#include
intmain()
{
doubler=0.09,p;
intn=10;
p=pow(1+r,n);
printf("p=%.3lf\n",p);
return0;
}
5编写程序,从键盘输入x,y的值,利用系统库函数求Xy的值。
例如:
输入x,y的值分别是2,3,则输出结果为:
8
#include
#include
intmain()
{
inta,b,c;
printf("请输入x,y的值:
\n");
scanf("%d,%d",&x,&y);
c=pow(x,y);
printf("%d\n",c);
return0;
}
6根据用户从键盘输入的三角形三边长度a,b,c,计算该三角形的面积。
若用户输入的三条边不能构成三角形,则直接输出信息:
“不能构成三角形!
”。
提示:
1.构成三角形的三条边应满足条件:
任意两条边的和均大于第三边;
2.已知三角形的三条边长,计算三角形面积的公式为
s=sqrt(p*(p-a)*(p-b)*(p-c));,其中p=(a+b+c)/2
#include
#include
intmain()
{
floata,b,c,s,p;
printf("请输入三条边的长度:
\n");
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("面积是:
s=%.2f\n",s);
}
else
printf("不能构成三角形!
\n");
return0;
}
四.1计算1+1/2+1/3+1/4+…+1/99+1/100的值,并输出结果
#include
intmain()
{
inti;
floats=0.0;
for(i=1;i<=100;i++)
s=s+1.0/i;
printf("和是%f\n",s);
return0;
}
2有一分数序列:
,求出这个数列的前10项之和。
#include
intmain()
{
inti;
floata,b,s=0,j;
for(i=1,a=2,b=1;i<=10;i++)
{
s=s+a/b;
j=a;
a=a+b;
b=j;
}
printf("%f\n",s);
return0;
}
五,1让用户输入一个年份,判断改年份是否是闰年判断闰年的条件时年份被4整除不能被100整除,或者被400整除
#include
intmain()
{
inta;
printf("请输入一个年份a:
\n");
scanf("%d",&a);
if((a%4==0&&a%100!
=0)||a%400==0)
printf("%d年是闰年\n",a);
else
printf("%d年不是闰年\n",a);
return0;
}
2有一个函数
写程序,输入x的值,输出y相应的值。
#include
intmain()
{
intx,y;
printf("请输入x的数值:
\n");
scanf("%d",&x);
if(x<1)
y=x;
elseif(x<10)
y=2*x-1;
else
y=3*x-11;
printf("当x=%d时y=%d\n",x,y);
return0;
}
3在学生成绩管理中,经常要将成绩的百分制转换成对应的等级制。
90分以上为A等,80-89为B等,70-79为C等,60-69分为D等,其余为E等。
编写程序,根据输入的百分制成绩,输出对应的等级。
#include
intmain()
{
inta;
printf("请输入学生成绩a:
\n");
scanf("%d",&a);
if(a>=90)
printf("A\n");
elseif(a>=80)
printf("B\n");
elseif(a>=70)
printf("C\n");
elseif(a>=60)
printf("D\n");
else
printf("E\n");
return0;
}
4有3个整数a,b,c,由键盘输入,输出其中最大的数。
#include
intmain()
{
inta,b,c,t;
printf("请输入三个整数:
\n");
scanf("%d,%d,%d",&a,&b,&c);
t=a;
if(b>t)
t=b;
if(c>t)
t=c;
printf("最大值是%d\n",t);
return0;
}
六1请编写程序,打印如下图案。
(*的个数和行数由键盘输入)
*****
*****
*****
*****
*****
#include
intmain()
{
inta,b,i,j;
printf("请输入'*'的个数a:
");
scanf("%d",&a);
printf("请输入行数b:
");
scanf("%d",&b);
for(i=1;i<=b;i++)
{
for(j=1;j
printf("");
for(j=1;j<=a;j++)
printf("*");
printf("\n");
}
return0;
}
2编写程序输出下列图形:
*
***
*****
*******
#include
intmain()
{
inti,j;
for(i=1;i<=4;i++)
{
for(j=0;j<2*i-1;j++)
printf("*");
printf("\n");
}
return0;
}
3输入n值,输出如图所示高和上底均为n的等腰梯形。
图为当n=5时
#include
intmain()
{
inti,j,n;
printf("输入n的值:
\nn=");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
printf("");
for(j=1;j<=n+2*i-2;j++)
printf("*");
printf("\n");
}
return0;
}
4编程实现输出有键盘读入的N行的杨辉三角形。
1
11
121
1331
#include
#defineN10
intmain()
{
printf("修改define中N之后的数字可改变行数\n");
inti,j,a[N][N];
for(i=0;i{
a[i][i]=1;
a[i][0]=1;
}
for(i=2;ifor(j=1;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("\n");
return0;
}
七,1韩信点兵。
韩信有一队兵,他想知道有多少人,便让士兵排队报数:
按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。
请编程计算韩信至少有多少兵。
#include
intmain()
{
inti;
for(i=1;;i++)
if(i%5==1&&i%6==5&&i%7==4&&i%11==10)
break;
printf("韩信至少有%d兵\n",i);
return0;
}
2编程判断用户输入的m是否为素数,已知0和1不是素数。
#include
intmain()
{
intn,i;
printf("请输入一个数字:
\n");
scanf("%d",&n);
for(i=2;iif(n%i==0)break;
if(iprintf("%d不是素数.\n",n);
else
printf("%d是素数.\n",n);
return0;
}
3从1开始做自然数的累加,当其累加和超过1000的时候,共计累加了多少数?
当时的累加和是多少?
#include
intmain()
{
inti=1,sum=0,n=0;
for(i=1;i<1000;i++)
{
sum=i+sum;
n++;
if(sum>=1000)break;
}
printf("累加了%d个数\n和是%d\n",n,sum);
return0;
}
八,1从键盘上输入一个小写字母,把它转变为大写字母再输出。
#include
intmain()
{
charc;
printf("请输入一个小写字母\n");
scanf("%c",&c);
printf("%c\n",c-32);
return0;
}
九,1编程计算一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?
第10次反弹多高?
#include
intmain()
{
floats=100,h=s/2;
inti;
for(i=2;i<=10;i++)
{
s=s+2*h;
h=h/2;
}
printf("第十次落地时共经过%f米\n第十次反弹%f米\n",s,h);
return0;
}
2输入一行不大于80个字符的字符串。
统计其中小写字母的个数并输出结果。
#include
#include
intmain()
{
chara[80];
inti,x=0,n;
printf("请输入一行不大于80个字符的字符串:
\n");
gets(a);
n=strlen(a);
for(i=0;iif(a[i]>='a'&&a[i]<='z')
x++;
printf("小写字母有%d个\n",x);
return0;
}
3编程计算1-100之间所有的偶数的和。
#include
intmain()
{
inta[100],i,sum=0;
for(i=0;i<100;i++)
a[i]=i+1;
for(i=0;i<100;i++)
{if(a[i]%2!
=0)
continue;
sum=a[i]+sum;
}
printf("sum=%d\n",sum);
return0;
}
4百钱买百鸡问题:
公鸡每只5元,母鸡每只3元,小鸡3只1元。
用100元买100只鸡,问公鸡、母鸡和小鸡各能买多少只?
#include
intmain()
{
inta,b,c;
for(a=1;a<=20;a++)
{for(b=1;b<=33;b++)
for(c=3;c<=99;c=c+3)
if(5*a+3*b+c/3==100&&a+b+c==100)
printf("公鸡个数是%d,母鸡个数是%d,小鸡个数是%d\n",a,b,c);
}
return0;
}
5编程计算1!
+2!
+3!
+4!
+5!
的值。
#include
intmain()
{
inti,sum=0,n=1;
for(i=1;i<=10;i++)
{n=n*i;
sum=sum+n;
}
printf("%d\n",sum);
return0;
}
6从键盘输入两个整数,求两个整数的最大公约数。
#include
intmain()
{
intm,n,t;
printf("请输入两个正整数:
\n");
scanf("%d%d",&m,&n);
if(m{t=m;m=n;n=t;}
while(m%n!
=0)
{t=m%n;
m=n;
n=t;}
printf("max=%d\n",n);
return0;
}
7一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。
编程找出1000之内的所有完数,并按下面格式输出其因子:
6itsfactorsare123
#include
#defineN1000
intmain()
{
inti,j,sum;
for(i=1;i{
sum=0;
for(j=1;j<=i/2;j++)
if(i%j==0)
sum+=j;
if(sum==i)
{
printf("%ditsfactorsare:
",i);
for(j=1;j<=i/2;j++)
{
if(i%j==0)
printf("%d,",j);
}
printf("\n");
}
}
return0;
}
十1求Fibonacci数列中前20个数,Fibonacci数列的前两个数为1,1,以后每一个数都是前两个数之和。
Fibonacci数列的前n个数为1,1,2,3,5,8,13,用数组存放数列的前20个数,并输出之(按一行5个输出)。
(递推公式)
#include
intmain()
{
inti;
intf[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{
if(i%5==0)printf("\n");
printf("%12d",f[i]);
}
printf("\n");
return0;
}
2有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入到数组中。
(插入)
#include
intmain()
{
inti,m,j,t,a[6]={1,2,5,7,9};
for(i=0;i<5;i++)
printf("%4d",a[i]);
printf("\n");
printf("请输入要插入的数:
");
scanf("%d",&m);
a[5]=m;
for(i=0;i<6;i++)
for(j=0;j<=i;j++)
if(a[i]{t=a[i];a[i]=a[j];a[j]=t;}
printf("现在的数组是:
\n");
for(i=0;i<6;i++)
printf("%4d",a[i]);
printf("\n");
return0;
}
3对用户输入的10个整数逆序排列并输出(逆序存放)
#include
intmain()
{
inta[10],i,t;
printf("请输入十个数字:
\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<5;i++)
{
t=a[i];
a[i]=a[9-i];
a[9-i]=t;
}
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
return0;
}
4有15个数按由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。
如果该数不在数组中,则输出“无此数”。
(查找)
#include
intmain()
{
int