不是VIP会员,不能显示答案,请在后台“我的信息” 在线升级 VIP

一.单项选择题(共20题,每题1.5分,共计30分,每题有且仅有一个正确答案)

1. 将二进制数10001转换成十进制,正确的是( )。

  • A.3
  • B.5
  • C.9
  • D.17

2. 某公司采用指纹识别进行日常考勤,员工只需在上下班时间刷一下指纹即可考勤。这种利用指纹设别身份的主要技术是( )。

  • A.图像识别
  • B.语音识别
  • C.虚拟现实
  • D.机器翻译

3. 网上阅卷,是通过网络对考生答卷的电子图像进行评阅的阅卷方式。下列设备中,最适合采集答卷图像的是( )。

  • A.显示器
  • B.扫描仪
  • C.打印机
  • D.投影机

4. 如图右所示的流程图,以下说法正确的是 ( )。

  • A.该流程图所表示的算法不具备可行性
  • B.程序运行结束,i的值是18
  • C.i←i+3执行的次数为1次
  • D.该算法的循环次数为6次

5. 在正常输入汉字文稿中,出现了连续输入大写英文字母,而 不能输入汉字的现象,最大可能是用户不小心按了一下( )键。

  • A.CapsLock
  • B.Shift
  • C.NumLock
  • D.Ctrl

6. 计算机网络中,主要用来将不同类型的网络连接起来是( )。

  • A.集线器
  • B.路由器
  • C.中继器
  • D.网络适配器

7. 算式(2017)16-(2017)10-(2017)8 的结果是( )。

  • A.(2017)8
  • B.(5150)10
  • C.(1427)16
  • D.(2017)10

8. 在ASCII码文件中一个英文字母占( )字节。

  • A.1
  • B.2
  • C.8
  • D.16

9. 在微型计算机中,中央处理器包括控制器和( )。

  • A.只读存储器
  • B.运算器
  • C.可读写存储器
  • D.存储器

10. 下列不属于计算机存储设备的是( )。

  • A.高速缓存
  • B.硬盘
  • C.文件资源管理器
  • D.U盘

11. 某用户购买了一部4G手机,其中“4G”指的是( )。

  • A.第4代移动通信技术
  • B.手机存储容量为4 GB
  • C.手机CPU主频为4GHz
  • D.手机上网带宽最大为4 G

12. 一个栈的入栈序列为1、2、3、4,这个栈的出栈序列不可能是( )。

  • A.1、 2、 3、 4
  • B.2、 3、 4、 1
  • C.4、 3、 2、 1
  • D.3、 4、 1、 2

13. 在Pascal语言中,表达式(23 or 2 xor 5)的值是( )。

  • A.18
  • B.1
  • C.23
  • D.32

14. 下图表示一个8X1像素的黑白BMP图像,如果用“0”、“1”分别表示黑、白像素,按照从左向右的次序对该图像信息用二进制进行编码,则表示该图像信息的二进制编码是

  • A.10101001
  • B.01011001
  • C.10100101
  • D.10010101

15. 冒泡法排序的算法如下:比较相邻的两个数据,若是逆序,交换两个数据的位置,否则比较下一对,直到将全部序列排好为止。若用冒泡法将数据3, 2, 6, 5按从小到大进厅排列,则需要进行数据比较的次数是( )。

  • A.4
  • B.5
  • C.6
  • D.7

16. 递归过程和函数调用时,处理参数和返回地址,通常使用一种称为( )的数据结构。

  • A.队列
  • B.多维数组
  • C.链表
  • D.栈

17. 对有序数组{5,13,19,21,37,56,64,75,88,92,100}进行二分査找,等概率情况下,查找成功平均查找长度(平均比较次数)是 ( )。

  • A.35/11
  • B.34/11
  • C.33/11
  • D.32/11

18. 把一个自然数N分成两个自然数之和(1+2与2+1看作是同一种分法),一共有多少种分法?

  • A.N/2 下取整
  • B.2N-1
  • C.2^(N+1)-1
  • D.2^n-1

19. 前缀表达式“+ 3 * 2 - 12 5 ”的值是 ( )。

  • A.11
  • B.27
  • C.17
  • D.37

