C笔试算法
使用C语言实现strcpy字符串拷贝函数

strcpy函数用于将源字符串复制到目标字符串,包括结束符'\0'。

// 实现字符串拷贝函数 char* my_strcpy(char* dest, const char* src) { // 参数检查 if (dest == NULL || src == NULL) { return NULL; } char* original_dest = dest; // 保存目标字符串的起始位置 // 逐字节复制,直到遇到源字符串的结束符'\0' while (*src != '\0') { *dest = *src; dest++; src++; } // 添加字符串结束符 *dest = '\0'; return original_dest; // 返回目标字符串的起始地址 } // 使用示例 void test_my_strcpy() { char src[] = "Hello World"; char dest[20]; my_strcpy(dest, src); printf("复制后的字符串: %s\n", dest); } 优化 char* my_strcpy_optimized(char* dest, const char* src) { char* original_dest = dest; while ((*dest++ = *src++) != '\0'); return original_dest; }

请用C语言编写一个函数 swap_endian,它能将一个32位无符号整数的字节序(大端或小端)进行反转。例如,输入 0x12345678 应返回 0x78563412。

#include <stdint.h> uint32_t swap_endian(uint32_t value) { return ((value & 0xFF000000) >> 24) | ((value & 0x00FF0000) >> 8) | ((value & 0x0000FF00) << 8) | ((value & 0x000000FF) << 24); }

实现一个函数,将一个整型数组按升序排列。不允许使用标准库中的排序函数(如 qsort)。可以使用如冒泡排序、插入排序、选择排序等简单排序算法。

#include<stdio.h> int main() { int arr[8]; for(int i=0;i<8;i++){ scanf("%d",&arr[i]); } int temp; for(int i=0;i<7;i++){ for(int j=1;j<8-i;j++){ if(arr[j-1]>arr[j]){ temp=arr[j-1]; arr[j-1]=arr[j]; arr[j]=temp; } } } for(int i=0;i<8;i++){ printf("%d",arr[i]); } }

实现一个函数,接收一个以 null 结尾的字符串,并将该字符串逆序(原地逆序,不创建新的字符串)

