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

一、选择题:(选出每题正确的一个答案代码,填在横线上,每题1分,共20分)

1. 将实型变量b中的小数部分取出来赋给变量a时,下列正确的表达式是( )。

  • A.a:=round(b)
  • B.a:=int(b)
  • C.a:=b-trunc(b)
  • D.a:=trunc(b)

2. 与(10010.101)2对应的十进制数是( )。

  • A.39.75
  • B.18.625
  • C.34.625
  • D.18.75

3. 对有18个元素的有序表作二分(折半)查找,要查找的数其实是在A[3]中,那么查到该数的比较序列的下标为( )。

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

4. 表达式4+3 MOD 8*3的运算结果为( )。

  • A.13
  • B.16
  • C.19
  • D.21

5. 已知堆栈中连续存放有5个数,即依次将1,3,5,7,9放入一个堆栈中,然后将这些数出栈,它的出栈顺序是( )。

  • A.3 5 7 9 1
  • B.1 3 5 7 9
  • C.9 7 5 3 1
  • D.1 9 3 7 5

6. 对于以下的程序段,关系表达式pice[t1]>pice[t2]被计算的次数是( )。 for t1:=1 to 6 do for t2:=t1+1 to 7 do if pice[t1]>pice[t2] then begin w:=pice[t1];pice[t1]:=pice[t2];pice[t2]:=w end;

  • A. 20
  • B.42
  • C.21
  • D.13

7. 下列表达式运算结果为真的是( )。

  • A. Ord(‘a’)+ord(‘Z’)
  • B.( 3>5) or ( 7>4) and ( 10>=5)
  • C.(a>=b) and (a
  • D.copy(‘ABCE’,2,3)> ‘BCE ’

8. 数组value中连续存放15个数,采用顺序查找法查找一个数的平均比较次数是( )。

  • A.16
  • B.7.5
  • C.8
  • D.15

9. 一个程序中有如下的函数说明: function fn(n:integer):integer; begin f:=f(n-1)+2; end; 假设f(1)=0,则f(100)的值为( )。

  • A.200
  • B.98
  • C.101
  • D.198

10. 执行过程 val(‘12.53’,a ,b)后b的值为( )

  • A.12.53
  • B.1
  • C.0
  • D.5

11. 要随机产生一系列5~20范围内的整数,可用的表达式是( )。

  • A.trunc(5+15*random)
  • B.16+trunc(5*random)
  • C.5+trunc(15*random)
  • D.5+trunc(16*random)

12. 在字符串‘xiaoxue’中 ,以x为首字符,长度不小于2的不同子串的个数是(   )。

  • A.2
  • B.4
  • C.8
  • D.10

13. 下列关于Pascal中字符串的叙述,正确的是 ( )。

  • A.字符串中不能包含数字字符
  • B.引用字符串中的字符时,不能使用下标变量
  • C.字符串不是一种数据类型
  • D.字符串是一种压缩型的字符数组

14. 在长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n)时,需要从前向后依次前移( )个元素。

  • A.n-i
  • B.n-i+1
  • C.n-i-1
  • D.i

15. 要将字符变量ch中的字符转换为可计算的数字,正式的表达式是( )。

  • A.ord(ch)-48
  • B.ord(ch)-47
  • C.asc(ch)-48
  • D.chr(ch)

16. 十进制数127转换成十六进制数是( )。

  • A.F7
  • B.7F
  • C.E7
  • D.715

17. 将一组数1,3,5,7,9依次存放入数组P的1,2,3,4,5号元素中,则P[p[p[2]]-1]的值是( )。

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

18. 英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为( )。

  • A.50
  • B.66
  • C.52
  • D.68

19. 要判断一个字符变量ch中的值是不是数字字符,可用如下的逻辑表达式表示( )。

  • A.ch in [‘0’..‘9’]
  • B.ch in [0..9]
  • C.ord(ch)>=48
  • D.asc(ch)>48 and asc(ch)<50

20. 已知每个integer、real和char类型的数分别需要用2、4和1个字节的空间存放,则以下程序的说明需要在内存中开辟多少字节的空间?( )。 var nl:array [1..50,1..2] of integer; tz:real; xm:array [3..10] of char;

  • A.212
  • B.112
  • C.220
  • D.136

二、基础填空题:(将正确的答案填在横线上,第1~2题每小题4分,第3~4题每小题5分,共18分)

1. 一个口袋内装有5个小球另一个口袋内装有4个小球,所有这些小球的颜色各不相同,现从两个口袋内各取一个小球,有_______种不同的取法。
答案:20

2. 假设有一组数,以下列的形式存放在A数组中: 1 3 4 5 5 6 2 2 6 4 6 3 3 4 8 6 2 6 6 6 3 2 3 2 5 2 1 5 3 4 如果这一数组的最小下标为(1,1),即第一个下标变量为A[1,1],若已知:X=2,Y=3,Z=1,则A[A[Y,4]-1 ,A[X+Z,Y+Z]])的值为_______。
答案:4

