2024.8.20 作业

news2025/2/6 3:09:40

目录

思维导图:

面试题练习:

        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.coloradmin.cn/o/2056572.html

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

相关文章

探索顶级PDF水印API:PDFBlocks(2024年更新)

引言 在一个敏感信息常常面临风险的时代,能够轻松高效地保护文档的能力至关重要。PDF水印已成为企业和个人寻求保护其知识产权、确保文件保密性的基本工具。 PDFBlocks 文字水印 API是什么? PDFBlocks API 提供了一个强大的解决方案,用于在…

轮询系统寻客户

寻找收单客户,不管是源头老板,还是二手中介,不管是PayPal,条纹,还是其他信用卡或轮询系统,只要能收单,都可以免费加入我们。 ​在寻卖单客户,不管是源头订单还是跳转订单&#xff0c…

Redis篇一:初识Redis

文章目录 前言1. 初始Redis2. MySQL VS Redis3. 什么是分布式系统(也是一种处理大量数据时的处理方式)3.1 单机架构3.2 数据库与应用服务分离3.3 负载均衡3.4 数据库读写分离3.5 引入缓存(Redis)3.6 数据库分库分表3.7 引入微服务…

如何使用Web Scraper爬虫抓取数据?

Web Scraper是一个基于Chrome/火狐浏览器的插件,能够在网页上自动爬取数据,提供了丰富的配置,支持自动翻页、登录认证、JavaScript渲染等等,可以解决多数爬虫难题。 Web Scraper的安装也很简单,在Chrome应用商店里搜索…

【每日刷题】Day104

【每日刷题】Day104 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 3. 无重复字符的最长子串 - 力扣(LeetCode) 2. 1004. 最大连续1的个数 III…

RabbitMQ环境搭建

2.5.RabbitMQ 安装 a.docker方式安装: 1.在我的docker学习笔记中具有详细的安装过程 b.rpm包方式安装: 1.MQ下载地址2.这里是提前下载好后上传安装包到服务器得opt目录下: 3.安装MQ需要先有Erlang语言环境,安装文件的Linux命令…

机器学习:逻辑回归--下采样

目录 前言 一、为什么使用下采样 1.例如: 2.导致: 3.办法: 4.结果: 二、代码实现 1.完整代码 2.导入库 3.可视化混淆矩阵 4.导入数据 5数据预处理 6.下采样 7.取出训练集和测试集 8.建立模型 9.进行测试 总结 前…

Spring模块详解Ⅰ

目录 SpringSpring框架的主要功能模块1. Core Container(核心容器)2. Data Access/Integration(数据访问与集成)3. Web4. AOP (Aspect-Oriented Programming,面向切面编程)5. Instrumentation(工具集&#…

CentOS7设置默认免密登录用户root

CentOS7设置默认免密登录用户root 步骤1、打开要更改的 CentOS 系统2、切换到root用户2、reboot重启系统 步骤 1、打开要更改的 CentOS 系统 2、切换到root用户 2、reboot重启系统

前端(Vue)动态换肤的通用解决方案及原理分析(1)

动态换肤原理分析 比如此处将来会实现换肤功能&#xff0c;所以我们不能直接写死&#xff0c;而需要通过一个动态的值进行指定。 <el-menu:default-active"activeMenu":collapse"!$store.getters.sidebarOpened":background-color"$store.getters…

手机使用技巧:如何恢复Android手机不见的短信

在您的 Android 手机上丢失短信可能是一种令人沮丧的经历&#xff0c;尤其是在文本包含重要信息的情况下。幸运的是&#xff0c;有一些方法可以在Android上恢复已删除的短信。在这篇博文中&#xff0c;我们将讨论几种在Android手机上恢复已删除短信的方法。 为什么需要恢复Andr…

测绘程序设计|认识VS2017|VS2017新建项目|VS2017使用技巧

由于微信公众号改变了推送规则&#xff0c;为了每次新的推送可以在第一时间出现在您的订阅列表中&#xff0c;记得将本公众号设为星标或置顶喔~ 分享了如何使用VS2017新建项目、VS2017的项目结构以及一些使用技巧~ &#x1f33f;前言 Visual Studio作为微软旗下一款热门的编程…

C语言典型例题46

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 题目&#xff1a; 习题3.6 企业发放的奖金根据利润提成。利润I低于或等于100 000元的&#xff0c;奖金可提成10%&#xff1b; 利润高于100 000元&#xff0c;低于200000元&…

干货分享!渗透测试成功的8个关键

01 知道为什么要测试 执行渗透测试的目的是什么&#xff1f;是满足审计要求&#xff1f;是你需要知道某个新应用在现实世界中表现如何&#xff1f;你最近换了安全基础设施中某个重要组件而需要知道它是否有效&#xff1f;或者渗透测试根本就是作为你定期检查防御健康的一项例行…

2024年【电工(高级)】试题及解析及电工(高级)复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【电工&#xff08;高级&#xff09;】试题及解析及电工&#xff08;高级&#xff09;复审考试&#xff0c;包含电工&#xff08;高级&#xff09;试题及解析答案和解析及电工&#xff08;高级&#xff09;复审…

C语言——字符函数、字符串函数和内存函数

目录 1.字符分类函数 2.字符转换函数 3.字符串函数 3.1strlen 函数 3.1.1 strlen函数的模拟实现 3.1.1.1第一种方法&#xff1a;计算器方法 3.1.1.2 第二种方法&#xff1a;指针-指针 3.1.1.3 第三种方法&#xff1a;递归 3.2 strcpy 函数 3.2.1 strcpy函数的模拟实现…

成为Python砖家(4): 装饰器的简单理解

第一次理解 Python 中的装饰器&#xff08;decorator&#xff09;&#xff0c;是Python中一个非常强大的工具&#xff0c;它是一个返回函数的函数。 上面这个定义很简洁&#xff0c;但是没说清楚。 第二次理解 装饰器&#xff0c;是一个接收函数 func、返回封装后的函数 wr…

计算机Java项目|基于SpringBoot的农商对接系统的设计与实现

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验&#xff0c;被多个学校常年聘为校外企业导师&#xff0c;指导学生毕业设计并参…

基于Shader实现的UGUI描边解决方案遇到的bug

原文链接&#xff1a;https://www.cnblogs.com/GuyaWeiren/p/9665106.html 使用这边文章介绍的描边解决方案时遇到了一些问题&#xff0c;就是文字的描边经常会变粗&#xff0c;虽然有的时候也可以正常显示描边&#xff0c;但是运行一会儿描边就不正常了&#xff0c;而且不正常…

【数据分享】《新疆省统计年鉴》(2000-2022)

而今天要限时免费分享的数据就是2000-2022年间出版的《新疆省统计年鉴》并以多格式提供免费下载。&#xff08;无需分享朋友圈即可获取&#xff09; 数据介绍 《新疆省统计年鉴》是记录新疆维吾尔自治区历年来社会经济发展情况的重要资料汇编&#xff0c;涵盖了从2000年至…