星辰天合XSKYC++笔试

  1. shell,如何将标准输出合错误输出同时重定向到同一位置?

    可以使用下面的命令:

      command > file.txt 2>&1
    

    这个命令是用来将标准输出和标准错误输出合并重定向到同一个文件中的。它的具体含义如下:

    • > 符号表示将标准输出重定向到一个指定的文件中。
    • file.txt 是要重定向到的文件名,你可以将其替换为你需要的任意文件名。
    • 2> 符号表示将标准错误输出重定向到一个指定的位置,这里使用了 2> 将标准错误输出重定向到一个文件流中。
    • &1 表示将标准错误输出重定向到标准输出,意思是将错误信息放到先前被标准输出所占用的文件流里,以便于它们能够被一起输出到同一个文件里。

    这个命令的执行顺序是先将标准输出重定向到指定的文件中,然后再将标准错误输出重定向到标准输出,这样就能够将两个流合并起来并输出到同一个文件中了。

  2. Linux平台磁盘管理的命令有哪些?

    Linux平台磁盘管理的命令主要包括以下几个方面:

    • "df"命令:用于显示文件系统的磁盘空间占用情况。它会显示出每个文件系统的大小、已用空间、可用空间和挂载点等信息。
    • "du"命令:用于显示指定文件或目录的磁盘空间占用情况。它会递归地计算每个子目录和文件的大小,并将它们加起来得到总大小。
    • "fdisk"命令:用于磁盘分区。它可以创建、删除、调整磁盘分区,并显示有关磁盘分区的信息,如分区类型、系统标识符等。
    • "mkfs"命令:用于创建文件系统。它可以在指定的分区上创建各种类型的文件系统,如ext2、ext3、NTFS等。
    • "mount"命令:用于挂载文件系统。它可以将指定的文件系统挂载到指定的挂载点上,并使其可用于访问。
    • "umount"命令:用于卸载文件系统。它可以将指定的文件系统从挂载点上卸载,并释放相关资源。
  3. 程序什么时候应该使用线程,什么时候单线程效率高?

    程序应该在需要同时执行多个任务时使用线程。特别是当需要同时进行多个I/O操作时,使用线程可以使程序更加高效,因为它可以利用CPU时间片轮转的特性使得多个任务之间的切换和处理更加快速。 单线程效率高的情况一般是在计算密集型的任务中,因为在这种情况下大量的CPU时间被用于计算而不是I/O操作或等待其他线程的任务完成。 除此之外,还需要根据具体的场景来决定是否需要使用线程。例如一个单线程的Web服务器可能只能同时为一个客户端提供服务,而采用多线程则可以同时为多个客户端提供服务,提高系统的并发处理能力。但是,使用线程也带来了一些复杂性,因为需要考虑线程间的同步、共享资源等问题。

  4. 排序算法有哪些?冒泡排序的时间复杂度

    常见的排序算法有以下几种:

    • 冒泡排序
    • 选择排序
    • 插入排序
    • 快速排序
    • 归并排序
    • 堆排序

    冒泡排序的时间复杂度为 O(n^2)。

  5. 使用线程如何防止出现大的波峰,同时产生大量线程?

    为了防止使用线程导致波峰,可以采用线程池的方式来管理线程。线程池维护了一组线程,任务到来时从线程池中获取空闲的线程来执行任务,执行完成后将线程放回线程池中,避免了创建和销毁线程的开销。 在线程池中,可以设置最大线程数和最大任务队列长度来限制任务的执行,以避免产生大量线程。同时,可以对任务进行优先级管理,对高优先级的任务优先分配线程。 此外,还需要考虑在多线程并发执行时会出现的线程安全问题,特别是对共享资源的访问需要进行同步和互斥控制。正确地控制并发访问可以避免出现数据竞争、死锁等问题。

  6. C++的全局变量存放在内存的什么位置?

    C++的全局变量存放在内存的静态存储区中。这是一个程序在编译时就已经被分配好的内存区域,该区域的变量在程序的整个生命周期内都存在,即使函数调用结束,变量也不会被释放。 在程序运行时,全局变量分配在静态存储区的数据段中,该数据段在程序运行前就已经被加载到内存中。当程序启动时,操作系统会为程序分配静态存储区,程序在使用全局变量时可以直接访问该区域的内存空间。 需要注意的是,在多线程环境下,全局变量的访问可能会产生数据竞争和并发问题,需要进行同步和互斥控制。此外,全局变量通常是需要初始化的,可以在定义时进行初始化或者在某个函数中进行初始化。

  7. socket的步骤

    服务端的Socket编程步骤:

    • 创建一个Socket对象,可以是TCP或UDP类型的。
    • 绑定Socket对象到一个特定的IP地址和端口号,以便客户端能够访问。
    • 监听该Socket对象,使其能够接受连接请求。
    • 接受一个连接请求,并创建一个新的Socket对象,以便对该连接进行读写操作。
    • 通过新的Socket对象向客户端发送数据,也可以从该客户端接收数据。
    • 关闭连接Socket对象,释放资源。

    客户端的Socket编程步骤:

    • 创建一个Socket对象,可以是TCP或UDP类型的。
    • 连接到服务端的Socket对象,通过指定服务端的IP地址和端口号来建立连接。
    • 向服务端发送数据,也可以从服务端接收数据。
    • 关闭连接Socket对象,释放资源。
  8. 什么函数不能声明为虚函数?

    • 静态成员函数:静态成员函数属于类本身,而不是类的对象,因此不能被声明为虚函数。
    • 友元函数:友元函数不属于类的成员,因此不能被声明为虚函数。
    • 构造函数:构造函数有特殊的调用顺序和处理方式,不能被声明为虚函数。
  9. 有三道编程题,都是对char * 的操作

    • 判断是否为回文字符串
    • 不使用库函数的情况下,实现strcat,两个字符串的连接
    • 计算字符串中指定字符的个数
