当前位置:   article > 正文

2022秋 C理论A_ 编程练习2 - 选择结构_7-3 输出英文字母的前驱和后继字母 分数 10 作者 李民 单位 武汉理工大学 从键盘

7-3 输出英文字母的前驱和后继字母 分数 10 作者 李民 单位 武汉理工大学 从键盘

7-1 A除以B

真的是简单题哈 —— 给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。

输入格式:

输入在第一行给出两个整数A和B(−100≤A,B≤100),数字间以空格分隔。

输出格式:

在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为Error。输出的商应保留小数点后2位。

输入样例1:

-1 2

输出样例1:

-1/2=-0.50

输入样例2:

1 -3

输出样例2:

1/(-3)=-0.33

输入样例3:

5 0

输出样例3:

5/0=Error

代码段: 

  1. #include <stdio.h>
  2. int main()
  3. {
  4. float a,b,c;
  5. scanf("%f %f",&a,&b);
  6. if(b==0)
  7. printf("%.0f/%.0f=Error",a,b);
  8. else if(b>0)
  9. {
  10. c=a/b;
  11. printf("%.0f/%.0f=%.2f",a,b,c);
  12. }
  13. else if(b<0)
  14. {
  15. c=a/b;
  16. printf("%.0f/(%.0f)=%.2f",a,b,c);
  17. }
  18. return 0;
  19. }

7-2 出租车计价 

本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:

  • 起步里程为3公里,起步费10元;
  • 超起步里程后10公里内,每公里2元;
  • 超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
  • 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。

输入格式:

输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。

输出格式:

在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。

输入样例1:

2.6 2

输出样例1:

10

输入样例2:

5.1 4

输出样例2:

14

输入样例3:

12.5 9

输出样例3:

34

代码段

  1. #include <stdio.h>
  2. int main()
  3. {
  4. float s,ms,mt,m;
  5. int t;
  6. scanf("%f %d",&s,&t);
  7. if(s<3)
  8. ms=10;
  9. else if(s<10)
  10. ms=10+(s-3)*2;
  11. else if(s>10)
  12. ms=10+14+(s-10)*3;
  13. mt=t/5*2;
  14. m=ms+mt;
  15. printf("%.0f",m);
  16. }

7-3 输出英文字母的前驱和后继字母

从键盘输入一个英文字母,输出其前驱字母(即前一个字母)、后继字母(即后一个字母)及其ASCII值。比如输入的字母是b,则前驱字母是a,后继字母是c。而如果输入的字母是a,则前驱字母是z,后继字母是b;如果输入的字母是z,则前驱字母是y,后继字母是a。

大写字母的前驱后继字母求法与小写字母相同。

输入格式:

输入一个英文字母(大写或小写字母)。

输出格式:

第一行输出该字母的前驱字母及其ASCII值,第二行输出后继字母及其ASCII值,字母与ASCII值之间用一个空格分隔。

输入样例1:

b

输出样例1:

  1. a 97
  2. c 99

输入样例2:

a

输出样例2:

  1. z 122
  2. b 98

代码段:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. char a;
  5. scanf("%c",&a);
  6. if((65<a&&a<90)||(97<a&&a<122))
  7. {
  8. printf("%c %d\n",a-1,a-1);
  9. printf("%c %d",a+1,a+1);
  10. }
  11. if(a==65)
  12. {
  13. printf("Z 90\n");
  14. printf("B 66");
  15. }
  16. if(a==90)
  17. {
  18. printf("Y 89\n");
  19. printf("A 65");
  20. }
  21. if(a==97)
  22. {
  23. printf("z 122\n");
  24. printf("b 98");
  25. }
  26. if(a==122)
  27. {
  28. printf("y 121\n");
  29. printf("a 97");
  30. }
  31. }

7-4 后天

如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。

输入格式:

输入第一行给出一个正整数D(1 ≤ D ≤ 7),代表星期里的某一天。

输出格式:

在一行中输出D天的后天是星期几。

输入样例:

3

输出样例:

5

代码段 :

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int D;
  5. scanf("%d",&D);
  6. if(D<6) {
  7. printf("%d\n",D+2);
  8. }else{
  9. printf("%d", D -5);}
  10. return 0;
  11. }

7-5 后天日期

给定一个日期,格式为yyyy-mm-dd(年份-月份-日期),计算并输出后天的日期,格式为yyyy.mm.dd(4位年份.2位月份.2位日期)。例如:输入2001-12-31,输出为:2002.01.02。

输入格式:

输入以"-"分隔的年月日。

输出格式:

输出计算后的后天的日期,以"."分隔。行末无多余字符。

输入样例 1:

2001-12-31

输出样例 1:

2002.01.02

输入样例 2:

2008-2-28

输出样例 2:

2008.03.01

代码段:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int y,m,d,rn;
  5. scanf("%d-%d-%d",&y,&m,&d);
  6. if((y%400==0)||(y%4==0&&y%100!=0))
  7. rn=1;
  8. else rn=0;
  9. if(rn==1)
  10. if((d==30||d==31)&&(m==1||m==3||m==5||m==7||m==8||m==10))
  11. printf("%d.%02d.%02d",y,m+1,d+2-31);
  12. else if((d==30||d==31)&&m==12)
  13. printf("%d.%02d.%02d",y+1,1,d+2-31);
  14. else if((d==29||d==30)&&(m==4||m==6||m==9||m==11))
  15. printf("%d.%02d.%02d",y,m+1,d+2-30);
  16. else if((d==28||d==29)&&m==2)
  17. printf("%d.%02d.%02d",y,3,d+2-29);
  18. else printf("%d.%02d.%02d",y,m,d+2);
  19. if(rn==0)
  20. if((d==30||d==31)&&(m==1||m==3||m==5||m==7||m==8||m==10))
  21. printf("%d.%02d.%02d",y,m+1,d+2-31);
  22. else if((d==30||d==31)&&m==12)
  23. printf("%d.%02d.%02d",y+1,1,d+2-31);
  24. else if((d==29||d==30)&&(m==4||m==6||m==9||m==11))
  25. printf("%d.%02d.%02d",y,m+1,d+2-30);
  26. else if((d==28||d==27)&&m==2)
  27. printf("%d.%02d.%02d",y,3,d+2-28);
  28. else printf("%d.%02d.%02d",y,m,d+2);
  29. }

