c语言复试复习,菜鸟100例
// 题目一 有1、2、3、4个数字, //能组成多少个互不相同且无重复数字的三位数?都是多少? #include<stdio.h> int main(){ int d=0; int a[4]={1,2,3,4}; for(int i=0;i<=3;i++) { for (int j=0;j<=3;j++) for(int m=0;m<=3;m++) { if(i!=j&&i!=m&&j!=m) { printf("%d%d%d\n",a[i],a[j],a[m]); ++d; } }} printf("一共有%d个数字",d); }
1 /*题目二 企业发放的奖金根据利润提成。 2 3 利润(I)低于或等于10万元时,奖金可提10%; 4 利润高于10万元,低于20万元时,低 5 于10万元的部分按10%提成,高于10万元的部分,可提成7.5%; 6 20万到40万之间时,高于20万元的部分,可提成5%; 7 40万到60万之间时高于40万元的部分,可提成3%; 8 60万到100万之间时,高于60万100元的部分,可提成1.5%; 9 高于100万元时,超过100万元的部分按1%提成。 10 从键盘输入当月利润I,求应发放奖金总数?*/ 11 #include<stdio.h> 12 int main() 13 { 14 double i; 15 double bonus1,bonus2,bonus4,bonus6,bonus10,bonus; 16 printf("你的净利润是:\n"); 17 scanf("%lf",&i); 18 bonus1=100000*0.1; 19 bonus2=bonus1+100000*0.075; 20 bonus4=bonus2+200000*0.05; 21 bonus6=bonus4+200000*0.03; 22 bonus10=bonus6+400000*0.015; 23 if(i<=100000) { 24 bonus=i*0.1; 25 } else if(i<=200000) { 26 bonus=bonus1+(i-100000)*0.075; 27 } else if(i<=400000) { 28 bonus=bonus2+(i-200000)*0.05; 29 } else if(i<=600000) { 30 bonus=bonus4+(i-400000)*0.03; 31 } else if(i<=1000000) { 32 bonus=bonus6+(i-600000)*0.015; 33 } else if(i>1000000) { 34 bonus=bonus10+(i-1000000)*0.01; 35 } 36 printf("提成为:bonus=%lf",bonus); 37 38 printf("\n"); 39 }
/*题目二 数学运算 省略一个整数加上100后是一个完全平方数, 再加上168又是一个完全平方数,请问该数是多少?*/ #include<stdio.h> int main(){ }
/*题目四 输入某年某月某日,判断这一天是这一年的第几天?*/ #include<stdio.h> int main(){ int year,month,day,sum; printf("请输入年月日,用空格隔开"); scanf("%d,%d,%d",&year,&month,&day); switch(month) { case 1: sum=0;break; case 2: sum=31;break; case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf("data error");break; } sum=sum+day; // 再加上某天的天数 if(year%400==0||(year%4==0&&year%100!=0)) {// 判断是不是闰年 leap=1; } else { leap=0; } if(leap==1&&month>2) { // *如果是闰年且月份大于2,总天数应该加一天 sum++; } printf("这是这一年的第 %d 天。",sum); printf("\n"); }
/* 第五题 输入三个整数x,y,z,请把这三个数由小到大输出*/ #include<stdio.h> int main(){ int a[3]; int s; for(int i=0;i<=2;i++) { printf("请输入第%d个数",i+1); scanf("%d",&a[i]); } for(int i=0; i<=1;i++){ for(int j=0;j<=3-1-i;j++){ if(a[j]>a[j+1]){s=a[j];a[j]=a[j+1];a[j+1]=s;} } s=0; } for(int i=0;i<=2;i++) { printf("第%d个数为%d\n",i+1,a[i]); } }
/*第六题 题目:用*号输出字母C的图案。*/ #include <stdio.h> int main() { printf("用 * 号输出字母 C!\n"); printf(" ****\n"); printf(" *\n"); printf(" * \n"); printf(" ****\n"); }
/*题目八:输出9*9口诀。*/ #include <stdio.h> int main() { printf("九九乘法口诀\n"); for(int i=1;i<10;i++) { for (int j=1;j<=i;j++) { printf("%d*%d=%d ",i,j,i*j); } printf("\n"); } }
/*题目九:古典问题(兔子生崽):有一对兔子, 从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)*/ // 1 1 2 3 5 从三个月开始,每个月是前两个月相加 #include <stdio.h> int main() { int a=1,b=1,c=0; printf("兔子的个数是\n 1\n 1\n"); for (int i=1;i<=38;i++){ printf("第%d个月: %d\n",i+2,a+b); c=a+b; a=b; b=c; } }
/*题目十:判断101到200之间的素数。*/ #include <stdio.h> int main() { int a=0; for(int i=101;i<201;i++){ for(int j=2;j<i;j++){ if(i%j==0){ a=1; } } if(a==1){} else printf("%d是素数\n",i); a=0; } }
/*题目十一:打印出所有的"水仙花数", 所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。 例如:153是一个"水仙花数", 因为153=1的三次方+5的三次方+3的三次方。*/ #include <stdio.h> int main() { for(int i=100;i<1000;i++){ int a=i/100; int b=i/10%10; int c=i%100%10; if(a*a*a+b*b*b+c*c*c==i){printf("%d\n",i);} } }
/*题目11:将一个正整数分解质因数。 例如:输入90,打印出90=2*3*3*5。*/ #include <stdio.h> int main() { 不会,留着 }
/*15题利用条件运算符的嵌套来完成此题: 学习成绩>=90分的同学用A表示, 60-89分之间的用B表示, 60分以下的用C表示。*/ #include <stdio.h> int main() { float score; char grade; printf("请输入成绩\n"); scanf("%f",&score); printf("您的等级是%c",(score>=90)?'a':(score>=60)?'b':'c'); }
/*16题输入两个正整数m和n,求其最大公约数和最小公倍数。*/ #include <stdio.h> int main() { /*最小公倍数=输入的两个数之积除于它们的最大公约数 最大公约数= 辗转相除法最后的除数 辗转相除法 77 28的最大公因数 77>28 77%28=21 28%21=7 21%7=0 所以7是最大公因数/最大公约数 */ int m,n; int d; int max,min; printf("请输入两个正整数\n"); scanf("%d %d",&m,&n); //求最大公约数 if(m>n){max=m;min=n;} else {max=n;min=m;} d=max%min; while(d!=0){ max=min; min=d; d=max%min; } printf("最大公约数是%d",min); }
/*17题输入一行字符,分别统计出其中 英文字母、空格、数字和其它字符的个数。*/ #include <stdio.h> int main() { char c; int letters=0,spaces=0,digits=0,others=0; printf("请输入一些字母:\n"); while((c=getchar())!='\n') //一个一个的比较 { if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) //字母 letters++; else if(c>='0'&&c<='9') //数字 digits++; else if(c==' ') //空格 spaces++; else others++; } printf("字母=%d,数字=%d,空格=%d,其他=%d\n",letters,digits,spaces,others); return 0; }
/*18求s=a+aa+aaa+aaaa+aa...a的值,其 中a是一个数字。 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制*/ #include<stdio.h> int main() { int s=0,a,n,t; printf("请输入 a 和 n:\n"); scanf("%d%d",&a,&n); t=a; while(n>0) { s+=t; a=a*10; t+=a; n--; } printf("a+aa+...=%d\n",s); return 0; }
题目一 a[5]={}; for可在里面定义i
题目二 printf输入输出用%f double输入输出用%lf L
题目四 能被400整除为闰月 能被四整除且不能被100整除的为闰月,闰月二月29天,平年二月为28天
闰月算法if(year%400==0||(year%4==0&&year%100!=0))
情况 switch(year){case 1:…..break; default: printf("data error");break;}要加break
题目九 兔子生仔 1 1 2 3 5
题目十 判断n是否是素数,n%i i从2到n-1
题目十一水仙花数153=1的三次方+5的三次方+3的三次方。
题目十二 最小公倍数=输入的两个数之积除于它们的最大公约数
最大公约数= 辗转相除法最后的除数
辗转相除法
77 28的最大公因数
77>28 77%28=21
28%21=7
21%7=0 所以7是最大公因数/最大公约数
scanf("%d %d",&m,&n); 输入时用空格隔开
scanf("%d,%d",&m,&n);输入时用,隔开
17题while((c=getchar())!='\n') 按字符,以换行结束
if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) //字母
elseif(c>='0'&&c<='9') //数字
elseif(c=='') //空格