1986年程序员水平考试试题
发表于:2007-05-26来源:作者:点击数:
标签:
试题 1 (15%) 阅读下列形成 4*5 矩阵 A 的流程图 (a)和形成 5*4 矩阵 B 的流程图 (b), 把应该填入其中的1-12处的字的句, 写在答卷的对应栏内. 矩阵 A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 矩阵 B 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
试题 1 (15%)
阅读下列形成 4*5 矩阵 A 的流程图 (a)和形成 5*4 矩阵 B 的流程图 (b),
把应该填入其中的1-12处的字的句, 写在答卷的对应栏内.
矩阵 A
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
矩阵 B
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
试题 2 (15%)
阅读下列 pascal 程序, 把应该填入________处的字句写在答卷的对应栏里.
[程序说明]
本程序在输入给定数 n 后,打印出所有不超过 n 的, 其平方为回文的数.
回文指的的是字符串两端的字符左右对称. 例如 1, 22, 121, 121, 4224 等均
是回文.
[程序]
program palindrome(input,output);
const max=1000;
var n,m,i,j,s,:integer;
d:array [1..max] of integer;
begin
read(n);
for m:=1 to n do
begin
______________ ;
j:=0;
while ________ do
begin j:=j+1;
d[j]:=s mod 10;
______________;
end;
i:=1;
while (d
=d[j]) and _________ do
begin i:=i+1; j:=j-1;
end;
if __________ then writeln(m)
end
end.
试题 3 (20%)
[程序说明]
本程序将仓库文件的前 100 个记录按仓库编号上升顺序分类. 其余记录的的
顺序不变.
一个记录物品代码(deptcode), 仓库编号(stockno)和单价(price)三部分组
成.
假定分类好的 100 个记录仍放回原文件的前头, 代替原来的 100 个记录.
[程序]
program sort (stockfile,f,input,output);
const max=100;
type stockrecord=record deptcode:char;*
stockno:integer;
price:real
end
stock=array [1..max] of stockrecord;
var stocklist : stock;
f,stockfile : file of stock;
i,posnsmallest,next,next : integer;
begin reset (stockfile); rewrite(f);
while not eof(stockfile) do
begin f^:=stockfile^;; put(f); get(stockfile)
end;
reset(stockfile);
stocklist:==________________;
for i:=1 to max-1 do
begin posnsmall:=i;
for next:=________ to max do
if _____________________________<stocklist[posnsmall].stokno
then posnsmall:=_______;
temp:=stocklist;
stocklist:=____________________________________;
________________________________:temp;;
end;
rewrite(stockfile); stockfile^:=_____________;
put(_________);
_____________; get(f);
while not eof(f) do
begin stockfile^:=f^;
put(stockfile); get(f)
end;
rewrite(f);
end.
试题 4 (25%)
[程序说明]
本程序输入字符串长度(不为0)的字符串的所有排列. 例如,
输入长度为 3 的字符ABC时, 打印出 ABC ACB BAC BCA CAB CBA
当输入的字符串的长大于 10 时, 取前 10 个字符.
[程序]
program anagram(input,output);
var i,length:integer;
letter,newword:array[1..10] of char;
used:array[1..10] of boolean;
procedure permute(countdown:integer);
var j:integer;
begin
if countdown=___
then begin
for i:=______ downto __ do write(newword);
writeln
end
else begin
for j:=1 to _________ do
begin if not used[j]
then begin
used[j]:=ture;
newword[countdown]:=letter[j];
_____________________________;
__________:=false
end
end
end
end;(*permute*)
begin
writeln('please type in----->);
read(length);
if __________ then length:= 10;
for i:=1 to length do
begin
used:=false; read(letter)
end
permute(length)
end.
原文转自:http://www.ltesting.net