全国入门组CSP-J初赛模拟试题(10)[2022年]

* 姓名
一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)
* 1.甲乙两位工人一起在工厂工作。甲的生产速度是每小时6个鼠标或2个键盘。乙的生产速度是每小时4个鼠标或4个键盘。在一天6小时的工作中,甲乙两人通过合理搭配,最多可以一起生产出()个键鼠套装。
* 2.百度公司是一家于2000年创立的互联网公司,其业务范围十分广泛。以下选项中,()不属于百度的业务范围。
* 3.假如数列3,6,12,24...符合固定规律,那么它的下一项最可能是()。
* 4.在上网浏览时,可以注意到有些网址以http://开始,有-些则是https://。在这里,后者比前者多出的字母s是()的缩写。
* 5.在一张桌子上放了一定数量的铅笔。甲和乙轮流拿走铅笔,每次可以拿1根或者2根,拿走最后一根铅笔的人获胜。假如甲先取那么在铅笔总数为()根时乙将最终获胜。
* 6.将四个数字1,3,5,7经过四则运算(即只使用加、减、乘、除和括号)后,可能得到的最大结果是()。
* 7.下列不属于计算机人工智能应用领域的是()。
* 8.从本质上讲,计算机病毒是一种()。
* 9.下列叙述中正确的是()。
* 10.下列结构中为非线性结构的是()
* 11.在访问网站时,链接前显示的htp://是一种()。
* 12.一位农夫想用20米的铁栅栏围出一个四边形。无论他怎么尝试,这个四边形是面积最大都不会超过()。
* 13.一袋水果中有50个香蕉,30个葡萄和40个草毒。一个人每次从袋子中随机抽取一个水果。()次后,他手中肯定至少有10个相同种类的水果。
* 14.一位魔术师要将名为酥糖,布丁和曲奇的三只鸽子藏进A,B,C,D四个箱子里。每个箱子都足够大,可以同时放下三只鸽子。那么一共有多少种不同的藏法()。
* 15.两位同学在讨论关于全球变暖的问题。小青认为全球变暖是错误的,因为她冬天早上起床时依旧觉得很冷。小蓝则认为全球变暖是确实存在的,原因是过去几十年中地球的平均气温越来越高了。在两个人的讨论中()。
二、阅读程序(程序输入不超过数组或字符串定义的范围;除特殊说明外,判断题1.5分,选择题3分,共计40分)
1.阅读以下程序,完成题目:


判断题
* 1)intgcd(inta,intb)函数是求a,b的最小公倍数。()
* 2)x0为最大公约数,y0为最小公倍数。()
* 3)x0一定小于等于y0。()
* 4)当x0,y0的数据范围在[2,1000000]时,该程序在极端数据情况下会超时。()
* 5)若输入为360,则输出为()。


判断题
* 1)代码中使用的队列queue可以使用一维数组代替。()
* 2)若n的值大于100000,则一定会出现溢出。()
* 3)该程序中visit[]数组使用做标记数组使用。()
* 4)若输入的数据为517,则输出为()
* 5)该程序是利用()算法模板来完成的。
3.阅读以下程序,完成题目:


* 1)题目中的数组a[1010],b[1010]可以定义在主函数外面。()
* 2)该程序的时间复杂度为0(n^3)。()
* 3)若输入为625则输出为。()
三、完善程序(单选题,每题3分,共计30分)

1.(密码锁) 乌龟给自己的贵重物品上了密码锁。密码锁上有5个数字拨盘。每个数字拨盘每次向上拨使数字增加1(9向上拨得到0),向下拨使数字减少1(0向下拨得到9)。

 拨盘上的数字组成一个5位数。只要拨盘上的数字变为素数,密码锁就会被解开。素数(又称质数)是只能被1和它自身整除的大于1的自然数。

 因为乌龟动作实在太慢,他希望你帮他计算如何开锁,使得拨动的总次数最少。

输入:

 一个5位数,表示拨盘的初始数字

输出:

 一个5位素数,表示开启密码锁使用的素数(拨动次数最少)。

 如有多组解,输出满足条件的最大数

样例输入:

 01210

样例输出:

 01319


* 1)⑴处应填()。
* 2)⑵处应填()。
* 3)⑶处应填()。
* 4)⑷处应填()。
* 5)⑸处应填()。
2(字符串替换) 小明最近迷上了字符串操作。对每个字符串,小明每次可以执行以下两种操作之一:

 1.把字符串中的某个字符改成任意一个其他字符,花费1的代价。

 2.交换字符串中的两个字符,花费0的代价。

 小明发现,把一个字符串通过一系列的操作,可以转换成任何一个与之等长的字符串。例如,把“hello”变为“world”的一种代价为3的操作序列如下:

1. hello→wello(替换h为w,代价为1)

 2. wello→wolle(交换e和o,代价为0)

 3. wolle→worle(替换l为r,代价为1)

 4. worle→world(替换e为d,代价为1)

小明发现,无法用少于3次的代价将“hello”变为“world”。

显然,不同的转换方案花费的代价是不同的,请编程帮助小明计算把一个字符串变为另一个字符串的最小代价。

本题中的字符串根据给定的初始数值s按以下规则生成:

 for i=1,2,... n

  s←(s*345) mod 19997

  第一个字符串的第i个字符的ASCII码为(97+(s mod 26))

 for i=1,2,... n

  s←(s*345) mod 19997

  第二个字符串的第i个字符的ASCII码为(97+(s mod 26))

输入:

 正整数n (字符串长度), s (数据生成器的初始数值)。1≤n≤1000, 1≤s≤19997。

输出:

 将第一个字符串转换为第二个字符串的最少代价。

样例输入1

4 35

样例输入2

100 31

样例输出1

2

样例输出2

29

在样例1中,生成的字符串是“lzvv”和“xylv”,将第一个字符串变为第二个的最为2。


* 1)⑴处应填()。
* 2)⑵处应填()。
* 3)⑶处应填()。
* 4)⑷处应填()。
* 5)⑸处应填()。