复试编程训练三

桃扇骨 2023-07-16 14:58 122阅读 0赞

21.用原来字母后面的第四个字母代替原来的字母。”China”—>“Glmre”

用赋初值的办法

  1. #include <stdio.h>
  2. int main()
  3. {
  4. char c1='C',c2='h',c3='i',c4='n',c5='a';
  5. c1+=4;
  6. c2+=4;
  7. c3+=4;
  8. c4+=4;
  9. c5+=4;
  10. printf("密码是:%c%c%c%c%c",c1,c2,c3,c4,c5);
  11. printf("\n");
  12. return 0;
  13. }

运行结果:

20200319140904175.PNG

22.要求按考试成绩的等级输出百分制分数段

  1. #include <stdio.h>
  2. int main()
  3. {
  4. char grade;
  5. scanf("%c",&grade);
  6. switch(grade)
  7. {
  8. case 'A':
  9. printf("90~100\n");
  10. break;
  11. case 'B':
  12. printf("80~89\n");
  13. break;
  14. case 'C':
  15. printf("70~79\n");
  16. break;
  17. case 'D':
  18. printf("60~69\n");
  19. break;
  20. default:
  21. printf("60(不包括)以下\n");
  22. }
  23. return 0;
  24. }

运行结果:

2020031914145868.PNG

23.用switch处理菜单命令

  1. #include <stdio.h>
  2. void action1(int a,int b)
  3. {
  4. printf("a-b=%d\n",a-b);
  5. }
  6. void action2(int a,int b)
  7. {
  8. printf("a+b=%d\n",a+b);
  9. }
  10. int main()
  11. {
  12. int a=15,b=23;
  13. char ch;
  14. ch=getchar();
  15. switch(ch)
  16. {
  17. case 'A':
  18. action1(a,b);
  19. break;
  20. case 'B':
  21. action2(a,b);
  22. break;
  23. }
  24. return 0;
  25. }

运行结果:

20200319142007277.PNG

20200319142307931.PNG

注释:若switch的case语句不用break跳出,则结果如下:

20200319142131372.PNG

20200319142215805.PNG

24.给出一个不多于5位数的正整数:1.求它是几位数;2.分别输出每位数字;3.按逆序输出各位数,原为123,输出321

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int num;
  5. scanf("%d",&num);
  6. int place; //求输入数字的位数
  7. if(num>9999)
  8. place=5;
  9. else if(num>999&&num<10000)
  10. place=4;
  11. else if(num>99&&num<1000)
  12. place=3;
  13. else if(num>9&&num<100)
  14. place=2;
  15. else
  16. place=1;
  17. printf("%d是%d位数\n",num,place);
  18. int a,b,c,d,e;//得到每位数
  19. a=num/10000;
  20. b=num/1000%10;
  21. c=num/100%10;
  22. d=num%100/10;
  23. e=num%10;
  24. printf("逆序输出各位数:");
  25. switch(place) //逆序输出各位数
  26. {
  27. case 5:
  28. printf("%d %d %d %d %d\n",e,d,c,b,a);
  29. break;
  30. case 4:
  31. printf("%d %d %d %d\n",e,d,c,b);
  32. break;
  33. case 3:
  34. printf("%d %d %d\n",e,d,c);
  35. break;
  36. case 2:
  37. printf("%d %d\n",e,d);
  38. break;
  39. case 1:
  40. printf("%d\n",e);
  41. break;
  42. }
  43. return 0;
  44. }

运行结果:

20200319155408717.PNG

25.求m和n的最大公约数和最小公倍数

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int m,n,t,maxy,minb; //maxy为最大公约数,minb为最小公倍数
  5. scanf("%d %d",&m,&n);
  6. if(m<n) //将m与n的小者放在n中
  7. {
  8. t=n;
  9. n=m;
  10. m=t;
  11. }
  12. for(int i=1; i<=n; i++) //求最大公约数
  13. if(n%i==0&&m%i==0)
  14. maxy=i;
  15. minb=m*n/maxy; //求最小公倍数
  16. printf("最大公约数为%d,最小公倍数为%d\n",maxy,minb);
  17. return 0;
  18. }

运行结果:

2020031915132561.PNG

26.输入一行字符,分别统计出其中的英文字母,空格,数字和其他字符的个数

  1. #include <stdio.h>
  2. int main()
  3. {
  4. char ch;
  5. int a=0,b=0,c=0,d=0;
  6. while((ch=getchar())!='\n')
  7. {
  8. if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))
  9. a++;
  10. else if(ch>='0'&&ch<='9')
  11. b++;
  12. else if(ch==' ')
  13. c++;
  14. else
  15. d++;
  16. }
  17. printf("英文字母:%d个\n数字:%d个\n空格:%d个\n其他:%d个\n",a,b,c,d);
  18. return 0;
  19. }

运行结果:

20200319144444188.PNG

27.求Sn=a+aa+aaa+aaaa+…(n个a)的值。例如:2+22+222+2222+…(5个2)

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int a,n,sum=0,i=1,temp=0; //temp为每个加上的元素
  5. scanf("%d %d",&a,&n);
  6. while(i<=n)
  7. {
  8. temp=temp*10+a; //下一个元素为上一个元素的*10+a
  9. sum+=temp;
  10. i++;
  11. }
  12. printf("%d\n",sum);
  13. return 0;
  14. }

运行结果:

20200319153847747.PNG

28.求sum(n!),即1!+2!+…+n!

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int n,t=1,sum=0;
  5. scanf("%d",&n);
  6. for(int i=1; i<=n; i++)
  7. {
  8. t=t*i;
  9. sum+=t;
  10. }
  11. printf("Result:%d\n",sum);
  12. return 0;
  13. }

运行结果:

20200319151842219.PNG

29.求sum(k)+sum(k²)+sum(1/k)

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int k1,k2,k3;
  5. double sum=0.0;
  6. for(k1=1; k1<=100; k1++)
  7. sum+=k1;
  8. //printf("%.2lf\n",sum);
  9. for(k2=1; k2<=50; k2++)
  10. sum+=k2*k2;
  11. //printf("%.2lf\n",sum);
  12. for(k3=1; k3<=10; k3++)
  13. sum+=1.0/k3;
  14. printf("%.2lf\n",sum);
  15. return 0;
  16. }

运行结果:

20200319145859501.PNG

30.输出所有的水仙花数,各位数字的立方和等于该数本身。如:153=1+5*5*5+3*3*3

  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {
  5. int num,a,b,c;
  6. for(num=100; num<1000; num++)
  7. {
  8. a=num%10;
  9. b=num/10%10;
  10. c=num/100;
  11. if(num==pow(a,3)+pow(b,3)+pow(c,3))
  12. printf("%d\n",num);
  13. }
  14. return 0;
  15. }

运行结果:

20200319145255421.PNG

发表评论

表情:
评论列表 (有 0 条评论,122人围观)

还没有评论,来说两句吧...

相关阅读

    相关 复试编程训练

    41.给一个百分制成绩,要求输出等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为