二级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进制
现在来逐个分析每一空(最后一空是难点)

  1. 填写:m / n
    因为由十进制转任意进制的原理可知
    十进制模除对应进制取余数,再反向输出即可
    那么这个当前值就要更新为值
  2. 填写:m != 0
    当值不为零时就继续取余
  3. 填写: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

  1. 第11行的j < k改成  j <= k
    如果这里的k是要是a[i]的原值的话就不能有等于
    因为如果是等于的话就是和自己整除
    那么这里是将要测试的数字除2了,那么就要等于
  2. 第15行的continue;改成break;
    因为如果能被除了1和自己以外的数整除就说明不是素数
    所以就要打断
  3. 第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();
}

分析🧐

由题意可知,这里要统计一个数组中的一个整数里有重复数字的个数
可以这样:

  1. 先在数组中取出一个数
  2. 对这个数进行拆解,放到新的数组b中
  3. 再对这个这个b数组进行遍历,看是否有相等的数字
  4. 有的话就将其加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();
}

如果本文对您有帮助,还希望点点关注呢,这将是我不断前进的动力😊

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/13935.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BFS算法——广度优先搜索,探索未知的旅程(下)

文章目录 前言一. N叉树的层序遍历1.1 题目链接&#xff1a;https://leetcode.cn/problems/n-ary-tree-level-order-traversal/description/1.2 题目分析&#xff1a;1.3 思路讲解&#xff1a;1.4 代码实现&#xff1a; 二. 二叉树的锯齿形层序遍历2.1 题目链接&#xff1a;htt…

软件系统性能测试的重要性和测试类型分享

在现代软件开发领域&#xff0c;软件系统性能测试的重要性愈发凸显。软件系统性能测试是一种评估软件应用程序在特定工作负载下的响应时间、稳定性和资源消耗的测试过程。其目标是识别性能瓶颈&#xff0c;确保软件在不同的负载条件下依然能够高效运行。 一、软件系统性能测试…

Three.js 实现海面效果

Three.js 实现海面效果 https://threehub.cn/#/codeMirror?navigationThreeJS&classifyshader&idoceanShader import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControls.js import { Water } from three/examples/js…

C++----继承

一、继承的基本概念 本质&#xff1a;代码复用类关系建模&#xff08;是多态的基础&#xff09; class Person { /*...*/ }; class Student : public Person { /*...*/ }; // public继承 派生类继承基类成员&#xff08;数据方法&#xff09;&#xff0c;可以通过监视窗口检…

【MySQL】第二弹---数据库基础全解析:从概念到实践的深度探索

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【MySQL】 目录 1. 数据库基础 1.1 什么是数据库 1.2 主流数据库 1.3 基本使用 1.3.1 MySQL安装 1.3.2 连接服务器 1.3.3 服务器…

深度学习:解码智能的“数字炼金术”

深度学习&#xff1a;解码智能的“数字炼金术” 1943年&#xff0c;当神经科学家沃伦麦卡洛克和数学家沃尔特皮茨在论文中首次提出人工神经元模型时&#xff0c;他们或许没有想到&#xff0c;这个简单的数学公式会在80年后掀起改变人类文明的技术革命。深度学习作为这场革命的…

无人机方位感知器官磁力传感器!

一、磁力计传感器的运作方式 基本原理&#xff1a; 磁力计传感器的工作原理基于磁场感应定律。当无人机处于地球磁场中时&#xff0c;磁力计可以测量地磁场的强度和方向。 磁力计通常采用三个互相垂直的磁阻传感器&#xff0c;每个轴向上的传感器检测在该方向上的地磁场强度…

基于SpringBoot养老院平台系统功能实现五

一、前言介绍&#xff1a; 1.1 项目摘要 随着全球人口老龄化的不断加剧&#xff0c;养老服务需求日益增长。特别是在中国&#xff0c;随着经济的快速发展和人民生活水平的提高&#xff0c;老年人口数量不断增加&#xff0c;对养老服务的质量和效率提出了更高的要求。传统的养…

2.7作业

手动将登录项目实现 //widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QtTextToSpeech/QTextToSpeech> #include <QPushButton> #include <QLabel> #include <QDebug> #include <QMovie> #include <QLineEd…

记录 | WPF基础学习Style局部和全局调用

