复习篇2016.3.4 16.42复习篇之一(蓝桥杯恶补)
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
#include<stdio.h>
int main()
{
int num,i,j,k;
num=0;
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
if(i!=j&&i!=k&&j!=k)
{
num++;
printf("%d%d%d\n",i,j,k);
}
printf("共有%d个",num);
return 0;
}
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高
于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提
成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于
40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于
100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
我的答案(题目理解问题)
#include<stdio.h>
int main()
{
float award,money;
award=0.0;
scanf("%f",&money);
if(money<=10)
award=money*0.1;
else if(money>10&&money<20)
award=10*0.1+(money-10)*0.75;
else if(money>20&&money<40)
award=(money-20)*0.05;
else if(money>40&&money<60)
award=(money-40)*0.03;
else if(money>60&&money<100)
award=(money-60)*0.015+(money-100)*0.01;
printf(" %f\n",award);
return 0;
}
正确解答:
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i<=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i<=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d",bonus);
}
//题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
我给出的答案:
#include<stdio.h>
#include<math.h>
main()
{
inti,j,k,flag;
i=1;flag=10000;
while(flag)
{
j=i+100;
k=j+168;
if(j==(int)sqrt(j)*(int)sqrt(j)&&k==(int)sqrt(k)*(int)sqrt(k))
printf("%d\n",i);
i++;
flag--;
}
return0;
}给出的答案为:
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,k,flag;
for(i=1;i<10000;i++)<span style="font-family: Arial, Helvetica, sans-serif;"> {</span>
j=(int)sqrt(i+100);
k=(int)sqrt(i+268);
if(j*j==i+100&&k*k==i+268)
printf("%d\n",i);
}
return 0;
}
//题目:输入某年某月某日,判断这一天是这一年的第几天?
我的答案:
#include<stdio.h>
int main()
{
int year,month,day,flag,sec,prin;
flag=0;
prin=0;
scanf("%d,%d,%d",&year,&month,&day);
if(flag==0)
{
sec=28;
switch(month)
{
case 1:prin=day;break;
case 2:prin=31+day;break;
case 3:prin=31+28+day;break;
case 4:prin=31+28+31+day;break;
case 5:prin=31+28+31+30+day;break;
case 6:prin=31+28+31+30+31+day;break;
case 7:prin=31+28+31+30+31+30+day;break;
case 8:prin=31+28+31+30+31+30+31+day;break;
case 9:prin=31+28+31+30+31+30+31+31+day;break;
case 10:prin=31+28+31+30+31+30+31+31+30+day;break;
case 11:prin=31+28+31+30+31+30+31+31+30+31+day;break;
case 12:prin=31+28+31+30+31+30+31+31+30+31+30+day;break;
}
flag=1;
}
if((year%4==0&&year%100!=0)||(year%400==0))
flag=2;//闰年
if(flag==2&&month>=3)
prin=prin+1;
printf("%d",prin);
return 0;
}
//题目:输入三个整数x,y,z,请把这三个数由小到大输出。
#include<stdio.h>
int main()
{
int t,i,j,k;
scanf("%d%d%d",&i,&j,&k);
if(i>j)
{t=i;i=j;j=t;
}
if(i>k)
{t=i;i=k;k=t;
}
if(j>k)
{t=j;j=k;k=t;}
printf("%d%d%d\n",i,j,k);
return 0;
}
//题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
//后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
//1 1 2 3 5 8
#include<stdio.h>
int main()
{
long f1,f2;
int i;
f1=f2=1;
for(i=1;i<=20;i++)
{
printf("%12ld\n",f1);
printf("%12ld\n",f2);
f1=f1+f2;
f2=f1+f2;
}
return 0;
}
题目:判断1-200之间有多少个素数,并输出所有素数。
#include<stdio.h>
#include<math.h>
main()
{
int m,i,k,h=0,leap=1;
printf("\n");
for(m=1;m<=200;m++)
{
k=sqrt(m+1);
for(i=2;i<=k;i++)//老是出错!!!
if(m%i==0)
{
leap=0;
break;
}
if(leap)
{
printf("%-4d",m);
h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\nThe total is %d",h);
}
快考试了,考前刷刷题,先做了一些简单的,找找感觉,过了一个年变得很是生疏,题目不多,也算是挺经典的吧,用到了好多知识点。
不为失败找原因,要为成功找方法!
浙公网安备 33010602011771号