20. 完全二叉树的顺序存储方案,是指将完全二叉树的结点从上到下、从左到右依次存放到一个顺序结构的数组中。假定根结点存放在数组的1号位置上,则第k号结点的父结点如果存在的话,应当存放在数组中的( )号位置。

  • A.2k
  • B.2k+l
  • C.k/2 下取整
  • D.(k+1)/2

二.阅读程序写结果 (共5题,每题8分,共计40分,小学生只做前4题,每题10分)

1.

Program ZX2017p1; 
var n,a,b,c: integer; 
begin
  readln(n); 
  a:=n mod 10; 
  b:=n div 10 mod 10; 
  c:=n div 100; 
  writeln (a, b, c); 
end.
输入:123
输出:321

2.

Program ZX2017p2;
var n, i,b:longint;
a:array[l.. 4] of longint;
begin
readln(n);
for i:=1 to n do
read (b);
if (b>=0) and (b<=18) then a[1]:=a[1]+1; 
if (b>=19) and (b<=35) then a[2]:=a[2]+1; 
if (b>=36) and (b<=60) then a[3]:=a[3]+1;
if (b>60) then a[4]:=a[4] + 1; 
end;
for i:=1 to 4 do
 writeln(a[i]/n*100:0:2,'%');
end
输入:
10
1 11 21 31 41 51 61 71 81 91
输出:20.00% 20.00% 20.00% 40.00%

3.

Program ZX2017p3;
  var n, num, i, b:longint;
  a:real;
  s, s1, s2:string; 
  begin
  readln(n); 
  for i:=1 to n do 
  begin 
  readln(s);
  s1 :=copy (s, 1, pos(' ',s)-1);
  delete(s,1, pos(' ',s));
  s2:=copy (s, 1, pos(' ',s)-1); 
  val(s2, a);
  delete(s, 1,pos(' ',s));
  val (s, b);
  if (a>=37.5)and(b=1) then 
  begin
  writeln(s1); 
  inc(num); 
  end; 
  end;
  writeln(num); 
end.
输入:
5
Zhang 38.3 0
Li 37.5 1
Wang 37.1 1
Zhao 39.0 1
Liu 38.2 1

输出:Li Zhao Liu 3

4.

Program ZX2017p4;
var a:array[2..6] of integer;
  i, j, m:integer; 
begin
  for i :=2 to 6 do 
    a[i]:=i+1; 
  repeat 
    m:=2;
    for i:=3 to 6 do
      if a[m]>a[i] then m:=i;
    a[m]:=a[m]+m; 
    m:=1;
    for i:=2 to 5 do 
      for j:=i+1 to 6 do
        if a[i]<a[j] then m:=0;
  until m<>0; 
  write(a[2]:6); 
end.

输出: 61

5.

(注:本题初中生做)
Program ZX2017p5;
Var i,n:integer;
  x,y:string; 
begin 
Repeat
  Readln(n);
Until (n>=2) and (n<=9); 
for i:= 1 TO n do 
begin
  x:=x+chr (48+i); 
  y:=chr(48+i)+y 
end;
FOR i:= 1 TO n do 
  begin
    writeln(copy (x, n-i+1, i), copy (y, 1, i)) 
  end 
end.
输入:4
输出:44 3443 234432 12344321

三.完善程序(每空2分,共计30分,小学生只做前2题,第一题第4空,第二题1,2空3分,其余每空2分)

1. 第1题:宁宁爱化学
宁宁很喜欢化学课。最近要做一个实验,他需要用到N化学物质。在实验的时候,他需要将所有化学物质主在桌面上,按次序排成一条直线。然而每一种化学物质都是危险品,对于第i个化学物质,如果有其它的化学化学物质与它的距离小于Ai,那么就会发生爆炸。
宁宁想知道要安全的完成他的实验,桌子最短可以多短。
【输入说明】
第1行 一个整数N,表示化学物质的个数;
第2行 有N个整数, 第i个整数Ai,表示第i个化学物质必须与其它化学物质保持的距离。
【输出说明】 ’
输出共一行一个整数, 表示能够让宁宁安全完成实验的桌子最小长度。
【样例输入】
表示;
3
3 1 2
【样例输出】
5
【程序清单】

var
  n,i:longint;
  ans:int64;
  a:array[1..1000005] of longint;
  function max(a,b:longint):longint;
  begin
    if a>b then exit(a);
           else exit(b);
  end;
  begin
    readln(n);
    for i:=1 to n do 
       read(a[i]);
    ans:=0;
    for i:=2 to n do
       ans:=ans+ max(a[i],a[i-1]) ;
    writeln(ans);
  end.

