2017 CVTE春招内推专场 C/C++软件开发岗笔试编程题

时间:2021-09-10 23:46:48

先来一波吐槽:选择题全是不定项选择,考的内容在我看来,“反正我接受唔到咯”。

比如:

1.Windows操作系统某个通信机制(具体题目忘了,反正答案我选了个熟悉的名词“消息队列”)。

EXM???服,我还真从来没关注过Windows的任何机制。手动黑人问号。

x. 以下哪些属于Linux的发行版本?A.OpenSUSE B.Red-hat C. CentOS D.Ubuntu

EXM???所谓的考Linux就是这样考的?再次手动黑人问号。

还有一题问的是Linux设备调用接口什么的,没搞过,真不清楚,瞎选。

其他的还挺常规,比如问哪些属于交换排序、哪些排序算法序列的初始状态不影响比较次数、多态、死锁、计算机网络(考的是FTP的传输模式)等。

-----------------分割线------------------

两道题,都很简单。

1. 给定一个字符串,找到第一个只出现一次的字符的下标,找不到输出-1。

sample:

输入:“abcdefcba”

输出:3

解法:先遍历字符串,用一个map记录每个字符出现的次数,再次遍历字符串,找到第一个只出现一次的字符,复杂度为O(n)。

 #include <iostream>
#include <string>
#include <cstring>
#include <map>
using namespace std; int getCharIndex(const char *str)
{
map<char, int> cmap;
int length = strlen(str);
for (int i = ; i < length; ++i)
++ cmap[str[i]]; int ret = -;
for (int i = ; i < length; ++i)
if (cmap[str[i]] == )
{
ret = i;
break;
} return ret;
} int main()
{
string str;
cin >> str;
cout << getCharIndex(str.c_str()) << endl;
}

2. n个人围着圆桌坐,编号1~n,从第k个开始报数,报到m者出列,后一个继续从1开始报数。问最后一个出列者的编号。输入n, k, m.

sample1:

  输入:3 1 1

  输出:3

sample2:
  输入:3 2 2

  输出:1

解法:首先,看到这种题目就感觉会有特别的规律,但思前想后还是归纳不出来,只好用循环链表直接模拟,复杂度O(nm)。

 #include <iostream>

 using namespace std;

 typedef struct Node
{
int num;
Node *next;
} Node; // 构造循环链表
void construct(Node **head, int n)
{
*head = new Node;
(*head)->num = ;
(*head)->next = NULL;
Node *pNode = *head; for (int i = ; i <= n; i++)
{
Node *pNew = new Node;
pNew->num = i;
pNew->next = NULL;
while (pNode->next != NULL)
pNode = pNode->next; pNode->next = pNew;
pNode = pNode->next;
}
pNode->next = *head;
} int solve(int n, int k, int m)
{
// 过滤非法输入
if (n < || k < || k > n || m <= )
return ; // 数到1就出列的情况下,即从k开始逐个出列
// 若k = 1, 最后一个为n; 否则为k-1.
else if (m == )
return (k == ? n : k-); // 构造循环链表
Node *head = NULL;
construct(&head, n); // 从k开始报数,故先跳到第k个
Node *pNode = head;
for (int i = k; i > ; --i)
pNode = pNode->next; // 模拟报数n-1次, 每次出列一人,删除出列的结点
int num = ;
Node *pPrev;
for (int i = ; i < n - ; i++)
{
while (num < m)
{
pPrev = pNode;
pNode = pNode->next;
++num;
}
Node *pToDel = pNode;
pNode = pNode->next;
pPrev->next = pNode;
delete pToDel;
num = ;
}
int ret = pNode->num;
delete pNode; // 避免内存泄露,释放最后一个结点
return ret;
}
int main()
{
int n, k, m;
int t;
cin >> t;
while (t--)
{
cin >> n >> k >> m;
cout << solve(n, k, m) << endl;
}
}

总结:编程题很简单,但选择题感觉错了挺多的,估计笔试都过不了,有点不开心。反正我GG了,后面那批兄弟姐妹们加油。

