c语言编程题经典100例——(90~95例)
1,写一个函数,实现数字的加密和解密。
下面是一个简单的C语言函数,可以实现数字的加密和解密。这个函数采用简单的加密算法,将输入的数字乘以一个固定的密钥,然后加上一个固定的偏移量。解密过程就是将加密后的数字减去偏移量,然后再除以密钥。
#include <stdio.h> // 加密函数
int encrypt(int num, int key, int offset) { return (num * key) + offset;
} // 解密函数
int decrypt(int encrypted_num, int key, int offset) { return (encrypted_num - offset) / key;
} int main() { int num = 12345; int key = 7; int offset = 100; // 加密数字 int encrypted_num = encrypt(num, key, offset); printf("加密后的数字为:%d\n", encrypted_num); // 解密数字 int decrypted_num = decrypt(encrypted_num, key, offset); printf("解密后的数字为:%d\n", decrypted_num); return 0;
}
在上面的代码中,encrypt()函数将输入的数字乘以密钥并加上偏移量,然后返回加密后的数字。decrypt()函数将加密后的数字减去偏移量,然后除以密钥,返回解密后的数字。在main()函数中,我们定义了一个输入的数字、一个密钥和一个偏移量,然后使用这些参数调用encrypt()和decrypt()函数来加密和解密数字。
2,写一个函数,将一个字符串转换为整数。
在C语言中,可以使用库函数 atoi() 来将字符串转换为整数,前前面好像有一篇写过这个功能,但用的是库函数,这里不用。不过下面的代码不用库函数实现这个功能:
#include <stdio.h>
#include <stdlib.h> // for NULL int string_to_int(char* str) { int result = 0; int sign = 1; // Handle negative numbers if (*str == '-') { sign = -1; str++; } // Convert each character to an integer while (*str != '\0') { char c = *str - '0'; if (c < 0 || c > 9) { // If the character is not a digit, return 0 return 0; } result = result * 10 + c; str++; } // Apply the sign return sign * result;
} int main() { char str[] = "-123"; int num = string_to_int(str); printf("%d\n", num); // Outputs: -123 return 0;
}
这个函数首先检查字符串的第一个字符是否为负号,然后遍历字符串的每一个字符,将其转换为对应的数字,并累加到结果中。最后,根据符号将结果返回。如果字符串中包含非数字的字符,函数将返回0。
3,写一个函数,将一个整数转换为字符串。
下面的功能,也是用不同的方式实现。
#include <stdio.h>
#include <stdlib.h> char* int_to_str(int num) { int i = 0; int sign = num < 0 ? -1 : 1; int abs_num = sign * num; char* str = (char*)malloc(32 * sizeof(char)); if (str == NULL) { printf("Memory allocation failed.\n"); exit(1); } while (abs_num > 0) { int rem = abs_num % 10; str[i++] = '0' + rem; abs_num /= 10; } if (sign < 0) { str[i++] = '-'; } str[i] = '\0'; int j = i - 1; while (j >= 0 && str[j] == '0') { j--; } if (j < 0) { str[0] = '\0'; } else { for (int k = 0; k < j; k++) { str[k] = str[j--]; } str[j] = '\0'; } return str;
}
该函数首先判断输入的整数是否为负数,如果是负数则取其绝对值,否则直接取其绝对值。然后,使用循环将整数转换为字符串,每次取余数并将其转换为字符存储到字符串中,最后将字符串返回。在返回之前,函数会将其符号处理后返回。此外,函数还会对字符串进行优化,删除多余的零。
4,写一个函数,判断一个数字是否为偶数或奇数。
可以写一个函数来判断一个数字是偶数还是奇数。以下是一个简单的示例:
#include <stdio.h> // 判断数字是偶数还是奇数
void checkNumber(int num) { if (num % 2 == 0) { printf("%d 是偶数\n", num); } else { printf("%d 是奇数\n", num); }
} int main() { int num; printf("请输入一个数字: "); scanf("%d", &num); checkNumber(num); return 0;
}
在这个程序中,我们首先定义了一个函数 checkNumber,它接收一个整数作为参数,并使用模数运算符 % 来检查这个数是否可被2整除。如果数字可以被2整除,那么它就是偶数,否则它就是奇数。然后,我们从用户那里获取一个数字,并使用 checkNumber 函数来检查这个数字是偶数还是奇数。
5,写一个函数,求一个立方数的和。
#include <stdio.h> int sumOfCubes(int n) { int sum = 0; for (int i = 1; i <= n; i++) { sum += i * i * i; } return sum;
} int main() { int n = 10; int result = sumOfCubes(n); printf("The sum of cubes from 1 to %d is %d\n", n, result); return 0;
}
这个函数使用一个循环来计算从1到给定数字n的每个整数的立方和。最后,它返回这个和。在主函数中,我们调用这个函数并打印结果。
相关文章:
c语言编程题经典100例——(90~95例)
1,写一个函数,实现数字的加密和解密。 下面是一个简单的C语言函数,可以实现数字的加密和解密。这个函数采用简单的加密算法,将输入的数字乘以一个固定的密钥,然后加上一个固定的偏移量。解密过程就是将加密后的数字减去偏移量&am…...
Redis核心知识点总结
1.Redis介绍 Redis 是 NoSQL,但是可处理 1 秒 10w 的并发(数据都在内存中) 使用 java 对 redis 进行操作类似 jdbc 接口标准对 mysql,有各类实现他的实现类,我们常用的是 druid 其中对 redis,我们通常用 J…...
stm32Flash操作
//G0B0 flash大小 0x08000000-0x0807FFFF 512K(0400 1K)//2k 1页 //初始化标记数据地址 放最前面 脱机烧写器可擦除掉 #define CONST_INITMARKDATA_ADDRESS (0x0807D000UL) //2k 1页 //射频数据地址 #define CONST_FREQDATA_ADDRESS (0x0807F000UL) //2…...
云原生系列1
1、虚拟机集群环境准备 VirtualBox类似vmware的虚拟化软件,去官网https://www.virtualbox.org/下载最新版本免费的,VirtualBox中鼠标右ctrl加home跳出鼠标到wins中。 VirtualBox安装步骤 https://blog.csdn.net/rfc2544/article/details/131338906 cent…...
设计原则 | 里式替换原则
一、里式替换原则(Liskov Substitution Principle ) 1、原理 子类型必须能替换掉它们的基类型,在使用继承时,遵循里式替换原则,在子类中尽量不要重写父类中的方法。里式替换原则告诉我们,继承实际上让两个…...
第7节:Vue3 动态绑定多个属性
可以使用v-bind指令将多个属性动态绑定到元素上。以下是一个简单的实例: <template><view class"container"><text v-bind"dynamicProps">{{ message }}</text><button click"toggleActive">切换激活…...
【文件上传系列】No.1 大文件分片、进度图展示(原生前端 + Node 后端 Koa)
分片(500MB)进度效果展示 效果展示,一个分片是 500MB 的 分片(10MB)进度效果展示 大文件分片上传效果展示 前端 思路 前端的思路:将大文件切分成多个小文件,然后并发给后端。 页面构建 先在页…...
性能测试 —— Jmeter分布式测试的注意事项和常见问题
Jmeter是一款开源的性能测试工具,使用Jmeter进行分布式测试时,也需要注意一些细节和问题,否则可能会影响测试结果的准确性和可靠性。 Jmeter分布式测试时需要特别注意的几个方面 1. 参数化文件的位置和内容 如果使用csv文件进行参数化&#x…...
“SRP模型+”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI 指数的生态质量评价及拓展应用
近年来,国内外学者在生态系统的敏感性、适应能力和潜在影响等方面开展了大量的生态脆弱性研究,他们普遍将生态脆弱性概念与农牧交错带、喀斯特地区、黄土高原区、流域、城市等相结合,评价不同类型研究区的生态脆弱特征,其研究内容…...
总结|哪些平台有大模型知识库的Web API服务
截止2023/12/6 笔者个人的调研,有三家有大模型知识库的web api服务: 平台类型文档数量文档上传并解析的结构api情况返回页码文心一言插件版多文档有问答api,文档上传是通过网页进行上传有,而且是具体的chunk id,需要设…...
TOMCAT9安装
1、官网下载 2、解压到任意盘符,注意路径不要有中文 3、环境变量 path 下 配置 %CATALINA_HOME%\bin 4、找到tomcat9/bin, 点击 start.bat启动 tomcat...
QT中时间时区处理总结
最近项目中要做跨国设备时间校正功能,用到了时区时间,在此做一下记录。 目录 1.常见时区名 2.测试代码 3.运行效果 1.常见时区名 "Pacific/Midway": "中途岛 (UTC-11:00)", …...
OpenAtom OpenHarmony三方库创建发布及安全隐私检测
OpenAtom OpenHarmony 三方库(以下简称“三方库”或“包”),是经过验证可在 OpenHarmony 系统上可重复使用的软件组件,可帮助开发者快速开发 OpenHarmony 应用。三方库根据其开发语言分为 2 种,一种是使用 JavaScript …...
【1】一文读懂PyQt简介和环境搭建
目录 1. PyQt简介 1.1. Qt 1.2. PyQt 1.3. 关于PyQt和PySide 2. 通过pip安装PyQt5 3. 无法运行处理 4. VSCode配置PYQT插件 PyQt官网:Riverbank Computing | Introduction 1. PyQt简介 PyQt是一套Python的GUI开发框架,即图形用户界面开发框架。 Python中经常使用的GU…...
windows install git
refer: https://developers.weixin.qq.com/miniprogram/dev/devtools/wechatvcs.html https://blog.csdn.net/weixin_40228200/article/details/128451324 在使用小程序的时候,需要初始化项目,需要注册Git账号 1.在本地确认cmd没有安装Git,进入Git官网…...
【华为数据之道学习笔记】3-7 报告数据治理
报告数据是指对数据进行处理加工后,用作业务决策依据的数据。它用于支持报告和报表的生成。 用于报告和报表的数据可以分为如下几种。 用于报表项数据生成的事实表、指标数据、维度。 用于报表项统计和计算的统计函数、趋势函数及报告规则。 用于报表和报告展示的…...
SpringDataRedis 操作 Redis,并指定数据序列化器
文章目录 1. SpringDataRedis 概述2. 快速入门2.1 导入pom坐标2.2 配置文件2.3 测试代码2.4 数据序列化器2.5 StringRedisTemplate2.6 总结 1. SpringDataRedis 概述 SpringData 是Spring 中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模…...
useradd 在Linux原生应用开发过程中的简单应用
useradd命令是用于在Linux系统中创建新用户的命令。它可以创建一个新用户,并设置该用户的属性、家目录、默认shell等。useradd命令实际上是一个包装了一系列系统调用的高级命令。 在Linux系统中,用户信息存储在/etc/passwd文件中。当执行useradd命令时&…...
Linux 删除文件名乱码的文件
现象: 处理: 1.>ls -li 获取文件对应的ID号 2.把删除指定文件(ID号 )执行: find ./ -inum 268648910 -exec rm {} \;...
【测试人生】数据同步和迁移的变更注意事项
数据同步或者迁移操作也算是线上数据变更的一种类型。由于涉及的数据量非常大,一旦发生故障,会直接影响线上业务,并且较难止损。从变更风险管控的角度考虑,数据同步或迁移操作也需要走合理的发布窗口,并且在操作前也需…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
智能职业发展系统:AI驱动的职业规划平台技术解析
智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...
WebRTC调研
WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...
智能体革命:企业如何构建自主决策的AI代理?
OpenAI智能代理构建实用指南详解 随着大型语言模型(LLM)在推理、多模态理解和工具调用能力上的进步,智能代理(Agents)成为自动化领域的新突破。与传统软件仅帮助用户自动化流程不同,智能代理能够自主执行工…...
