复习篇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); }快考试了,考前刷刷题,先做了一些简单的,找找感觉,过了一个年变得很是生疏,题目不多,也算是挺经典的吧,用到了好多知识点。
不为失败找原因,要为成功找方法!