2017 CVTE春招内推专场 C/C++软件开发岗笔试编程题的更多相关文章

  1. cvte春招测试面试记录

    cvte春招测试面试记录,挂在了综合面试(hr面)...尽量回忆面试的问题(可能不完全). 技术面一面: 1.自我介绍 2.根据实习项目问,智能客服怎么测正确率之类的. 3.测试人脸解锁 4.测试微信 ...

  2. 2017百度春招&lt&semi;不等式排列&gt&semi;

    题目: 度度熊最近对全排列特别感兴趣,对于1到n的一个排列,度度熊发现可以在中间根据大小关系插入合适的大于和小于符号(即 '>' 和 '<' )使其成为一个合法的不等式数列.但是现在度度熊 ...

  3. 2017百度春招&lt&semi;有趣的排序&gt&semi;

    题目 度度熊有一个N个数的数组,他想将数组从小到大排好序,但是萌萌的度度熊只会下面这个操作:任取数组中的一个数然后将它放置在数组的最后一个位置.问最少操作多少次可以使得数组从小到大有序? #inclu ...

  4. 2017百度春招&lt&semi;度度熊买帽子的问题&gt&semi;

    题目: 度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同.度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 数组中找到第三小的数字  注意边界条件 用STL中的set来 ...

  5. 上海洋码头&lpar;www&period;ymatou&period;com&rpar;急招技术人才&lpar;职位:互联网软件开发工程师,&period;NET网站架构师,Web前端开发工程师,高级测试工程师,产品经理)

    对公司招聘职位有兴趣的童鞋可以把简历发送到zhangzhiqiang@ymatou.com,我们HR会快速给你答复. 互联网软件开发工程师 岗位职责: 1.参与洋码头各个平台(www.ymatou.c ...

  6. CVTE前端笔试编程题

    这些题目是做完笔试之后,在别的地方找到的,现在附上. 1.(1)这题考察的怎么把参数转换为数组,然后再截取你想要的位数. function C(){ var a_args=Array.prototyp ...

  7. &lbrack;找工作&rsqb; 2019秋招|从春招到秋招,Java岗经验总结(收获AT)

    转自(有更多) https://blog.csdn.net/zj15527620802/article/month/2018/10 前言 找工作是一件辛酸而又难忘的历程.经历过焦虑.等待.希望,我们最 ...

  8. 痛吻过YY寻找到真爱的三非渣本春招之路

    写下这篇文章可能就不是大家乐于见闻的面经了,更多是深入一些面试细节. 前言 我猜拿到了BAT等一线互联网公司Offer的小伙伴或者那些老鸟看到这条标题的时候会不屑一顾,认为YY这种级别的公司是属于二线 ...

  9. 春招实习汇总(7个offer)

    转载出处 刚从北京到家,总算也可以歇歇了,最近一段时间真是忙于奔命的感觉,也确实体会到了找工作的艰辛,总而言之,求职之路,如人饮水,冷暖自知. 我想把这段时间找工作的体验和经历分享出来告诉大家,让大避 ...

随机推荐

  1. saltstack(主机改名)

    已存在salt中的机器,为了规范,需要将这批主机改名 操作流程:在master把这批机器剔除:然修改这批机器的主机名.在/etc/salt目录下.用mv把minion_id和pki的目录重命名.重启s ...

  2. VirtualBox CentOS安装增强功能与设置共享文件夹

    如果安装的是CentOS minimal版无网络的可以看这篇文章. 一.安装依赖环境 依次执行如下命令 yum install update yum install kernel-headers yu ...

  3. Sipdroid实现SIP&lpar;五&rpar;&colon; 用Java实现的UserAgent

    I. 概述 UserAgent是SIP协议中的一个概念, 将"打电话"功能中的主叫和被叫逻辑上封装成UserAgent, 就像将"注册"功能的发起方和接收方封装 ...

  4. &lbrack;linux&rsqb;查看机器有几个cpu,是否支持64位

    1. 查看物理CPU的个数#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l 2. 查看逻辑CPU的个数#cat /pr ...

  5. Lua学习系列(一)

    从现在开始,打算学习一门新的脚本语言-lua. 1.什么是lua? a) lua1 • Lua 1.0 was implemented as a library, in less then 6000 ...

  6. WPF 字符串溢出判断&comma;字符串长度是否超过控件宽度

    TextBloc可以将TextTrimming属性设置为CharacterEllipsis 其他控件可以在控件大小变更或者其他事件上附加下列方法 private void OnEllipsis(obj ...

  7. Dapp混合模型开发--Dice2win的解读

    前言: 之前讲到Dapp原生态对随机函数的支持并不友好, 现在讲讲一种解决思路. 既能保证随机函数的不可预测性, 又能保证公平性, 平台和玩家都能满意. 而Dapp中的Dice2Win实现, 刚好是其 ...

  8. thymeleaf入门和学习

    springboot框架不推荐使用jsp,一方面是兼容性的技术问题,一方面也是其前后端整合在一起,很难适合当下大规模的网站开发环境.HTML只是一种标记语言,并不具有获取model中数据的功能,所以视 ...

  9. Git 与 SVN 命令学习笔记

    一:Git git config --global user.name "you name"   #设置用户名git config --global user.email &quo ...

  10. python3 pyinstaller生成exe文件过程问题解决记录

    1.使用pip安装pyinstaller 2.在cmd打开需生成可执行文件的python文件所在文件夹 3.使用命令pyinstaller -F -w **.py (代码中有import其他模块的,只 ...