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

一 、选择题 (每个选择项1分,多选无分,共20分)

1. 在微型计算机中, 应用最普遍的字符编码是( )

  • A.BCD码
  • B.ASCII码
  • C.汉字编码
  • D.补码

2. 下面是关于操作系统的四条简单叙述, 其中正确的一条为( )

  • A.操作系统是软件和硬件的接口
  • B.操作系统是源程序和目标程序的接口
  • C. 操作系统是外设与主机之间的接口
  • D. 操作系统是用户和计算机之间的接口

3. 以下是计算机存储容量大小的比较,正确的式子是( )

  • A.100B>1KB
  • B.1GB<1KB
  • C.0.25KB>100B
  • D.900MB=90GB

4. 最接近机器指令的计算机语言是:

  • A.LOGO
  • B. BASIC
  • C. 汇编语言
  • D. COBOL

5. 一个汉字占用两个字节,等于( )二进制位。

  • A.4位
  • B.8位
  • C.16位
  • D.32位

6. 下列说法中正确的是( ) 。

  • A.计算机体积越大,其功能就越强
  • B.CPU的主频越高,其运行速度越快
  • C.两个显示器屏幕大小相同,则它们的分辨率必定相同
  • D.点阵打印机的针数越多,则能打印的汉字字体越多

7. 在下列几种存储器中,访问速度最快的是( )。

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

8. 微型计算机中,型号PII/366/128M中各参数分别表示( )。

  • A.CPU型号、主频、硬盘容量
  • B.主板型号、主频、内存
  • C.CPU型号、主频、内存
  • D.CPU型号、内存、主频

9. 电脑病毒与生物病毒的最大区分点在于( )。

  • A.自衍性
  • B.出错性
  • C.危害性
  • D.传染性

10. 一个计算机系统要通过电话线上网,则必须配备( )。

  • A.视频卡
  • B.鼠标
  • C.声卡
  • D.调制解调器

11. 因特网采用的网络通信协议称为( )协议。

  • A.IPX
  • B.以太网
  • C.TCP/IP
  • D.令牌

12. 资源管理器的目录前图标中增加“+”号,这个符号的意思是( ) 。

  • A.该目录下的子目录已经展开
  • B.该目录下还有子目录未展开
  • C.该目录下没有子目录
  • D.该目录为空目录

13. 以下关于邮件“附件”的叙述,不正确的是( )。

  • A.各种类型的文件都能作为“附件”传送。
  • B.在同一个电子邮件中可以添加多个“附件”。
  • C.在邮件中添加“附件”后,邮件编辑窗口会增加一个“附件”框。
  • D.只有“文本”文件可以作为附件。

14. 计算机网络技术包含的两个主要技术是计算机技术和( )。

  • A.微电子技术
  • B.通信技术
  • C.数据处理技术
  • D.自动化技术

15. 下列描述中,正确的是( )。

  • A.1MB=1000B
  • B.1MB=1000KB
  • C.1MB=1024B
  • D.1MB=1024KB

16. 下列叙述中,正确的一条是( )。

  • A.键盘上的F1~F12功能键,在不同的软件下其作用是一样的
  • B.计算机内部,数据采用二进制表示,而程序则用字符表示
  • C.计算机汉字字模的作用是供屏幕显示和打印输出
  • D.微型计算机主机箱内的所有部件均由大规模、超大规模集成电路构成

17. 执行下列二进制数算术加运算10101010+00101010其结果是( )。

  • A.11010100
  • B.11010010
  • C.10101010
  • D.00101010

18. 下列各种数制的数中,最小的数是( )。

  • A.(101100)2
  • B.(54)8
  • C.(44)10
  • D.(2A)16

19. 若一台计算机的字长为4个字节,这意味着它( )。

  • A.能处理的数值最大为4位十进制数9999
  • B.能处理的字符串最多为4个英文字母组成
  • C.在CPU中作为一个整体加以传送处理的代码为32位
  • D.在CPU中运行的结果最大为2的32次方

20. 与十六进制数(AB)等值的二进数是( )。

  • A.10101010
  • B.10101011
  • C.10111010
  • D.10111011

二、根据题意,将以下程序补充完成(每空5分,共80分)

1. [问题1]:考虑由1到n(n<=9)按递增顺序排成的序列12345…n,在他们之间加入加号、减号和空格,分别使它们作加法、减法和将数字合并。然后求出结果,看看你是否得到零。程序找出所有长度为n的结果为零的序列。
程序如下:

