2024.8.20 作业

目录

思维导图:

面试题练习:

        1、C语言中指针数组和数组指针的区别

        2、结构体字节对齐的原理

        3、TCP和UDP的区别

        4、同步通信和异步通信的区别

        5、多线程的理解

        6、大小端验证

        7、互斥锁

        8、共享内存特点

        9、C语言的指针

        10、gcc编译

        11、socket套接字

        12、HTTP协议和TCP协议之间的关系

        13、IP地址和子网掩码如何决定网卡所在网段

        14、计算机网络中的OSI七层模型和TCP/IP四层体系结构

        15、数据结构栈和队列的区别

        16、数据结构顺序表和链表的区别

        17、TCP通信三次握手四次挥手

        18、指针和指针变量

        19、共享内存和消息队列的优缺点

        20、结构体中一个char一个int结构体字节长度是多少


思维导图:

面试题练习:

        1、C语言中指针数组和数组指针的区别

        答:指针数组本质上是一个数组,数组中的元素都是指针,数组中可以存储很多指针,这些指针的数据类型一致。数组指针本质上是一个指针,这个指针指向了一个数组

        2、结构体字节对齐的原理

        答:结构体成员在内存地址为其字节大小的倍数的位置开始,不足则补充,各自对齐后还会根据最大字节数的成员的字节数的倍数对齐,另外,也会根据不同的要求额外进行对齐

        3、TCP和UDP的区别

        答:TCP通信时需要连接,数据完整性高、有序性高,但是传输效率不好保证,遇到网络不好等因素就会难以通信,传输速度也更慢,能够根据网络状况调整传输的速度,具有错误恢复机制,常用于传输要求可靠的程序。

                UDP无需连接,但数据完整性难以保证,数据序列也可能是乱的,传输速度相对较快,数据发送可以保持最大速度,没有错误回复机制,常用于实时性要求的程序

        4、同步通信和异步通信的区别

        答:同步通信的发送方接收方数据传输保持同步,必须确认收到数据才能进行后续操作,基本不需要缓冲区,效率偏低,错误处理也比较简单,CPU占用率较高,使用于需要提高数据完整性和可靠性的环境

               异步通信发送方接收方不用等待对方的数据即可发送数据,需要较大缓冲区等待对方处理数据,效率更高,错误处理更复杂,CPU占用率较低,适用于实时性要求高的环境

        5、多线程的理解

        答:多线程是一种编程技术,可以在同一时间执行多个任务,可以提高程序的效率,多线程允许程序并发进行,也可以并行执行,同一个进程内线程间共享内存和资源,但也要创建和管理线程,多个线程存在时会有同步互斥机制,需要使用互斥锁、信号量、条件变量等来控制,线程间等待释放资源时也可能会发送死锁现象,需要关闭线程等操作来解决

        6、大小端验证

        答:通过共用体判断,创建一个共用体,包含一个int类型的变量和一个char类型的变量,赋予int变量一个特定值,通过char检测对应字节

               通过指针判断,创建一个int*类型的指针并初始化,将其地址转为char*类型,判断指针的值来得知大小端

        7、互斥锁

        答:互斥锁本质上是一种线程同步机制,作用是防止多个线程同时访问同一个共享资源,使用互斥锁时需要先锁定防止其他线程访问,访问完后需要解锁,以便别的线程访问,一个锁尝试锁定另一个已经锁定的锁时,可能会发送死锁,这个机制适用于保护多个线程使用的共享资源

        8、共享内存特点

        答:共享内存允许多进程线程直接访问同一块内存,效率更高,需要同步机制,生命周期需要明确管理,适用于需要高速数据交换的环境,一般和信号量集一起使用

        9、C语言的指针

        答:指针存储了变量在内存的地址,可以通过指针直接访问操作内存,指针声明时需要指定变量类型,也需要初始化才能使用,*操作符可以访问指针所指向的内存地址存储的值,&运算符可以获取指针指向的地址,指针偏移时指向的地址会按照数据类型的字节大小增加,指针指向数组时,数组名通常是指向首元素的指针,可以创建一个指针来存储指针,也可以创建一个指针来指向函数,指针可以转换数据类型,也可以比较指向的地址,指针的操作不当会造成内存泄漏、野指针、缓冲区一处的问题

        10、gcc编译

        答:gcc是一种编译器,常用于编译C语言,用来生成中间文件和可执行文件,分布的编译包括预处理、编译、汇编、链接,预处理阶段处理条件编译、展开头文件、删除注释,编译阶段将程序进行语法分析和语义分析,生成汇编程序,汇编阶段将汇编程序编译生成目标二进制程序,链接阶段将多个目标程序与相关库进行链接,生成可执行文件

        11、socket套接字

        答:套接字是进程间通信的端点,本质上是一种文件描述符,每个套接字与唯一的地址绑定,面向TCP时需要连接才能进行传输,同时也需要监听对方的连接,面向UDP时不用连接,可以设置阻塞状态,socket函数返回的文件描述符开辟了两个缓存区用于传输和接收

        12、HTTP协议和TCP协议之间的关系

        答:HTTP是应用层协议,TCP是传输层协议,两者的联系是BS模型,HTTP需要TCP来传输其封装的数据,TCP也能保证HTTP相关的数据的完整和正确

        13、IP地址和子网掩码如何决定网卡所在网段

        答:子网掩码是32位无符号整数,IP地址&子网掩码得到的结果就是网卡所在的网段

        14、计算机网络中的OSI七层模型和TCP/IP四层体系结构

        答:OSI七层模型包括物理层、数据链路层、网络层、运输层、会话层、表示层、应用层

               TCP/IP四层体系结构包括网络接口层、网际层、运输层、应用层

        15、数据结构栈和队列的区别

        答:栈和队列都是操作受限的线性表,栈的特点是先进后出,队列的特点是先进先出,栈的操作都是同一端进行,队列的操作是在异端进行

        16、数据结构顺序表和链表的区别

        答:顺序表和链表都是根据存储形式区分的线性表,顺序表是顺序存储的线性表,下标相邻的元素物理存储地址也相邻,链表是链式存储的线性表,节点相邻的元素物理存储地址不一定相邻,顺序表的元素数量受数组范围和内存空间最大连续内存空间影响,而链表仅受内存空间剩余总内存大小影响,顺序表可以通过下标快速定位对应元素,而链表需要不断通过指针导向下一个节点最终找到对应元素,顺序表关闭只需要释放本身即可,而链表需要先释放所有节点,再释放本身

        17、TCP通信三次握手四次挥手

        答:客户护短发送SYN包,进入SYN_SENT状态;服务器接收SYN包并发送ACK包和SYN包,进入SYN_RCVD状态;客户端接收SYN包和ACK包,进入establish状态,发送ACK包,服务器也进入establish状态

               主动关闭方发送FIN包,进入FIN_WAIT_1状态;被动方接收FIN包,发送ACK包,进入CLOKSE_WAIT状态,主动方接收ACK包,进入FIN_WAIT_2状态,发送完所有数据;被动方发送FIN包,进入LAST_ACK状态;主动方接收FIN包,发送ACK包,被动方接收ACK包,关闭连接

        18、指针和指针变量

        答:指针是内存地址编号

               指针变量是存储指针的变量

        19、共享内存和消息队列的优缺点

        答:共享内存通信速度快,直接访问内存实现多个进程间通信,但是没有内置的同步机制,可能出现数据不一致的问题,编程复杂度高

               消息队列可以发送具有特定格式和优先级的消息,独立于发送和接收进程,能够保留信息,但是系统复杂度提高,需要处理消息顺序性、丢失等问题,可能引入延迟

        20、结构体中一个char一个int结构体字节长度是多少

        答:8个,int对齐结果是在char和int间插入三个字节

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【TCP】确认应答、超时重传机制和TCP报头

