信息学奥赛初赛天天练-26-CSP-J2023基础题攻略,组合数学、高精度算法、计算机存储奥秘与操作系统实践

本文主要是介绍信息学奥赛初赛天天练-26-CSP-J2023基础题攻略,组合数学、高精度算法、计算机存储奥秘与操作系统实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PDF文档公众号回复关键字:20240611
在这里插入图片描述

单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项)

6 小明在某一天中依次有七个空闲时间段,他想要选出至少一个空闲时间段来练习唱歌,但他希望任意两个练习的时间段之间都有至少两个空闲的时间段让他休息,则小明一共有( )种选择时间段的方案。

A 31

B 18

C 21

D 33

7 以下关于高精度运算的说法错误的是( )。

A 高精度计算主要是用来处理大整数或需要保留多位小数的运算。

B 大整数除以小整数的处理的步骤可以是,将被除数和除数对齐,从左到右逐位尝试将除数乘以某个数,通过减法得到新的被除数,并累加商。

C 高精度乘法的运算时间只与参与运算的两个整数中长度较长者的位数有关。

D 高精度加法运算的关键在于逐位相加并处理进位。

13 在计算机中,以下哪个选项描述的数据存储容量最小?( )

A. 字节(byte)

B. 比特(bit)

C. 字(word)

D. 千字节(kilobyte)

14 一个班级有10个男生和12个女生。如果要选出一个3人的小组,并且小组中必须至少包含1个女生,那么有多少种可能的组合?( )
A 1420
B 1770
C 1540
D 2200

15 以下哪个不是操作系统?( )

A Linux

B Windows

C Android

D HTML

2 相关知识点

1) 枚举法

枚举法是训练我们逻辑思维严密性的一种数学逻辑

在计算的过程中,我们一定要遵循枚举法的思路,把所有的情况,按照一定的顺序,一一列举出来

所以我们在学习枚举法的时候,一定要从小到大一一列举,不重不漏

例题

有红色和蓝色两种文具盒,小黄人要把8只相同的铅笔放到这两个文具盒中,每个文具盒至少放一支铅笔,那么一共有多少种不同的方法?

答案 7种

分析

红色和蓝色总共8只

每个文具盒子至少一只,固定红色最少1只,最多7只,从红色从小到大顺序枚举,可以做到不重不漏

总共有红色和蓝色2种,红色固定后,蓝色也固定了

红色  蓝色1    72    63    54    45    36    27    1

2) 组合

从n个不同元素中,任取m个元素,并成一组,叫做从n个 不同元素中取出m个元素的一个组合

从n个不同元素中选出来的m个元素,和顺序无关

例题

有10个人,规定相互通话一次,共通话多少次?

答案 45次

分析

2人通过,A与B通话1次,也是B与A通话1次,没有顺序区别

从10个里面任意选2人进行通话

C(10,2)=10*9/2=45

3) 高精度

高精度加法

1 按位相加,累加后数字大于9(有2位产生时),需要借助进位变量记录进位数

2 进位数参与下一位累加计算

高精度减法

按位相减 减后如果当前为数字小于0,需要向高位借1当10

高精度乘法

1 从个位开始,逐位相乘 ,本次相乘下标分别i,j 则 相乘结果保存下标i+j-1,可通过模拟2位相乘得出

2 逐位相乘时先不进位,此时结果数组中可能有2位数存在

3 相乘结束后,再逐位进位

4 2数相乘后的位数,最大是2数位数之和

// a b 数组为参与相乘的2个数  ans数组为相乘的结果
void mult(int a[], int b[], int ans[]){int i, j, len;//i j 分别代表2乘数当前参与相乘的位数for(i = 1; i <= a[0]; i++){for(j = 1; j <= b[0]; j++) {//相乘结果下标为i+j-1 用2位数简单模拟归纳ans[i+j-1] += a[i] * b[j];//相乘结果先不进位,后面统一进位}}len = a[0] + b[0];//2数相乘位数最大为2数位数之和for(i = 1; i < len; i++) {//循环进位ans[i + 1] += ans[i] / 10;//进位ans[i] %= 10;//当前只保留最后一位}while(ans[i] == 0 && i > 1)//计算结果的位数 - 从最高位开始,为0的位去除i--;ans[0] = i;//结果位数赋值给ans[0]
}

高精度除法-高精度除以单精度