目录 前言一、Style1.1 例子1.2 为样式起名字1.3 BasedOn 继承上一个样式 二、外部StyleStep1 创建资源字典BaseButtonStyle.xamlStep2 在资源字典中写入StyleStep3 App.xaml中写引用路径【全局】Step4 调用三、代码提供四、x:Key和x:Name区别 更新时间 前言 参考文章&#xff…

深度学习 Pytorch 神经网络的学习

本节将从梯度下降法向外拓展&#xff0c;介绍更常用的优化算法&#xff0c;实现神经网络的学习和迭代。在本节课结束将完整实现一个神经网络训练的全流程。 对于像神经网络这样的复杂模型&#xff0c;可能会有数百个 w w w的存在&#xff0c;同时如果我们使用的是像交叉熵这样…

vue项目如何设置默认页面

j​​​​​​​​​​​​​​​​​​​​​​​​​​​​创建一个新的vue项目并且将初始页面还原到空白项目开始 - 现实里的乌托邦 - 博客园 vue项目如何设置默认页面 • Worktile社区 创建一个vue项目并配置默认页面_vue如何设置初始展示的页面-CSDN博客 新建的vue项目…

DFX(Design for eXcellence)架构设计全解析:理论、实战、案例与面试指南*

一、什么是 DFX &#xff1f;为什么重要&#xff1f; DFX&#xff08;Design for eXcellence&#xff0c;卓越设计&#xff09;是一种面向产品全生命周期的设计理念&#xff0c;旨在确保产品在设计阶段就具备**良好的制造性&#xff08;DFM&#xff09;、可测试性&#xff08;…

基础篇05-图像直方图操作

本节将简要介绍Halcon中有关图像直方图操作的算子&#xff0c;重点介绍直方图获取和显示两类算子&#xff0c;以及直方图均衡化处理算子。 目录 1. 引言 2. 获取并显示直方图 2.1 获取&#xff08;灰度&#xff09;直方图 (1) gray_histo算子 (2) gray_histo_abs算子 (3…

Linux TCP 编程详解与实例

一、引言 在网络编程的领域中&#xff0c;TCP&#xff08;Transmission Control Protocol&#xff09;协议因其可靠的数据传输特性而被广泛应用。在 Linux 环境下&#xff0c;使用 C 或 C 进行 TCP 编程可以实现各种强大的网络应用。本文将深入探讨 Linux TCP 编程的各个方面&…

DeepSeek本地部署保姆级教程

由于DeepSeek近期遭受攻击&#xff0c;又加上用户访问量较大&#xff0c;导致总是服务不可用&#xff0c;让人十分窝火。有没有好的解决办法呢&#xff1f;答案是自己在电脑端部署一套&#xff0c;这样就不用和别人抢着用了。另外本地部署的好处还有保护隐私与减少延迟。 如果…

文件基础IO

理解"文件" 1-1 狭义理解 文件在磁盘里磁盘是永久性存储介质&#xff0c;因此文件在磁盘上的存储是永久性的磁盘是外设&#xff08;即是输出设备也是输入设备&#xff09;磁盘上的文件 本质是对文件的所有操作&#xff0c;都是对外设的输入和输出简称IO 1-2 广义理…

C32.【C++ Cont】静态实现双向链表及STL库的list

目录 1.知识回顾 2.静态实现演示图 3.静态实现代码 1.初始双向链表 2.头插 3.遍历链表 4.查找某个值 4.任意位置之后插入元素 5.任意位置之前插入元素 6.删除任意位置的元素 4.STL库的list 1.知识回顾 96.【C语言】数据结构之双向链表的初始化,尾插,打印和尾删 97.【C…

退格法记单词(类似甘特图)

退格法记单词&#xff0c;根据记忆次数或熟练程度退格&#xff0c;以示区分&#xff0c;该方法用于短时高频大量记单词&#xff1a; explosion爆炸&#xff0c;激增 mosquito蚊子granary粮仓&#xff0c;谷仓 offhand漫不经心的 transient短暂的slob懒惰而邋遢的…

MySQL三大日志——binlog、redoLog、undoLog详解

日志是mysql数据库的重要组成部分&#xff0c;记录着数据库运行期间各种状态信息&#xff0c;能帮助我们进行很多容错及分析工作&#xff0c;其中有三大日志与我们这些开发者息息相关&#xff0c;本文将介绍binlog、redoLog、undoLog三种日志&#xff1a; 1. redoLog 1.1 为什么…