面试问题总结(1)

news2024/12/27 10:12:40
  • (꒪ꇴ꒪ ),Hello我是祐言QAQ
  • 我的博客主页:C/C++语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍
  • 快上🚘,一起学习,让我们成为一个强大的攻城狮!
  • 送给自己和读者的一句鸡汤🤔:集中起来的意志可以击穿顽石!
  • 作者水平很有限,如果发现错误,请在评论区指正,感谢🙏


先提问题,看看你能否全部回答的上

c关键字有哪些?

栈和堆的区别?

线程同步方式?

进程通信方式?

介绍一下大端小端?

tcp ip有几层,各层常见协议有哪些?

介绍一下段和页?

介绍一下io多路复用?

写一个指针数组和数组指针?

以下是您提出的问题的答案:

  1. C关键字有哪些:auto、breakcasechar、const、continue、default、dodoubleelse、enum、extern、floatfor、goto、ifintlong、register、returnshort、signed、sizeofstaticstructswitchtypedef、union、unsigned、void、volatile、while等。

  2. 栈和堆的区别:

    • 栈(Stack):栈是一种线性数据结构,用于存储函数的局部变量、函数调用信息以及返回地址等。它的特点是后进先出(LIFO),内存管理由编译器自动处理,通常用于存储局部变量和函数调用。
    • 堆(Heap):堆是一种动态分配内存的区域,由程序员手动分配和释放。它的特点是随机访问,内存管理需要程序员负责,通常用于存储动态分配的数据,如对象、数组等。
  3. 线程同步方式:

    • 互斥锁(单线程访问):用于保护共享资源,一次只允许一个线程访问。
    • 信号量:控制同时访问共享资源的线程数量。
    • 条件变量(等待机制):允许线程等待特定条件的发生。
    • 读写锁(多线程读单线程写):允许多个线程同时读取共享资源,但只允许一个线程写入。
  4. 进程通信方式:

    • 管道(Pipe):单向通信,通常用于父子进程间通信。
    • 命名管道(Named Pipe,FIFO):有名管道,允许无关进程间通信。
    • 共享内存(Shared Memory):多个进程共享同一块内存区域。
    • 信号(Signal):用于进程间通知和处理异步事件。
    • 消息队列(Message Queue):进程通过消息队列传递数据。
    • 套接字(Socket):用于网络通信和进程间通信。
  5. 大端小端: 大端(高存低)和小端(低存低)是两种存储多字节数据的方式。在大端模式中,最高有效字节存储在最低内存地址,而在小端模式中,最低有效字节存储在最低内存地址。这种区别在网络通信和数据存储时很重要。

  6. TCP/IP有几层,各层常见协议有哪些: TCP/IP协议栈通常分为四层:

    • 应用层:HTTP、SMTP、FTP、SSH等。
    • 传输层:TCP、UDP。
    • 网络层:IP、ICMP、ARP。
    • 网络接口与物理层(链路层):以太网、PPP。
  7. 段和页:

    • 段(Segment):段式存储管理将内存划分为若干段,每个段具有不同的属性和大小。段的大小可以动态变化。
    • 页(Page):页式存储管理将内存划分为固定大小的页,通常为4KB。内存和磁盘也被划分为相同大小的页,以便进行页面交换。
  8. I/O多路复用: I/O多路复用是一种并发编程技术,允许一个进程可以同时监听多个文件描述符(套接字、文件等)的可读或可写状态,从而实现高效的事件驱动编程。在C语言中,常见的I/O多路复用函数包括selectpollepoll等。

  9.  写一个指针数组和数组指针: 指针数组(Array of Pointers)是一个数组,其元素是指向其他数据的指针。数组指针(Pointer to an Array)是一个指向数组的指针。

    示例:

    // 指针数组,包含三个指向整数的指针 
    int* ptrArray[3]; 
    // 数组指针,指向包含三个整数的数组 
    int (*arrPointer)[3];

        更多C/C++语言Linux系统数据结构ARM板实战相关文章,关注专栏:

   手撕C语言

            玩转linux

                    脚踢数据结构

                            系统、网络编程

                                     探索C++

                                             6818(ARM)开发板实战

📢写在最后

  • 今天的分享就到这啦~
  • 觉得博主写的还不错的烦劳 一键三连喔~
  • 🎉🎉🎉感谢关注🎉🎉🎉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/985166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Golang RabbitMQ实现的延时队列

文章目录 前言一、延时队列与应用场景二、RabbitMQ如何实现延时队列实现延时队列的基本要素整体的实现原理如下 三、Go语言实战生产者消费者 前言 之前做秒杀商城项目的时候使用到了延时队列来解决订单超时问题,本博客就总结一下Golang是如何利用RabbitMQ实现的延时…

【MySQL基础】一条查询和更新语句的执行流程01-02

目录 MySQL的基本架构示意图连接器查询缓存分析器优化器执行器重要的日志模块:redo log重要的日志模块:binlog更新时redo log 和 binlog 两阶段提交 例如在执行下面这个查询语句: mysql> select * from T where ID10;MySQL的基…

Java反序列化之CommonsCollections CC1链分析

前言 cc链的研究可以说是非常适合java代码审计的入门篇了,十分考验java代码功力,其实也是基础功,跨过了这个门槛,在看看其他业务代码就会比较轻松了。不要说代码难,看不懂,作者也是刚入门java没几个月的小…

MATLAB中fillmissing函数用法