1 从高位开始, 需要注意加上高位余数

2 当前位商保存ans 余数保留参与下一次除法运算

3 结果位数最大为被除数的位数 ,同时去除高位前导0

高精度代码参考

https://www.cnblogs.com/myeln/articles/14587929.html

3 思路分析

6 小明在某一天中依次有七个空闲时间段,他想要选出至少一个空闲时间段来练习唱歌,但他希望任意两个练习的时间段之间都有至少两个空闲的时间段让他休息,则小明一共有( )种选择时间段的方案。

A 31

B 18

C 21

D 33

答案 B

分析

分类枚举,7个空闲时间段,至少选1个并且2个时间段之间要间隔至少2个空闲时间段

选1个时间段来练习

7种

7个空闲时间段人选哪一个都行

选2个时间段来练习

10种
1和4,1和5,1和6,1和7

2和5,2和6,2和7

3和6,3和7

4和7

选3个时间段来练习

1种

1和4和7

把1个时间段,2个时间段和3个时间段相加

7+10+1=18 种

7 以下关于高精度运算的说法错误的是( )。

A 高精度计算主要是用来处理大整数或需要保留多位小数的运算。

B 大整数除以小整数的处理的步骤可以是,将被除数和除数对齐,从左到右逐位尝试将除数乘以某个数,通过减法得到新的被除数,并累加商。

C 高精度乘法的运算时间只与参与运算的两个整数中长度较长者的位数有关。

D 高精度加法运算的关键在于逐位相加并处理进位。

答案 C

分析

A 正确,高精度计算主要用于超出数据类型范围的大整数运算和小数位数过多超出数据类型存储范围的运算

B 正确,符合大整数除以小整数(高精度除以整数)的逻辑

C 错误,高精度乘法是其中一个数的每一位去和另外一个数的每一位相乘,是双重循环,运算时间和2个数的位数都有关

D 正确

13 在计算机中,以下哪个选项描述的数据存储容量最小?( )

A. 字节(byte)

B. 比特(bit)

C. 字(word)

D. 千字节(kilobyte)

答案 B

分析

比特是计算机中最基本的存储单元,它代表数字信息的最小单位。比特只能表示两种状态之一,通常用0和1来表示

字节(byte)是计算机存储容量的基本单位之一,通常用来表示数据的大小或存储空间的大小。一个字节由8个比特组成

千字节(kilobyte) 简称KB,1KB等于1024字节

字由若干个字节构成,字的位数叫做字长,不同档次的机器有不同的字长。例如一台8位机,它的1个字就等于1个字节,字长为8位。如果是一台16位机,那么,它的1个字就由2个字节构成,字长为16位。

所以数据存储容量最小的是比特,选B

14 一个班级有10个男生和12个女生。如果要选出一个3人的小组,并且小组中必须至少包含1个女生,那么有多少种可能的组合?( )
A 1420
B 1770
C 1540
D 2200
答案: A

分析

选出3人小组,至少包含1名女生,可以进行枚举
选1名女生,2名男生
C(12,1) * C(10,2) = 12 * 10 * 9 / 2 = 540 选2名女生,1名男生
C(12,2) * C(10,1) =12 * 11 / 2 * 10 =660选3名女生
C(12,3) = 12 * 11 * 10 /(3 * 2 * 1 ) = 220根据加法原理 
C(12,1) * C(10,2) + C(12,2) * C(10,1)+C(12,3) =540+660+220= 1420

15 以下哪个不是操作系统?( )

A Linux

B Windows

C Android

D HTML

答案: D

分析

Linux是操作系统,包括Web服务器、数据库服务器、文件服务器等。它也适用于软件开发、应用程序测试和系统管理,以及嵌入式系统如智能手机、网络路由器

Windows是操作系统,是由微软公司开发的一款操作系统,已经成为全球最流行的操作系统之一,广泛应用于个人电脑、服务器、移动设备等各种计算场景

Android 是一个由谷歌开发的操作系统,主要用于移动设备,特别是智能手机和平板电脑。它是基于Linux内核的开源系统,提供了丰富的API和支持开发者进行定制开发

HTML不是操作系统,超文本标记语言,HyperText Markup Language,是用于创建网页的标准标记语言

这篇关于信息学奥赛初赛天天练-26-CSP-J2023基础题攻略,组合数学、高精度算法、计算机存储奥秘与操作系统实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1052957

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例