当前位置: 首页 > news >正文

软考中级笔记

上午题

二 程序设计语言 6′

1、编译程序和解释程序

解释器:翻译源程序时不生成独立的目标程序。
解释程序和源程序要参与到程序的运行过程中。
编译器:翻译时将源程序翻译成独立保存的目标程序。
机器上运行的是与源程序等价的目标程序。
源程序和编译程序都不再参与目标程序的运行过程。

2、数据类型:
①便于为数据合理分配存储单元
②便于对参与表达式计算的数据对象进行检查
③便于规定数据对象的取值范围及能够进行的运算

3、
传值调用:
将实参的值传递给形参,实参可以是变量、常量和表达式。
不可以实现形参和实参间双向传递数据的效果。

传引用(地址)调用:
将实参的地址传递给形参,形参必须有地址,实参不能是常量(值),表达式。
可以实现双向传递数据。

4、
编译方式:词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成
解释方式:词法分析、语法分析、语义分析

编译器和解释器都不可省略词法分析、语法分析、语义分析且顺序不可交换即词法分析、语法分析、语义分析是必须的。
编译器方式中中间代码生成和代码优化不是必要,可省略。
即编译器方式可以在词法分析、语法分析、语义分析阶段后直接生成目标代码。

5、符号表
不断收集、记录和使用源程序中一些相关符号的类型和特征等信息,并将其存入符号表中。
记录源程序中各个字符的必要信息,以辅助语义的正确性检查和代码生成。

6、
词法分析:分析构成程序的字符及由字符按照构造规则构成的符号是否符合程序语言的规定。
输入:源程序 输出:记号流

语法分析:对各条语句的结构进行合理性分析,分析程序中的句子结构是否正确。
输入:记号流 输出:语法(分析)树

语义分析:是进行类型分析和检查。
输入:语法树
语法分析可以发现程序中的语法错误,但不能发现程序中所有的语义错误。
语义分析可以发现静态语义错误,不能发现动态语义错误,动态语义错误运行时才能发现。

目标代码生成阶段的工作与具体的机器密切相关。
寄存器的分配处于目标代码生成阶段。

中间代码生成
常见的中间代码有:后缀式、三地址码、三元式、四元式和树(图)等形式。
中间代码与具体的机器无关(不依赖具体的机器)。
可以将不同的高级程序语言翻译成同一种中间代码。
中间代码可以跨平台。
因为与具体的机器无关,使用中间代码有利于进行与机器无关的优化处理和提高编译程序的可移植性。

7、正规式

8、
有限自动机是词法分析的一个工具,它能正确地识别正规集。
确定的有限自动机(DFA):对每一个状态来说识别字符后转移的状态是唯一的
不确定的有限自动机(NFA):对每一个状态来说识别字符后转移的状态是不唯一的
正确识别:最后停留在终态,ε为空
        

9、大多数程序设计语言的语法规则用 上下文无关文法 描述即可。

10、中缀、后缀 —— 栈

优先级:()> 逻辑与∧ 逻辑或∨


五 知识产权 2~3′

1、
人身权:发表权、署名权、修改权、保护作品完整权。
发表权有时间性,终生+死亡后50年。另外三个永永远远。

2、知识产权的地域性。

3、计算机软件著作权
        主体是指享有著作权的人,根据《中华人民共和国著作权法》和《计算机软件保护条例》规定,主体包括公民、法人和其他组织。
        客体是受保护的对象,著作权法保护的计算机软件是计算机程序及其有关文档。计算机程序包括源程序和目标程序。

4、计算机软件著作权的权利

  1. 计算机软件的著作人身权
    《中华人民共和国著作权法》规定,软件作品享有两类权力,一类是软件著作权的人身权(精神权利);另一类是软件著作权的财产权(经济权力)。《计算机软件保护条例》规定,软件著作权人享有发表权和开发者身份权,这两项权力与软件著作权人的人身权是不可分离的。
    1. 发表权
    2. 开发者身份权(署名权)。开发者的身份权不随软件开发者的消亡而丧失,且无时间限制。
  2. 计算机软件的著作财产权
    使用权、复制权、修改权、发行权、翻译权、注释权、信息网络传播权、出租权、使用许可权和获得报酬权
  3. 计算机软件著作权的保护期
    根据《著作权法》和《计算机软件保护条例》的规定,计算机软件著作权的权利自软件开发完成之日起产生,保护期为50年。保护期满,除开发者身份权外,其他权利终止。

