首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【真题】暑假备战CSP-J/S:NOIP2013普及组初赛(第一轮)试题及参考答案电子版(PDF版、无水印可直接打印)

【真题】暑假备战CSP-J/S:NOIP2013普及组初赛(第一轮)试题及参考答案电子版(PDF版、无水印可直接打印)

作者头像
小码匠
发布2023-08-31 15:09:36
发布2023-08-31 15:09:36
5510
举报

资料下载

公众号内回复:NOIP2013J,即可获取下载链接,直接打印电子版让孩子做即可,文件包含

  • 试题真题
  • 参考答案

注意:其他比赛年份得资料正在紧张整理中,大家耐心等,整理完毕后,会陆续在公众号内分享。

关注:小码匠和老码农,和小码匠一起携手备战2023年CSP-J/S,祝愿所有孩子们取得好成绩!!!

第 1 题

一个 32 位整型变量占用( )个字节。

  • A. 4
  • B. 8
  • C. 32
  • D. 128

本题共 1.5

第 2 题

二进制数 11.01 在十进制下是( )。

  • A. 3.25
  • B. 4.125
  • C. 6.25
  • D. 11.125

本题共 1.5

第 3 题

下面的故事与( )算法有着异曲同工之妙。从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事....’

  • A. 枚举
  • B. 递归
  • C. 贪心
  • D. 分治

本题共 1.5

第 4 题

逻辑表达式()的值与变量A 的真假无关。

  • A. (A ∨ B) ∧﹃A
  • B. (A ∨ B) ∧﹃B
  • C. (A ∧ B) ∨ (﹃ A ∧ B)
  • D. (A ∨ B) ∧﹃A ∧ B

本题共 1.5

第 5 题

将(2, 6, 10, 17)分别存储到某个地址区间为0~10 的哈希表中,如果哈希函数h(x) = ( ),将不会产生冲突,其中a mod b 表示 a 除以 b 的余数。

  • A. x mod 11
  • B. x2 mod 11
  • C. (2x) mod 11
  • D.
[\sqrt{x}]

mod 11,其中

[\sqrt{x}]

表示

\sqrt{x}

下取整

本题共 1.5

第 6 题

在十六进制表示法中,字母 A 相当于十进制中的( )。

  • A. 9
  • B. 10
  • C. 15
  • D. 16

本题共 1.5

第 7 题

下图中所使用的数据结构是( )。

  • A. 哈希表
  • B. 栈
  • C. 队列
  • D. 二叉树

本题共 1.5

第 8 题

在 Windows 资源管理器中,用鼠标右键单击一个文件时,会出现一个名为“复制”的操作选项,它的意思是( )。

  • A. 用剪切板中的文件替换该文件
  • B. 在该文件所在文件夹中,将该文件克隆一份
  • C. 将该文件复制到剪切板,并保留原文件
  • D. 将该文件复制到剪切板,并删除原文件

本题共 1.5

第 9 题

已知一棵二叉树有10 个节点,则其中至多有( )个节点有 2 个子节点。

  • A. 4
  • B. 5
  • C. 6
  • D. 7

本题共 1.5

第 10 题

在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通图。下图是一个有4 个顶点、 6 条边的连通图。若要使它不再是连通图,至少要删去其中的( )条边。

  • A. 1
  • B. 2
  • C. 3
  • D. 4

本题共 1.5

第 11 题

二叉树的( )第一个访问的节点是根节点。

  • A. 先序遍历
  • B. 中序遍历
  • C. 后序遍历
  • D. 以上都是

本题共 1.5

第 12 题

以 A0 作为起点,对下面的无向图进行深度优先遍历时,遍历顺序不可能是( )。

  • A. A0, A1 , A2, A3
  • B. A0, A1, A3, A2
  • C. A0, A2, A1, A3
  • D. A0, A3, A1, A2

本题共 1.5

第 13 题

IPv4 协议使用32 位地址,随着其不断被分配,地址资源日趋枯竭。因此,它正逐渐被使用( )位地址的 IPv6 协议所取代。

  • A. 40
  • B. 48
  • C. 64
  • D. 128

本题共 1.5

第 14 题

( )的 平均时间复杂度为 O(nlogn),其中 n 是待排序的元素个数。

  • A. 快速排序
  • B. 插入排序
  • C. 冒泡排序
  • D. 基数排序

本题共 1.5

第 15 题

下面是根据欧几里得算法编写的函数,它所计算的是a 和 b 的( )。