TCP 相关机制 TCP 基本特点:有连接、可靠传输、面向字节流、全双工 有连接、面向字节流和全双工都能在前面的代码中体现有连接:必须要先调用 accept 建立联系才能处理面向字节流:会拿到 clientSocket 对象的 InputStream 和 OutputStream&a…

加密请求包的爆破

本文来源无问社区,更多实战内容可前往查看http://wwlib.cn/index.php/artread/artid/10414.html 在平时进行漏洞挖掘的时候经常会在诸如登陆的地方遇到密码经过了加密,而且不是也 base64 或者 md5 啥的,而可能是 RSA 之类的,这就…

Python 办公自动化 案例 将Excel 数据导入数据库 【2】推荐

前言: 前面我们梳理了如何处理Excel数据,详细的回顾了如何读取Excel行、列以及单元格数据,如何创建一个Excel、向Excel填充数据以及保存Excel数据。主要是xlrd读取和xlwt写入两个python第三方模块对Excel数据操作的一些常用函数以及属性。点…

【JVM】深入理解类加载机制(一)

深入理解类加载机制 Klass模型 Java的每个类,在JVM中都有一个对应的Klass类实例与之对应,存储类的元信息如:常量池、属性信息、方法信息…从继承关系上也能看出来,类的元信息是存储在元空间的。普通的Java类在JVM中对应的是InstanceKlass(C)…

4款AI 生成 PPT的工具,帮你赶上演示文稿的新趋势!

AI 生成 PPT 最大的优势就在于它能够帮助我们提高效率。如果我们自己制作的话就需要花费大量的时间去收集资料、构思布局、设计排版。而现在,有了AI工具,一切就迎刃而解,如果大家需要这样的工具,可以看看这4款。 1、笔灵办公 直通…

RabbitMQ 的工作原理

下面是rabbitmq 的工作原理图解 1、客户端连接到消息队列服务器,打开一个channel。 2、客户端声明一个exchange,并设置相关属性。 3、客户端声明一个queue,并设置相关属性。 4、客户端使用routing key, 在exchange和queue 之间…