3. 班主任为他们班准备了一些球类体育器材。他打算:为每两位同学准备一个乒乓球,为每三位同学准备一个足球,为每四位同学准备一个篮球,共买了52个球。问他们班共有______位同学。
答案:48

4. 有6个人在一个水龙头前排队接水,他们的编号为1至6号,假如每个人接水的时间分别为15、26、10、30、8、11(单位:秒),请按排一个排队队列,使得n个人的平均等待时间最小。(平均等待时间:指每个人等待的时间之和的平均值。) 这个队列是: _____________________(以编号给出队列)
答案:5 3 6 1 2 4

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

1.

program ex1;
Var i,s,max:integer;
   A:array[1..10] of integer;
 Begin
  For i:=1 to 10 do read(a[i]);
  Max:=a[1]; s:=a[1];
  For  i:=2 to 10 do
     Begin
       If  s<0 then s:=0;
       s:=s+a[i];
       If s>max then max:=s;
     End;
   Writeln(‘max=’,max);
End.
输入:-1 16 24 6 7 8 –18  -6  15  34

输出:max=86

2.

program ex2;
Var a,n,m:integer;
Begin
 Readln(n,m);
 If n>m then a:=m+1 else a:= n+1;
 Repeat
    a := a-1;
 Until (m mod a=0) and (n mod a=0);
writeln(a);
End.
输入: 45  36 

输出:9

3.

Program ex3;
 Var s,n:integer;
funtion pp(n:integer):integer;
Begin
 If n=1 then pp:=1
   Else pp:=n*n+pp(n-1);
End;
Begin
Readln(n);
S:=pp(n);
Writeln(‘s=’,s);
End.
输入:10

输出:s=385

4.

program ex4;
var n,t1: longint;
procedure sub1(x:longint; var t:integer);           
begin                                               
repeat
    t:=t+x mod 10;  x:=x div 10;
 until x=0
end;
begin							                     
readln(n);
 sub1(n,t1);
 write(t1);	                 
end.
输入:48375

输出:27

5.

program ex5;
 var  s:string;
 k,I,len,g:integer;
a:array[1..300]of integer;
begin
  readln(s);
len:=length(s); a[len] :=0;
For I:=1 to len-1 do 
begin  	k:=i+1;
while(k<=len)and(s[k]<>s[i]) do inc(k);
a[i]:=k-i-1;
end;
  for I:=1 to len do 
if a[i]>0 then write(a[I]:3);
   writeln;
end.
输入:CDCABBADBB
输出: 1 5 7 2 2 3 2

四、完善程序(每空2分,共32分)

1. 求两个数的最大公约数和最小公倍数。
输入样例: 12 15
输出样例: Yueshu=3
Beishu=60

Var m,n,i,s,t:longint;
Begin
   Readln(n,m);
   If  n<m    then begin t:=n; n:=m; m:=t; end;
       i:=1 ;      
s:=m*i;
 While    s mod n<>0      do
  Begin
         inc(i) ; 
     S:=m*i;
  End;
          writeln('Yueshu=',m*n div s)  ;           
Writeln(‘Beishu=’, s);
End.

2. 已知faibonacci数列的前几个数分别为0,1,1,2,3,5,8,……,编程输出此数列的前n(n>=2)项。(每行输出五项,每项场宽为6)。
输入样例: 10
输出样例:
0 1 1 2 3
5 8 13 21 34

Var  n,p1,p2,t,f:integer;
Begin
  Readln(n);
  P1:=0; p2:=1; t:=2;
  Write(0:6,1:6);
  While    t<>n     do
   Begin
     If    t mod 5=0    then writeln;
           f:=p1+p2;      
Write( f:6 );
    inc(t)       
p1:=p2; 
     p2:=f     ;
   End;
 End.

3. 有A,B,C,D,E五位候选人参加班长竞选,全班同学投票,得票最高者将被选为班长。已知全班人数不超过60人,现要设计一个计票程序,计算各位候选人的得票数,并输出班长的编号。
输入样例:ABAD*CBACBB
(被选编号序列,废票用*表示)
输出样例:B (被选出的班长编号)

Var ps:array[‘A’..‘E’] of integer;
ms,k,rs:integer;
Phs:string;
Bz,C:char;
Begin
  Readln(phs);
  Rs:=length(phs);
  For c:=‘A’to ‘E’do    ps[c]:=0     ;
  For k:=1 to rs do
If phs[k] in     ['A'..'E']    then
  Ps[phs[k]]:=    ps[phs[k]]+1     ;
    ms   :=0;
  For c:=‘A’to ‘E’ do
If     ps[c]>ms    then
 begin
   ms:=ps[c];bz:=    c    
 end;
  writeln(bz)
end.