代码语言:javascript
复制
int euclid(int a, int b)
{
    if (b == 0)
        return a;
    else
        return euclid(b, a % b);
}
  • A. 最大公共质因子
  • B. 最小公共质因子
  • C. 最大公约数
  • D. 最小公倍数

本题共 1.5

第 16 题

通常在搜索引擎中,对某个关键词加上双引号表示( )。

  • A. 排除关键词,不显示任何包含该关键词的结果
  • B. 将关键词分解,在搜索结果中必须包含其中的一部分
  • C. 精确搜索,只显示包含整个关键词的结果
  • D. 站内搜索,只显示关键词所指向网站的内容

本题共 1.5

第 17 题

中国的国家顶级域名是( )。

  • A. .cn
  • B. .ch
  • C. .chn
  • D. .china

本题共 1.5

第 18 题

把 64 位非零浮点数强制转换成32 位浮点数后,不可能 ()。

  • A. 大于原数
  • B. 小于原数
  • C. 等于原数
  • D. 与原数符号相反

本题共 1.5

第 19 题

下列程序中,正确计算1, 2, ⋯, 100 这 100 个自然数之和sum(初始值为0)的是( )。

  • A. i = 1 do{ sum +=i; i++; }while(i<=100);
  • B. i = 1; do{ sum +=i; i++; }while(i > 100);
  • C. i = 1; while(i < 100){ sum+=i; i++; }
  • D. i = 1; while(i >= 100){ sum+=i; i++; }

本题共 1.5

第 20 题

CCF NOIP 复赛全国统一评测时使用的系统软件是( )。

  • A. NOI Windows
  • B. NOI Linux
  • C. NOI Mac OS
  • D. NOI DOS

本题共 1.5

第 21 题

7 个同学围坐一圈,要选 2 个不相邻的作为代表,有_________种不同的选法。

答案:

本题共 5

第 22 题

某系统自称使用了一种防窃听的方式验证用户密码。密码是n 个数 s1, s2, ⋯ , sn,均为 0或 1。该系统每次随机生成 n 个数 a1, a2, ⋯ , an,均为 0或1,请用户回答 (s1a1 + s2a2 + ⋯+ snan) 除以 2 的余数。如果多次的回答总是正确,即认为掌握密码。该系统认为,即使问答的过程被泄露,也无助于破解密码——因为用户并没有直接发送密码。然而,事与愿违。例如,当n = 4 时,有人窃听了以下5 次问答:

就破解出了密码s1 =___ ,s2 = ___,s3 =___ ,s4 =___答案格式为:纯数字用,连接

答案:

本题共 5

第 23 题

阅读程序写结果:

代码语言:javascript
复制
#include <iostream>
using namespace std;
int main()
{
	int a, b;
	cin >> a >> b;
	cout << a << "+" << b << "=" << a + b << endl;
}

输入:3 5

答案:

本题共 8

第 24 题

阅读程序写结果:

代码语言:javascript
复制
#include <iostream>
using namespace std;
int main() {
    int a, b, u, i, num;
    cin >> a >> b >> u;
    num = 0;
    for (i = a; i <= b; i++)
        if ((i % u) == 0)
            num++;
    cout << num << endl;
    return 0;
}

输入:1 100 15

答案:

本题共 8

第 25 题

阅读程序写结果:

代码语言:javascript
复制
#include <iostream>
using namespace std;
int main() {
    const int SIZE = 100;
    int n, f, i, left, right, middle, a[SIZE];
    cin >> n >> f;
    for (i = 1; i <= n; i++)
        cin >> a[i];
    left  = 1;
    right = n;
    do {
        middle = (left + right) / 2;
        if (f <= a[middle])
            right = middle;
        else
            left = middle + 1;
    } while (left < right);
    cout << left << endl;
    return 0;
}

输入:12 17 2 4 6 9 11 15 17 18 19 20 21 25

答案:

本题共 8

第 26 题

阅读程序写结果:

代码语言:javascript
复制
#include <iostream>
using namespace std;
int main() {
    const int SIZE = 100;
    int height[SIZE], num[SIZE], n, ans;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> height[i];
        num[i] = 1;
        for (int j = 0; j < i; j++) {
            if ((height[j] < height[i]) && (num[j] >= num[i]))
                num[i] = num[j] + 1;
        }
    }
    ans = 0;
    for (int i = 0; i < n; i++) {
        if (num[i] > ans)
            ans = num[i];
    }
    cout << ans << endl;
}

