2024年CSP-J认证 CCF信息学奥赛C++ 中小学初级组 第一轮真题-阅读程序题解析
发布日期:2025-06-18 10:33:45 浏览次数:4 分类:精选文章

本文共 869 字,大约阅读时间需要 2 分钟。

2024 CCF 认证第一轮(CSP-J)真题

二、阅读程序题

(程序输入不超过数组或字符串定义的范围,判断题正确填√错误填X;除特殊说明外,判断题 1.5分,选择题3分,共计40 分)

第一题

#include

using namespace std;

bool isPrime(int n) {if (n <= 1) {return false;}for (int i = 2; i * i <= n; i++) {if (n % i == 0) {return false;}}return true;}

int countPrimes(int n) {int count = 0;for (int i = 2; i <= n; i++) {if (isPrime(i)) {count++;}}return count;}

本题要求判断以下代码是否正确。请逐一分析代码逻辑,并判断每个部分是否存在问题。

代码主要包含两个函数:isPrime和countPrimes。isPrime函数用于判断一个数是否为质数,countPrimes函数则用于统计在某个数范围内的质数数量。

isPrime函数的逻辑是:如果n小于等于1,直接返回false;否则,遍历从2到sqrt(n)的所有整数,检查是否存在能整除n的数。如果有,返回false;否则返回true。

countPrimes函数则通过遍历2到n的所有整数,依次调用isPrime函数,统计满足条件的质数数量。

代码结构清晰,逻辑严谨。isPrime函数的时间复杂度为O(sqrt(n)),countPrimes函数的时间复杂度为O(n*sqrt(n))。整体代码运行效率较高,适用于小规模数据的质数检测。

请判断以下代码是否正确:

√ isPrime函数的参数是否正确传递?

√ countPrimes函数是否正确调用isPrime函数?

√ for循环的初始值和终止条件是否正确设置?

√ count变量是否正确初始化?

√代码中是否存在多余的空白行或注释?

请在此处填写答案。

上一篇:2024年全国青少年信息素养大赛 Python编程挑战赛 小学全年级组 初赛真题答案详细解析
下一篇:2024年3月电子学会青少年软件编程 中小学生Python编程等级考试二级真题解析(判断题)

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2026年06月16日 01时30分58秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章