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

2024年山东省信息学小学组(CSP-X)第一轮题解

2024年山东省信息学小学组(CSP-X)第一轮题解

  • 原题下载
  • 单项选择题
  • 阅读程序
    • 阅读程序 #1
      • 判断题
    • 阅读程序 #2
      • 判断题
      • 单选题
    • 阅读程序 #3
      • 判断题
      • 单选题
  • 完善程序
    • 消灭怪兽
    • 位运算操作

原题下载

CSP-X2024小学组(山东)第一轮试题以及答案

单项选择题

共 15 题,每题 2 分,共计 30 分;每题有且仅有一个正确选项。

  1. ( 2024 ) 10 + ( 2 F ) 16 (2024)_{10}+(2F)_{16} (2024)10+(2F)16的运算结果是( )。
  • A. ( 100000010110 ) 2 (100000010110)_2 (100000010110)2
  • B. ( 816 ) 16 (816)_{16} (816)16
  • C. ( 2071 ) 10 (2071)_{10} (2071)10
  • D. ( 4026 ) 8 (4026)_8 (4026)8

解析: ( 2 F ) 16 = 47 10 + 2024 10 = 2071 10 (2F)_{16}=47_{10}+2024_{10}=2071_{10} (2F)16=4710+202410=207110

  1. 执行完一下代码后,c的值是( )。
int a = 9, b = 6, c;
c = a / b + 0.5;
  • A. 1.5
  • B. 2
  • C. 2.0
  • D. 1

解析:c = a / b + 0.5;a,b,c都是int类型,因此a / b结果为1,加上0.5之后赋值给cc的值为1

  1. 将数组{7, 20, 4, 16, 88, 0, 55, 100}中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换( )次。
  • A. 4
  • B. 5
  • C. 6
  • D. 7

解析:需要将数组元素按从大到小的顺序排列,要求每次可以交换任意两个元素,可以使用选择排序的思想:

  • 1 1 1次将1007交换,得到{100, 20, 4, 16, 88, 0, 55, 7}
  • 2 2 2次将8820交换,得到{100, 88, 4, 16, 20, 0, 55, 7}
  • 3 3 3次将554交换,得到{100, 88, 55, 16, 20, 0, 4, 7}
  • 4 4 4次将2016交换,得到{100, 88, 55, 20, 16, 0, 4, 7}
  • 5 5 5次将70交换,得到{100, 88, 55, 20, 16, 7, 4, 0}

最少需要交换5次。
4. 若待排序对象序列在排序前已按其排序码递增顺序排序,则采用( )方法比较次数最少。

  • A. 直接插入排序
  • B. 快速排序
  • C. 归并排序
  • D. 直接选择排序

解析:若有 n n n个待排序对象,在排序前已按其排序码递增顺序排序,那么

  • 直接插入排序,需要比较 n n n
  • 快速排序,需要递归 l o g n logn logn层,在每一层将元素与基准值比较,进行分区操作,因此比较次数接近 n × l o g n n\times logn n×logn
  • 归并排序,需要递归 l o g n logn logn层,在每一层需要合并 n n n个元素,因此比较次数接近 n × l o g n n\times logn n×logn
  • 直接选择排序,每次需要选出最小值与当前位置上的元素进行交换,比较次数接近 n 2 n^2 n2
  1. 设有一个 100 100 100阶的对称矩阵保存在二维数组a[100][100],满足a[i][j]=a[j][i],如果采用压缩存储方式按行将矩阵的下三角部分的元素存入一维数组b[]中,a[0][0]存入b[0]中,则a[10][5]b[]中( )位置。
  • A. 50 50 50
  • B. 60 60 60
  • C. 51 51 51
  • D. 61 61 61