5、软件盗版 行为是指任何未经软件著作权人许可,擅自对软件进行复制、传播,或以其他方式超出许可范围传播、销售和使用的行为。

6、《计算机软件保护条例》是国务院颁布的,用来保护软件著作权人的利益。


 六 数据库 6′

1、根据模型应用的不同目的,可将数据模型分成:
①概念数据模型:从信息世界中抽象的数据模型   
     
②结构数据模型:从计算机世界中抽象出的DBMS支持的数据模型。主要分为层次、网状、关系和面向对象模型。
        关系模型:二维表格结构

2、数据库的三级模式结构
        概念模式/模式——基本表
        外模式/用户模式/子模式——视图
        内模式/存储模式——存储文件
        

3、数据库的两级映像
       
模式/模式映像:实现了概念模式与内模式转换。—— 物理独立性
        模式/模式映像:实现了外模式与概念模式转换。—— 逻辑独立性

4、关系模型基本术语
        关系:一个关系就是一张二维表。
        元组:表中一行即为一个元组。对应存储文件中的一个记录值。
        属性:表中的列。相当于记录中的数据项或字段值。
        域:属性取值范围。
        关系模式:对关系的描述。格式:关系名(属性名1,属性名2......)

        码=键
        候选码/候选键:属性或属性集合,唯一地表示一个元组。
        主键/主码:候选码中选择一个。
        主属性:包含在任何候选码中的属性。否则为非主属性。
        外码/外键:如果一个属性不是关系的主键却是另一个关系的主键。
        全码:所有属性组是候选码。
        超码:一个包含码的属性集。

5、关系模型
        关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
        关系完整性约束:
                ①实体完整性:主码的值不能为空或部分为空,即主属性不能取空值。
                ②参照完整性:
                
                ③用户自定义完整性

6、笛卡尔积:
                

7、关系代数
       
集合运算
                
        专门的关系运算符:选择 投影 连接 除
                
                
                连接 \Join
                        θ连接、等值连接:在基于笛卡尔积的基础上选择满足条件的结果。
                        自然连接:除去重复属性的等值连接。
                        外连接:
                                
                                

8、
        投影、选择转SQL语言
                select 属性 from 表名/关系 where 条件
        笛卡尔积转SQL语言
                select R.A,R.B,R.C,S.A,S.B,S.C from R,S
        自然连接转SQL语言

9、SQL语言
        建立数据库:create database 数据库名
        建立基本表:create table 表名
                              (列名 数据类型 完整性约束,
                               ......,
                               .......
                               )
                        not null,unique,not null unique,default
                        primary key(属性)
                        foreign key(id) referencces 表名(id)
                        check (条件)
        增加列:alter table 表名 add 列名 类型
        修改列:alter table 表名 alter column 列名 新类型
        删除列:alter table 表名 drop column 列名
        删除基本表:drop table 表名
        

        insert 插入语句:
                ①直接插入元组值:insert into 表名(列名序列) values (元组值)
                ②插入一个查询的结果值:insert into 表名(列名序列) select 查询语句
                

        delete from 表名 where 条件

        update 表名
        set 列名=值,...
        where 条件

        select (distinct 去除重复行) 列名
        from 表名
        where 行条件
        group by 列条件
        having 组条件
        order by 列名 asc升序/desc降序

 

  • 选择查询
  • 条件表达式 where 条件
  • select 列名 as '别名' from 表名
  • 字符串匹配:(not) like '匹配串'
    • %(百分号)代表任意长度(长度可以为0)的字符串。例如a%b表示以a开头,以b结尾的任意长度的字符串,如 acb、addgb、ab 等都满足该匹配串。
    • _(下划线)代表任意单个字符。例如a_b表示以a开头,以b结尾的长度为3的任意字符串,acb、afb 等都满足该匹配串。

  • 聚合函数 avg count min max
  • 表的连接查询
    • select 列名 from 表1,表2 where 连接条件
  • 查询结果的并交差
    • union intersect except

10、SQL访问控制
        授权:grant 权限 on 对象类型 对象名 to 用户
                

        收回权限:revoke 权限 on 对象类型 对象名 from 用户
                

11、视图:从一个或多个基本表或视图中导出的表,是一个虚拟表
        
create view 视图名(列表名)
        as select 查询子句
        [with check option];
