C语言二级刷题---填空题01

函数fun的功能是:统计长整数n的各个位上出现数字1、2、3的次数,并通过外部(全局)变量c1、c2、c3返回主函数。例如,当n=123114350时,结果应该为:c1=3c2=1 c3=2请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

思路:

n = 123114350 ,每通过while循环一次,都会被最后的" n /= 10 "代码减少最右边的一位数字(个位),所以将switch表达式填写为" n % 10 ",每次循环都会提取最右侧数字(个位);

提取后的数字通过常量1.2.3来执行其后面的语句,若不在1.2的语句后使用" break "来跳出循环,则每次遇到大于1或2的数字时,都会对" c1 "或" c2 "进行" ++ "操作。

cpp 复制代码
#include   <stdio.h>
#pragma warning (disable:4996)
int  c1,c2,c3;
void fun(long  n)
{  c1 = c2 = c3 = 0;
   while (n) {
/**********found**********/
      switch(___1___)
      {
/**********found**********/
       case 1:    c1++;___2___;
/**********found**********/
       case 2:    c2++;___3___;
       case 3:    c3++;
      }
      n /= 10;
   }
}
main()
{  long  n=123114350L;
   fun(n);
   printf("\nThe result :\n");
   printf("n=%ld  c1=%d  c2=%d  c3=%d\n",n,c1,c2,c3);
}
填空后:
cpp 复制代码
#include   <stdio.h>
#pragma warning (disable:4996)
int  c1,c2,c3;
void fun(long  n)
{  c1 = c2 = c3 = 0;
   while (n) {
/**********found**********/
      switch(n%10)
      {
/**********found**********/
       case 1:    c1++;break;
/**********found**********/
       case 2:    c2++;break;
       case 3:    c3++;
      }
      n /= 10;
   }
}
main()
{  long  n=123114350L;
   fun(n);
   printf("\nThe result :\n");
   printf("n=%ld  c1=%d  c2=%d  c3=%d\n",n,c1,c2,c3);
}
相关推荐
强哥聊算力3 小时前
《算力江湖·英伟达传奇》第七集:ChatGPT出现前夜,英伟达发生了什么?
服务器·人工智能·算法·ai·chatgpt·gpu算力
Navigator_Z7 小时前
LeetCode //C - 1289. Minimum Falling Path Sum II
c语言·算法·leetcode
CCblandy7 小时前
令牌桶在 0.9 倍负载超发 19%、固定窗口边界放行 20 个:四种限流算法同构实测
后端·python·算法·性能优化·架构
himobrinehacken7 小时前
取模运算的汇编奥秘揭秘
c语言·安全
YangYang9YangYan9 小时前
2027供应链计划校招:数学与应用数学专业如何把预测模型讲成业务决策?
人工智能·sql·算法
jsjzsl29 小时前
递归自改进系统(RSI)的本质是自发对称破缺:智能爆炸有界—— AI研发切记盲目投入
人工智能·python·算法
程序员清风9 小时前
最短路径算法:BFS、Dijkstra 与 Floyd
java·算法·宽度优先
梦帮科技9 小时前
Kali Linux Scapy 畸形报文构造学——深度解剖非法 TCP Flags 与反常序列号
linux·爬虫·神经网络·算法·数学建模·系统架构·模拟退火算法
171320330计算机毕设编程10 小时前
计算机毕业设计 基于YOLO改进算法的车辆特征识别系统设计与实现--lw
java·大数据·python·sql·算法