C语言-分支、循环结构题

分支结构

1.题目:企业发放的奖金根据利润提成。

利润低于或等于 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 ,求应发放奖金总数

代码:

   float m,n;
   printf("请输入当月利润(单位:万元):");
   scanf("%f",&m);
   if(m <= 10)
       n = 0.1 * m;
   else if(m <= 20)
       n = 1 + 0.075 * (m - 10);
   else if(m <= 40)
       n = 1.75 + 0.05 * (m - 20);
   else if(m <= 60)
       n = 2.75 + 0.03 * (m - 40);
   else if(m <= 100)
       n = 3.35 + 0.015 * (m - 60);
   else
       n = 3.95 + 0.01 * (m - 100);
   printf("应发放奖金总数为:%f(万元)\n",n);

运行结果:

2.题目:用switch case来实现四则运算。如输入 4+5 输出9。

代码:

  char op;
  double num1,num2,result;
  printf("请输入运算符(+,-,*,/):");
  scanf("%c",&op);
  getchar();
  printf("请输入要计算的两个数:");
  scanf("%lf %lf",&num1,&num2);
  switch(op)
  {
  case '+':
      result = num1 + num2;
      printf("%0.2lf + %0.2lf = %0.2lf\n",num1,num2,result);
      break;
  case '-':
      result = num1 - num2;
      printf("%0.2lf - %0.2lf = %0.2lf\n",num1,num2,result);
      break;
  case '*':
      result = num1 * num2; 
      printf("%0.2lf * %0.2lf = %0.2lf\n",num1,num2,result);
      break;
  case '/':
      result = num1 / num2;
      printf("%0.2lf / %0.2lf = %0.2lf\n",num1,num2,result);
      break;
  default:
      printf("请输入正确的运算符!\n");
  }

运行结果:

循环结构

1.题目:打印以下图形

*                    //i=0      循环1次   
***                  //i=1      循环3次            
*****                  i=2      循环5次
*******                i=3      循环7次      (2*i)+1

代码:

int i,j;
for(i=0;i<4;i++)
{
    for(j=0;j<=(2*i)+1;j++)
    {
        printf("*");
    }
    printf("\n");
}

运行结果:

2.题目:打印以下图形

                    空格个数   *号
   *         i=0      3        1
  ***        i=1      2        3   
 *****       i=2      1        5
*******      i=3      0        7
                      3-i     (2*i)+1

代码:

   int i,j;
   for(i=0;i<4;i++)
   {
       for(j=1;j<=3-i;j++)
       {
           printf(" ");
       }
       for(j=1;j<=(2*i)+1;j++)
       {
           printf("*");
       }

       printf("\n");
   }

运行结果:

3.题目:有 1 、 2 、 3 、 4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

ps:三层循环:个位,十位,百位 ,判断个位!=十位 个位!=百位 十位!=百位

代码:

 int i,j,k,num=0;
 printf("互不相同且无重复数字的三位数有:");
 for(i=1;i<5;i++)
 {
     for(j=1;j<5;j++)
     {
         for(k=1;k<5;k++)
         {
              if (i != j && j != k && i != k) {
                 printf("%d\t", i*100+j*10+k);
                 num++;
             }
         }
     }
     printf("\n");
 }
  printf("共有%d个满足条件的三位数\n", num);

运行结果:

4.题目:有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13... 求出这个数列的前 20 项之和。

答案:结果:32.6603

ps:当前项的分子是下一项的分母, 下一项的分子是当前项的分子+分母

代码:

 int i;
 double a = 2, b = 1, temp, sum = 0;
 for (i = 0; i < 20; i++) {
     sum += a / b;
     temp = a;
     a = a + b;
     b = temp;
 }
 printf("前20项之和为:%0.4f\n", sum);

运行结果:

5.题目:猴子吃桃问题:

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。

求第一天共摘了多少。

提示:倒着往前退,找到公式规律

代码:

 int day,tao = 1;
 for (day = 9; day > 0; day--) {
     tao = (tao + 1) * 2;
 }
 printf("第一天共摘了%d个桃子\n", tao);

运行结果:

1. 请写1个支付宝接龙红包程序. 随机产生1-100的随机数,作为红包金额. 让用户不断的去猜,直到猜正确为止.最后发给用户的红包金额是 红包金额/猜得次数. 2. 循环录入5个人的年龄并计算平均年龄,如果录入的数据出现负数或大于100的数,立即停止输入并报错. 3. 实现要求用户一直输入QQ号码和密码,只要不是123456、888888就一直提示要求重新输入,如果正确则提登录成功. 4. 1-100之间不能够被7整除的数的和. 5. 求1-200之间的所有的整数的累加和 6. 求1-100之间6的倍数的个数 7. 输入班级人数,然后依次输入学员成绩,计算班级学员的平均成绩和总成绩 8. 2006年培养学员80000人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?*** 9. 从键盘输入10个数,求出最大数 10. 1000~ 5000之间有多少整数,其各位数字之和为5,分别是哪些数(例如整数2003的各位数字之和为 2+0+0+3 ,等于5)), 并统计满足条件的整数有多少个。 11. 求1-100中 是7的倍数 的数值之和 12. 求1-1000之间的所有的奇数之和 13.猜数字游戏. 随机产生1个1-100之间的数 让用户猜 当用户输入的数比产生的随机数大 就输出 猜大了 并让用户继续输入新的数.。 当用户输入的比产生的随机数小的时候 就输出 猜小了 并且继续猜 当用户刚好输入的就是这个随机数的时候 提示成功 并显示用户猜了多少次. 14. 老师问学生,这道你会做了吗? 如果学生答"会了(y)",则可以放学. 如果学生不会做(n),则老师再讲一遍,再问学生是否会做了......直到学生会为止,才可以放学. 直到学生会或老师给他讲了10遍还不会,都要放学 15. 写1个程序. 随机的产生1个2位数的加法运算.让用户输入这个运算的结果 然后判断这个结果是否正确. 来10次. 每个人默认有10分. 产生10个加法运算.操作数的范围在0-100之间. 每产生1个加法运算 就让用户输入结果.判断是否正确. 当回答正确的时候就为用户加1分. 错误的时候就扣1分. 当10道目回答完毕之后 就显示用户得的分数. ***
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我于人间凑数

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值