12、索引:改变的是内模式

13、关系模式:R<U,F>
        R关系名,U属性,F为属性组U上的一组数据依赖。A→B:A决定B,B依赖于A


下午题

试题一 15′

形式:说明 + 2图 + 问题

数据流图DFD基本图形元素 ——
        矩形 E :外部实体
        数据存储:D
        加工 P :圆角矩形

        

外部实体:当前系统之外的人、物、外部系统 
        人:学生、老师、员工、主观、医生、客户、供应商......
        物:传感器、控制器、单车、车辆、采购部门......
        外部系统:支付系统、车辆交易系统、库存管理系统、道闸控制系统......
数据存储:存储数据和提供数据,存储加工的输出数据和提供加工的输入数据
        例子:客户表、订单表、学生表、课表文件、维修记录文件
加工:将输入数据处理后得到输出数据
        一个加工至少有一个输入数据流和一个输出数据流加工
        只有输入没有输出:黑洞
        只有输出没有输入:白洞
        输入数据不足以产生输出数据:灰洞
数据流的起点或终点必须有一个是加工。

问题一 实体
问题二 数据存储 +表/文件
问题三 补充缺失数据流
        第一种方法:父图子图平衡 连连看
        第二种方法:加工既有输入数据流又有输出数据流
        第三种方法:数据守恒
        格式:
        

相关文章:

软考中级笔记

上午题 二 程序设计语言 6′ 1、编译程序和解释程序 解释器&#xff1a;翻译源程序时不生成独立的目标程序。 解释程序和源程序要参与到程序的运行过程中。 编译器&#xff1a;翻译时将源程序翻译成独立保存的目标程序。 机器上运行的是与源程序等价的目标程序。 源程序和编…...

学习python自动化——pytest单元测试框架

一、什么是pytest 单元测试框架&#xff0c;unittest&#xff08;python自带的&#xff09;&#xff0c;pytest&#xff08;第三方库&#xff09;。 用于编写测试用例、收集用例、执行用例、生成测试结果文件&#xff08;html、xml&#xff09; 1.1、安装pytest pip instal…...

定位、地图建立及管理合集

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言机器人中常见的定位技术介绍一、直方图定位原理二、gnss、rtk定位原理三、【依赖二维激光雷达与全局地图的定位算法】amcl&am…...

uniAPP是否可以做php语言书写后端的前端开发?

UniAPP可以做PHP语言书写后端的前端开发。以下是关于这个问题的详细解答&#xff1a; 一、UniAPP与后端开发的关系 前后端分离&#xff1a;UniAPP作为一款跨平台开发框架&#xff0c;采用了前后端分离的开发模式。这意味着前端和后端的开发可以独立进行&#xff0c;互不影响。…...

柒拾伍- AI内容农场生产文章自动发布至公众号 (一)

一、内容农场 X AI 看过很多的新闻说 AI 产生 内容 污染网络&#xff0c;我也想试一下到底能污染成怎样。 然后为了编写爆款的内容&#xff0c;我选用这个 内容农场 的种子是来源于 微博热搜&#xff0c;让生长出来的垃圾文章更加火爆 涉及内容不能放 二、编写代码 关于代…...

java.util.function Function<T, R>

一、介绍 1、简介 Function<T, R> 是 Java 8 中的一个函数式接口&#xff0c;用于表示接受一个输入参数 T&#xff0c;并返回一个结果 R 的函数。Function接口中有一个抽象方法apply&#xff0c;用于定义函数的逻辑。Function接口通常用于将数据进行转换&#xff08;处…...

Allegro在PCB上开槽的三种方法操作指导

Allegro如何在PCB上开槽的三种方法操作指导 当PCB有特殊设计要求的时候&#xff0c;需要在PCB上开槽&#xff0c;Allegro支持在PCB上开槽操作&#xff0c;具体操作如下 以下图为例&#xff0c;需要在这个板框中间开槽 开方形槽 选择shape add rect命令 画在Board Geometry-o…...

Docker:快速部署

docker安装&#xff1a; ​‌​‬&#xfeff;​&#xfeff;⁠​‍‬​‍‬‬‌​‬‬‬​&#xfeff;⁠​‍​​‌‬‌&#xfeff;​​​​​​‌​​​​⁠​‍⁠‌安装Docker - 飞书云文档 (feishu.cn) docker命令解读 docker run -d \ > --name mysql \ > -p 33…...

