TX笔

本文详细介绍了一套软件开发综合测试题的内容,包括不定项选择题和程序填充题。涉及数据结构、算法、操作系统等多个方面,适用于C/C++、后台及前端开发方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本试题是软件开发C/C++方向、软件后台开发、WEB前端开发方向等共用的一套题目。主要分两大块:100分的必做题和分方向的N道附加题。下面主要说说必做题部分。

必做题分为两部分:不定项选择20道(共60分),程序填充题2道(共40分)。

不定项选择题主要涉及数据结构、组成原理、操作系统及数据库等知识。如:


 

      判断哪些属于非稳定性排序;

      删除双向链表中的一个节点;

      据情况判断使用哪种存储方式最好(可选项有:数组、链表、B+树、哈希表);

      一个3阶B-树有50个不同的键,其最小和最大高度值是多少;

      已知中序遍历序列和后续遍历序列,给出其先序遍历序列;

      高度为11的堆(只有一个节点时高度为0)的最大节点数和最小节点数各是多少;

      有关算法和数据结构的说法;

     


      关于cache的一些说法;

      硬件性能有关的因素;

      raid技术哪个没有做到冗余(可选项:raid0,raid1;raid3;raid5);

     


 

      静态存储区、堆、栈、代码区这四个在内存中地址由低到高的顺序是什么;

      进程和线程的区别;


      有关mysql的索引相关说法正确的是;(myisam和innodb的索引结构都是基于B+树??对否)

      开放核心代码的好处;

      文件传输中能保证文件完整性的校验算法是?(可选项:MD5;CRC32;SHA;奇偶)

     

     


 

两道程序填充题:

1. 输入数N,包含1,2,3,4,如何变换顺序之后使之变成7的倍数;(大概是这个意思,记不太清了。。。)

2.往一个整型二叉平衡树中插入一个数

 


 

转帖:

 

不定项选择
开放核心源码的优点(当时莫名地想笑)
“带宽”概念相关:ADSL的2M=理论下载速度2Mbps? 内存带宽=??
哪些排序是不稳定的
双向链表的删除操作
32位CPU vs 64位CPU:分别求内存空间大小? 32位的OS/App能否跑在64位上?
“Cache”概念相关:CPU的Cache应大于CPU之外的? 命中率跟算法的时间复杂度有关?
TCP状态转换-A、B已ESTABLISHED后,当A发送FIN,B在CLOSED前还要经历:
有200w条记录在内存中,key长12bit且两两相异,求适合频繁查找、插入、删除的DS:array? AVL? B+? hash链表?
3阶B-树有50个元素,求最大、最小高度
已知中序、后序遍历求前序列
哪些校验算法是可靠的: MD5? SHA? CRC32? 奇偶校验?
“数据结构”及“算法”概念相关
相对UDP,TCP的优点
内存中code、static data、heap、stack的相对位置
“硬件性能”概念相关:内存带宽=? 7200RPM的硬盘的平均IOPS? CPU的L1缓存速率远小于核心?
MySQL相关:MyISAM与InnoDB都用B+实现? 唯一性索引可保证数据的唯一性?
高度11的堆(高度从0开始算)的最大、最小元素数?
快排第一趟后的结果
那些冗余阵列不具有容错性:RAID0? RAID02?
“线程”“进程”概念相关: 同一进程的线程可并发抢占资源? 多核CPU中同一进程的线程只能共享一个核?
程序填空
数字题,其实是考阅读理解= =
平衡二叉树的插入算法——题目有误,压根写不下旋转操作还平衡个毛线啊,直接当二叉树做了。
附加题
做到这里后终于体会到……PHP方向跟C/JAVA方向也差太多了,以后要慎选哪这个囧。
 
for C/C++  
有G*N个存储单元,用户数据长度为size,试设计一个负载均衡系统,要求对下列两种情况分别说明:
 
N个单元的剩余空闲相同
各单元剩余空闲相差很大
for Java
 
写个IPC(跨进程通信)的样例。设进程间只能访一个成员public static byteArray[] buffer,现给定A、B,要求将A进程的某个对象传给B输出。
简单说就是从QQ聊天记录中找出“联系最密切”(限定记录数>总数一半)的人,并分析时间复杂度。
for PHP
 
给定一个字符串,随机获取其中一个字符。用两种以上方法。(我真想不到第二种了……)
试实现函数重载机制。
for JavaScritp  
有n*m的表格,每个单元格为随机数字。将其中质数格背景设为红色。
 
for Flash
 
解释MVC概念
解释A*概念

 

 

 

### STM32 SPI 数据发送 (TX) 操作详解 #### 初始化配置 为了实现SPI数据发送,在硬件初始化阶段,需设置SPI参数以确保其工作模式匹配外设的要求。这包括但不限于波特率、时钟极性和相位以及数据帧格式的选择[^1]。 ```c // 定义SPI句柄结构体变量 static void MX_SPI1_Init(void) { hspi.Instance = SPI1; // 设置SPI的工作模式为主模式, 波特率为fPCLK/16, // CPOL低电平, CPHA第一个边沿采样, MSB先传, 8-bit数据宽度. hspi.Init.Mode = SPI_MODE_MASTER; hspi.Init.Direction = SPI_DIRECTION_2LINES; hspi.Init.DataSize = SPI_DATASIZE_8BIT; // 设定数据大小为8位 hspi.Init.CLKPolarity = SPI_POLARITY_LOW; hspi.Init.CLKPhase = SPI_PHASE_1EDGE; hspi.Init.NSS = SPI_NSS_SOFT; hspi.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16; hspi.Init.FirstBit = SPI_FIRSTBIT_MSB; if (HAL_SPI_Init(&hspi) != HAL_OK){ Error_Handler(); } } ``` #### 单次数据发送函数 当完成上述初始化之后,可以调用`HAL_SPI_Transmit()`来执行单次的数据发送动作。此API负责将指定缓冲区内的字节序列通过选定的SPI接口发出到外部设备。 ```c uint8_t txData[] = {0xAA, 0xBB}; if(HAL_SPI_Transmit(&hspi, txData, sizeof(txData), HAL_MAX_DELAY)!= HAL_OK){ /* 发送错误处理 */ Error_Handler(); } else { /* 成功发送后的逻辑 */ } ``` #### 连续多包数据流传输 对于连续性的大量数据交换场景,则推荐采用DMA方式配合中断机制来进行高效稳定的批量传送作业;这种方式下程序无需等待每资料被送出后再继续下一步骤,从而提高了整体效率。 ```c /* 启动带DMA支持下的全双工同步通讯过程 */ if(HAL_SPI_TransmitReceive_DMA(&hspi, (uint8_t*)TxBuffer, (uint8_t *)RxBuffer, Length) != HAL_OK){ /* 错误处理 */ } /* DMA传输完成后回调函数 */ void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi){ /* 处理已完成的任务 */ } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值