ar n:vord
    a:array[1..9]of byte;                     
procedure init;                                
begin
  write(‘enter n:’);
  readln(n);
  a[n]:=1;
 end;
  procedure print;     
  const s:array[1..3]of string=(‘+’,‘ ’,‘-’);
  var i:word;
  begin
    for i:=1 to n-1 do
       write(i,s[a[i]]);
      writeln(n,’=0’);
     end;
  procedure judge;     
  var i,ch:integer;
       result,term:longint;
  begin
    result:=0; 
        ch:=1;
    term:=1;
  for i:=1 to n do
    case a[i] of
     1,3:begin result:=result+(2-ch)*term;
                ch:=a[i];  
                term:=i+1;
          end;                           
     2:term:=term*10+i+1;                            
     end;
      if result=0 then print;
  end;

  procedure find(k:word);      
  var i:word;
  begin
    if k=n then judge
    else
    for i:=1 to 3 do
    begin
     a[k]:=i
      find(k+1);
    end;
   end;
   begin
    init;                                                     
    find(1);                                            
  end.

2. [问题2]:整数n的阶乘写作n !,它是从l到n的所有整数的乘积。阶乘增长的速度很快:13!在大多数计算机上不能用32位的整数来存放。70!已经超出多数浮点类型的范围。你的任务是找出n!最右边的非零位。例如,5!=1*2*3*4*5=120,所以5!的最右非零位为2,同样,7!=1* 2*3*4*5*6* 7=5040,所以7!的最右非零位为4。
输入:一个在1~1000的整数n。
输出:n !的最右非零位。
程序如下:

const max=250;             
var a:array[1..max+1]of word;                     
    n:word;
procedure init;  
begin
  write(‘enter n:’);
  readln(n);
  fillchar(a,sizeof(a),0);
  a[1]:=1;
end;

procedure calc;                                
var i,j;word;
begin
  for i:=2 to n do 或for i:=1 to n do
   begin
     for j:=1 to max do 
      a[j]:=a[j]*i;
     for j:=1 to max do
      begin
       inc(a[j+1],a[j]div 10);
       a[j]:=a[j]mod 10;     
      end;
     end;
   end;

procedure print; 
var i:word;
begin
  i:=j;
   while a[i]=0 do
     inc(i); 
  writeln(a[i]);
end;
begin
  init;       
  calc;      
  print; 
 end.

3. [问题3]:考虑在0和1之间的所有分母不大于N的最简分数。下面是N=5时的情况:
0/1 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5 l/1
程序对于一个给定的整数N(1<=N<=100),按从小到大的顺序打印出这些
分数。还应打印出它们的总数。在每个分数后面打印一个制表符,使他们在显示的时
候一行不会很长。
要求:当N<1或N>100时,程序应判错。
举例:

enter the maximum demominator:5
0/1  1/5  1/4  1/3  2/5  1/2  3/5  2/3  3/4  4/5  l/1
there are 11 fractions.
程序如下:
type denominator=array[1..2] of byte; 
var a: array[1..10000] of denominator;  
    n,num:word;   
procedure init;   
begin
 repeat
  write(‘enter the maximum denominator:’);
  readln(n);
 if not(n in[1..100]) then writeln(‘input error!);
 until n in [1..100]; 
num:=0;
end;

procedure calc;    
var i,j;word;
    mid:denominator;  
procedure add(x,y:word); 
var k:word;
begin
 for k:=2 to y do
   if(x mod k=0)and(y mod k=0)then exit; 
inc(num);
a[num,1]:=x;
 a[num,2]:=y; 
end;

begin
  for i:=2 to n do
   for j:=1 to i-1 do  
add(i,j); 
  for i:=1 to num do
  for j:i+1 to num do
  { if(a[i,1]*a[j,2]<a[i,2]*a[j,1])then 或if (a[i,2]/a[i,1]>a[j,2]/a[j,1]) then }
     begin
       mid:=a[i];
        a[i]:=a[j];
       a[j]:=mid;
end;          
end;

procedure print;   
var i:word;
begin
  write(‘0/1’,#9);                              
 for i:=1 to num do
    write(a[i,2],’/’,a[i,1],#9); 	
writeln(‘1/1’,#9);
writeln(‘there were’,num+2,’fractions.’);
end;

begin
  init;                                        
  calc;                                      
  print;                
end.