1、第二十二届全国青少年信息学奥林匹克联赛初赛 普及组 Pascal 语言试题 竞赛时间: 2016 年 10 月 22 日 14:30-16 :30 一、单项选择题(共 20 题,每题 1.5 分,共计 30 分) 1. 以下不是微软公司出品的软件是( ) A. Powerpoint B. Word C. Excel D. Acrobat Reader 2. 如果 256 种颜色用二进制编码来表示,至少需要( )位 A. 6 B.7 C.8 D.9 3.以下不属于无线通信技术的是( ) A. 蓝牙 B. WiFi C. GPRS D. 以太网 4. 以下不是 CPU 生产厂商的是( ) A. i
2、ntel B. AMD C. Microsoft D. IBM 5. 以下不是存储设备的是( ) A. 光盘 B. 磁盘 C. 固态硬盘 D. 鼠标 6. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照 CapsLock、字母键 A、字母键 S 和字母键 D 的顺序循环按键,即 CapLock、A、S、D、CapsLock、A、S、D 、 ,屏幕上输出的第 81 个字符是字母( ) A. A B. S C. D D.a 7. 二进制 00101100 和 00010101 的和是( ) A. 00101000 B. 01000001 C. 01000100 D. 00111000
3、8. 而二进制小数 0.1 相等的八进制是( ) A. 0.8 B. 0.4 C. 0.2 D. 0.1 9. 以下是 32 位机器和 64 位机器的区别的是( ) A. 显示器不同 B. 硬盘大小不同 C. 寻址空间不同 D. 输入法不同 10. 以下关于字符串的判定语句中正确的是( ) A. 字符串是一种特殊的线性表 B. 串的长度必须大于零 C. 字符串不可以用数组来表示 D. 空格字符组成的串就是空串 11. 一颗二叉树如右图所示,若采用顺序存储结构,即用一维数组元素 存储该二叉树中的结点(根结点的下标为 1,若某结点的下标为 i,则 其左孩子位于下标 2i 处,右孩子位于下标(2i+
4、1)处) ,则图中所有结 点的最大下标为( ) A. 6 B.10 C.12 D. 15 12. 若有如下程序段,其中 s、a、b、c 均已定义为整型变量,且 a、c 均已赋值(c 大于 0) . s := a; for b:=1 to c do s:=s+1; 则与上述程序段修改 s 值的功能等价的赋值语句是( ) A. s:=a+b B. s:=a+c; C. s:=s+c; D. s:=b+c; 13. 有以下程序: var k,n :longint; begin k:=4; n:=0; while nxn,则 L 是单峰的,并称 xi 是 L 的“峰顶” 。现在已知 L 是单峰的, 请
5、把 a-c 三行代码补全到算法中使得算法正确找到 L 的峰顶。 a. Search(k+1,n) b. Search(1,k-1) c. return Lk Search(1,n) 1. k := n/2 2. if Lk Lk-1 and Lk Lk+1 3. then _ 4. else if Lk Lk-1 and Lk max then max := tmp; if tmp0 do begin dec(i); x:=i mod 8; if x=1 then inc(y); end; writeln(y); end. 输出:_ 3、 var a: array16 of longint=(
6、1,2,3,4,5,6); pi,pj,t,i:longint; begin pi := 1; pj:=1 6; while pi=a) and (s1i=a) and (2i 2 then writeln() else writeln(=n)辆自 行车供人租用,租用第 j 辆自行车的价格为 Cj 元,每位同学可以使用自己携带的钱或者学 校的郊游经费,为了方便帐务管理,每位同学只能为自己租用自行车,且不会借钱给他人, 他们想知道最多有多少位同学能够租用到自行车(第四、五空 2.5 分,其余 3 分) 本题采用二分法,对于区间l,r,我们去中间点 min 并判断租用到自行车的人数能否达 到 mi
7、d,判断的过程是利用贪心算法实现的。 const maxn = 1000000; type arr = array1MAXN of longint; var n,B,A,l,r,ans,min,i:longint; M,C:arr; function check(nn:longint):boolean; var count,i,j:longint; begin count:=0; i:=_ _; j:=1; while i=n do begin if _ then inc(count,Cj-Mi); inc(i); inc(j); end; exit(_); end; procedure so
8、rt(var a:arr; l:longint; r:longint); var i,j,x,y:longint; begin i:=l; j:=r; x:=a(l+r) div 2; while i= j do begin while ai x do dec(j); if i=j then begin y:=ai;ai:=aj;aj:=y; inc(i); dec(j); end; end; if ir then sort(a,i,r); if lj then sort(a,l,j); end; begin read(n,B,A); for i:=1 to n do read(Mi); for i:=1 to B do read(Ci); sort(M,1,n); sort(C,1,B); l:=0; r:=n; while lr do begin min := (l+r) div 2; if _ then begin ans:=mid; l:=mid+1; end else r:=_; end; writeln(ans); end.