目录 语法 说明 示例 包含 NaN 值的向量 由 NaN 值组成的矩阵 插入缺失数据 使用移动中位数方法 使用自定义填充方法 包含缺失端点的矩阵 包含多个数据类型的表 fillmissing函数的功能是填充缺失的条目。 语法 F fillmissing(A,constant,v) F fillmissing(A,meth…

Redis 高可用及持久化

Redis 高可用 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供…

字节8年经验之谈 —— 冒烟测试、回归测试是什么?

冒烟测试(Smoke Testing)和回归测试(Regression Testing)是软件测试中常用的两种测试类型。 冒烟测试(Smoke Testing):冒烟测试是在软件开发的早期阶段进行的一种表面级功能验证测试。它主要用…

监控系统典型架构

监控系统典型架构如下: 从左往右看: 采集器是负责采集监控数据的,采集到数据之后传输给服务端,通常是直接写入时序库。 对时序库的数据进行分析和可视化。 告警引擎产生告警事件之后交给告警发送模块做不同媒介的通知。 可视化比…

【月报】Aavegotchi 开发进度更新 - 2023 年 9 月

嗨,Gotchigang! 又一个月过去了,我们距离让 Gotchi 游戏走向大众的梦想又近了一步! 本月,Gotchi 开发人员正在进行紧张的编程工作,以赶上一些重要的截止日期。 在本月的开发更新中,我们将分享…

2023高教社杯全国大学生数学建模竞赛C题思路分析+代码+论文

如下为C君的2023高教社杯全国大学生数学建模竞赛C题思路分析代码论文 C题蔬菜类商品的自动定价与补货决策 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此&…

Android图表开发---MPAndroidChart

本章内容主要是MPAndroidChart开源框架中的LineChart api com.github.PhilJay:MPAndroidChart:v3.1.0 <com.github.mikephil.charting.charts.LineChartandroid:id"id/lineChart"android:layout_width"match_parent"android:layout_height"330dp…

飞机降落(dfs全排列)

4957. 飞机降落 - AcWing题库 数据量很小&#xff0c;直接爆搜 #include<bits/stdc.h> using namespace std; const int N20; int n,t,flag,st[N];//st记录是否已经降落&#xff0c;flag标记是否降落完成 struct Node {int t,d,l; }node[N]; void dfs(int u,int last)/…

使用Flask-Restful后handle_error干扰无法正常捕获全局异常的解决

1、发现问题 1.1、追踪Api源码&#xff0c;vscode举例&#xff0c;右键点击Api&#xff0c;选择转到定义&#xff0c;确定flask_restful包的位置 from flask_restful import Api1.2、vscode 打开flask_restful包作为一个项目 1.3、之前的问题是&#xff0c;抛出的HTTPExceptio…

无涯教程-JavaScript - BESSELY函数

描述 BESSELY函数针对x的指定顺序和值返回Bessel函数Yn(x)(也称为Weber函数或Neumann函数)。 语法 BESSELY(X, N)争论 Argument描述Required/OptionalXThe value at which to evaluate the function.RequiredNThe order of the function. If n is not an integer, it is tr…

数据结构与算法之字符串

文章目录 1.字符串定义2.串的几个基本概念2.1 空串:2.2空格串2.3子串2.4串相等2.5串比较 3.串的基本操作(此处以java为例)3.1赋值操作StrAssign(s,t)3.2 连接操作 Concat(s,t)3.3求串长StrLength(s)3.4比较StrCompare(st)3.5 求子串_SubString(s,start,len) 4.串的存储结构4.1 …

j解决Ubuntu无法安装pycairo和PyGObject

环境&#xff1a;虚拟机Ubuntu20.04&#xff0c;vscode无法安装pycairo和PyGObject 虚拟机Ubuntu20.04&#xff0c;vscode中运行Anaconda搭建的vens 的Python3.8.10 首先在vscode中点击ctrlshiftp&#xff0c;选择Python3.8.10的环境&#xff0c;自动激活Python 最近在搞无人…

基于SSM的人才招聘系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

WorkPlus打造统一用户管理平台,实现企业用户管理的一体化

在企业信息化的进程中&#xff0c;统一用户管理平台扮演着重要的角色。WorkPlus作为领先的品牌&#xff0c;致力于打造一体化的统一用户管理平台&#xff0c;帮助企业实现用户管理的便捷与高效。本文将重点介绍WorkPlus如何通过创新的解决方案&#xff0c;实现企业用户管理的统…

unity fbx动画按配置切割帧片段

主要参考该文章&#xff1a;人无两度s 《unity自动切割动画》 感谢作者分享 执行代码需要将模型与配置文件(.txt)放到同一目录下&#xff0c;批量选中模型后右键&#xff0c;代码中读取了选中的第一个模型同目录下可能存在的“动画帧分段.txt”&#xff0c;按其中的配置对选中…

[HNCTF 2022 Week1]——Web方向 详细Writeup

Week1 [HNCTF 2022 Week1]2048 f12查看源代码 可以看出游戏的分数是score 修改score的值 得到flag [HNCTF 2022 Week1]Interesting_include 得到源码 <?php //WEB手要懂得搜索 //flag in ./flag.phpif(isset($_GET[filter])){$file $_GET[filter];if(!preg_match(&qu…

axios封装/基础配置

步骤&#xff1a;装包 -> 封装axios实例 ->调用实例发送请求 1. 装包 npm install axios 2. 封装 axios基础配置 // axios实例封装 import axios from axios// 创建axios实例 const axiosInstance axios.create({baseURL:http://xxx.net, //基地址timeout:5000 //…