C++程序员笔试训练

面试题1:使用库函数将数字转换位字符串

  • 考点:c语言库函数中数字转换位字符串的使用

在这里插入图片描述

char *gcvt(double number, int ndigit, char *buf);

参数说明:

number:待转换的double类型数值。
ndigit:保留的小数位数。
buf:用于存储转换后的字符串的缓冲区。

  • 示例代码如下
void func()
{
	int numInt = 1333;
	double numDouble = 123.12;

	char strInt[20];
	char strDouble[20];
	char buffer[20];

	_itoa(numInt, strInt, 10);
	_gcvt(numDouble, 5, strDouble);

	sprintf(buffer, "%d", numInt);

	cout << strInt << endl;
	cout << strDouble << endl;
	cout << buffer << endl;

}

面试题2:不使用库函数将整数转换为字符串

  • 考点:对数字转换为字符串,相关ASCII码的理解

解题思路:将整数的每一位上加上’0’转换成char类型并存到字符数组中

void func()
{
	int number = 12333;

	char str[20];
	int count = 0;
	while (number)
	{
		int num = number % 10;
		str[count++] = num + '0';
		number = number / 10;
	}
	//对顺序进行调整
	char newstr[20];
	for (int i = 0; i < count; i++)
	{
		newstr[i] = str[count - 1 - i];
	}
	newstr[count] = '\0';
	cout << newstr << endl;

}

面试题3:编程实现strcpy函数

  • 考点:字符串复制的实现
    在这里插入图片描述
  • 示例代码如下
char* My_strcpy(char* strDest, const char* strSrc)
{
	
	int strSrc_len=strlen(strSrc);
	
	for (int i = 0; i < strSrc_len; i++)
	{
		strDest[i] = strSrc[i];
	}
	strDest[strSrc_len] = '\0';
	return strDest;
}

int getStrLen(const char* strSrc)
{
	int len = 0;
	while (*strSrc++ != '\0')
	{
		len++;
	}
	return len;
}

int main()
{
	char strSrc[] = "abcdefg";
	char strDest[20];
	int len = 0;
	len=getStrLen( My_strcpy(strDest, strSrc));
	cout << strDest << endl;
	cout << "len=" << len << endl;


	system("pause");
	return 0;
}

在这里插入图片描述

面试题4:编程实现memcpy函数

  • 内存复制的实现
void *memcpy(void *dest, const void *src, size_t n);

其中,dest是目标地址,src是源地址,n是要复制的字节数。

memcpy函数可以用来复制任意长度的内存数据,但注意对于复杂数据类型(如结构体、类等),要确保其成员的内存布局是连续的,否则可能会导致数据被破坏。

  • 示例代码如下
void* memcpy2(void *dest,const void *src,size_t size)
{
	assert((dest != NULL) && (src != NULL));

	//强制转换
	char* newDest = (char*)dest;
	char* newSrc = (char*)src;
	
	while (size-- > 0)
	{
		*newDest++ = *newSrc++;
	}

	return newDest;
}


int main()
{

	char src[] = "asdfghjk";
	char dest[20];
	int len=strlen(src);
	memcpy2(dest, src, len);
	dest[len] = '\0';
	cout << dest << endl;

	system("pause");
	return 0;
}

面试题5:strcpy与memcpy的区别

  • strcpy和memcpy都是用来复制内存区域的函数,但是二者之间有几个关键的区别:
  1. strcpy用于复制字符串,其原型为char* strcpy(char* dest, const char* src)。它会从源字符串的地址开始复制字符,直到遇到空字符\0为止。因此,strcpy只能用来复制字符串,并且不需要指定复制的长度。

  2. memcpy用于复制任意类型的内存数据,其原型为void* memcpy(void* dest, const void* src, size_t n)。它需要传入要复制的数据的起始地址和长度,可以复制任意类型的数据,包括字符串。因此,memcpy是更通用的函数,可以处理任意类型的数据。

  3. strcpy会在目标字符串的末尾添加\0结束符,而memcpy则不会。因此,在使用memcpy复制字符串时,需要手动添加结束符。

  • 总的来说,strcpy主要用于复制字符串,而memcpy用于复制任意类型的内存数据。在复制字符串时,可以使用strcpy来保证字符串的正确复制及添加结束符。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI大模型爆发,你还不学就晚了!抓住时代机遇,快速入门指南!

AI大模型风起云涌&#xff0c;你准备好乘风破浪了吗&#xff1f; 在一个阳光明媚的午后&#xff0c;小李坐在自己的工位上&#xff0c;眼前的代码如同繁星般繁多。他是一名资深的软件工程师&#xff0c;但在最近的技术浪潮中&#xff0c;他却感到了一丝不安。他的朋友圈里&…

绝了!篇篇10万+的AI治愈系插画,完整版项目拆解(附提示词)!

大家好&#xff0c;我是向阳 最近&#xff0c;治愈系插画在小某薯上热度很高&#xff0c;比如这个号&#xff0c;每一篇的笔记数据都不错&#xff0c;2个月时间涨粉7.3万。 然后&#xff0c;我偶然发现&#xff0c;有人把这样的治愈插画用到公某号爆文的配图上&#xff0c;每一…

探索Docker容器网络

Docker容器已经成为现代应用部署的核心工具。理解Docker的网络模型对于实现高效、安全的容器化应用至关重要。在这篇博客中&#xff0c;我们将深入探讨Docker的网络架构&#xff0c;并通过一些代码例子来揭示其底层实现。 Docker网络模式 Docker提供了多种网络模式&#xff0c…

真心建议大家冲一冲新兴领域,工资高前景好【大模型NLP开发篇】

前言 从ChatGPT到新近的GPT-4&#xff0c;GPT模型的发展表明&#xff0c;AI正在向着“类⼈化”⽅向迅速发展。 GPT-4具备深度阅读和识图能⼒&#xff0c;能够出⾊地通过专业考试并完成复杂指令&#xff0c;向⼈类引以为傲的“创造⼒”发起挑战。 现有的就业结构即将发⽣重⼤变…

pxe批量部署linux介绍

1、PXE批量部署的作用及必要性&#xff1a; 1&#xff09;智能实现操作系统的批量安装&#xff08;无人值守安装&#xff09;2&#xff09;减少管理员工作&#xff0c;提高工作效率3&#xff09;可以定制操作系统的安装流程a.标准流程定制(ks.cfg)b.自定义流程定制(ks.cfg(%pos…

使用免费恢复软件恢复已删除的文件

由于删除或 Shift (Command) Delete 而丢失重要文件 通常&#xff0c;当您删除计算机上的文件时&#xff0c;您仍然可以在回收站 (Windows) 或垃圾箱 (Mac) 中找到它。但是&#xff0c;如果删除的文件绕过了回收站&#xff0c;或者您已将其从回收站中清空&#xff0c;则您必须…

全网首发:教你如何直接用4090玩转最新开源的stablediffusion3.0

1.stablediffusion的概述&#xff1a; Stable Diffusion&#xff08;简称SD&#xff09;近期的动态确实不多&#xff0c;但最新的发展无疑令人瞩目。StableCascade、Playground V2.5和Stableforge虽然带来了一些更新&#xff0c;但它们在SD3面前似乎略显黯然。就在昨晚&#x…

基于QT5.12.7的VTK8.2下的VS2015 X64源码编译以及测试

有一段时间没更新博客了&#xff0c;最近在考虑使用VTK作为软件的后处理显示&#xff0c;相比于OSG&#xff0c;VTK在后处理上集成了很多优秀的算法&#xff0c;使用起来比较方便&#xff0c;而且后处理一般不需要太多的交互&#xff0c;所以VTK是一个不错的选择。 之前对VTK了…

FlinkCDC 3.1.0 支持 Flink 1.18.0 版本选择

问题&#xff1a;FlinkCDC 3.1.0 pipeline 与 Flink 1.17.0 可能是因为出现版本不支持的问题&#xff08;已实测&#xff09; 持续报错&#xff1a; -- client log Exception in thread "main" java.lang.BootstrapMethodError: java.lang.NoSuchMethodError: org.a…

