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

一、选择题:(每题2分,共40分)

1. 在微型计算机的汉字系统中,一个汉字内码所占的字节数是( )。

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

2. 软盘加上写保护后,这时对它可进行的操作是( )。

  • A.只能读盘,不能写盘
  • B.既可读盘,又可写盘
  • C.只能写盘,不能读盘
  • D.不能读盘,也不能写盘

3. 下列存储设备中,断电后其中的信息会消失的是( )。

  • A.硬盘
  • B.ROM
  • C.RAM
  • D.U盘

4. pascal语言中运算(-13) MOD (-2)的结果是( )。

  • A.1
  • B.-1
  • C.0
  • D.-2

5. 数组A有10个下标变量,各个下标变量的赋值情形如下所示,则表达式A[A[A[5]]]的值是( )。

  • A.10
  • B.5
  • C.6
  • D.2

6. 1GB= ( )KB 。

  • A.1000
  • B.1024
  • C.1024×1024
  • D.1000×1000

7. 下面有关计算机病毒的说法,错误的是( )。

  • A.为防止病毒感染计算机,使用软盘时,将软盘写保护
  • B.计算机的病毒不仅能损坏文件,还可能造成电脑主板等硬件的损坏
  • C.上网的电脑有可能会感染病毒
  • D.计算机病毒也是程序

8. 下列存储器中,存取速度最快的是( )。

  • A.软盘
  • B.内存
  • C.光盘
  • D.硬盘

9. 在Windows 中,能通过输入“?a*.?”命令查找到的文件是( )。

  • A.pascal.c
  • B.ppa.1
  • C.pa1wer.cc
  • D.dhdtfgpa1.cc

10. 下列各种说法中,正确的是( )。

  • A.所有的十进制小数都能准确地转换为有限位二进制小数
  • B.汉字的计算机机内码就是区位码
  • C.存储器具有记忆能力,其中的信息任何时候都不会丢失
  • D.计算机中所有信息都采用二进制编码

11. 算式(4095)10-(7FF)16+(3000)8的结果不正确的是( )。

  • A.(3584)10
  • B.(111000000000)2
  • C.(17000)8
  • D.(E00)16

12. 下列函数值是整型的是( )。

  • A.chr(23)
  • B.ord(false)
  • C.succ(false)
  • D.odd(98)

13. 把整数5转换为字符’5’的表达式是( )。

  • A.Ord(5+chr(‘0’))
  • B.ord(5+chr(0))
  • C. chr(5+ord(‘0’))
  • D.chr(5+ord(0))

14. 以下标准数据类型中,不能作为for循环控制变量的是( )。

  • A.integer型;
  • B.real型;
  • C.boolean型;
  • D.char型

15. 在E-MAIL系统中,用于接收邮件的服务器称为( )服务器。

  • A.POP3
  • B.SMTP
  • C.DNS
  • D.FTP

16. 衡量网络上数据传输速率的单位是bps,其含义是( )。

  • A.数据每秒传送多少二进制位;
  • B.数据每秒传送多少字节;
  • C.数据每秒传送多少公里;
  • D.数据每秒传送多少千公里。

17. 下列各项中不属于系统软件的是( )。

  • A.Windows
  • B.Word
  • C.Free Pascal
  • D.DOS

18. 下列计算机设备中,不是输出设备的是( )。

  • A.显示器
  • B.音箱
  • C.打印机
  • D.扫描仪

19. 有一个容量大小为4的栈,元素A、B、C、D按照A、B、C、D的次序依次入栈,且每个元素在出栈后不得再重新入栈,如果入栈和出栈的操作序列为:入栈-入栈-出栈-入栈-出栈-出栈-入栈-出栈,问元素A将是第几个出栈的?( )

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

20. 在线性表的两种存储表示中,下列描述正确的是( )。

  • A.数组利于插入,不利于查找
  • B.链表利于查找,不利于插入
  • C.数组利于查找,不利于插入
  • D.数组与链表中的插入与查找效率差不多

二、阅读pascal程序并写出运行结果(每题6分,共18分)

1.

第1题:请写出程序运行后变量sum的值(6分)
program xx07_1;
const maxn=1000000;
var n,k,sum:longint;
    f:array[1..maxn] of 0..1;
begin
   readln(n);
   for k:=1 to n do f[k]:=1;
   for k:=1 to n div 2 do f[k*2]:=0;
   for k:=1 to n div 3 do f[k*3]:=0;
   sum:=0;
   for k:=1 to n do sum:=sum+f[k];
   writeln('sum=',sum);
end.
输入:1000
输出:sum=333

2.

第2题:请写出程序运行后变量ok的值(每空3分)
program xx07_2;
var s:string;
    k,n:integer;ok:boolean;
begin
   readln(s);n:=length(s);
   k:=1;ok:=true;
   while ok and (k<=n div 2) do
      if s[k]<>s[n+1-k] then ok:=false
      else k:=k+1;
   writeln(ok);
end.
①输入:123,输出为:_______ 
②输入:121,输出为:_______
输出:FALSE|TRUE

