二级C语言题解:十进制转其他进制、非素数求和、重复数统计

news2025/2/10 2:07:45

目录

一、程序填空📝 --- 十进制转其他进制

题目📃

分析🧐

二、程序修改🛠️ --- 非素数求和

题目📃

分析🧐

三、程序设计💻 --- 重复数统计

题目📃

分析🧐


前言
本文讲解:十进制转其他进制、非素数求和、重复数统计
🏠我的主页:我的主页
📚系列专栏:系列专栏

一、程序填空📝 --- 十进制转其他进制

难度:⭐⭐

题目📃

函数 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赋1
                if(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.coloradmin.cn/o/2295575.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity3D引擎首次用于光伏仿真设计软件爆火

在光伏设计领域&#xff0c;绿虫光伏仿真设计软件宛如一匹黑马&#xff0c;凭借其基于 Unity3D 引擎的强大功能&#xff0c;为行业带来了全新的解决方案。借助 Unity3D 引擎技术&#xff0c;实现了游戏级高清画面&#xff0c;2D/3D 自由转换&#xff0c;让场景代入感极强&#…

基础入门-网站协议身份鉴权OAuth2安全Token令牌JWT值Authirization标头

知识点&#xff1a; 1、网站协议-http/https安全差异&#xff08;抓包&#xff09; 2、身份鉴权-HTTP头&OAuth2&JWT&Token 一、演示案例-网站协议-http&https-安全测试差异性 1、加密方式 HTTP&#xff1a;使用明文传输&#xff0c;数据在传输过程中可以被…

深入理解 C++17 std::is_swappable

文章目录 深入理解 C17 std::is_swappable引言std::is_swappable 概述std::is_swappable 的工作原理std::is_swappable 的变体注意事项结论 深入理解 C17 std::is_swappable 引言 在 C 编程中&#xff0c;交换两个对象的值是一个常见的操作。为了确保代码的通用性和安全性&am…

Vue(4)

一.组件的三大组成部分-注意点说明 &#xff08;1&#xff09;scoped样式冲突 默认情况&#xff1a;写在组件中的样式会全局生效 → 因此很容易造成多个组件之间的样式冲突 ①全局样式&#xff1a;默认组件中的样式会作用到全局 ②局部样式&#xff1a;可以给组件加上scoped属…

4G核心网的演变与创新:从传统到虚拟化的跨越

4G核心网 随着移动通信技术的不断发展&#xff0c;4G核心网已经经历了从传统的硬件密集型架构到现代化、虚拟化网络架构的重大转型。这一演变不仅提升了网络的灵活性和可扩展性&#xff0c;也为未来的5G、物联网&#xff08;LOT&#xff09;和边缘计算等技术的发展奠定了基础。…

探讨如何在AS上构建webrtc(2)从sdk/android/Build.gn开始

全文七千多字&#xff0c;示例代码居多别担心&#xff0c;没有废话&#xff0c;不建议跳读。 零、梦开始的地方 要发美梦得先入睡&#xff0c;要入睡得找能躺平的地方。那么能躺平编译webrtc-android的地方在哪&#xff1f;在./src/sdk/android/Build.gn。Build.gn是Build.nin…

C#常用集合优缺点对比

先上结论&#xff1a; 在C#中&#xff0c;链表、一维数组、字典、List<T>和ArrayList是常见的数据集合类型&#xff0c;它们各有优缺点&#xff0c;适用于不同的场景。以下是它们的比较&#xff1a; 1. 一维数组 (T[]) 优点&#xff1a; 性能高&#xff1a;数组在内存中…

多线程下jdk1.7的头插法导致的死循环问题

20250208 多线程下jdk1.7的头插法导致的死循环问题 多线程下jdk1.7的头插法导致的死循环问题 【新版Java面试专题视频教程&#xff0c;java八股文面试全套真题深度详解&#xff08;含大厂高频面试真题&#xff09;】 jdk1.7在hashmap扩容时使用的是头插法&#xff0c;所以扩容…

MySQL的深度分页如何优化?

大家好&#xff0c;我是锋哥。今天分享关于【MySQL的深度分页如何优化?】面试题。希望对大家有帮助&#xff1b; MySQL的深度分页如何优化? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MySQL在处理深度分页&#xff08;即查询页数较大时&#xff0c;通常是查询…

uniapp中使用uCharts折线图X轴数据间隔显示

1、先看官网 https://www.ucharts.cn/ 2、设置代码 "xAxisDemo3":function(val, index, opts){if(index % 2 0){return val}else {return }}, 再在数据中引入设置好样式

公司配置内网穿透方法笔记

一、目的 公司内部有局域网&#xff0c;局域网上有ftp服务器&#xff0c;有windows桌面服务器&#xff1b; 在内网环境下&#xff0c;是可以访问ftp服务器以及用远程桌面登录windows桌面服务器的&#xff1b; 现在想居家办公时&#xff0c;也能访问到公司内网的ftp服务器和win…

【Windows/C++/yolo开发部署02:正确方法】将自定义实例分割模型导出为 ONNX 格式

【完整项目下载地址】: 【TensorRT部署YOLO项目:实例分割+目标检测】+【C++和python两种方式】+【支持linux和windows】资源-CSDN文库 目录 写在前面 环境准备 安装必要的库 下载模型并开始转换 解决依赖问题 安装 ONNX 降级 Protobuf 最终转换 总结 写在前面 在…

国产编辑器EverEdit - 编辑辅助功能介绍

1 编辑辅助功能 1.1 各编辑辅助选项说明 1.1.1 行号 打开该选项时&#xff0c;在编辑器主窗口左侧显示行号&#xff0c;如下图所示&#xff1a; 1.1.2 文档地图 打开该选项时&#xff0c;在编辑器主窗口右侧靠近垂直滚动条的地方显示代码的缩略图&#xff0c;如下图所示&…

Jupyter Notebook自动保存失败等问题的解决

一、未生成配置文件 需要在命令行中&#xff0c;执行下面的命令自动生成配置文件 jupyter notebook --generate-config 执行后会在 C:\Users\用户名\.jupyter目录中生成文件 jupyter_notebook_config.py 二、在网页端打开Jupyter Notebook后文件保存失败&#xff1b;运行代码…

Shapefile格式文件解析和显示

Java实现GIS SHP文件格式的解析和显示&#xff0c;JDK19下编译&#xff0c;awt图形系统显示。 SHP文件对应的属性存储在DBF格式数据库中&#xff0c;解析见&#xff1a;DBASE DBF数据库文件解析_数据库文件在线解析-CSDN博客 解析SHP文件代码&#xff1a; public static Shap…

大语言模型需要的可观测性数据的关联方式

可观测性数据的关联方式及其优缺点 随着现代分布式架构和微服务的普及&#xff0c;可观测性&#xff08;Observability&#xff09;已经成为确保系统健康、排查故障、优化性能的重要组成部分。有效的可观测性数据关联方式不仅能够帮助我们实时监控系统的运行状态&#xff0c;还…

wordpressAI工具,已接入Deepseek 支持自动生成文章、生成图片、生成长尾关键词、前端AI窗口互动、批量采集等

基于关键词或现有内容生成SEO优化的文章&#xff0c;支持多种AI服务&#xff08;如OpenAI、百度文心一言、智谱AI等&#xff09;&#xff0c;并提供定时任务、内容采集、关键词生成等功能。 核心功能 文章生成 关键词生成&#xff1a;根据输入的关键词生成高质量文章。 内容…

mysql8安装时提示-缺少Microsoft Visual C++ 2019 x64 redistributable

MySQL8.0安装包mysql-8.0.1-winx64进行安装&#xff0c;提示&#xff1a;This application requires Visual Studio 2019 x64Redistributable, Please install the Redistributable then runthis installer again。出现这个错误是因为我们电脑缺少Microsoft Visual C 这个程序&…

学习数据结构(6)单链表OJ上

1.移除链表元素 解法一&#xff1a;&#xff08;我的做法&#xff09;在遍历的同时移除&#xff0c;代码写法比较复杂 解法二&#xff1a;创建新的链表&#xff0c;遍历原链表&#xff0c;将非val的节点尾插到新链表&#xff0c;注意&#xff0c;如果原链表结尾是val节点需要将…

03/29 使用 海康SDK 对接时使用的 MysqlUtils

前言 最近朋友的需求, 是需要使用 海康sdk 连接海康设备, 进行数据的获取, 比如 进出车辆, 进出人员 这一部分是 资源比较贫瘠时的一个 Mysql 工具类 测试用例 public class MysqlUtils {public static String MYSQL_HOST "192.168.31.9";public static int MY…