二级C语言题解:十进制转其他进制、非素数求和、重复数统计
目录
一、程序填空📝 --- 十进制转其他进制
题目📃
分析🧐
二、程序修改🛠️ --- 非素数求和
题目📃
分析🧐
三、程序设计💻 --- 重复数统计
题目📃
分析🧐
前言
本文讲解:十进制转其他进制、非素数求和、重复数统计
🏠我的主页:我的主页
📚系列专栏:系列专栏
![]()
一、程序填空📝 --- 十进制转其他进制
难度:⭐⭐
题目📃
函数 fun 的功能是:将整数 m 转换成 n(二~十六)进制数的字符串,并通过函数值返回字符串首地址。
例:输入:125 16,则输出:7d
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
代码如下:
在1️⃣2️⃣3️⃣处填空
#include <stdio.h>
#include <string.h>
char c[32];
char *fun(int m, int n)
{int i = 0, j = 0, a[32];char b[16] = { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' }, *p;do{a[i] = m%n;/**********found**********/m = 1️⃣;i++;/**********found**********/} while (2️⃣);for (--i; i >= 0; --i){n = a[i];/**********found**********/c[j++] = 3️⃣;}c[j] = 0;p = c;return p;
}void main()
{int m, n;char s[32];scanf("%d %d", &m, &n);strcpy(s, fun(m, n));printf("%s\n", s);
}
分析🧐
这里要注意,第一个是十进制的值,第二个值是转成对应的进制
例如题中给的例子,就是让十进制125转成16进制
现在来逐个分析每一空(最后一空是难点)
- 填写:m / n
因为由十进制转任意进制的原理可知
十进制模除对应进制取余数,再反向输出即可
那么这个当前值就要更新为值

- 填写:m != 0
当值不为零时就继续取余 - 填写:b[n]
看到b数组就要想想他的作用是什么
很明显是用于将对应位数的字符取出来
解答代码如下:
#include <stdio.h>
#include <string.h>
char c[32];
char *fun(int m, int n)
{int i = 0, j = 0, a[32];char b[16] = { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' }, *p;do{a[i] = m%n;/**********found**********/m = 1️⃣m / n;i++;/**********found**********/} while (2️⃣m != 0);for (--i; i >= 0; --i){n = a[i];/**********found**********/c[j++] = 3️⃣b[n];}c[j] = 0;p = c;return p;
}void main()
{int m, n;char s[32];scanf("%d %d", &m, &n);strcpy(s, fun(m, n));printf("%s\n", s);
}
二、程序修改🛠️ --- 非素数求和
难度:⭐
题目📃
函数 fun 的功能是:求一维数组 a 中非素数之和 sum,其结果 sum 通过函数返回。
例:22,3,65,37,18,19,10,11,12,23,15,17,则输出结果:sum=142
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
代码如下:
在代码中找出3个错误并修改
#include <stdio.h>int fun(int a[], int n)
{int i, j, k, sum;sum = 0;for (i = 0; i < n; i++){k = a[i] / 2;/**********found**********/for (j = 2; j < k; j++){if (a[i] % j == 0)/**********found**********/continue;}/**********found**********/if (j >= k)sum += a[i];}return sum;
}
int main()
{int a[12] = { 22,3,65,37,18,19,10,11,12,23,15,17 };printf("sum=%d\n", fun(a, 12));return 0;
}
分析🧐
本题还是很容易理解的,要掌握素数
素数:只能被1或怎么整数的数字,例如:11
- 第11行的j < k改成 j <= k
如果这里的k是要是a[i]的原值的话就不能有等于
因为如果是等于的话就是和自己整除
那么这里是将要测试的数字除2了,那么就要等于 - 第15行的continue;改成break;
因为如果能被除了1和自己以外的数整除就说明不是素数
所以就要打断 - 第18行的if (j >= k)改成 if(j <=k)
因为根据题意,这里是计算非素数的和
也就是通过break打断的,不是正常结束的
所以条件就和11行判断循环的条件一样就可以了
解答代码如下:
#include <stdio.h>int fun(int a[], int n)
{int i, j, k, sum;sum = 0;for (i = 0; i < n; i++){k = a[i] / 2;/**********found**********/for (j = 2; 1️⃣j <= k; j++){if (a[i] % j == 0)/**********found**********/2️⃣break;}/**********found**********/3️⃣if (j <= k)sum += a[i];}return sum;
}
int main()
{int a[12] = { 22,3,65,37,18,19,10,11,12,23,15,17 };printf("sum=%d\n", fun(a, 12));return 0;
}
三、程序设计💻 --- 重复数统计
难度:⭐⭐⭐
题目📃
请编写函数 fun,其功能是:从一个整数数组中,统计出有重复数字数的个数存于 m 中,m 值由函数值返回。
例如:2430, 3001, 1798, 199, 498, 277, 229, 851, 369, 1146
其中如:3001 中有重复的数字 0
输出:Total Num=5
注意:部分源程序在文件 PROG1.C 中。
请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。
代码如下:
在fun函数中编写
#include <stdio.h>
#include <string.h>int fun(int a[], int n)
{}void main()
{int a[10]={2430,3001,1798,199,498,277,229,851,369,1146};int m;m = fun(a, 10);printf("符合条件的数共有:%d\n",m);getchar();
}
分析🧐
由题意可知,这里要统计一个数组中的一个整数里有重复数字的个数
可以这样:
- 先在数组中取出一个数
- 对这个数进行拆解,放到新的数组b中
- 再对这个这个b数组进行遍历,看是否有相等的数字
- 有的话就将其加1
解答代码如下:
#include <stdio.h>
#include <string.h>int fun(int a[], int n)
{int i, j, k, flag, value = 0, save = 0;int b[10] = {0};//一个循环取一个数for(i = 0; i < n; i++){j = 0;//将这个数中的每个数字//保存到数组b中while(a[i] != 0){b[j++] = a[i] % 10;a[i] = a[i] /10;}//判断这个数是否有重复的数for(k = 0; k < j; k++){for(flag = k+1; flag < j; flag++){//如果有相等的数,就给save赋1if(b[k] == b[flag]){save = 1;break;}}}//如果save为1,则表示有重复的数,就将其加一if(save == 1){value++;save = 0;}}return value;
}void main()
{int a[10]={2430,3001,1798,199,498,277,229,851,369,1146};int m;m = fun(a, 10);printf("符合条件的数共有:%d\n",m);getchar();
}
如果本文对您有帮助,还希望点点关注呢,这将是我不断前进的动力😊
相关文章:
二级C语言题解:十进制转其他进制、非素数求和、重复数统计
目录 一、程序填空📝 --- 十进制转其他进制 题目📃 分析🧐 二、程序修改🛠️ --- 非素数求和 题目📃 分析🧐 三、程序设计💻 --- 重复数统计 题目📃 分析🧐 前言…...
打家劫舍3
今天和打家讲一下打家劫舍3 题目: 题目链接:337. 打家劫舍 III - 力扣(LeetCode) 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为root。 除了 root 之外,每栋房子有且只有一个“父“…...
练习题(2025.2.9)
题目背景 “咚咚咚……”“查水表!”原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动得热泪盈眶,开起了门…… 题目描述 妈妈下班回家,街坊邻居说小明被一群陌生人强行押上了警车!妈妈丰富…...
【练习】PAT 乙 1074 宇宙无敌加法器
题目 地球人习惯使用十进制数,并且默认一个数字的每一位都是十进制的。而在PAT星人开挂的世界里,每个数字的每一位都是不同进制的,这种神奇的数字称为“PAT数”。每个PAT星人都必须熟记各位数字的进制表,例如“……0527”就表示最…...
网络防御高级02-综合实验
web页面: [FW]interface GigabitEthernet 0/0/0 [FW-GigabitEthernet0/0/0]service-manage all permit 需求一,接口配置: SW2: [Huawei]sysname SW2 1.创建vlan [sw2]vlan 10 [sw2]vlan 20 2.接口配置 [sw2]interface GigabitEther…...
UITableView的复用原理
UITableView复用的基本原理是Cell复用机制,它通过重用已经创建的Cell来减少内存开始并提高性能,避免频繁创建和销毁Cell。 复用的流程 1.队列管理 UITableView维护一个可复用队列(reuse queue),存储离屏的UITableVi…...
SQL条件分支中的大讲究
在SQL中,条件分支用于根据不同的条件执行不同的操作,适用于数据查询、数据更新以及存储过程等场景。合理使用SQL条件分支,可以优化数据操作流程,提高代码的可读性和可维护性。 目录 1. 逻辑判断的基本概念 2. CASE 语句…...
Cherry Studio:一站式多模型AI交互平台深度解析 可配合大模型搭建私有知识库问答系统
Cherry Studio:一站式多模型AI交互平台深度解析 可配合大模型搭建私有知识库问答系统 大模型本地化部署流程可查看文章 3分钟教你搭建属于自己的本地大模型 DeepSeek Cherry Studio地址:https://cherry-ai.com/download Cherry Studio 简介 Cherry S…...
工业相机,镜头的选型及实战
工业相机和镜头的选型是机器视觉系统中的关键步骤,选型不当可能导致成像质量差或系统性能不达标。(用于个人的学习和记录) 一、工业相机选型方法 确定分辨率 分辨率需求:根据被测物体的尺寸和检测精度要求计算所需分辨率。 公式…...
C++模板学习从专家到入门:关键字typename与class
文章目录 共同点typename特性class特性 共同点 在定义类模板或者函数模板时,typename 和 class 关键字都可以用于指定模板参数中的类型。 template <class T> template <typename T>typename特性 C 允许在类内定义类型别名,且其使用方法与…...
BFS算法篇——FloodFill问题的高效解决之道(下)
文章目录 前言一. 图像渲染1.1 题目链接:https://leetcode.cn/problems/flood-fill/description/1.2 题目分析:1.3 思路讲解:1.4 代码实现: 二. 岛屿数量2.1 题目链接:https://leetcode.cn/problems/number-of-islands…...
Android性能优化
Android性能优化 如何优化一个包含大量图片加载的Android应用,以提高性能和用户体验? 优化一个包含大量图片加载的Android应用,可以从以下几个方面入手,以提高性能和用户体验: 选择合适的图片加载库 使用成熟的图片…...
1、http介绍
一、HTTP 和 HTTPS 简介 HTTP(HyperText Transfer Protocol) 用途:用于网页数据传输(不加密)。协议特性:以明文形式传输数据,默认端口 80,无身份验证和完整性保护。典型场景…...
2.6 寒假训练营补题
C Tokitsukaze and Balance String (hard) 题目描述 本题为《Tokitsukaze and Balance String (easy)》的困难版本,两题的唯一区别在于 n n n 的范围。 一个字符串是平衡的,当且仅当字符串中 "01" 连续子串的个数与 "10" 连续子…...
kafka生产者之发送模式与ACK
文章目录 Kafka的发送模式Kafka的ack机制发送模式与ack的关联重试次数总结 在Kafka中,发送模式与ack机制紧密相关,它们共同影响着消息发送的可靠性和性能。 Kafka的发送模式 发后即忘(Fire and Forget):生产者发送消息…...
笔记:蓝桥杯python搜索(3-2)——DFS剪支和记忆化搜索
目录 一、DFS剪支 二、例题 P2942 数字王国之军训军队 P3075 特殊的多边形 三、记忆化搜索 四、例题 例题 P3820 混境之地 P216 地宫取宝 一、DFS剪支 在搜索过程中,如果需要完全遍历所有情况可能需要很多时间在搜索到某种状态时,根据当前状态判断…...
ChatBox+硅基流动Deepseek_R1开源API 满血(671B)部署教程,全程干货无废话
DeepSeek开源深度推理模型火爆发布,网络流量过大经常导致服务器崩溃,所以一般有两种方法解决这个问题 如果你的硬件支持,或者保密文档,保密单位,那么可以部署在本地端。但是再好的电脑也不能让DS满血复活,…...
35~37.ppt
目录 35.张秘书-《会计行业中长期人才发展规划》 题目 解析 36.颐和园公园(25张PPT) 题目 解析 37.颐和园公园(22张PPT) 题目 解析 35.张秘书-《会计行业中长期人才发展规划》 题目 解析 插入自定义的幻灯片:新建幻灯片→重用…...
畅快使用DeepSeek-R1的方法
腾讯云API接入Cherry Studio简明指南-畅快使用DeepSeek-R1 注意:腾讯云API针对deepseek限时免费(后续即使收费也较为便宜,可以作为长期使用的方法),并且比华为的API要快不少。 一、获取腾讯云API密钥 登录并进入腾讯…...
【人工智能】Python中的序列到序列(Seq2Seq)模型:实现机器翻译
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 序列到序列(Seq2Seq)模型是自然语言处理(NLP)中一项核心技术,广泛应用于机器翻译、语音识别、文本摘要等任务。本文深入探讨Seq2Seq模…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...