#include <string.h> void reverse_string(char *str) { if (str == NULL) return; int len = strlen(str); int left = 0; int right = len - 1; while (left < right) { char temp = str[left]; str[left] = str[right]; str[right] = temp; left++; right--; } }
请用 C 语言编写一个函数,用于检测当前运行的系统是大端序还是小端序。
int check_endianness() { unsigned int test_value = 0x12345678; unsigned char *byte_ptr = (unsigned char *)&test_value; // 小端序:低地址存放低位字节(0x78) if (byte_ptr[0] == 0x78) { return 1; // 小端序 Little-Endian } // 大端序:低地址存放高位字节(0x12) else if (byte_ptr[0] == 0x12) { return 0; // 大端序 Big-Endian } return -1; // 异常 }
请用 C 语言编写一个函数,接收一个整型数组和数组大小,实现查找数组中的最大值并返回。
#include <limits.h> int find_max(int arr[], int n) { if (arr == NULL || n <= 0) return INT_MIN; // 处理无效输入 int max_val = arr[0]; for (int i = 1; i < n; i++) { if (arr[i] > max_val) max_val = arr[i]; } return max_val; }
字符串去重:给定一个字符串,去除所有之前出现过的字符,只保留第一次出现的字符。示例输入:hello,welcome to xiaomi,示例输出:helo,wcmt xiai
void kill_same(char *o, char *n) { int i = 0, k = 0; while (o[i] != '\0') { int exists = 0; for (int j = 0; j < k; j++) { if (o[i] == n[j]) exists = 1; } if (!exists) n[k++] = o[i]; i++; } n[k] = '\0'; }
基于数组实现一个环形缓冲区,要求在不使用额外变量(如 count 或 full_flag)的情况下,仅依靠 head 和 tail 两个索引来区分缓冲区是空还是满。请说明你的设计思路并实现关键的入队和出队函数。
#define BUFFER_SIZE 16 typedef struct { int buffer[BUFFER_SIZE]; size_t head; size_t tail; } circular_buffer_t; void circular_buffer_init(circular_buffer_t *cb) { if (cb == NULL) return; cb->head = 0; cb->tail = 0; } static bool is_empty(circular_buffer_t *cb) { return cb->head == cb->tail; } static bool is_full(circular_buffer_t *cb) { return (cb->tail + 1) % BUFFER_SIZE == cb->head; } int circular_buffer_enqueue(circular_buffer_t *cb, int data) { if (cb == NULL || is_full(cb)) { return -1; } cb->buffer[cb->tail] = data; cb->tail = (cb->tail + 1) % BUFFER_SIZE; return 0; } int circular_buffer_dequeue(circular_buffer_t *cb, int *data) { if (cb == NULL || is_empty(cb) || data == NULL) { return -1; } *data = cb->buffer[cb->head]; cb->head = (cb->head + 1) % BUFFER_SIZE; return 0; }

相关新闻

Gauge Python运行器安装与配置避坑指南

Gauge Python运行器安装与配置避坑指南

简介&#xff1a;gauge-python 是 Gauge 自动化测试框架的 Python 语言运行器插件&#xff0c;面向使用 Python 编写验收测试、行为驱动测试的开发者与测试工程师&#xff0c;解决 Gauge 在 Python 技术栈下缺少原生执行支持的问题。资源包共 56 个文件&#xff0c;约 70KB&…

2026/10/21 2:17:50 阅读更多 →
DeepHarness + deepseek(免费对话框) 搭建AI Agent环境

DeepHarness + deepseek(免费对话框) 搭建AI Agent环境

1.概述 1.1背景介绍 AI Agent越来越智能化&#xff0c;甚至可以帮助用户处理一些复杂的工作&#xff0c;比如编程以及自行对模块进行测试; 为了学习使用AI agent&#xff0c;这次使用 deepharness模型层 deepseek免费版来搭建 agent环境&#xff0c;以及使用它来执行一些任务…

2026/10/21 2:16:50 阅读更多 →
Spring Boot 3 整合 MyBatis-Plus:JDK 17 环境配置与分页插件实战

Spring Boot 3 整合 MyBatis-Plus:JDK 17 环境配置与分页插件实战

简介&#xff1a;这份资源是面向Java后端开发者与初学者的Spring Boot 3整合MyBatisPlus实战示例工程&#xff0c;针对企业级Web应用中数据访问层配置繁琐、CRUD模板代码重复等痛点&#xff0c;提供一套可直接运行的整合方案。压缩包共24个文件&#xff0c;约85KB&#xff0c;包…

2026/10/21 2:16:50 阅读更多 →

最新新闻

AI辅助文献综述写作:从研究地图到落地实操

AI辅助文献综述写作:从研究地图到落地实操

1. 先想清楚&#xff1a;你需要的不是一篇"文献汇报"&#xff0c;而是一张"研究地图"1.1 综述为什么写不好&#xff1a;大多数人把它做成了资料汇编我在帮某高校实验室的几位研究生改开题报告时&#xff0c;见过太多"综述"其实是这样写出来的&am…

2026/10/21 2:57:03 阅读更多 →
JavaWeb运动健康管理系统源码解析与二次开发实战

JavaWeb运动健康管理系统源码解析与二次开发实战

简介&#xff1a;这份资源是面向JavaWeb初学者与课程设计开发者的运动与健康管理系统完整源码包&#xff0c;包含可运行的Web工程与配套数据库脚本&#xff0c;可用于毕业设计、课程实训或自学练手。压缩包共707个文件&#xff0c;约9.59MB&#xff0c;以gif、js、jsp、html、j…

2026/10/21 2:57:03 阅读更多 →
AI Agent与Subagent协作实战:任务分发、上下文管理与结果校验的稳定范式

AI Agent与Subagent协作实战:任务分发、上下文管理与结果校验的稳定范式

说实话&#xff0c;提到 AI Agent 和 Subagent 的协作&#xff0c;我最早是持怀疑态度的。大概两三个月前&#xff0c;我接手了一个任务&#xff1a;把几十份格式混乱的行业资料整理成结构化问答库。一开始我用单个 AI Agent 跑&#xff0c;前面几轮效果还行&#xff0c;但随着…

2026/10/21 2:57:03 阅读更多 →
EmEditor7 语法高亮配置与大文件正则替换实战指南

EmEditor7 语法高亮配置与大文件正则替换实战指南

简介&#xff1a;EmEditor7是一款面向程序员、网页设计师及文本处理工作者的专业文本编辑器&#xff0c;主打语法高亮与高效代码编辑&#xff0c;可解决系统记事本功能单一、大文件卡顿等问题。资源包共92个文件&#xff0c;约4.1MB&#xff0c;以47个dll核心组件为主&#xff…

2026/10/21 2:57:03 阅读更多 →
SpringBoot分布式库存订单与盘点一体化WMS系统实战

SpringBoot分布式库存订单与盘点一体化WMS系统实战

仓库管理系统&#xff08;WMS&#xff09;是Java方向里热度常年靠前的毕设选题&#xff0c;但也是翻车重灾区。我见过不少打着“基于SpringBoot的智能仓储信息管理平台”旗号的项目&#xff0c;点开一看&#xff0c;二十多张表、几十个接口&#xff0c;本质却还是增删改查。说实…

2026/10/21 2:57:03 阅读更多 →
NVFP4预训练大模型:从量化训练到部署的全面解析

NVFP4预训练大模型:从量化训练到部署的全面解析

最近把这篇《Pretraining Large Language Models with NVFP4》翻来覆去读了几遍&#xff0c;越读越觉得它不只是“又一篇4位精度论文”&#xff0c;更像是给整个量化生态指了一个新方向。过去大家默认FP4只能做推理阶段的压缩&#xff0c;谁在预训练里碰4位精度&#xff0c;谁就…

2026/10/21 2:56:03 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事&#xff1a;AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里&#xff0c;按宣传口径&#xff0c;本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”&#xff0c;而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起&#xff1a;用户到底在追求什么“封号重开”这四个字&#xff0c;放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流&#xff0c;背后是大量的时间和精力成本。正常情况下&#xff0c;没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”&#xff0c;而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时&#xff0c;就意识到&#xff1a;单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →