C/C++2019秋招面试题集合01

2023-11-17

C/C++2019秋招面试题集合01

8.19【腾讯】提前批 - 客户端开发

1 给定一个字符串数组,和一个子串,求字符串中是否存在子串,如果存在则返回首个匹配到的索引位置,否则,返回 −1。不能调用库函数。
例如:
字符串数组:Integrity Procative Collaboration Innovation
子串:tegri
返回:2

int IndexOfSubstr(const char* const raw_str, const char* const sub_str) {}
/*
找子串步骤: 1 首个for循环为m-n+1次比较
             2 内层循环for找到相同首字符就进行后续判断  否则跳出进行下次寻找
			 3 比较n与j 相等说明找到 返回子串首地址
*/

int IndexOfSubstr(const char* str1,const char* str2){

	//只要有一个为空就没必要找
	if(str1==NULL || str2==NULL){
		return -1;  
	}
	
	#if 0
	//不调用库函数求字符串长度的写法 
	int m=0;
	while(*str1!=0){
	str1++;
	m++:
	}
	#endif
	//如果子串比数组大也没必要找
	int m=strlen(str1);
	int n=strlen(str2);
	if(m<n){
		return -1;
	}

	//开始寻找
	for(int i=0;i<=m-n;i++){          //m-n的意思是至少比较到字符串1拥有与2相等的长度 所以要取等号
		int j=0;
		for(;j<n;j++){
			if(str1[i+j]!=str2[j]){   //找到第一个相同的字母 就利用j进行两者后面的比较 
				break;                //没找到就跳出 继续寻找第一个相同的字符
			}
		}
		if(j==n){                     //如果j等于n 说明j找到并循环到最后  
			return i;            //返回第一个相同的字符地址
		}
	}
	return -1;  //没找到返回-1
}

2 函数传值的方式?
答:1值传递 2指针传递 3引用传递
区别是:1只是简单的值拷贝传递 2传递的是地址 3形参就是本身实参

3 引用和拷贝的区别?
答:引用:1定义时必须初始化 2不能赋值为NULL 3引用确定关系不能再引用别的对象,但可定义引用的引用

例: int b=1;int &a=b;
         int c=2; int &a=c;//error
         int &d=a; //ok 

拷贝是简单的值拷贝或者地址拷贝,若值传递形参值的改变或者地址传递过去后,指针指向改变,并不会影响到实参。而引用则会,因为就是其本身。

4 引用的优缺点和拷贝的优缺点
引用优点:C++增加引用就是避免使用指针,减少代码难度,增加更严格的标准。
缺点: 在返回值为引用时容易因为局部变量被释放而出错。

值拷贝时优点: 函数的副作用,安全性好 缺点:传参效率低,不能改变实参
地址传递拷贝时:传参效率高,形参可以改变值
缺点: 不安全,容易导致意外改变实参值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C/C++2019秋招面试题集合01 的相关文章

  • 区块链+教育 解决教育行业所面临的问题

    众所周知 教育对于一个国家 一个民族来说是成就未来的重要方式 它的社会职能 就是传递生产经验和社会生活经验 促进新生一代的成长 但是教育行业也有被一些问题困扰着 怎样运用区块链技术解决这些问题 1 完善学籍档案管理 我们都知道 现在很多地方
  • 基于规则的优化

    MySQL会对用户编写的查询语句执行一些重写操作 比如 移除不必要的括号 常量传递 移除没用的条件 表达式计算 最好让那个索引列以单独的形式出现在搜索条件表达式中 HAVING子句和WHERE子句的合并 如果查询语句中没用出现诸如 SUM

随机推荐

  • java web项目答辩答辩题总结(书本网上语言答辩+自己的语言答辩)

    答辩每个人的总分为1 5分 每个人主要问3个问题 开发流程 系统架构 项目模块 功能 项目得失重定向与转发 九个隐式对象 get与post的区辨 jsp有静态包含 动态包含 两者的区辨 什么是MVC web系统架构 java web项目答辩
  • 虚拟机ubuntu18.04桥接模式详解

    背景 虚拟机ubuntu18 04桥接模式下 配置静态ip 配置静态ip vim etc network interfaces 具体配置如下 auto lo iface lo inet loopback auto ens33 iface e
  • 算法题Day6-第三大的数

    给定一个非空数组 返回此数组中第三大的数 如果不存在 则返回数组中最大的数 要求算法时间复杂度必须是O n 示例 1 输入 3 2 1 输出 1 解释 第三大的数是 1 示例 2 输入 1 2 输出 2 解释 第三大的数不存在 所以返回最大
  • SQL查询结果按照指定内容排序

    一般来说 我们在开发SQL脚本的时候 遇到需要排序的内容 用order by需要排序的字段就可以满足我们排序的需求 asc为升序 desc为降序 不指定关键字默认为升序 但是有时候 我们需要的排序不仅仅是升序和降序 asc与desc并不能满
  • Kibana 7.X 导出CSV报告

    背景 由于有时候需要基于日志做一些处理 由官网得知 ES7 3 0发布的新特性 从保存的搜索中导出CSV 我们的Kibana刚好是7 3 0 于是将自己的使用经验及解决的问题 分享给有需要的小伙伴 一 使用步骤 1 1 保存搜索 Disco
  • Spring Cloud 与 Dubbo 冲突吗——强强联合

    微服务开发选型 到底是基于 Dubbo 还是 Spring Cloud 相信不少开发的小伙伴都有拿这两个项目作过作比较的经历 本章节就带你走近这两个项目 二者究竟是竞争发展还是融合共赢 项目发展简介 我们还是先来看看 Dubbo 的发展历史
  • (递归)杨辉三角实现

    问题描述 杨辉三角形又称Pascal三角形 它的第i 1行是 a b i的展开式的系数 它的一个重要性质是 三角形中的每个数字等于它两肩上的数字相加 下面给出了杨辉三角形的前4行 1 1 1 1 2 1 1 3 3 1 思路 可以用二维数组
  • c++ string替换指定字符串

    string fnd dataset string rep labels string buf d data dataset ii jpg buf buf replace buf find fnd fnd length rep 去掉由于wi
  • ubuntu不息屏、隐藏其他软件图标 小技巧

    1 有时想安静的写写代码 但是这时候ubuntu老是自动进入休眠状态 这是你可以进入 设置 gt system setting gt power gt Brightness Lock 或者直接搜索Brightness Lock 将Turn
  • Latex学习笔记二——Overleaf在线练习

    锵锵 本文是基于Overleaf的Latex学习的第二部分 目录 1 结构化文档 2 添加图表 让论文更生动可读 2 1 Graphics 2 2 Floats 2 3 Tables 3 Bibliographies 1 结构化文档 这一部
  • SQl语句查询重复数据 只显示其中一条

    SQL查询重复数据 只显示其中一条 有重复数据主要有以下几种情况 1 存在两条完全相同的纪录 这是最简单的一种情况 用关键字distinct就可以去掉 example select distinct from table 表名 where
  • 电子专业 英语词汇大全(持续更新)

    文章目录 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 序号 词汇的领域 1 软件 软件开发 2 计算机 计算机网络 多媒体 3 单片机 电子 电子仪器 通信 A 序号 词汇 描述
  • GD32 和 ST32的区别

    TIM重载寄存器 复位值不一样 xxx xxx xxx xxxx
  • 服务器如何查询配置信息吗,如何查看linux服务器的配置信息

    如何查看linux服务器的配置信息 内容精选 换一换 本节介绍如何查看云服务器的mac地址 云服务器的mac地址不支持修改 登录Linux云服务器 执行以下命令 查看云服务器的mac地址 ifconfig查看MAC地址ifconfig登录L
  • 解决子盒子把父盒子撑破问题

    场景 div class demo 父盒子 div class box div 子盒子 div 当你设置子盒子的padding和border的时候就会把父盒子撑破 因为子盒子的宽度是100 而浏览器的默认盒模型为content box 即内
  • 遇到argument of type ‘Word2Vec‘ is not iterable不要慌。。。

    重要的事开头说 不要以为是返回值的问题或参数的问题 因为很有可能你学的那个是个老文档 现在已经改变函数了 报这个错我这里的原因是word2vec构造出来的模型不能遍历 原来代码 if word in model model就是用word2v
  • 设计模式【精简概述, 应用场景】(个人总结)

    声明 1 本文为我的个人复习总结 并非那种从零基础开始普及知识内容详细全面 言辞官方的文章 2 由于是个人总结 所以用最精简的话语来写文章 3 若有错误不当之处 请指出 Gof23设计模式分为三类 创建型模式 负责组件的创建 结构型模式 负
  • C++实现裴波那契数列——自顶向下递归

    随便写一下 没有整理 注释比较多 大家按需自取 include
  • gitlab 12.0.3_GitLab 13.0强调安全性

    gitlab 12 0 3 GitLab已发布其devops平台的13 0版 该平台集成了用于软件开发 部署和项目管理的工具 GitLab 13 0添加了许多新的安全性和协作功能 GitLab结合了Git开源分布式版本控制系统 持续集成和持
  • C/C++2019秋招面试题集合01

    C C 2019秋招面试题集合01 8 19 腾讯 提前批 客户端开发 1 给定一个字符串数组 和一个子串 求字符串中是否存在子串 如果存在则返回首个匹配到的索引位置 否则 返回 1 不能调用库函数 例如 字符串数组 Integrity P