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

一、选择一个正确答案代码( A/B/C/D) ,填入每题的括号内(每题 2分,共 20 分)

1. 十进制算米表达式 3*4+5*6+7*2+9 的运算结果,用二进制表示为()

  • A.1000001
  • B.1000010
  • C.1000011
  • D.1000100

2. 4KB 的内存能存储( )个汉字的机内码

  • A.1024
  • B.516
  • C.2048
  • D.218

3. 一个完整的计算机系统应包括( )。

  • A.系统软件和应用软件
  • B.硬件系统和软件系统
  • C.主机和外部设备
  • D.主机、键盘、显示器和辅助存储器

4. 计算绍兴市居民年用电费用的方法如下: 0.538x(x≤2760) 0.588x -138 (27604800) 其中 x 表示年用电量, y 表示年用电费用。算法流程图如下: 图中判断框①处应填入的是( ) 。

  • A.x ≤2760
  • B.x>2760
  • C.x ≤4800
  • D.x>4800

5. 小明为多个账户设置密码,下列方式相对安全的是( )

  • A.不同账户设置相词的密码,密码均设置为自己的生日
  • B.不同账户设置不同的密码,密码采用 8位数字形式
  • C.不同账户设置相同的密码,密码均设置为某个英语单词
  • D.不同账户设置不同的密码 , 密码釆用足够长度的字母和数字混合形式

6. 微型计算机内存储器地址是按( )编址的。

  • A.二进制位
  • B.字长
  • C.字节
  • D.微处理器的型号

7. office 中"剪贴板"是( )。

  • A.硬盘中的一块区域
  • B.内存中的一块区域
  • C.cache 中的一块区域
  • D.cpu 中的一块区域

8. 在解决计算机主机与打印机之间速度不匹配时通常设置一个打印数据缓冲区,主要将要输出打印的数据依次写入该缓冲区,而打印机从该缓冲区中取出数据打印。该缓冲区应该是一个( )结构。

  • A.堆栈
  • B.数组
  • C.线性表
  • D.队列

9. 4 个班长依次来图书室分书, 方法都是:将自己看到的书平分成 4份,多余 1本送还书库,拿走 1 份。问:最后那个班长至少看到了( )本书

  • A.78
  • B.104
  • C.105
  • D.5

10. 地面上有标号为 A、B、C的三根柱,在 A柱上放有 10 个直径相同中间有孔的圆盘,从上到下依次编号为 1,2,3,,将 A柱上的部分盘子经过 B柱移入 C柱,也可以在 B柱上暂存。如果 B柱上的操作记录为“进、进、出、进、进、出、出、进、进、出、进、出、出” 。那么,在 C柱上,从下到上的编号为( ) 。

  • A.243657
  • B.241257
  • C.243176
  • D.243675

二、根据要求回答问题(每小题 5 分,共 15分)

1. 下图中是一个堆放铅笔的 V形架,如果最上面层放了 50 支铅笔,则一共有_____支铅笔。
答案:1275

2. 已知公式: 则 fun(4)的值是:_____。
答案:46

3. 有黑白两种棋子共 300枚,分成 100堆,每堆 3枚。已知其中只有 1枚白子的共 27 堆, 至少有 2 枚黑子的共 42堆,有 3 枚白子的与 3枚黑子的堆数相同。那么白子共有_____枚。
答案:158

三、写运行结果(每小题 6分,共 30 分)

1.

program sx201601; 
var sum,max,i:longlnt; 
begin 
readln(max); 
sum:=0; 
for i:=1 to max do 
if i mod 2<>0 then 
 sum:=sum+i; 
writeln(sum); 
end. 
输入:200
输出:10000

2.

program sx201602;  
var i,j,n:integer; 
  b:array[1..10] of 0..2; 
begin
  n:=2016; j:=0; 
  while n>0 do begin
   j:=j+1; b[j]:=n mod 3; 
   n:=n div 3;
  end; 
  for i:=j downto 1 do write(b[i]); 
writeln; 
end. 

输出:2202200

3.