为什么说网络安全行业是IT行业最后的红利?

前言 2023年网络安全行业的前景看起来非常乐观。根据当前的趋势和发展,一些趋势和发展可能对2023年网络安全行业产生影响: 5G技术的广泛应用:5G技术的普及将会使互联网的速度更快,同时也将带来更多的网络威胁和安全挑战。网络安全…

《向量数据库 Faiss 搭建与使用全攻略》

一、Faiss 概述 Faiss 是由 Facebook AI 团队开发的一款强大工具,在大规模数据处理和相似性搜索领域占据着重要地位。 在当今信息爆炸的时代,数据规模呈指数级增长,如何从海量数据中快速准确地找到相似的数据成为了关键挑战。Faiss 应运而生…

《黑神话.悟空》:一场跨越神话与现实的深度探索

《黑神话.悟空》:一场跨越神话与现实的深度探索 在国产游戏日益崛起的今天,《黑神话.悟空》以其独特的剧情、丰富的人物设定和深刻的主题,成为了无数玩家翘首以盼的国产3A大作。这款游戏不仅是一次对传统故事的创新演绎,更是一场对…

AIoTedge边缘计算平台V1.0版本发布

AIoTedge边缘计算平台V1.0,一款创新的AIoT解决方案,现已正式发布。该产品集成了NodeRED软网关、边缘物联网平台和边缘AI能力,为企业提供强大的边云协同能力。它支持设备管理和泛协议接入,确保不同设备间的无缝连接。AIoTedgeV1.0还…

[C#]winform基于深度学习算法MVANet部署高精度二分类图像分割onnx模型高精度图像二值化

【训练源码】 https://github.com/qianyu-dlut/MVANet 【参考源码】 https://github.com/hpc203/MVANet-onnxrun 【算法介绍】 二分图像分割(DIS)最近出现在从高分辨率自然图像中进行高精度对象分割方面。在设计有效的DIS模型时,主要的挑战是…

SDCS-IOE-2C 3ADT220090R007模块控制器

SDCS-IOE-2C 3ADT220090R007模块控制器 SDCS-IOE-2C 3ADT220090R007模块控制器 SDCS-IOE-2C 3ADT220090R007模块控制器 SDCS-IOE-2C 3ADT220090R007模块控制器引脚线 SDCS-IOE-2C 3ADT220090R007模块控制器说明书 SDCS-IOE-2C 3ADT220090R007模块控制器线路图 SDCS-IOE-2…

Snipaste 的一款替代工具 PixPin,支持 gif 截图、长截图和 OCR 文字识别,功能不是一点点强!

Snipaste 的一款替代工具 PixPin,支持 gif 截图、长截图和 OCR 文字识别,功能不是一点点强! PixPin 的名字来源于“Pixel Pin”,简单来说是一个截图、贴图的工具,但是 PixPin 以截图和贴图两大功能为核心做了大量的优…

mysql速起架子

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz 下载mysql tar xvJf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz 解压 mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql-8.0 改名 去到bin目录 cd bin mkdir data gr…

Python(PyTorch)硅光电倍增管和量化感知训练亚光子算法验证

🎯要点 🎯亚光子光神经网络矩阵计算 | 🎯光学扇入计算向量点积 | 🎯表征测量确定不同光子数量下计算准确度 | 🎯训练全连接多层感知器基准测试光神经网络算法数字识别 | 🎯物理验证光学设备设置 | &#x…

Controller中接收数组参数 post请求中在body中传+post请求中通过表单形式传(x-www-form-urlencoded)

1、场景 需要根据用户id集合批量删除用户数据,前端使用post请求,controller中参数接收数组参数并根据用户id删除用户基本信息 2、分析处理: 2.1、前端请求类型contentType:application/json 请求体中为json字符串,后端新建一个Us…

2024年8月13日~8月19日周报

目录 一、前言 二、完成情况 2.1 遇到的问题及解决 2.1.1 盐数据网络情况与损失函数不下降 2.1.2 其他问题 2.2 损失函数与介绍部分讨论 三、下周计划 一、前言 上周主要完成: ①对比实验执行:InversionNet、DD-Net70②消融实验执行:…

如何选择较为安全的第三方依赖版本?

如何选择较为安全的第三方依赖版本? 本文概览1.1 前言1.1.1 学会看第三方开源库的版本发布说明1.1.2 尽可能使用 starer 匹配的第三方开源库1.1.3 参考Maven 中心仓库的安全警告信息 本文概览 本篇博文分享如何选择较为安全的第三方依赖版本的方法。 1.1 前言 众…

【 亿邦动力网-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …

python语言day7 函数式编程 面向对象编程

Java 函数式编程_java函数式编程-CSDN博客 25.Java函数式编程-CSDN博客 函数式编程: 通过调用函数send_email(),完成业务需求。将具体的业务需求封装成一个函数这样的一种解决问题的思想称它为函数式编程。 在java中本来没有函数的概念,因为…