「软件设计师」 2023年上半年上午真题解析
提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性
关于互联网大厂的笔试面试,都是需要细心准备的
(1)自己的科研经历,科研内容,学习的相关领域知识,要熟悉熟透了
(2)自己的实习经历,做了什么内容,学习的领域知识,要熟悉熟透了
(3)除了科研,实习之外,平时自己关注的前沿知识,也不要落下,仔细了解,面试官很在乎你是否喜欢追进新科技,跟进创新概念和技术
(4)准备数据结构与算法,有笔试的大厂,第一关就是手撕代码做算法题
面试中,实际上,你准备数据结构与算法时以备不时之需,有足够的信心面对面试官可能问的算法题,很多情况下你的科研经历和实习经历足够跟面试官聊了,就不需要考你算法了。但很多大厂就会面试问你算法题,因此不论为了笔试面试,数据结构与算法必须熟悉熟透了
秋招提前批好多大厂不考笔试,直接面试,能否免笔试去面试,那就看你简历实力有多强了。
(5)考网警的大佬,务必把软考:中级软件设计师的内容学好学透,学广,学多
文章目录
- 「软件设计师」 2023年上半年上午真题解析
-
- 「软件设计师」 2023年上半年上午真题解析
- DMA控制器和cpu发出的数据地址是?
- 信息位n,则校验码的位数k为:
- 中断向量提供的是服务程序的入口地址——年年考
- 定点数用补码表示,表示错误的是?
- 指令流水线、取指令,分析指令,执行指令,耗时
- OSI参考模型的,应用层的压缩,加密的层是,表示吧,相当于y=f(x),机器学习中就是表征咯
- 入侵防御系统,不正确的是
- web应用防火墙无法有效防护
- 著作权中,保护期限有限制是作者死亡后的五十年内,之后不管了就。
- 计算机软件知识产权是有版权的
- 软件著作权叙述,不正确得是
- 数据流图,不正确的2013年考了原题
- 好的软件设计原则,不正确的是
- 软件项目活动图,顶点是里程碑,边是活动,则里程碑 关键路径上,关键路径长度为:
- 8位成员开发,有多少条沟通路径,据说是n(n-1)/2
- 布尔表达式,当,,,时可以进行短路,相当于or有一边是true,那整体都是短路的
- 正规式,正规集,基本就是选择,你只要选10,不可能有连续的1出现
- 函数传值不改变变量,传引用是改变变量的
- 位示图,计算位示图大小
- 磁盘调度,移臂调度,旋转调度
- 多线程的操作系统,进程P构建了T1,2,3线程,13,154,20年都考过
- 给进程前趋图标记信号量
- 增量模型
- 敏捷开发方法,迭代的一个冲刺
- 模块间的耦合
- 可移植性设计的原则
- 架构风格
- 测试用例,mcCabe
- 软件的维护,特性
- 面向对象开发,成绩管理系统,学生的各种属性需要封装,不同的类呢,对象之间通过啥通信呢?消息
- 面向对象,测试,定义的每个方法属于是什么层?
- 面向对象,重用类,就要重用包中的所有类
- UML序列图
- UML包图,不正确的是
- 原型模式,创建型
- 旅游公司开发软件系统,根据季节,不同服务,模式,意图
- Python获取对象的类型,type
- Python定义元组:tuple(),()
- Python的while后可以加else?????Python没有Switch语句…………
- 数据库应用系统开发,视图,逻辑,
- 关系模式R(U,F),U是属性,F是U上的一组函数
- 关系模式
- sql语言插入函数:insert on
- 栈,对算数表达式,求,则栈的初始容量为
- 哈夫曼编码,以下编码方案中不可能的是
- 有向图的邻接表BFS复杂度o(n+e)
- 二分查找
- 树构成的森林,节点n1,n2,n3.酱森林转换为二叉树,则二叉树的右子树包含介个节点??
- 排序,复杂度o(nlogn),稳定排序,则,如果只需要在原数据上进行,空间复杂度为o(1),则用
- kruskal算法生成最小生成树,策略是贪心算法,最小生成树的权值为
- www的控制协议
- Linux系统中通常使用 作为web服务器,默认目录是
- SNMP的传输协议是
- 网页无法打开,但是聊天软件OK
- 总结
「软件设计师」 2023年上半年上午真题解析
DMA控制器和cpu发出的数据地址是?
cpu
高速缓存cache
主存
外存
DMA是外部设备管理,IO设备啥的,打印机等,发出的地址是主存的物理地址哦。
DMA搞打印机肯定跟你外面的硬盘无关的
硬盘就是外存,懂吧
信息位n,则校验码的位数k为:
这里和纠错几位没关系
你带入这个公式,验证C正确即可
最主要是记住那个公式
2的k次幂,大于等于n+k+1
知道n就可以带入k验证了
中断向量提供的是服务程序的入口地址——年年考
定点数用补码表示,表示错误的是?
正数:原码、反码、补码一样
负数:原码、反码是符号位不变,数值位取反,补码在反码的基础上+1【符号位也要参与运算哦】
0的补码是唯一的,不管+0还是-0都一样
减法自然转加法
符号位是可以参与运算的,不管的,这样补码才能搞出正负号来
负数的补码很复杂,与真值之间根本看不错来的
一点都不直观
补码求补码就是原码:负数
+0
-0
原码
反码的话,正数不管
看负数
±0的补码都是一个东西,都是0 00000000
减法变加法很简单
+2=0 0000 0010,原反补
-3=1 0000 0011原码,1 1111 1100反码,1 1111 1101补码
然后2-3=2+(-3)通过补码加
补码求补码,就是原码
这个就是我们的计算机补码计算了
美滋滋
指令流水线、取指令,分析指令,执行指令,耗时
这里最重要的记住,指令最后一条n执行完需要5s
而前面n-1条,需要执行多久呢?看三种操作中最长的一段时间,比如最长的就是分析指令,需要2s
那么就按照上面的方法计算就行了
这个方法必考
OSI参考模型的,应用层的压缩,加密的层是,表示吧,相当于y=f(x),机器学习中就是表征咯
5层的话
应用层【会话层、表示层、应用层7层】
传输层
网络层
数据链路层
物理层
57都一样
反正OK
下层为上层提供服务
美滋滋
服务器的证书被撤销?那你浏览网页的话,该网站证书已过期/失效,那这么说
有一个三角形中间感叹号!
你是否信任这个网站?
如果你信任,继续访问
你要是不信任,那就返回安全网页
这个一般是黄色网站,他们的网站就这样
然后我们看第一问:会话秘钥是必然的
不可能是对方,本方的,而是会话的
加密是对称的好像,但是要用证书的公钥加密会话秘钥,否则可能会被窃取。
然后我们解析证书
证书公钥加密
是对称加密的方法
最后就可以安全搞到数据了
所以答案就是:会话秘钥+对称加密的方法
入侵防御系统,不正确的是
分析用户的活动那个
看看有没有攻击并阻断它
但是不是联动入侵检测系统
web应用防火墙无法有效防护
流氓软件是软件,不是web
abc都是web应用
著作权中,保护期限有限制是作者死亡后的五十年内,之后不管了就。
记一下33比开
左边仨都是有限制的
右边仨都是没有限制
计算机软件知识产权是有版权的
version版权
软件著作权叙述,不正确得是
正版软件——商用的话,是要付钱的
而学习和研究,可以靠学校啥的这种去学习,不需要交钱
但是继承权?怎么说,你爹的技术,你有本事继承????
难吧
所有权利很骚
鲁迅写的书,你子女能改为自己的名字吗
李白的诗歌,当然不是他子女能继承的
数据流图,不正确的2013年考了原题
细节不用管哦
y和x之间的加工f是要说清楚的,就是函数代码啥的
判定改为决策即可,都是加工规格说明方法
好的软件设计原则,不正确的是
当然是不能集中了,一堆很麻烦,模块我们需要独立摊开,这样开发很容易,否则gg
高内聚,低耦合
提高抽象层次
软件项目活动图,顶点是里程碑,边是活动,则里程碑 关键路径上,关键路径长度为:
年年考
关键路径就是耗时最长的那条
瓶颈==关键
就这意思
8位成员开发,有多少条沟通路径,据说是n(n-1)/2
布尔表达式,当,,,时可以进行短路,相当于or有一边是true,那整体都是短路的
整体不管or后面的东西了
正规式,正规集,基本就是选择,你只要选10,不可能有连续的1出现
()*括号中可以出现0–N次
|是选左边或右边
函数传值不改变变量,传引用是改变变量的
位示图,计算位示图大小
位示图的意思就是一个2进制位,表示一个物理块的使用情况
我们先看512g的容量包含多少块?
上面求出来是2的17次方块,所以需要这么多位
计算机系统的字长是64位
故,用来除一下,就需要这么多字来表示咯
这个计算方法要熟悉。
磁盘调度,移臂调度,旋转调度
先来先服务
这种就会改变方向,移动臂膀
懂吧?
所以AD有可能对
我们看最短寻道时间
谁离我最近,我就移动臂膀过去
比如我在50的地方,则处理下面的就可能随时改变方向
因此呢D对了
A的话,单向扫描,自然就是单项,不会改变方向咯
我们看看电梯调度:
电梯是是先从上往下,再从小网上,中间的只能单向玩
所以C不对的
多线程的操作系统,进程P构建了T1,2,3线程,13,154,20年都考过
进程中的线程是共享的:代码段、全局变量、文件
不可以共享的是栈指针
C错误
给进程前趋图标记信号量
标记S1-S8规则就是出发之后,看数字,从小到大去标
12 13
则标记12先
之后是13
第二步,进程P的入箭头,需要加P操作,进程P之后的出箭头,需要加V操作
所以这种题,很简单的,非常简单
这不就很简单了吗
easy
搞懂2个步骤就好了。;
增量模型
需求分析,拆分位增量?
相当于最开始搞一个demo
继续玩增量技术,就像微信,最开始就是聊天,后来视频号,朋友圈,支付,等等
一开始就是开发核心功能,后来加新的功能
导致后面系统要是再加别的东西,系统并不容易。
每个版本都需要考虑到之前的功能
否则会损伤前面的东西
gg
敏捷开发方法,迭代的一个冲刺
ABD各自特点
模块间的耦合
数据:数值传递
标记:数据结构
公共:公共环境下
可移植性设计的原则
A平台中软件x
想移植到B平台中
可移植性,就是看依赖A的库的程度
太大顶不住啊
B你A的特定环境,你能玩,B玩个锤子
所以B错误
架构风格
D没说交互的吧
软件工程考过的
测试用例,mcCabe
闭合区域数量+1就是复杂度
覆盖所有路径的测试用例
那你就一个个走呗
设置几个分支玩
当测试用例4绕过来之后怎么思考?
用例4只会转自己的圈,它不会去N,因为你之前走的是Y
所以就是4个测试用例就行了
软件的维护,特性
改正,是发现错误,改正错误,不是改善
预防性,防止出错
适应性,环境改变,需要改变自己
改善,更加好,友好
2017年的原题
2023又考了
面向对象开发,成绩管理系统,学生的各种属性需要封装,不同的类呢,对象之间通过啥通信呢?消息
发消息给另一个对象
面向对象,测试,定义的每个方法属于是什么层?
面向对象,重用类,就要重用包中的所有类
封闭:产生影响
开放:扩展开,修改封闭
分离:抽象,非具体
UML序列图
序列就是时序
2次循环,自然是abab然后c
UML包图,不正确的是
一个元素只能被一个包拥有
不是多个哦
原型模式,创建型
旅游公司开发软件系统,根据季节,不同服务,模式,意图
不同条件,不同策略,需要不同的算法
Python获取对象的类型,type
type就是类型
object是返回一个对象
str转化为str
Python定义元组:tuple(),()
括号抱起来的就是元组
数组,列表是大括号[]
不加括号也是元组???????
Python的while后可以加else?????Python没有Switch语句…………
爆炸
没有Switch语句
gg
不是Java和c++
牛逼了
数据库应用系统开发,视图,逻辑,
关系模式R(U,F),U是属性,F是U上的一组函数
自己反过来?
关系模式
AD是没有被谁决定的,所以一定是关键字,同时出现
关键字做合并,得到ABCD,直接全部包含在U中,是主属性,不在U中是非主属性
sql语言插入函数:insert on
for all所有,public所有?
D是虚视图
C允许用户他授予给他人
栈,对算数表达式,求,则栈的初始容量为
哈夫曼编码,以下编码方案中不可能的是
造哈夫曼编码
A
B
C好像不对劲
C对的,10是对的
D不对
有向图的邻接表BFS复杂度o(n+e)
这种方阵,遍历需要n方
邻接矩阵的话,就是
二分查找
C显然不对啊,因为你找来找去,61你觉得小了,怎么可能是42
树构成的森林,节点n1,n2,n3.酱森林转换为二叉树,则二叉树的右子树包含介个节点??
2当做1的右子树,然后把3当做2的右子树
懂?
就出来了
美滋滋
排序,复杂度o(nlogn),稳定排序,则,如果只需要在原数据上进行,空间复杂度为o(1),则用
10打排序算法
堆排序不需要空间,sum是有限的
快排好像也需要空间
kruskal算法生成最小生成树,策略是贪心算法,最小生成树的权值为
无环n-1条遍,且权值最小。
k算法是按最小的权值连各个区域,最后连在一起,贪心呗
www的控制协议
Linux系统中通常使用 作为web服务器,默认目录是
站点目录就是home
反正etc是配置
log是日志
这样就是home了
SNMP的传输协议是
TCP是可靠面向连接的协议
UDP是不可靠的非连接的协议
SNMP网络管理协议?指简单网络管理协议。不需要可靠连接
IP是Internet协议
ICMP控制消息协议【网络层】
网页无法打开,但是聊天软件OK
IP,网卡,链路都OK,因为软件聊天都OK
所以打开网页,需要解析域名,DNS干失败了,你就打不开网页咯
总结
提示:重要经验:
1)
2)
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。