7-6 计算工资

某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工为老职工,5年以下的为新职工。新职工的正常工资为30元/小时,老职工的正常工资为50元/小时。请按该计酬方式计算员工的工资。

输入格式:

输入在一行中给出2个正整数,分别为某员工入职年数和周工作时间,其间以空格分隔。

输出格式:

在一行输出该员工的周薪,精确到小数点后2位。

输入样例1:

5 40

输出样例1:

2000.00

输入样例2:

3 50

输出样例2:

1650.00

代码段:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int y,h,ym;
  5. float hm;
  6. scanf("%d %d",&y,&h);
  7. if(y>=5)
  8. ym=50;
  9. else ym=30;
  10. if(h<=40)
  11. hm=ym*h;
  12. else hm=ym*40+(h-40)*ym*1.5;
  13. printf("%.2f",hm);
  14. }

7-7 能买手机吗?

小吴同学想换一部手机,希望自己自力更生获得。于是,小吴准备暑假兼职获取酬劳。今天看到一则招聘启示,薪资标准为:每周工作40小时以内,每小时基本工资20元;超出时间为加班,每小时工资翻倍。公司规定,每周加班不能超过10小时。
现在,小吴想知道,若在此公司工作,要在一个月内(4周)挣到购买手机的资金,需要工作的时长。请你编写一个程序,替小吴算算,购买不同的手机需要加班的最短时长。

输入格式:

输入小吴想买的手机价格Price,Price为正整数。

输出格式:

给出是否需要加班的结论。若需要加班,给出需加班时长(整数)。并给出是否能购买此手机的建议。

输入样例 1:

2000

输出样例 1:

不需加班,可购买

输入样例 2:

5000

输出样例 2:

需加班45小时,买不起

输入样例 3:

4500

输出样例 3:

需加班33小时,可购买

代码段: 

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int Price;
  5. scanf("%d", &Price);
  6. if (40 * 20 * 4 > Price)
  7. {
  8. printf("不需加班,可购买");
  9. }
  10. else
  11. {
  12. int day = (Price - 40 * 20 * 4)/(20*2);
  13. int s = (Price - 40 * 20 * 4) % (20 * 2);
  14. if (s != 0)
  15. {
  16. day += 1;
  17. }
  18. if (day > 10 * 4)
  19. {
  20. printf("需加班%d小时,买不起", day);
  21. }
  22. else
  23. {
  24. printf("需加班%d小时,可购买", day);
  25. }
  26. }
  27. return 0;
  28. }

 7-8 谁是赢家

某电视台的娱乐节目有个表演评审环节,每次安排两位艺人表演,他们的胜负由观众投票和 3 名评委投票两部分共同决定。规则为:如果一位艺人的观众票数高,且得到至少 1 名评委的认可,该艺人就胜出;或艺人的观众票数低,但得到全部评委的认可,也可以胜出。节目保证投票的观众人数为奇数,所以不存在平票的情况。本题就请你用程序判断谁是赢家。

输入格式:

输入第一行给出 2 个不超过 1000 的正整数 Pa 和 Pb,分别是艺人 a 和艺人 b 得到的观众票数。题目保证这两个数字不相等。随后第二行给出 3 名评委的投票结果。数字 0 代表投票给 a,数字 1 代表投票给 b,其间以一个空格分隔。

输出格式:

按以下格式输出赢家:

The winner is x: P1 + P2

其中 x 是代表赢家的字母,P1 是赢家得到的观众票数,P2 是赢家得到的评委票数。

输入样例:

  1. 327 129
  2. 1 0 1

输出样例:

The winner is a: 327 + 1

 代码段:

  1. # include<stdio.h>
  2. int main()
  3. {
  4. int pa,pb,p1,p2,p3,count;
  5. scanf("%d %d\n",&pa,&pb);
  6. scanf("%d %d %d",&p1,&p2,&p3);
  7. count=p1+p2+p3;
  8. if(pa>pb&&count!=3)
  9. {
  10. printf("The winner is a: %d + %d",pa,3-count);
  11. }
  12. else
  13. {
  14. printf("The winner is b: %d + %d",pb,count);
  15. }
  16. return 0;
  17. }

7-9 比较大小

本题要求将输入的任意3个整数从小到大输出。

输入格式:

输入在一行中给出3个整数,其间以空格分隔。

输出格式:

在一行中将3个整数从小到大输出,其间以“->”相连。

输入样例:

4 2 8

输出样例:

2->4->8

 代码段:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int x,y,z,min;
  5. scanf("%d %d %d",&x,&y,&z);
  6. if(x>y)
  7. {
  8. min = x;
  9. x = y;
  10. y = min;
  11. }
  12. if(x>z)
  13. {
  14. min = x;
  15. x = z;
  16. z = min;
  17. }
  18. if(y>z)
  19. {
  20. min = y;
  21. y = z;
  22. z = min;
  23. }
  24. printf("%d->%d->%d",x,y,z);
  25. return 0;
  26. }

 

 

 

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/549769
推荐阅读
相关标签
  

闽ICP备14008679号