#CSPj2018. CSP-j2018初赛真题

CSP-j2018初赛真题

一、单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项)

  1. 以下哪一种设备属于输出设备()

{{ select(1) }}

  • 扫描仪
  • 键盘
  • 鼠标
  • 打印机
  1. 下列四个不同进制的数中,与其他三项数值上不相等的是()。

{{ select(2) }}

  • 269(16)
  • 617(10)
  • 1151(8)
  • 1001101011(2)
  1. 1MB等于()。

{{ select(3) }}

  • 1000字节
  • 1024字节
  • 1000 X 1000字节
  • 1024 X 1024字节
  1. 广域网的英文缩写是()。

{{ select(4) }}

  • LAN
  • WAN(Wide Area Network)
  • MAN
  • LNA
  1. 中国计算机学会于()年创办全国青少年计算机程序设计竞赛。

{{ select(5) }}

  • 1983
  • 1984
  • 1985
  • 1986
  1. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock,字母键A,字母键S,字母键D,字母键F,的顺序循环按键,即CapsLock、A,S,D,F,CapsLock,A,S,D,F,.....,屏幕上输出的第81个字符是字母()。

{{ select(6) }}

  • A
  • S
  • D
  • a
  1. 根节点深度为0,一颗深度为h的满k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有系欸但都有k个子节点的树,共有多少个节点。

{{ select(7) }}

  • (k^(h+1)-1)/(k-1)
  • k^(h-1)
  • k^h
  • (k^(h-1))/(k-1)

8.以下排序算法中,不需要进行关键字比较操作的算法是?

{{ select(8) }}

  • 基数排序
  • 冒泡排序
  • 堆排序
  • 直接插入排序
  1. 给定一个含N个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要N-1次比较操作。则最坏情况下在该数组中同时找最大与最小的数至少需要多少次比较

{{ select(9) }}

  • ceil(3N/2) -2
  • floor(3N/2) -2
  • 2N -2
  • 2N -4
  1. 下面故事与()算法有异曲同工之妙,从前有座山,山里有坐庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有坐庙,庙里有个老和尚在给小和尚讲故事”......".

{{ select(10) }}

  • 枚举
  • 递归
  • 贪心
  • 分治
  1. 由四个没有区别的点构成的简单无向连通图的个数是?

{{ select(11) }}

  • 6
  • 7
  • 8
  • 9
  1. 设含有10个元素的集合的全部子集数为S,其中由7个元素组成的子集数为T,则T/S的值为?

{{ select(12) }}

  • 5/32
  • 15/128
  • 1/8
  • 21/128
  1. 10000以内,与10000互质的正整数由多少个?

{{ select(13) }}

  • 2000
  • 4000
  • 6000
  • 8000
  1. 为了统计一个非负整数的二进制形式中1的个数,代码如下:

    int CouontBit(int x){
        int ret =0;
        while(x){
            ret++;
            _____;
        }
            return ret;
    }
    

则空格内要填入的语句是?

{{ select(14) }}

  • x>>=1
  • x&=x-1
  • x|=x>>1
  • x<<=1
  1. 下图中所使用的数据结构是?

{{ select(15) }}

  • 哈希表
  • 队列
  • 二叉树 二、填空题 (填空题答案填写中间不要加空格如:n=1不要写成n =1))

甲乙丙丁私人在考虑周末要不要外出郊游,已知1如果周末下雨,并且乙不去,则甲一定不去;2如果乙去,则丁一定去;3如果丙去,则丁一定不去; 4如果丁不去而且甲不去则丙一定不去,如果周末丙去了,则甲()(1分),乙()(1分),丁()(1分),周末()(2分)

  1. 甲()? {{ select(16) }}
  • 去了
  • 没去
  1. 乙()?

{{ select(17) }}

  • 去了
  • 没去
  1. 丁()?

{{ select(18) }}

  • 去了
  • 没去
  1. 周末()?

{{ select(19) }}

  • 下雨
  • 没下雨

从1到2018这2018个数中,共有___个包含数字的8的数。包含数字8的数是指有某一位是“8”的数,例如2018与188.

{{ input(20) }}

输入:QuanGuoLianSai 输出:

{{ input(21) }}

输入:15 输出:

{{ input(22) }}

输入:5 6 输出:

{{ input(23) }}

输入:10 7 1 4 3 2 5 9 8 0 6 输出:

{{ input(24) }}

三、阅读理解 (答案不要加空格,如:n=1不要写成n =1) 1. (最大公约数之和) 下列程序想要求解整数n的所有约数两两之间最大公约数的和对10007 求余后的值,试补全程序。(第一空2分,其余3分) 举例来说,4的所有约数是1,2,4。1和2的最大公约数为1;2和4的最大公约数为2;1和4的最大公约数为1; 于是答案为1+2+1=4。要求getDivisor函数复杂度为O(sqrt(n)),gcd函数的复杂度为(log max(a,b))。

{{ input(25) }}

{{ input(26) }}

{{ input(27) }}

{{ input(28) }}

{{ input(29) }}

对于一个1到n的排列P(即1到n中每一个数在P中出现了恰好一次),令qi为 第i个位置之后第一个比Pi值更大的位置, 如果不存在这样的位置,则Qi = n +1。举例来说,如果n=5且P为1 5 4 2 3,则g为2 6 6 5 6。 下列程序读入了排列P,使用双向链表求解了答案。试补全程序。(第二空 2分,其余3分) 数据范围 1≤n ≤ 10^5^。

  1. ① {{ input(30) }}

{{ input(31) }}

{{ input(32) }}

{{ input(33) }}

{{ input(34) }}