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%;
620万到40万之间时,⾼于20万元的部分,可提成5%;
740万到60万之间时⾼于40万元的部分,可提成3%;
860万到100万之间时,⾼于60万100元的部分,可提成1.5%;
9⾼于100万元时,超过100万元的部分按1%提成。
10从键盘输⼊当⽉利润I,求应发放奖⾦总数?*/
11 #include<stdio.h>
12int main()
13 {
14double i;
15double 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;
23if(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)
{    case1: sum=0;break;
case2: sum=31;break;
case1:sum=0;break;
case2:sum=31;break;
case3:sum=59;break;
case4:sum=90;break;
case5:sum=120;break;
case6:sum=151;break;
case7:sum=181;break;
case8:sum=212;break;
case9:sum=243;break;
case10:sum=273;break;
case11:sum=304;break;
case12: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++;
}c编程必背100题
printf("字母=%d,数字=%d,空格=%d,其他=%d\n",letters,digits,spaces,others);
return0;
}
/*18求s=a+aa+aaa+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);
return0;
}
题⽬⼀ 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=='')  //空格