3.

第3题:请写出程序运行后变量sum的值(6分)
program xx07_3;
const maxn=1000;
var pos,value:array[1..maxn]of longint;
    n,i,j,x,sum:longint;
    change:boolean;
begin
   read(n);
   for i:=1 to n do read(pos[i],value[i]);
   change:=true;i:=1;
   while change and (i<=n-1) do begin
      change:=false;
      for j:=1 to n-i do
         if value[j]>value[j+1] then begin
            change:=true;
            x:=value[j];value[j]:=value[j+1];value[j+1]:=x;
         end;
      i:=i+1;
   end;
   sum:=0;
   for i:=1 to n do sum:=sum+pos[i]*value[i];
   writeln('sum=',sum);
end.
输入:
10
1  10
2  1
3  2
4  9
5  3
6  4
7  8
8  5
9  6
10  7 


输出为:sum=_______ 
输出:385

三、简答题(第1题6分,第2题8分,共14分)

1. 第1题:河的二岸(A岸、B岸)各有15个码头,它们距上游某城市的距离如下表所示,且A岸的一个码头只与B岸的一个码头(即表中上下对应的二个)有航线,在保证不出现航线交叉的情况下,问: (1) 最多能同时开通几条航线?(3分) (2) 能达到(1)中最多航线条数的不同通航方案共有几种?(3分)
答案:8|2

2. 第2题:有一堆火柴共若干根,现由甲乙两人轮流从中拿取。规定:除最先轮到取火柴者,其第一次可以拿走任意数目的火柴(但不能拿完,也不能不拿)外,接下来轮到者,每次至少要拿走一根,但至多只可拿走上次对方所取火柴数目的两倍,并约定:最先将火柴取光者为胜者。问: (1) 若原先这堆火柴的根数不少于2根,但最多不多于9根,问:共有哪些情况能确保最先轮到取火柴者必胜?(写出相应的原先这堆火柴的根数)(4分) (2) 若原先这堆火柴的根数不少于10根,但最多不多于23根,问:有哪些情况使最先轮到取火柴者必败?(写出相应的原先这堆火柴的根数)(4分)
答案:4、6、7、9|除12,18根外

四、完善程序(第一大题12分,第二大题16分,共28分)

1. 第1题:完全数(每空3分,共12分)
如果一个正整数的所有小于它本身的因子之和等于该正整数,则该正整数称为完全数。比如6=1+2+3,于是6称为完全数;28=1+2+4+7+14,28也是完全数。
以下程序输入一个数n,输出1至n中的完全数的个数。请完善该程序。
program xx07_5;
var n,i,count:longint;

function WanQuanShu(k:longint):longint;
var i,sum:longint;
begin
   _____sum:=0______;
   for i:=1 to k div 2 do
if ____k mod i=0___ then 
sum:=sum+i;
   if sum=k then 
WanQuanShu:=__1___
   else
      WanQuanShu:=__0___;
end;

begin
   readln(n);
   count:=0;
   for i:=1 to n do
      count:=count+wanquanshu(i);
   writeln(count);
end.

2. 第2题:石子划分(每空4分,共16分)
给出n堆石子,以及每堆石子数。请将它们分为两堆,使得这两堆的总石子数差最小。输入n,以及每堆石子数,输出分为两堆后的最小差值。比如,n=4,四堆石子分别有13,6,8,14颗,则可以分为13+8和14+6的两堆,它们的最小差为1。
以下程序:(1)求得所有石子数total,以及它的一半half;
(2)在所有石子堆中作适当选择,对每种选择方案,求不超过half的已选中堆中的石子总数的最大值max。所求即为(total-max)-max。
(3)以a[j]表示第j堆石子数;以b[j]表示第j堆石子是否被选中,如果b[j]=1,表示第j堆被选中,如果b[j]=0表示第j堆没有被选中。
(4)各种方案的表达及次序如下:以00…00(均不选中),00..01(只选中第n堆石子),00..10(只选中第n-1堆石子),00…11(选中第n-1堆和第n堆石子),00…100(选中第n-2堆石子),00…101(选中第n-2堆和第n堆石子),11…11(选中所有n堆石子)。
请完善该程序。

program xx07_6;
const maxn=20;
var n,i,j:longint;
    total,half,sum,max:longint;
    a:array[1..maxn] of longint;
    b:array[0..maxn]of 0..1;
begin
   readln(n);
   total:=0;
   for i:=1 to n do begin
      read(a[i]);
      total:=total+a[i];
   end;
   half:=total div 2;
   max:=0;
   for i:=1 to n do b[i]:=0;
   i:=n;
   while i>0 do begin
      sum:=0;
      for j:=1 to n do
         sum:=______sum+a[j]*b[j]_______;
      if ________(sum<=half) and (sum>max)_________ then
         max:=sum;
      i:=n;
      while (i>0) and (b[i]=1) do
         i:=___i-1____;
      if i>0 then begin
         b[i]:=____1____;
         for j:=i+1 to n do b[j]:=0;
      end;
   end;
   writeln(total-max-max);
end.