AI预测福彩3D采取888=3策略+和值012路或胆码测试6月15日新模型预测第5弹

今天咱们继续验证新模型的8码定位3&#xff0c;目前新模型新算法8码定位经过4次测试&#xff0c;已命中3次&#xff0c;9码定位连续命中4次。咱们重点是预测8码定位3&#xff0b;和值012胆码。有些朋友看到我最近几篇文章没有给大家提供缩水后的预测详情&#xff0c;在这里解释…

SpringCloud2023 - 学习笔记

文章目录 1. 简介1.1 基础知识1.2 组件更替与升级 2. 微服务基础项目构建2.1 创建项目2.2 Mapper4生成代码2.3 支付模块编码2.4 项目完善2.5 订单模块编码2.6 工程重构 3. consul服务注册与发现3.1 consul简介3.2 consul下载安装3.3 微服务入驻3.4 order订单微服务入驻3.5 其他…

Pytorch 卷积神经网络-手写数字识别

卷积神经网络是深度学习中的一个里程碑式的技术&#xff0c;有了这个技术&#xff0c;才会让计算机有能力理解图片和视频信息&#xff0c;才会有计算机视觉的众多应用。 本文讨论卷积神经网络模型&#xff08;CNN&#xff09;的Hello World。前面讨论的是一个二分类问题&#x…

线代知识点总结

目录 一.初等行/列变换 1.计算行列式时&#xff0c;行列变换都可 2.求矩阵的秩时&#xff0c;行列变换都可 3.解线性方程组时&#xff0c;仅能使用初等行变换 4.判定解的情况&#xff0c;单纯求r(A),r(A,b)的过程行列变换都可 5.求向量组极大无关组、线性表出关系&#x…

基于springboot的宠物商城网站

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于springboot的宠物商城网站,java项目…

QT QFileDialog文件选择对话框

QT QFileDialog文件选择对话框 选择txt或者cpp文件&#xff0c;读取内容并显示 参考&#xff1a; QT写入文件与读取文件内容_qt往一个文件写东西-CSDN博客 #include "QtFilePreview.h" #include "qfiledialog.h" #include "qfile.h" #includ…

TCGAbiolinks包学习

TCGAbiolinks 写在前面学习目的GDCquery GDCdownload GDC prepare中间遇到的报错下载蛋白质数据 写在前面 由于别人提醒我TCGA的数据可以利用TCGAbiolinks下载并处理&#xff0c;所以我决定阅读该包手册&#xff0c;主要是该包应该是有更新的&#xff0c;我看手册进行更新了&…

IO流及字符集

IO流 作用&#xff1a; 用于读写文件中的数据 分类&#xff1a; 图来自黑马程序员网课 纯文本文件&#xff1a;Windows自带的记事本打开能读懂的文件&#xff0c;word excel不是纯文本文件 图来自黑马程序员网课 FileOutputStream: 操作本地文件的字节输出流&#xff0c;可…

SQLServer 借助Navcate做定时备份的脚本

首先创建SQLServer链接&#xff0c;然后在Query标签种创建一个查询 查询内容如下 use ChengYuMES declare ls_time varchar(1000) declare ls_dbname varchar(1000) set ls_time convert(varchar, getdate(), 112) _ replace(convert(varchar, getdate(), 108), :, )-- 需…

【单片机毕业设计选题24006】-基于STM32的智能鱼缸系统

系统功能: 采用STM32最小系统板控制&#xff0c;采集传感器数据显示在OLED上 并可通过按键或蓝牙APP控制两路继电器和舵机。 1. 使用DHT11模块采集环境温湿度 2. 使用DS18B20采集鱼缸水温 3. 继电器控制水泵&#xff08;水位过低时加水&#xff09; 4. 继电器模拟控制增氧…

【docker】如何解决artalk的跨域访问问题

今天折腾halo的时候&#xff0c;发现artalk出现跨域访问报错&#xff0c;内容如下。 Access to fetch at https://artk.musnow.top/api/stat from origin https://halo.musnow.top has been blocked by CORS policy: The Access-Control-Allow-Origin header contains multipl…