解析:如果将对称矩阵保存到二维数组a[100][100],并采用压缩存储方式按行将矩阵的下三角部分的元素存入一维数组b[]中,如下图所示:
在这里插入图片描述
从第 0 0 0行开始,每行存入到b[]数组的元素个数为 1 , 2 , 3... 1,2,3... 1,2,3...的等差数列,那么 0 ∼ 9 0\sim 9 09行一共存入 ( 1 + 10 ) ∗ 10 2 = 55 \frac{(1+10)*10}{2}=55 2(1+10)10=55个数,到a[10][5]还有 6 6 6个数,那么a[10][5]会存入b[60]

  1. 字符串abcabcabc有多少不同的非空子串
  • A. 24
  • B. 36
  • C. 45
  • D. 46

解析:

  • 长度为 1 1 1的非空子串有 3 3 3个,abc
  • 长度为 2 2 2的非空子串有 3 3 3个,abbcca
  • 长度为 3 3 3的非空子串有 3 3 3个,abcbcacab
  • 长度为 4 4 4的非空子串有 3 3 3个,abcabcabcabc
  • 长度为 5 5 5的非空子串有 3 3 3个,abcabbcabccabca
  • 长度为 6 6 6的非空子串有 3 3 3个,abcabcbcabcacabcab
  • 长度为 7 7 7的非空子串有 3 3 3个,abcabcabcabcabcabcabc
  • 长度为 8 8 8的非空子串有 2 2 2个,abcabcabbcabcabc
  • 长度为 9 9 9的非空子串有 1 1 1个,abcabcabc

字符串abcabcabc 3 × 7 + 2 + 1 = 24 3\times7+2+1=24 3×7+2+1=24不同的非空子串
7. 一个栈的输入顺序为 1 、 2 、 3 、 4 、 5 、 6 1、2、3、4、5、6 123456,下列序列中可能是栈的输出序列是( )?

  • A. 6 、 5 、 4 、 3 、 1 、 2 6、5、4、3、1、2 654312
  • B. 2 、 4 、 1 、 3 、 5 、 6 2、4、1、3、5、6 241356
  • C. 2 、 1 、 6 、 5 、 4 、 3 2、1、6、5、4、3 216543
  • D. 1 、 2 、 5 、 3 、 4 、 6 1、2、5、3、4、6
http://www.dtcms.com/a/355272.html

相关文章:

  • 冒泡排序算法详解(python code)
  • Python训练营打卡 DAY 50 预训练模型+CBAM模块
  • Shell 编程基础与实践要点梳理
  • PCIe 5.0 SSD连续读写缓存用完速度会骤降吗?
  • IntelliJ IDEA 反编译JAR包记录
  • Beats与Elasticsearch高效数据采集指南
  • Komo Searc-AI驱动的搜索引擎
  • 控制系统仿真之PID校正1-系统固有属性(四)
  • 【ai编辑器】使用cursor-vip获得cursor的pro版 pro plan(mac)
  • 【C语言16天强化训练】从基础入门到进阶:Day 13
  • 模拟实现Linux中的进度条
  • 带动态条件的模糊查询SQL
  • 【Linux基础知识系列:第一百一十四篇】使用lsof查看打开的文件
  • frp 一个高性能的反向代理服务
  • VMware + Ubuntu 桥接模式不能联网 的常见原因、排查思路和解决步骤
  • element-plus的el-scrollbar显示横向滚动条
  • 整体设计 修订 之1 三“先”之“基” 与范畴重构:康德先验哲学的批判性程序化实现
  • 电商高并发稳赢指南:ZKmall开源商城微服务架构的实战拆解
  • AI视觉重塑汽车质检,四大车间全景解析
  • Android15 GKI版本分析Kernel Crash问题
  • 金属超声波风速风向多参数一体传感器
  • NFT:Web3数字新资产
  • k230 使用摄像头将拍照的RGB565格式图片,保存为jpg图片文件到板载TF存储卡中
  • flutter 中 的 关键字
  • flutter Function和自定义的Callback有什么区别?
  • flutter 高斯模糊闪烁问题
  • Spring AI Alibaba开发实战:从入门到高级应用
  • C# 模式匹配(Pattern Matching)
  • ASP4644四通道集成方案在射频通信系统中的可行性分析
  • Cesium入门教程(一):Cesium简介