输入:6 2 5 3 11 12 4

答案:

本题共 8

第 27 题

完善程序: (序列重排)全局数组变量 a 定义如下:

代码语言:javascript
复制
const int SIZE = 100;
int a[SIZE], n;

它记录着一个长度为n 的序列 a[1], a[2], ⋯ , a[n]。现在需要一个函数,以整数p (1 ≤p ≤n) 为参数,实现如下功能:将序列a 的前 p个数与后 n –p 个数对调,且不改变这p 个数(或n –p 个数)之间的相对位置。例如,长度为 5 的序列 1, 2, 3, 4, 5,当 p = 2 时重排结果为3, 4, 5, 1, 2 。有一种朴素的算法可以实现这一需求,其时间复杂度为O( n)、空间复杂度为 O(n):

代码语言:javascript
复制
void swap1(int p) {
    int i, j, b[SIZE];
    for (i = 1; i <= p; i++)
        b[①] = a[i];             //  (3分)         
    for (i = p + 1; i <= n; i++)
        b[i - p] = ②;           //  (3分)    
    for (i = 1; i <= ③;
    i++ )  //  (2分)
    a[i] = b[i];
}

我们也可以用时间换空间,使用时间复杂度为O(n2)、空间复杂度为O(1) 的算法:

代码语言:javascript
复制
void swap2(int p) {
    int i, j, temp;
    for (i = p + 1; i <= n; i++) {
        temp = a[i];
        for (j = i; j >= ④;
        j-- )    //  ( 3 分)
        a[j] = a[j - 1];
        ⑤ = temp;                     // ( 3 分)
    }
}
  • ①答案:
  • ②答案:
  • ③答案:
  • ④答案:
  • ⑤答案:

本题共 14

第 28 题

完善程序:(二叉查找树) 二叉查找树具有如下性质:每个节点的值都大于其左子树上所有节点的 值、小于其右子树上所有节点的值。试判断一棵树是否为二叉查找树。输入的第一行包含一个整数 n,表示这棵树有 n 个顶点, 编号分别为 1, 2, ⋯ , n,其 中编号为 1 的为根结点。之后的第 i 行有三个数 value, left_child , right_child ,分别表示该节点关键字的值、左子节点的编号、右子节点的编号;如果不存在左子节点或右子节点,则用 0 代替。输出 1 表示这棵树是二叉查找树,输出0 则表示不是。

代码语言:javascript
复制
#include <iostream>

using namespace std;
const int SIZE = 100;
const int INFINITE = 1000000;
struct node {
    int left_child, right_child, value;
};
node a[SIZE];

int is_bst(int root, int lower_bound, int upper_bound) {
    int cur;
    if (root == 0)
        return (1);
    cur = a[root].value;
    if ((cur > lower_bound) && ( ① ) && (is_bst(a[root].left_child, lower_bound, cur) == 1) && (is_bst( ②, ③, ④ ) == 1))
    return (1);
    return (0);
}


int main() {
    int i, n;
    cin >> n;
    for (i = 1; i <= n; i++)
        cin >> a[i].value >> a[i].left_child >> a[i].right_child;
    cout << is_bst( ⑤, -INFINITE, INFINITE ) << endl;
    return (0);
}
  • ①答案:
  • ②答案:
  • ③答案:
  • ④答案:
  • ⑤答案:

本题共 14

关于暑假备战几点建议

关于分享

小码匠今年也要参赛,近期我正在整理CSP-J&S的知识点精简版,后面会陆续在本公众号内分享。

期待能与更多宝爸宝妈有更深度、更广度的交流,一起探讨信息学学习,让大家少走弯路。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小码匠和老码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 资料下载
  • 第 1 题
  • 第 2 题
  • 第 3 题
  • 第 4 题
  • 第 5 题
  • 第 6 题
  • 第 7 题
  • 第 8 题
  • 第 9 题
  • 第 10 题
  • 第 11 题
  • 第 12 题
  • 第 13 题
  • 第 14 题
  • 第 15 题
  • 第 16 题
  • 第 17 题
  • 第 18 题
  • 第 19 题
  • 第 20 题
  • 第 21 题
  • 第 22 题
  • 第 23 题
  • 第 24 题
  • 第 25 题
  • 第 26 题
  • 第 27 题
  • 第 28 题
  • 关于暑假备战几点建议
    • 关于分享
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档