信息学奥赛初赛天天练-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

相关文章

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.