2015第30届宁波市中小学生计算机程序设计竞赛初赛__小学卷试卷及参考答案

更新时间:2023-09-01 07:53:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2015年宁波市第30届中小学生计算机程序设计竞赛

一、选择题(每题有且仅有一个正确答案,选对得1.5分,选错、不选或多选均不得分) 1. 下列不能描述鼠标性能的指标是( )。 (A)刷新率 (B)CPI (C)DPI (D)UPI 2. 下列关于4G网络的说法中错误的是( )。

(A)TD-LTE是其中一种制式 (B)FDD-LTE是其中一种制式

(C)4G是集3G与WLAN与一体 (D)理论上其带宽速度可以达到1000MB每秒 3. 下列关于CES2015中Intel公司新推出的CPU产品的说法中错误的是( )。 (A)是14nm工艺芯片 (B)代号为Broadwell

(C)比 Skylake架构更为先进 (D)将首先用于笔记本和移动领域

4. 15以内的正整数(包含15)互质的数共有多少对?(a,b)和(b,a)算同一对( )。 (A)71 (B)72 (C)73 (D)74

5. 给定序列a=(5,3,1,2,4),每次可以交换序列中的两个数,代价为这两个数的和。那么将a排序的最小代价是多少( )。

(A)18 (B)19 (C)17 (D)20

6. 一棵有根树中,每个非叶节点都有三个儿子,所有叶结点深度相同。若这棵树中存在一条最长的路径有9个结点,则这棵树共有多少结点( )。 (A)(3^5 - 1)/2 (B)3^5 (C)(3^6 - 1)/2 (D)3^6 7. 十进制数174转化成二进制是( )。

(A)10011110 (B)10010011 (C)10110000 (D)10101110 8. 已知A=True,B=False,C=True,下列逻辑表达式中值为真的是

(A)(A∨C)∧B (B)(A∧B)∨(B∧C) (C)(A∨C)∨(A∧(B∨¬C)) (D)(¬(A∧C))∨(B∧C) 9. 以下哪个顺序描述了一个编译器

(A)语法分析器,语义分析器,词法分析器,中间代码生成器,机器无关代码优化器,代码生成器,机器有关代码优化器

(B)语法分析器,语义分析器,词法分析器,中间代码生成器,机器有关代码优化器,代码生成器,机器无关代码优化器

(C)词法分析器,语法分析器,语义分析器,中间代码生成器,机器无关代码优化器,代码生成器,机器有关代码优化器

(D)词法分析器,语法分析器,语义分析器,中间代码生成器,机器有关代码优化器,代码生成器,机器无关代码优化器

10. 考虑所有只由0、1、2组成的字符串。在它们构成的集合之上定义一个布尔型函数P。现在告诉你: 1) P("01")=true。 2) 若P(x+"1")=true,则P(x+"12")=true。 3) 若P("0"+x)=true,则P("0"+x+x)=true。 4) 若P(x+"111"+y)=true,则P(x+"2"+y)=true。 5) 若P(x+"22"+y)=true,则P(x+y)=true。 以上,加号为字符串的连接,x和y代表任意由0、1、2组成的字符串。

以下命题必定为真的有: (A)P("111")=true (B)P("011112")=true

(C)P("012121")=true (D)P("02")=true

11. 以下哪个出栈序列不能由入栈序列(1,2,3,4,5)得到

(A)(1,2,3,4,5) (B)(5,4,3,2,1) (C)(2,4,1,3,5) (D)(2,5,4,3,1)

12. 下列最有可能会引起freepascal中201错误的是

(A)数组越界 (B)超时 (C)超空间 (D)代码长度太长

13. 请计算右图代码的时间复杂度

(A)O(n^2) (B)O(n) (C)O(1) (D)O(n^n)

14. 表达式 19 shr 1 的结果为 (A)9 (B)8 (C)10 (D)38

15. 在pascal表达式中,变量 a的初始值是24,变量b的初始值是5,变量 c的初

始值是3。下列哪个表达式的运算值和其他不一样

(A)sqrt(a+1) (B)trunc(a/b) (C)round(a/b) (D)c div a +b

16. 对于一组数{6、13、27、29、52、27、81},现要对其从小到大排序,采用纯粹的冒泡排序算法,需要两两比较次数是

(A)42 (B)21 (C)49 (D)2

17. 为了使用计算机对地铁入口的安保检查过程进行处理,最适合的数据结构为 (A)栈 (B)队列 (C)堆 (D)循环 18. 下列运算符中,运算结果一定是整型数的是

(A)+ (B)/ (C)div (D)and

19. 已知存放每个integer类型的变量需要用2字节,则数组a,b:array[1..10] of integer 需要的空间其字节数为 (A)40 (B)21 (C)20 (D)120 20. 设a:=”ningbooier”,从字符串变量a中提取”oier”的函数是

(A)copy(a,7,4) (B)copy(a,7,10) (C)length (a,7,4) (D)insert(a,4,7)

二.问题求解(每小题5分,共10分)

1. 在同一侧的房号为1、2、3、4的四间房里,分别住着来自韩国、法国、英国和德国的四位专家。

有一位记者前来采访他们, 1.韩国人说:“我的房号大于德国人,且我不会说外语,也无法和邻居交流”; 2.法国人说:“我会说德语,但我却无法和我的邻居交流”; 3.英国人说:“我会说韩语,但我只可以和我的一个邻居交流”; 4.德国人说:“我会说我们这四个国家的语言。”

