2023秋招大厂经典面试题及答案整理归纳(121-140)校招必看

目录

前言:

121. static有什么用途?(请至少说明两种)

122. 引用与指针有什么区别?

123. 描述实时系统的基本特性

124. 全局变量和局部变量在内存中是否有区别?如果有,是什 么区别?

125. 什么是平衡二叉树?

126. 堆栈溢岀一般是由什么原因导致的?

127. 什么函数不能声明为虚函数?

128. 冒泡排序算法的时间复杂度是什么?

129. Internet釆用哪种网络协议?该协议的主要层次结构?

130. IP地址的编码分为哪俩部分?

131. 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写岀C程序。

132. 某32位系统下,C++程序,请计算sizeof的值.

133. 阅读下面代码,回答问题.

134. C++中为什么用模板类。

135. 程序什么时候应该使用线程,什么时候单线程效率高。

136. Linux有内核级线程吗?

137. C++中什么数据分配在栈或堆中,New分配数据是在近堆 还是远堆中?

138. 使用线程是如何防止出现大的波峰。

139. 函数模板与类模板有什么区别?

140. winsock建立连接的主要实现步骤?


前言:

读者朋友们大家好,狮在这里给大家请安咯;咱更新的秋招大厂经典面试提及答案整理归纳已经更新了六篇120道面题及答案;之前主要整理的是百度,阿里,滴滴;在接下来的篇章中还会更新更多例如华为,京东,头条等等国内外一线顶尖大厂的内容;敬请期待哦。

p:狮的主页还有C/C++面经分享,C/C++/Linux后台架构开发,及Linux编程教学等等;有感兴趣的读者朋友们可以点个关注多多学习

制作不易,感谢关注

121. static有什么用途?(请至少说明两种)

1) 在函数体,一个被声明为静态的变量在这一函数被调用过程中維持其值 不变。

2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所 用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。 那就是,这个函数被限制在声明它的模块的本地范围内使用


122. 引用与指针有什么区别?

1) 引用必须被初始化,指针不必。

2) 引用初始化以后不能被改变,指针可以改变所指的对象。

3) 不存在指向空值的引用,但是存在指向空值的指针。


123. 描述实时系统的基本特性

在特定时间内完成特定的任务,实时性与可靠性。


124. 全局变量和局部变量在内存中是否有区别?如果有,是什 么区别?

全局变量储存在静态数据库,局部变量在堆栈。


125. 什么是平衡二叉树?

左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。


126. 堆栈溢岀一般是由什么原因导致的?

没有回收垃圾资源。


127. 什么函数不能声明为虚函数?

constructor函数不能声明为虚函数。


128. 冒泡排序算法的时间复杂度是什么?

时间复杂度是0 02)。


129. Internet釆用哪种网络协议?该协议的主要层次结构?

Tcp/ip协议

主要层次结构为:应用层/传输层個络层/数据槌路层/物理层。


130. IP地址的编码分为哪俩部分?

IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上 之后才能区分哪些是网络位哪些是主机位。


131. 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写岀C程序。

循环链表,用取余操作做


132. 某32位系统下,C++程序,请计算sizeof的值.

char str[] = rthttp: //www. ibegroi5>. com/w
char *p = str ;
int n = 10;
sizeof (str ) = ? (1)
sizeof ( p ) = ? (2)
sizeof ( n ) = ? (3) void Foo ( char str [100]) (
mm
sizeof( str ) = ?(4)
}
void *p = malloc( 100 );
mm
sizeof ( p ) = ? (5)
(1) 17 (2) 4 (3) 4 (4) 4 (5) 4

133. 阅读下面代码,回答问题.

1) .

void G et Memory (char **p, int num) {
*p 二(char *)malloc(num);
}
void Test(void){
char *str = NULL;
G etMemory(festr, 100); strcpy(str, "hello"); print f (str);
}

请问运行Test函数会有什么样的结果?

输岀“he"

2) .

char *GetMemory(void) {
char p[] = "hello world*; return p;
}
void Test (void) I
char *str = NULL; str = G etMemory (); print f (str);
}

请问运行Test函数会有什么样的结果?

无效的指针,输岀不确定


134. C++中为什么用模板类。

(1 )可用来创建动态増长和减小的数据结构

(2) 它是类型无关的,因此具有很高的可复用性。

(3) 它在编译时而不是运行时检查数据类型,保证了类型安全

(4) 它是平台无关的,可移植性

(5) 可用于基本数据类型


135. 程序什么时候应该使用线程,什么时候单线程效率高。

1. 耗时的操作使用线程,提高应用程序响应

2. 并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。

3. 多CPU系统中,使用线程提高CPU利用率

4. 改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几 个独立或半独

立的运行部分,这样的程序会利于理解和修改。

其他情况都使用单线程。


136. Linux有内核级线程吗?

线程通常被定义为一个进程中代码的不同执行路线。从实现方式上划分,线 程有两种类型:“用户级线程〃和“内核级线程〃 O

用户线程指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系 统核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控 制用户线程。这种线程甚至在象DOS这样的操作系统中也可实现,但线程 的调度需要用户程序完成,这有些类似Windows 3.x的协作式多任务。另 外一种则需要内核的参与,由内核完成线程的调度。其依赖于操作系统核心, 由内核的内部需求进行创建和撤销,这两种模型各有其好处和缺点。用户线 程不需要额外的内核开支

,并且用户态线程的实现方式可以被定制或修改以适应特殊应用的要求,但 是当一个线程因I/O而处于等待状态时,整个进程就会被调度程序切换为 等待状态,苴他线程得不到运行的机会;而内核线程则没有各个限制,有利 于发挥多处理器的并发优势,但却占用了更多的系统开支。

Windows NT和OS/2支持内核线程。Linux支持内核级的多线程。


137. C++中什么数据分配在栈或堆中,New分配数据是在近堆 还是远堆中?

栈:存放局部变量,函数调用参数,函数返回值,函数返回地址。由系统管 理堆:程序运行时动态申请,new和malloc申请的内存就在堆上。


138. 使用线程是如何防止出现大的波峰。

意思是如何防止同时产生大量的线程,方法是使用线程池,线程池具有可以 同时提高调度效率和限制资源使用的好处,线程池中的线程达到最大数时, 其他线程就会排队等候。


139. 函数模板与类模板有什么区别?

函数模板的实例化是由编译程序在处理函数调用时自动完成的,而类模板的 实例化

必须由程序员在程序中显式地指定。


140. winsock建立连接的主要实现步骤?

服务器端:sockerO建立套接字,绑定(bind)并监听(listen),用accept ()等待客户端连接。

客户端:sockerO建立套接字,连接(connect)服务器,连接上后使用send。 和recv (),在套接字上写读数据,直至数据交换完毕,closesocket 0关 闭套接字。

服务器端:accept ()发现有客户端连接,建立一个新的套接字,自身重新 开始等待连接。该新产生的套接字使用send。和recv ()写读数据,直至 数据交换完毕,closesocket 0关闭套接字。


秋招大厂经典面试题及答案整理不断更新中,感兴趣且正在学习的同学可以点个关注;狮会不断更新文章连载,有问题或者见解可以评论区讨论。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值