如何指定this的值

1. 函数调用时指定 call -- 接收一个参数列表 apply -- 接收一个参数数组 2. 创建时指定this的值 bind -- 返回一个函数 传参方式与call相同 箭头函数 -- 其this值取决于上级作用域中的this值 <script>// 如何指定this的值// 1. 调用时指定this// 2. 创建时指定th…...

自动化分析背后,一站式数据分析平台!

自动化分析背后&#xff0c;一站式数据分析平台&#xff01; 前言一站式数据分析平台 前言 在如今的企业管理中&#xff0c;数据已经不再是简单的存储和备份&#xff0c;而是成为了决策的核心驱动力。尤其是在面对海量数据的情况下&#xff0c;企业急需一个能够高效处理、分析…...

掌握 WPF 开发:基础、数据绑定与自定义控件

WPF&#xff08;Windows Presentation Foundation&#xff09;是用于构建现代桌面应用程序的强大框架。它通过 XAML&#xff08;Extensible Application Markup Language&#xff09;与丰富的控件体系&#xff0c;提供了灵活的 UI 开发方式。本文将介绍 WPF 的基础知识、XAML 语…...

PostgreSQL:生成-唯一主键id

1. 通过时间戳和随机数拼接生成 select TO_CHAR(NOW(), YYYYMMDDHH24MISS) || LPAD(FLOOR(RANDOM() * 1000000)::TEXT, 6, 0) AS unique_id解析&#xff1a; TO_CHAR(NOW(), ‘YYYYMMDDHH24MISS’)&#xff1a;该部分将当前时间 (NOW()) 格式化为 YYYYMMDDHH24MISS 格式&#…...

Swift添加自定义字体

1. 在 Xcode 中添加自定义字体 首先&#xff0c;你需要将自定义字体文件&#xff08;如 .ttf 或 .otf 文件&#xff09;添加到项目中。 将字体文件拖放到项目的资源管理器中&#xff0c;确保选中了 "Copy items if needed"。打开 Info.plist 文件&#xff0c;添加一…...

Springboot 整合 Java DL4J 实现企业门禁人脸识别系统

&#x1f9d1; 博主简介&#xff1a;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编程&#xff0c;…...

SSTI模板注入+CTF实例

参考文章&#xff1a; 一文了解SSTI和所有常见payload 以flask模板为例-腾讯云开发者社区-腾讯云 (tencent.com) python-flask模块注入(SSTI) - ctrl_TT豆 - 博客园 (cnblogs.com) ssti详解与例题以及绕过payload大全_ssti绕过空格-CSDN博客 1. SSTI&#xff08;模板注入&…...

iPhone 16 Pro 拆解揭秘:设计改进与维修便利性

苹果最新推出的iPhone 16系列在许多方面都进行了更新和改进&#xff0c;而这次我们要聚焦的是其中的高端型号——iPhone 16 Pro。 这款手机不仅在性能上有所提升&#xff0c;在内部构造上也带来了不少变化&#xff0c;让我们一起来看看这些细节吧。 更容易进入的内部结构 对于…...

Java项目实战II养老||基于Java+Spring Boot+MySQL的社区智慧养老监护管理平台设计与实现(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着老龄化…...

利用FnOS搭建虚拟云桌面,并搭建前端开发环境(二)

利用FnOS搭建虚拟云桌面&#xff0c;并搭建前端开发环境 二 一、docker镜像二、环境配置三、核心环境配置流程文档 利用FnOS搭建虚拟云桌面&#xff0c;并搭建前端开发环境&#xff08;一&#xff09; 上一章安装了飞牛FnOS系统&#xff0c;界面如下&#xff0c;这一张配置前端…...

【Python】Qwen-VL-7B box

VLLM-Qwen2-VL-7B-Instruct import cv2# 读取图像 image_path haibaoA.png # 替换为图像的路径 image cv2.imread(image_path)# 定义框的坐标 (x1, y1) 是左上角&#xff0c;(x2, y2) 是右下角 x1, y1 200, 550 # 左上角坐标 x2, y2 799, 750 # 右下角坐标 h, w image.…...

echarts按需引入解决项目大小问题

背景&#xff1a; 按需加载缩减项目大小&#xff0c;提升项目性能和可用性 实现&#xff1a; 创建echarts.js main.js进行配置 页面中引用 效果 全量导入 按需加载&#xff1a;...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...