program sx201603;  
var a:array[0..8] of longint;
  ans,i,t,len:longint; 
  s:string;
begin
  readln(t);
  a[0]:=1;
  for i:=1 to 8 do
  a[i]:=a[i-1]*t; 
  readln(s);
  len:=length(s); 
  ans:=0;
  for i:=len downto 1 do
  if s[i]= ’0’ then ans:=ans+a[len-i];
  writeln(ans);
end. 
输入:5 
10010 

输出:151

4.

program sx201604; 
var a:array[1..6] of char;
  i:integer;
procedure swap(var x,y:char);
var temp:char;
begin
  temp:=x;  x:=y; y:=temp;
end;
begin
  for i:=1 to 6 do
  a[i]:=chr(i*2+ord( 'A' ));
  for i:=l to 3 do
   swap(a[i],a[7-i]);
  for i:=1 to 6 do write(a[i]);
end.
输出:MKIGEC

5.

program sx201605;
var ss:array [1..1000] of integer;
i,k: integer;
begin
  for i:=l to 20 do ss[i]:=i;
  ss[1]:=0;
  i:=2;
  while i<=20 do
  begin
    k:=i;
	while k+i<=20 do
	begin
	  k:=k+i;
	  ss[k]:=0;
	end;
	i:=i+1;
	while ss[i]=0 do i:=i+l;
  end;
  for i:=l to 20 do if ss[i]<>0 then write(ss[i], ' ' );
  writeln
end.
输出:2 3 5 7 11 13 17 19

四、完善程序 (第 1题 20分,第 2 题 15分,共 35分)

1. 统计子序列数
[问题描述]
现有一个长度为 n、互不相同的正整数序列, 请你求出该序列中所有递增和递减子序列的
数目。
例如:整数序列 (7, 4, 6, 9, 8, 3, 5, 2, 1 ) ,可以分为 (7, 4), (4, 6, 9 ), (9, 8, 3),(3, 5), (5, 2, 1)这些递增和递减子序列,即:子序列的数目为 5。
【程序清单】

program sx201606;
  var n,i,s:integer;
  d:array[l..100] of integer;
begin
  readln(n);
  for i:=1 to n do read( d[i] );
    s:= 1 ;
	for i:=2 to n-1 do
	  if  (d[i]-d[i-1] )* (d[i]-d[i+1]) >0 then inc(s) ;
   writeln(s);
end.

2. 合并石子
[ 问题描述 ]
今天课间的时候,小明同学在学校的操场上发现了 n 堆大小不一的小石子,小明决定将 它们合并成一堆 , 但现在小明思考着这样一个问题:如何消耗最少的体力,把这 n堆小石子合并成一堆?现已知合并所消耗的体力等于每次合并两堆小石子的重量之和 , 每次合并,他会把其中的两堆小右子合并到一起, n堆小石子经过 n-ii 合并之后就只剩一堆了。
比如,n=3时表示共有 3 堆每堆重量分别是么 2、1、9。一种合并方案是 2 和 9 合并,新堆重量是 11,耗费体力为 11;接着 11 与 1 合并新堆重量是 12,耗费体力为 12, 因此总消耗体力是 11+12=23。另一种方案是 12,新堆重量是 3,耗费体力为 3, 接着 3 和 9 合并,新堆重量是 12,耗费体力为 12,因此总消耗体力是 3+12=15。可以证明 这样合并就是最少耗费体 3 的方法。

var i, sum, n: integer;
  a:array[1..100]of integer;
procedure sort(x:integer);
var i, j, temp: integer ;
begin
    for i:= x  to  n-1 do
    for j:=n downto  i+1   do
        if  a[j]<a[j-1]  then
          begin
             temp:=a[j]; a[j] :=a[j-1]; a[j-1] :=temp;
          end ;
end;
begin
  readln(n);
  for i:=1 to n do read (a[i]);
  sum:=0;
  sort(1);
  for i:=1 to n-1 do
  begin
    a[i+1]:=a[i]+a[i+1];
	sum:= sum+a[i+1] ;
	 sort(i+1) ;
  end ;
  writeln(sum);
end.