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

【CSP初赛】程序阅读3

文章目录

    • 前置知识
    • 阅读程序
      • 判断
      • 选择
    • 答案解析
      • 判断
      • 选择
    • 总结

前置知识

埃氏筛素数、C++ 基础。

阅读程序

#include <bits/stdc++.h>
using namespace std;
int main(){int a1[51] = {0};int i,j,t,t2,n = 50;for(i = 2;i<=sqrt(n);i++){if(a1[i] == 0){t2 = n/i;for(j = 2;j<=t2;j++) a1[i*j] = 1;}}t = 0;for(i = 2;i<=n;i++){if(a1[i] == 0){cout <<" "<<i;t++;if(t%10 == 0) cout << endl;}}cout << endl;return 0;
}

判断

1) 若把 050505 行 n 改为 515151,程序可能发生运行时错误。()

2) 若去掉第 040404 行的 "={0}"\text{"=\{0\}"}"={0}",则程序运行结果不会改变。()

3) 这个程序输出了 161616 个数字。()

4) 输出的第 111111 个数为 313131。()

选择

5)程序的时间复杂度为( )

A O(1)\text{O}(1)O(1) B O(n)\text{O}(n)O(n) C O(nlog⁡n)\text{O}(n \log n)O(nlogn) D O(nlog⁡log⁡n)\text{O}(n \log \log n)O(nloglogn)

6)输出的第 141414 个数为( )

A.414141 B.424242 C.434343 D.444444

答案解析

首先分析程序:程序使用埃氏筛素数的方法筛出了 505050 以内的所有素数,同时以每行 101010 个的方法进行输出。

判断

1)对

因为 aaa 数组的大小为 515151,C++ 规定数组只能访问到 数组长度−1\text{数组长度}-1数组长度1 的下标位置,访问 a[51] 时会出现下标越界的情况。

2)错

int a[51]={0} 是一种初始化方法,因为在 main 函数中定义的所有变量(包括数组)内的初始值是不确定的={0} 表示把数组内的元素全部初始化为 000(此操作也可以用 memset 实现)。如果去掉的话会影响运行结果。

3)错

505050 以内的质数只有以下 151515 个:2,3,5,7,11,13,17,19,23,29,31,37,41,43,472, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 472,3,5,7,11,13,17,19,23,29,31,37,41,43,47

题目说输出了 161616 个数字,所以是错误的。

4)对

如上题打的表所示,第 111111 个质数就是 313131

选择

5)D

常识题,埃氏筛找出 nnn 以内的素数的时间复杂度为 O(nlog⁡log⁡n)\text{O}(n \log \log n)O(nloglogn)

普通筛质数的复杂度为 O(n)\text{O}(n)O(n),优化后可达 O(n)\text{O}(\sqrt n)O(n)

线性筛法找出前 nnn 个素数的的时间复杂度为 O(n)\text{O}(n)O(n)

6)C

根据第 444 题打的表,第 141414 个数是 434343,所以选 C。

总结

以上为【CSP初赛练习】程序阅读3 的习题解析,希望大家喜欢!

想要复制保存参见 Markdown 源代码。

http://www.dtcms.com/a/346583.html

相关文章:

  • 通过官方文档详解Ultralytics YOLO 开源工程-熟练使用 YOLO11实现分割、分类、旋转框检测和姿势估计(附测试代码)
  • 54 C++ 现代C++编程艺术3-移动构造函数
  • 园区节能减碳大屏可视化设计指南
  • SpringBoot 快速上手:从环境搭建到 HelloWorld 实战
  • frp+go-mmproxy 实现透明代理的内网穿透
  • Vue3 学习教程,从入门到精通,基于 Vue 3 + Element Plus + ECharts + JavaScript的51购商城项目(45)
  • Intel RealSense D435 深度相机详解
  • 小程序备案话术
  • 文献阅读笔记【物理信息神经网络】:Physics-informed neural networks: A deep learning framework...
  • Kubernetes网络服务全解析
  • 【领码方案】PageData 完整解决方案 · 自引用树全链路提速(1.1版 集成层次树)
  • chapter05_从spring.xml读取Bean
  • 网络编程-基本概念及UDP
  • [Vid-LLM] 功能分类体系 | 视频如何被“观看“ | LLM的主要作用
  • 墨刀原型设计工具操作使用指南及实践操作
  • 微信小程序和uni-app面试问题总结
  • Mysql EXPLAIN详解:从底层原理到性能优化实战
  • 探索 List 的奥秘:自己动手写一个 STL List✨
  • 【Git】分支管理
  • Claude Code GitHub Actions配置(卡在第一部,验证Claude手机号过不了!!!)(跑不通!!!)
  • 服务器常见的漏洞扫描记录参考样例
  • CTFshow Pwn入门 - pwn 19
  • GitLab CI:Auto DevOps 全解析,告别繁琐配置,拥抱自动化未来
  • 网络模型深度解析:CNI、Pod通信与NetworkPolicy
  • Java高级语言特性,注解与反射
  • 肽类药物设计新突破:PepHAR 模型如何用「热点驱动」破解三大核心难题?
  • 百年传承祛湿,循汉方古脉,焕时代生机
  • 旅行足迹App技术架构全解析
  • 【React Native】自定义轮盘(大转盘)组件Wheel
  • Krea Video:Krea AI推出的AI视频生成工具