2022暑期实习面经

C++后端 技术面(笔试)

一、选择题

(10*1分)

(10道题只记得一部分,都是单选,只记得部分!!!)

1.char[ ] str="hello";

sizeof(str) 输出为(4)

A.4 B 5

因为str是指针,指针都是int型,4字节,与指向的类型无关

2.输出为()

int k=0,i=2;

while(k && i++ > 2 );

printf("%d %d",k,i);

A.0 2 B 1 3 C 2 4

3.考派生类与基类的构造先后顺序

4.考删除单链表的节点

二、逻辑题

(10分)

一辆公交车除起始站和终点站,中途有11个经停站,如果这辆公交车从起始站开始有乘客上车,每一站上车的乘客中又恰好有一位从这一站到以后的每一站下车,为确保每一个乘客都有座位,公交车至少要安排多少个座位?

起点站    12人(之后(11站+终点站),每站下一人)
第1站    2*11人(11个起点站的,11个第一站的)
第2站    3*10人(10个起点站的,10个第一站的,10个第二站的)
第3站    4*9人
......       5*8
......       6*7
......       7*6
......      .....
第11站   12*1人

矩形长宽差越小面积越大,所以6*7或7*6车上人数最多

(这是道小学智力题,我一开始的思路是计算每站实际乘客数变化:

+12-0、+11-1、+10-2、+9-3、+8-4、+7-5、+6-6、+7-5.........

(+6-6=0)时车上人数达到最大)

三、编程题(2*10分)

1.求数组最长严格递增子序列(C++)

(10分)

   int result=0;
   int dp[n]={0}
        for(int i=0;i<n;i++)
        {
            dp[i]=1;
            for(int j=0;j<i;j++)
            {
                if(arrayt[i]<=array[j])
                    dp[i]=max(dp[i],dp[j]+1);
            }
            result=max(result,dp[i]);
        }
    return result;

2.判断一个二叉树是否是平衡二叉树(左右子树高度差不超过2即可)

(10分)

 int High(TreeNode* root)
{
    if(!root)
        return 0;
    return max(High(root -> left), High(root -> right))+1;
}

bool isBalanced(TreeNode* root) {
    if(!root)
        return true;
    if(abs(High(root->left)-High(root->right)) <= 1
       && isBalanced(root->left) && isBalanced(root->right))
        return true;
    return false;
}

面试主要就是根据简历问你问题,有项目的问项目,没项目的问基础知识(编程语言、算法、数据结构),我简历上写了Qt,问我connect函数的五个参数(第五个参数没用过,所以不知道),此处摆上:

1、Qt::AutoConnection: 默认值,使用这个值则连接类型会在信号发送时决定。如果接收者和发送者在同一个线程,则自动使用Qt::DirectConnection类型。如果接收者和发送者不在一个线程,则自动使用Qt::QueuedConnection类型。

2、Qt::DirectConnection:槽函数会在信号发送的时候直接被调用,槽函数运行于信号发送者所在线程。效果看上去就像是直接在信号发送位置调用了槽函数。这个在多线程环境下比较危险,可能会造成奔溃。

3、Qt::QueuedConnection:槽函数在控制回到接收者所在线程的事件循环时被调用,槽函数运行于信号接收者所在线程。发送信号之后,槽函数不会立刻被调用,等到接收者的当前函数执行完,进入事件循环之后,槽函数才会被调用。多线程环境下一般用这个。

4、Qt::BlockingQueuedConnection:槽函数的调用时机与Qt::QueuedConnection一致,不过发送完信号后发送者所在线程会阻塞,直到槽函数运行完。接收者和发送者绝对不能在一个线程,否则程序会死锁。在多线程间需要同步的场合可能需要这个。

5、Qt::UniqueConnection:这个flag可以通过按位或(|)与以上四个结合在一起使用。当这个flag设置时,当某个信号和槽已经连接时,再进行重复的连接就会失败。也就是避免了重复连接。

面试的是wps,目前就业形势下,薪资算比较高的了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值