按照房号从小到大排,房间里的人的国籍分别是:_______________________。 2. 黑白两种棋子共3000枚,分成1000堆,每堆3枚。其中只有1枚白子的共270堆,至少有2枚黑子的共420堆,有3枚白子的与3枚黑子的堆数相同。

问:白子共有 枚 三、阅读程序写结果(每题8分,共32分)

1. program nb2014_01; Var a, b, c, d, n : integer; begin

readln(n); a := n div 1000;

b := n div 100 mod 10; c := n div 10 mod 10; d := n mod 10;

writeln(d * 1000 + c * 100 + b * 10 + a); end.

输入:5340 输出:

2. program nb2014_02; Var a, b : longint; begin

readln(a,b);

while (a <> b) do begin

if (a > b) then a := a - b else b := b - a; end;

writeln(a); end.

输入:100 12 输出:

3. program nb2014_03; var

len, i, ans: integer; s, t : ansistring; flag : boolean; cn : longint; begin

readln(cn);

while(cn > 0) do begin

readln(s);

len := length(s);

for i := 1 to len do t := t + s[len-i+1]; flag := true;

for i := 1 to len-1 do

if(abs(ord(s[i+1])-ord(s[i])) <>

abs(ord(t[i+1])-ord(t[i]))) then

flag := false;

if (flag) then ans := ans + 1; cn := cn - 1; end;

writeln(ans); end.

输入: 5

acxz bcxz asdgqwe asdffe asde

输出:

4. program nb2014_04; const NN = 111111; var

a, pre, suf, st : array[0 .. NN] of integer; n, i, x, cnt, ans : integer;

function max(x, y : integer) : integer; begin

max := x;

if (x < y) then max := y; end; begin

readln(n);

for i := 1 to n do read(a[i]); cnt := 1; st[cnt] := n;

for i := n-1 downto 1 do begin

x := a[i];

while (cnt <> 0) and (x >= a[st[cnt]])

do dec(cnt);

suf[i] := st[cnt]; inc(cnt); st[cnt] := i; end; cnt := 1; st[cnt] := 1; for i := 2 to n do begin

x := a[i];

while (cnt <> 0) and (x >= a[st[cnt]])

do dec(cnt);

pre[i] := st[cnt]; cnt :=cnt+1; st[cnt] := i; end;

for i := 1 to n do

ans := max(ans, pre[i] * suf[i]); writeln(ans); end.

输入: 5

5 4 3 4 5

输出:

四.程序填空(前5空,每空2分,后6空,每空3分,共28分) 5.问题描述:给定一个字符串S和n个字符串T,输6.问题描述:给定一个序列a1,a2, ,an和一个数p,出在T中比S长度短的字符串的个数。具体可参考对于每一个询问(l,r),输出(al+al+1+ +ar) mod p,样例。 1<=n<=106,1<=ai<=10100,1<=p<=108,l<=r。 输入格式: 输入格式: 第一行:字符串S 第一行:n和p 第二行:n,表示共有n个字符串 接下来n行:每行一个数,分别表示a1,a2, ,an 接下来n行,每行为T中的一个字符串 接下来一行:m 输出格式: 接下来m行:每行两个数,分别为每次查询的l和

r 仅有一行,表示T中长度比S短的字符串个数。

输入样例: ACXX 3 ASDDDD AAA VV 输出样例:

2 程序清单:

5. program nb2014_05; Var s,t:ansistring; n,i,slen,tlen,ans:longint; begin readln(s); slen := ;

readln(n); ans := 0; for i:=1 to do

begin ;

tlen := length(t); if then ans := ans + 1; end; ;

end. 输出格式:输出共有m行,每个查询输出一个

结果。 输入样例: 3 4 23 12

13 1

1 3 输出样例: 0 程序清单: 6. program nb2014_06; Var i,ans,p,n,m,j,l,r:longint; a,pre:array[0..100000] of longint;

s:string;

begin readln(n,p); for i:=1 to n do

begin readln(s);

a[i]:=0; for j:=1 to do a[i]:=(a[i]*10+ ) mod p; end;

pre[0]:=0; for i:=1 to n do pre[i]:= ; readln(m); for i:=1 to m do begin ; ans:= ; ; writeln(ans); end; end.

2015年宁波市第30届中小学计算机程序设计竞赛初赛答案

(小学组 Pascal 语言 时间:120分钟)

一、 单项选择题(每题1.5分,共30分)

二、 问题求解(共2题,每题5分,共10分) 1. 2. 三、 阅读程序(共4题,每题8分,共32分)

1. 2. 3. 4.

四、 完善程序(前5空,每空2分,后6空每空3分,共28分)

1. length(s) 2. n 3. readln(t) 4. tlen<slen或slen>tlen 5. writeln(ans)或write(ans) 6. length(s) 7. ord(s[j])-ord(‘0’)或ord(s[j])-48 8. (pre[i-1]+a[i])mod p 9. read(l,r)或readln(l,r) 10. pre[r]-pre[l-1]或(pre[r]-pre[l-1]) mod p 11. ans:=ans+p

本文来源:https://www.bwwdw.com/article/8ywi.html

Top