2. 第2题: 波波爱积木
波波有一款新式积木,每个积木上都有一个数,一天波波突发奇想,要是把所有的积木排成一排,所形成的数字串最大是多少呢?
不懂编程的波波找到了你,你的任务就是读入n个数字积木,求出所能形成的最大数。
【输入说明】
第i行是一个整数n(n≤1000),接下来n行每行是一个正整数。
【输出说明】
所能形成的最大整数。
【样例输入】
3
13
131
343
【祥例输出】
34313131
【程序清单】

const maxn=1005;
var a:array[0.. maxn] of string[205];
    n:longint; 
procedure init; 
  var i:longint; 
    begin
     readln(n);
     for i:=1 to n do readln(a[i]); 
    end;
procedure qsort(L, R:longint); 
  var i,j:longint; 
    mid:string; 
begin
   i:=L;j:=R;mid:=a[(L+R) div 2]; 
  repeat
    while (i<R)and( a[i]+mid>mid+a[i] ) do inc(i);
    while (j>L)and( a[j]+mid<mid+a[j] ) do dec(j);
    if  i<=j  then begin
    	a[0] :=a[i] ;a[i] :=a[j] ;a[j] :=a[0]; 
    	inc(i);
    	 dec(j)  ;
    end;
  until i>j;
  if i<R then qsort(i, R); 
  if j>L then qsort(L, j); 
end;
procedure print; 
var i:longint; 
  begin
   for i:=1 to n do write(a[i]); 
  end; 
begin 
  init;
   qsort(1,n);
  print;
end.

3. 试题3 (注:本题初中生做):海海爱研究
海海是个爱研究的孩子,最近他在研究这么一个问题:一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。如:
阵列
4 10
0234500067
1034560500
2045600671
0000000089
有4个细胞。
【输入说明】
第1行是两个整数m,n(m≤50,n≤80),接下来m行每行有n个数字。
【输出说明】
细胞数量。
【样例输入】
4 10
0234500067
1034560500
2045600671
0000000089
【样例输出】
4
【算法分析】
(1) 读入m*n矩阵阵列,将其转换为boolean矩阵存入bz数组中;
(2) 沿bz数组矩阵从上到下,从左到右,找到遇到的第一个细胞;
(3) 将细胞的位置入队h,并沿其上、下、左、右四个方向上的细胞位置入队,入队后的位置bz数组置为flase;
(4) 将h队的队头出队,沿其上、下、左、右四个方向上的细胞位置入队,入队后的位置bz数组置为flase;
(5) 重复4,直至h队空为止,则此时找出了一个细胞;
(6) 重复2,直至矩阵找不到细胞;
(7) 输出找到的细胞数。
【程序清单】

PROGRAM ZX2017P8;
const dx:array[1..4 of -1..1=(-1,0,1,0);
      dy:array[1..4 of -1..1=(0,1,0,-1);
var    	  
  s:string;
  pic:array[1..50,1..80] of integer;
  bz: array[1..50,1..80] of boolean; 
  m,n,i,j,num: integer;
  h:array[1..4000,1..2]of integer;
  procedure   doit(p,q:integer);
  var i,t,w,x,y:integer; 
  begin
    inc(num); 
    bz[p,q]:=false;
    t:= i; w:=1; h[1,1]:=p; h[1,2]:=q; 
    repeat
      for i :=1 to 4 do 
        begin
          x:=h[t,1]+dx[i];
	   y:=h[t,2]+dy[i];
          if (x>0) and (x<=m) and (y>0) and (y<=n) and bz[x,y] then 
          begin 
            inc(w); 
            h[w,1]:=x; 
            h[w,2]:=y;
             bz[x,y]:=false;
          end;
      end; 
      inc(t); 
    until t>w; 
  end;
  begin
  fillchar(bz,sizeof(bz),true); 
  num:=0; 
  readln(m,n); 
  for i :=1 to m do 
   begin
     readln(s) 
     for j:=l to n do 
       begin
         pic[i,j]:=ord(s[j]) - 48;
	 if pic[i,j]=0 then 
           bz[i,j]:=false;
       end;
   end;
  for i :=1 to m do 
    for j :=1 to n do
     if bz[i,j] then
  doit(i,j);
  writeln(num);
end.