第 33 届宁波市中小学生信息学能力水平展示小学组第一轮 pascal 试题 ( 说明 : 答案请填在答题卷上 考试时间 120 分钟, 满分 100 分 ) 一. 选择题 ( 每题 1.5 分, 共 30 分 每小题只有一个正确答案, 多选错选均不给分 ) 1 以下不属于计算机硬件的是( ) A. 显示器 B. 内存 C. 操作系统 D. 光盘驱动器 2 以下列扩展名结尾的文件, 是视频文件的是 ( ) A. app B. avi C. tif D. jpg 3 Pascal 表达式 123 div 5 mod 7 值是 ( ) A. 3 B. 4 C. 24 D. 25 4 计算机存储单位中,1 Byte =( )bit A. 4 B. 8 C. 16 D. 1024 5 彩色显示器所显示的五彩斑斓的颜色是由 ( ) 混合而成的 A. 红色 黄色 蓝色 B. 红色 绿色 蓝色 C. 红色 黄色 绿色 D. 绿色 黄色 蓝色 6 已知大写字母 A 的 ASCII 码在十六进制下为 41, 则大写字母 K 的 ASCII 码在十六进制 下为 ( ) A. 51 B. 4A C. 4B D. 75 7 表示与, 表示或, 已知 A=B=true,C=D=false, 下列逻辑表达式的结果为 false 的是 ( ) A. A B C D B. A (B C) D C. (A C) (B D) D. A (B C) D 8 选择排序的时间复杂度是 ( ) A. O(n) B. O(nlogn) C. O(n^2) D. O(n^n) 9 二进制数 1011010, 在十进制下是 ( ) A. 90 B. 180 C. 62 D. 84 10 如果一棵二叉树的先序遍历是 ACDBEFG, 中序遍历是 DCAEBFG, 那么它的后序遍历 是 ( ) A. DCAEGFB B. DCAEFGB C. DCEFGBA D. DCEGFBA 11 一棵满二叉树有 n 个非叶子结点, 那么这棵满二叉树叶子结点的个数是 ( ) A. n 1 B. n C. n 1 D. 2 n 第 1 页
12 一幅尺寸为 1920*1080 的图片, 其位深度为 24, 这个图片文件的大小约为 ( ) A. 5.9KB B. 47.5KB C. 5.9MB D. 47.5MB 13 中缀表达式 A B-(C+D) E 的后缀表达式是 ( ) A. AB CD+-E B. AB -CD+E C. AB CD+E - D. AB C+DE - 14 Windows 下, 将回收站中的文件还原时, 被还原的文件将回到 ( ) A. 被删除的位置 B. 我的文档 中 C. 指定位置 D. 桌面上 15 一个初始为空的栈, 已知 ABC 依次进栈, 则下列出栈序列中不可能出现的是 ( ) A. ABC B. CAB C.BAC D. ACB 16 算式 (101101) 2 +(12) 8 的结果是 ( ) A. (37) 16 B. (55) 8 C. (110110) 2 D. (45) 10 17 三个结点的不同二叉树的种类数是 ( ) A.1 B. 2 C. 3 D. 5 18 下面程序段中用到的程序结构有 ( ) sum:=0; for i:=1 to 10 do for j:=1 to 10 do sum:=sum+i+j; A. 顺序结构和分支结构 B. 分支结构和循环结构 C. 顺序结构和循环结构 D. 顺序结构 分支结构和循环结构 19 计算机病毒造成的主要危害是( ) A. 磁盘破坏 B. 计算机用户的感染 C.CPU 损坏 D. 程序和数据的破坏 20 计算机的存储器采用分级存储体系( 多级结构 ) 的主要目的是 ( ) A. 便于读写数据 B. 减小机箱的体积 C. 便于系统升级 D. 解决存储容量 价格和存取速度之间的矛盾 二. 问题求解 ( 每题 5 分, 共 10 分 ) 1 下图 5 6 的网格中, 共有多少个不同 ( 位置或大小不同 ) 的矩形 ( 包括正方形和长方形 )? 第 2 页
2 班上有 48 名学生, 在一节自习课上, 写完语文作业的有 28 人, 写完数学作业的有有 18 人, 语文数学作业都没写完的有 10 人 问写完语文作业但没写完数学作业的有多少人? 三. 阅读程序, 求程序运行输出结果 ( 每题 8 分, 共 32 分 ) 第 1 题 : a,b,c,d:integer; read(a,b); if a+b>25 then a:=a-5 else b:=b+5; c:=b-a; d:=a*b; writeln(d-c); 输入 :10 20 第 2 题 : x,k,n,i:longint; a:array[1..100] of longint; read(x,k); n:=0; while x>0 do n:=n+1; a[n]:=x mod k; x:=x div k; for i:=n downto 1 do write(a[i]); writeln; 输入 :2018 7 第 3 页
第 3 题 : n,m:longint; function f(n,m:longint):longint; if m<=1 then exit(n+m); if n>=m then f:=f(n-m+1,m)*2 else f:=f(m,n)*3; read(n,m); writeln(f(n,m)); 输入 :6 3 第 4 题 : n,m,i,j:longint; a,b:array[1..100] of longint; tmp:boolean; readln(n,m); for i:=1 to n do read(a[i]); for i:=1 to m do read(b[i]); for i:=1 to n-m+1 do tmp:=true; for j:=1 to m do if a[i+j-1]<>b[j] then tmp:=false; if tmp=true then 输入 : 8 2 writeln(i); 10 15 2 3 4 7 3 12 3 4 第 4 页
四. 完善程序 ( 每题的第一空 2 分, 其余每空 3 分, 共 28 分 ) 第 1 题 :( 最小公倍数 ) 输入 a b c, 输出 a b c 的最小公倍数 三个数的最小公倍数为同时能够整除这三个数的最小正整数 思路 : 先求出 a,b 的最小公倍数 d, 再用同样方法求出 c,d 的最小公倍数, 即为所要求的 a b c 的最小公倍数 请根据上面的描述, 完善如下程序 : a,b,c,d,i,j:longint; read(a,b,c); for i:=a downto 1 do if ( 1 ) and (b mod i=0) then d:=a div i*b; for j:=c downto 1 do if (c mod j=0) and ( 2 ) then writeln( 3 ); 4 ; break; 第 2 题 :( 回文平方数 ) 如果一个数从左往右读和从右往左读都是一样, 那么这个数就叫做 回文数 例如, 12321 就是一个回文数, 而 77778 就不是 当然, 回文数的首和尾都应是非零的, 因此 0220 就不是回文数 给定一个进制 k (2 k 20,k 由十进制表示 ), 找到正整数 n (1 n 1000,n 由十进 制表示 ), 使得 n 和 n 的平方在 k 进制下都是回文数, 输出所有满足要求的正整数 n 请根据上面的描述, 完善如下程序 : k,i:longint; a:array[1..100] of longint; function check(x:longint):boolean; n,i:longint; // n 用来记录 x 转换成 k 进制后的位数 bo:boolean; 第 5 页
// 将 x 转换成 k 进制存入到数组 a 中 n:=0; while x>0 do 1 ; a[n]:=x mod k; x:=x div k; // 判断存储在 a 中的 k 进制数是否回文 2 ; for i:=1 to n div 2 do if a[i]<> 3 then bo:=false; break; check:= 4 ; read(k); for i:=1 to 1000 do if check(i) and check( 5 ) then writeln( 6 ); 第 6 页