#23届找工作求助阵地##在找工作求抱抱##我的求职思考#
全部评论
请问下是什么岗位呀 文件还是对象呀
点赞 回复
分享
发布于 2023-05-23 00:12 四川
什么时候做的笔试啊
点赞 回复
分享
发布于 2023-05-23 10:48 陕西
联想
校招火热招聘中
官网直投
C++的全局变量存放在内存的什么位置? 是在.data 和 .bss区吧
点赞 回复
分享
发布于 2023-05-23 17:02 湖南

相关推荐

我的评价是:好脑子不如烂笔头/笑感觉跟大家的好多一面很类似(只不过笔者这里90%八股 + 10%寒暄)没有问道项目经历/游戏经历,maybe二面问(或者没后续)开题,纯回忆版如有雷同,我脑子好 /笑16道题,偏八股1.说一下const、define的区别(翻了好多面经,CPP的大家都被问道)2.指针的++、- -说一下(同上)3.static 和 普通变量的区别(同1)4.说一下for循环和递归的区别(既然强调了for循环,感觉稍微多说下for能确定次数这点吧)5.说一下野指针是什么、怎么产生的(虽然知道那个理,但有点说high了,在那说起了大白话/魔爪全责)6.讲一下你知道的设计模式(同1,好多人都被问道)7.讲一下你理解的单例模式(6的衍生,感觉难得也不能问你)8.讲一下平衡二叉树&二叉搜索树(脑子有点兴奋,没比较正常的说出来二叉搜索树的所以然)9.讲一下什么时候会用到平衡二叉树(回答的不好,笔者说“需要用到‘左右子树高度相差不超过1’的时候”,纯纯说了遍特性)10.(忘了。。)11.说一下你知道的排序算法(说就行,但笔者建议说的时候绘声绘色些,别光说“快排、冒泡、归并、希尔..”,可以稍微扩充下“比如说‘快排会分割、用到一种分治的思路’,‘归并是把一个数组咔咔(笔者说的时候甚至挥舞起了手刀)然后再排’、‘数据比较多的时候可以用下外部排序’”)12.(看好多🐂友下一个一般是讲讲“XX排序”,可能笔者前面说太多了,面试官就自动换问题了)你对多线程有什么了解(明确说不了解,但笔者依稀记得C++11新加了东西)13.说一下多线程并发策略之类的问题(当时懵了:我都说我不会了,你害问)。笔者这里还是接了下来——按照自己的理解举了个刚开服可能会被冲爆的例子,然后要处理好这个问题,顺便提了嘴“游戏上之前进行压力开发”巴拉巴拉的14.你对C++网络编程了解多少(笔者光提了嘴socket,这个没背,笔者活该)15.讲一下TCP/UDP协议(绘声绘色的讲)我尼玛,字数不够了你敢信?后面没有几题了,发C站吧#4399内推4399春招##4399##一面##24届软开秋招面试经验大赏##春招#   https://blog.csdn.net/m0_63356844/article/details/136935305?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136935305%22%2C%22source%22%3A%22m0_63356844%22%7D
点赞 评论 收藏
转发
3 18 评论
分享
牛客网
牛客企业服务