文档视界 最新最全的文档下载
当前位置:文档视界 › 1999年9月 全国计算机等级考试二级笔试试卷基础部分和Pascal语言程序设计

1999年9月 全国计算机等级考试二级笔试试卷基础部分和Pascal语言程序设计

1999年9月 全国计算机等级考试二级笔试试卷基础部分和Pascal语言程序设计

99年9月 全国计算机等级考试二级笔试试题 基础部分和PASCAL语言程序设计
(考试时间120分钟,满分100分)

一、选择题((1)——(40)每个选项1分,(41)——(50)每个选项2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)十进制数1385转换成十六进制数为
A)568 B)569 C)D85 D)D55
(2)下列叙述中正确的是
A)计算机病毒只能传染给可执行文件
B)计算机软件是指存储在软盘中的程序
C)计算机每次启动的过程之所以相同,是因为RAM 中的所有信息在关机后不会丢失
D)硬盘虽然装在主机箱内,但它属于外存
(3)一个字长的二进制数是
A)8 B)16 C)32 D)随计算机系统而不同的
(4)CPU主要由运算器与控制器组成,下列说法中正确的是
A)运算器主要负责分析指令,并根据指令要求作相应的运算
B)运算器主要完成对数据的运算,包括算术运算和逻辑运算
C)控制器主要负责分析指令,并根据指令要求作相应的运算
D)控制器直接控制计算机系统的输入与输出操作
(5)下列叙述中正确的是
A)将数学信号变换成便于在模拟通信线路中传输的信号称为调制
B)以原封不动的形式将来自终端的信息送入通信线路称为调制解调
C)在计算机网络中,一种传输介质不能传送多路信号
D)在计算机局域网中,只能共享软件资源,而不能共享硬件资源
(6)各种网络传输介质
A)具有相同的传输速率和相同的传输距离
B)具有不同的传输速率和不同的传输距离
C)具有相同的传输速率和不同的传输距离
D)具有不同的传输速率和相同的传输距离
(7)多媒体计算机系统的两大组成部分是
A)多媒体功能卡和多媒体主机
B)多媒体通信软件和多媒体开发工具
C)多媒体输入设备和多媒体输出设备
D)多媒体计算机硬件系统和多媒体计算机软件系统
(8)按通信距离划分,计算机网络可以分为局域网和广域网。下列网络中属于局域网的是
A)Internet B)CERNET C)Novell D)CHINANET
(9)在Windows中,启动应用程序的正确方法是
A)用鼠标双击该应用图标
B)将该应用程序窗口最小分成图标
C)将该应用程序窗口还原
D)将鼠标指向该应用程序窗口
(10)在Windows中,终止应用程序执行的正确方法是
A)用鼠标双击应用程序窗口左上角的控制菜单框
B)将应用程序窗口最小化成图标
C)用鼠标双击应用程序窗口右上角的还原按钮
D)用鼠标双击应用程序窗口中的标题栏
(11)DOS控制键CtrlAltDel的功能为
A)删除一个字符并退格
B)暂停标准输出设备的输出
C)热启动
D)终止当前操作
(12)设当

前盘为C盘,为了将A盘当前目录中所有扩展名为。PAS的文件改成扩展名为。P,应使用的DOS命令为
A)REN A:*。PAS A:*。P B)REN A:*。PAS *。P
C)REN A:。PAS A:。P D)REN A:。PAS .P
(13)设当前盘为C盘,其根目录下有两个子目录D1和D2,且当前目录为D1,若要进入子目录D2,正确的DOS命令为
A)CD D2 B)CD D2、C)CD 、D2 D)CD D1、D2
(14)设当前盘为A盘,要将B盘当前目录下的两个文件A.TXT与X.TXT 连接后以文件名Y.TXT存放到A盘的当前目录中,正确的DOS命令为
A)COPY A.TXTX.TXT A:Y.TXT B)COPY B:A.TXTX.TXT A:Y.TXT
C)COPY B:A.TXTB:X.TXT 》Y.TXT D)COPY B:A.TXTB:X.TXT Y.TXT
(15)下列DOS命令中正确的是
A)REN 、USER、A.TXT 、B.TXT
B)CD 、
C)TYPE *。TXT
D)MD 、
(16)根据函数Trunc(x)和Round(x)的定义,可用Trunc(x)来表示Round(x),正确的表示方法是
A)Round(x)=Trunc(x0.5)
B)Round(x)=Trunc(x——0.5)
C)Round(x)={Trunc(x0.5)x》=0
Trunc(x——0.5)x《0
D)Round(x)={Trunc(x——0.5)x》=0
Trunc(x0.5)x《0
(17)y既不在——2到——1的范围内又不在1到2的范围内,其正确的表达式是
A)(Abs(y)《1)AND (Abs(y)》2)B)(Abs(y)《1)OR (Abs(y)》2)
C)(1《2)AND (——2《——1)D)NOT(1《2)OR NOT (——2《——1)
(18)有下列程序
PROGRAM print(Input,Output);
VAR ch1,ch2,ch3:Char;
BEGIN
Readln(ch1);
Readln(ch2,ch2);
Readln(ch3,ch3,ch3);
Writeln(ch1,ch2,ch3)
END.
若运行时输入
red
yellow
blue
则正确的输出是
A)ryb B)reu C)rdl D)blu
(19)表达式8 MOD (2*(5——3*(46*(5 DIV 2))DIV 10))的值是
A)0 B)1 C)2 D)3
(20)Integer是
A)保留字B)标准标识符C)用户定义的标识符D)类型定义
(21)假设a1,a2,a3是布尔变量,且值均为True,则下列表达式中值为False的是
A)NOT a1 AND NOT a2 B)a1 OR a2 AND a3
C)(NOT a1 OR a2)AND (a2 OR a3)D)False OR a1 AND a2 OR NOT a3
(22)已知ch是字符变量,下列赋值语句中正确的是
A)ch:='7'B)ch:=7 C)ch:='——7'D)ch:=——'7'
(23)下列中正确的过程说明和调用是
A)PROCEDURE proc1(a:Char;VAR b:Char);B)PROCEDURE proc2(a,b:Integer);
BEGIN BEGIN
 b:=Chr(Ord(a)1);……
procl:=b END;
END;BEGIN {主程序}
……
proc2(3.5,1);
……
END.
C)PROCEDURE proc3(a:Real;VAR b:Real);D)PROCEDURE proc4(c,d:Integer);
BEGIN BEGIN
……
END;END;
BEGIN {主程序}BEGIN {主程序}
……a:=1;
x:=1;b:=2;
y:=2;proc4(a,b)
proc3(xy,x——y);END.
……
END.
(24)下面程序中的过程proc的参数表没有给出
PROGRAM exam(Output);
VAR a,b:Integer;
PROCEDURE proc(……);
BEGIN
c:=ab;
d:=a——b
END;
BEGIN
a:=1;
b:=2;
proc(a,b);
Writeln(a:2,',',b:2)
END.
则过程proc中的参数表取下列哪种形式,程序的输出是1,2
A)c:Integer;VAR d:Integer B)VAR c:Integer;d:Integer
C)c,d:Integer D)VAR c,d:Integer
(25)一个记录的

域标识符不可以与下列哪项相同?
A)常量标识符B)函数名
C)此域标识符所属记录的记录名D)同层域标识符
(26)下列各程序段中正确的是
A)TYPE tocp=^Char;B)TYPE torp=^Real;
VAR charp:tocp;VAR rp:torp;
BEGIN BEGIN
New(charp);New(rp);
IF charp^》10 THEN Writeln('Watch out');rp^:=NIL;
……
END.END.
C)TYPE tocp=^Char;D)TYPE toip=^Integer;
VAR cp:tocp;VAR ip1,ip2:toip;
BEGIN BEGIN
New(cp);New(ip1);
cp:=NIL;New(ip2);
cp^:='x';ip1^:=5;
……ip1=ip2;
END.……
END.
(27)下列说法不正确的是
A)几个指针可以指向同一个动态变量。
B)p和q分别是指向实型变量和整型变量的指针,值NIL赋给了p,那么它还可以赋给q。
C)设p、q是指向整型变量的指针,若已执行了下面的语句:
New(p);
q:=p;
p^:=5;
Dispose(q);
那么这时仍可以访问p^。
D)指针变量可以通过赋值语句改变其值。
(28)下面关于文件变量的叙述中哪个是错误的
A)不能用赋值语句给文件变量赋值
B)若以文件变量作为子程序的形式参数,则只能作为变参,不能作为值参
C)文件变量的类型只能是文件类型
D)文件变量可以作为函数的返回值
(29)要编写并执行一个Pascal程序,一般的步骤是
A)①用编辑软件编写源程序
②用Pascal的编译程序把源程序转换为目标程序
③用连接程序把目标程序转换为可执行程序
④运行可执行程序
B)①用编辑软件编写源程序
②修改,调试源程序
③用Pascal的编译程序把源程序转换为可执行程序
④运行可执行程序
C)①用编辑软件编写源程序
②有连接程序把源程序转换为可执行程序
③试运行可执行程序
④修改后再运行可执行程序
D)①用编辑软件编写源程序
②有连接程序把源程序转换为目标程序
③用Pascal的编译程序把目标程序转换为可执行程序
④运行可执行程序
(30)下面是对实型常量的形式定义,其中±表示是正号或负号,a表示整数部分,b 表示小数部分,E表示以10为底数的指数,则下面对实型量描述正确的是
A)±。b B)±E6 C)±IE5 D)±a.bE±0.5
(31)不能作为子界类型的基类型的是
A)实数类型B)枚举类型C)字符类型D)布尔类型
(32)下列语句对数组num进行说明,其中不正确的是
A)VAR num:ARRAY[Boolean]OF Boolean;
B)VAR num:ARRAY[10,10]OF Boolean;
C)VAR num:ARRAY[0.。8]OF ARRAY[5.。10]OF Integer;
D)VAR num:ARRAY[——1.。5,'a'……'e']OF Real;
(33)下面哪个关于指针类型的叙述是错误的
A)指针类型可以作为数组的基类型
B)指针类型可以作为集合的基类型
C)指针类型可以作为函数返回值的类型
D)指针类型可以作为函数的形式参数的类型
(34)设有说明VAR p,q:^Integer;
j,k:^Char;
n:Integer;
则下列语句正确的是
A)n:=p^;B)p

:=n;C)p^:=j^;D)p:=2*q1;
(35)已知有说明VAR a,b,c:Integer;键盘输入变量a的值域为[0,5],则下面正确的CASE语句是
A)Readln(a);
CASE a OF
0,1,2:Writeln('a*a=',Spr(a));
3:b:=Spr(a)——a;
Writeln('c=',c);
4,5:Writeln('aa=',aa)
END;
B)Readln(a);
CASE a OF
0,1,2:Writeln('a*a=',Spr(a));
3:Writeln('a*a——a=',Spr(a)——a);
1,4,5:Writeln('aa=',aa)
END;
C)Readln(a);
CASE a OF
0,1,2:Writeln('a*a=',Spr(a));
3:BEGIN
b:=Spr(a)——a;
Writeln('c=',c);
END;
4,5:Writeln('aa=',aa)
END;
D)Readln(a);
CASE Sqr(a)/a OF
0,1,2:Writeln('a*a=',Sqr(a));
3:BEGIN
b:=Sqr(a)——a;
Writeln('c=',c);
END;
4,5:Writeln('aa=',aa)
END;
(36)设有说明VAR x,y:(d,c,b,a);
执行下面3条语句后的输出是
x:=a;
y:=c;
Writeln(Ord(y)——Ord(x));
A)1 B)——2 C)2 D)3
(37)要使语句IF a IN b THEN 《语句》;无语法错误,a,b的类型应该是
A)a是集合类型,b的类型与a的基类型相同
B)b是集合类型,a的类型与b的基类型相同
C)a和b都是集合类型
D)a,b中的任何一个都可以是集合类型,另一个则是此集合的基类型
(38)设a,b是整型变量且已赋值,函数首部为FUNCTION func(VAR a:Integer):Integer;
下面正确的函数调用是
A)b:=func(func(b));B)Writeln(func(ab));
C)Writeln(Ord(func(b)));D)b:=func(Succ(func(b)));
(39)设a为集合变量,下面哪一组中的两个表达式的值是不同的
A)aa——a和a——aa B)aa*a和a
C)(aa)*a和a D)a——a*a和(aa)*a——a
(40)设有说明如下:TYPE rec=RECORD
a,b:Integer
END;
ft=FILE OF rec;
VAR f:ft;
s:rec;
ft类型文件abc.dat中有一条rec型记录,要取出记录中的两个整数并输出,应使用的程序段是
A)Assign(f,'abc.dat');B)Assign(f,'abc.dat');
Reset(f);Reset(f);
Read(f,s.a,s.b);Readln(f,s);
Close(f);Close(f);
Writeln(s.a,s.b);Writeln(s.a,s.b);
C)Assign(f,'abc.dat');D)Assign(f,'abc.dat');
Reset(f);Reset(f);
Readln(f,s.a,s.b);Read(f,s);
Close(f);Close(f);
Writeln(s.a,s.b);Writeln(s.a,s.b);
(41)设集合x=[2,4,6,8],y=[2,3,4,5,6],下面能使a=[]的赋值语句是
A)a:=x——y[8]B)a:=(xx)*(x——y)
C)a:=x*y——x D)a:=(y——x)——(x——y)
(42)有程序:
PROGRAM prog(Input,Output);
VAR a,b:Integer;
PROCEDURE p(VAR x:Integer;y:Integer);
BEGIN
x:xy
END;
BEGIN
a:=5;b:=10;
p(a,b);
p(a,a MOD b);
Writeln(a,',',b)
END.
则运行结果为
A)10,10 B)20,20 C)10,20 D)20,10
(43)有下列程序:
PROGRAM exam2(Input,Output);
VAR i:Integer;
FUNCTION ss(n:Integer):Boolean;
VAR i:Integer;b:Boolean;
BEGIN
i:=3;b:=True;
WHILE(i《=Trunc(Sqrt(n)))AND b DO
BEGIN
IF n MOD i=0 THEN b:=False;
i:=i2
END;
ss:=b


END;
BEGIN
i:=3;
WHILE i《=100 DO
BEGIN
IF ss(i)AND ss(i4)AND ss(i10)THEN
Writeln(i);
i:=i2
END
END.
则程序的功能是
A)找出100以内的全部质数(即素数)。
B)找出100以内质数的个数。
C)找出100以内满足i,i4,i10都是质数的i的个数。
D)找出100以内满足i,i4,i10都是质数的所有整数i。
(44)设有说明
VAR a,b,c:Integer;
FUNCTION ff(x,y,z,j:Integer;VAR a:integer):Integer;
VAR i:Integer;
BEGIN
ff:=0;a:=j;
FOR i:=a TO 3 DO
BEGIN
ff:=(z——y)DIV x;
x:=x1
END;
END;
执行语句c:=ff(ff(2,4,16,1,a),6,8,3,b)后变量c,a,b的值分别是
A)0,1,1 B)0,3,1 C)0,3,3 D)0,1,3
(45)下面哪个类型说明是错误的?
A)TYPE rec1=RECORD B)TYPE rec2=RECORD
a:Integer;a:Integer;
CASE flag:'A'……'C'OF CASE flag:'X'……'Z'OF
'A':(x:Char);'X':(x:Char);
'B':(y:Char);'Y':(y:Char);
'C':(z:Char);'Z':(z:Char);
END;END;
C)TYPE rec3=RECORD D)TYPE rec4=RECORD
a:Integer;x:Integer;
CASE flag:'A'……'C'OF CASE flag:'X'……'Z'OF
'A':(a:Char);'X':(a:Char);
'B':(b:Char);'Y':(b:Char);
'C':(c:Char);'Z':(c:Char);
END;END;
(46)设有类型和变量说明如下:
TYPE t1=RECORD
a,b:Integer;
END;
t2=RECORD
a:Char;b:t1
END;
VAR x:t2;
下面哪组语句有错误?
A)x.a:='A';B)WITH x,b DO
x.b.a:=1;BEGIN
x.b.b:=2;a:='A';b:=5
END;
C)WITH x DO D)x.a:='C';
BEGIN WITH x,b DO
WITH b DO BEGIN
BEGIN a:=1;b:=2;
a:=1;b:=2 END;
END;
a:='C'
END;
(47)设n是整型变量,阅读下面的程序段
Readln(n);
REPEAT
IF n MOD 2=0 THEN
n:=n1
ELSE
n:=n2
UNTIL n=1000;
关于输入数据的正确描述是
A)只有输入的n是偶数时才会出现死循环
B)只有输入的n是奇数时才会出现死循环
C)只有输入的n大于或等于1000时才会出现死循环
D)输入任何数时都会出现死循环
(48)下面程序的输出是
PROGAM bs23(Output);
VAR a:ARRAY[1.。10]OF Char;
k:Integer;ch:Char;
BEGIN
FOR k:=1 TO 10 DO
a[k]:=Chr(Ord('A')k);
FOR k:=1 TO 10 DO
BEGIN
ch:=a[k];
a[k]:a[11——k];
a[11——k]:=ch;
END;
FOR k:=1 TO 10 DO
Write(a[k]);
Writeln
END.
A)ABCDEFGHIJ B)BCDEFGHIJK C)JIHGFEDCBA D)KJIHGFEDCB
(49)设文件file2.dat中是一行若干个大写字母(没有行结束符),请阅读下面的程序
PROGRAM bs24(Input,Output);
VAR f1,f2:Text;
ch:Char;j:Integer;
s:SET OF 'A'……'Z';
BEGIN
s:=[];
Assign(f1,'file2.dat');
Assign(f2,'out2.dat');
Reset(f1);
Rewrite(f2);
WHILE NOT Eof(f1)DO
BEGIN
Read(f1,ch);
s:=s[ch]
END;
FOR ch:='A'TO 'Z'DO
IF ch IN s THEN
Write(f2,ch);
Close(f1);
close(f2)
END.
此程序的功能是
A)把file2.dat中不重复的字母写入文件out2.dat(即只保留出现一次的字母)


B)把file2.dat中重复出现的字母写入文件out2.dat(即只保留出现多次的字母)。
C)把file2.dat中重复出现的字母中多余的字母滤去后,写入文件out2.dat(即若有多个字母相同,则只 保留一个)
D)把file2.dat中的所有字母写入文件out2.dat。
(50)设有说明CONST n=10;
TYPE arr=ARRAY[1.。n]OF Integer;
要求函数func从数组a中查找一个等于x的数并返回此数的下标,如果a中没有此数,则返回0,下面哪个函 数不能完全正确地实现上述功能。
A)FUNCTION func(a:arr;x:Integer):Integer;
VAR found:Boolean;k:Integer;
BEGIN
found:=False;k:=1;
WHILE (k《=n)AND NOT found DO
IF x=a[k]THEN
found:=True
ELSE
k:=k1;
IF found THEN
func:=k
ELSE
func:=0
END;
B)FUNCTION func(a:arr;x:integer):Integer;
VAR found:Boolean;k:Integer
BEGIN
k:=0;
REPEAT
k:=k1;
found:=x=a[k]
UNTIL(k=n)OR found;
IF found THEN
func:=k
ELSE
func:=0
END;
C)FUNCTION func(a:arr;x:Integer):Integer;
VAR k:Integer;
BEGIN
k:=1;
WHILE (k《=n)AND (x《》a[k])DO
k:=k1;
IF k》n THEN
func:=0
ELSE
func:=k
END;
D)FUNCION func(a:arr;x:Integer):Integer;
VAR k:Integer;
BEGIN
k:=0;
REPEAT
k:=k1
UNTIL(a[k]=x)OR (k=n);
IF k》n THEN
func:=0
ELSE
func:=k
END;
二、填空题(每空2分,共40分)
 请将每一个空的正确答案写在答题卡___1___至___20___序号的横线上,答在试卷上不得分。
(1)DOS命令分为内部命令与外部命令,PATH命令是___1___命令。
(2)设当前盘为A盘,当前目录为、X、Y,A盘上的一个文件QR.C 在当前目录下的子目录W中。现已将A盘的当前目录改为、D、XY,当前盘改为C盘,如果需指定A盘上的该文件应写成___2___。
(3)为了得到XCOPY命令的在线帮助,可使用的DOS命令之一为___3___。
(4)在DOS系统下,代表键盘与显示器的设备文件名为___4___。
(5)在DOS系统下,可以直接执行的文件的扩展名除。EXE外,还有两个是___5___。
(6)设有说明TYPE
list=^node;
node=RECORD
data:Char;
next:list;
END;
下面过程letterlist的功能是:对输入的一串字母(限定为小写字母),按输入顺序建立一个字母链表(当输入的是非小写字母时停止建表)。
PROGCEURE letterlist(VAR head:list);
VAR
h,p:list;
ch:Char;
BEGIN
head:=NIL;
Read(ch);
WHILE ch IN ['a'……'z']DO
BEGIN
___6___;
p^。data:=ch;
___7___:=NIL;
IF head=NIL
THEN head:=p
ELSE___8___:=p;
h:=p;
Read(ch);
END;
Readln;
h^。next:=NIL
END;
(7)过程pl计算并输出两个四位整数m和n的乘积,乘积分别放在两个整型变量hi和lo中,hi存放乘积的高4位数,lo存放乘积的低4位数。
例如,m=4567,n=5678,则计算结果为4567*5678=25931426,乘积的前4位数2593存入hi,乘积的后4位数1426存入lo。

PROCEDURE pl(m,n:Ineger;VAR hi,lo:Integer);
VAR i:Integer;
BEGIN
i:=n;hi:=0;___9___;
REPEAT
i:=i——1;lo:=lom;
IF lo 》=10000 THEN
BEGIN
lo:=lo——___10___;
___11___;
END;
UNTIL___12___;
Write(hi:4,',',lo:4);
END;
(8)一个数如果正好等于其因子之和,就称其为“完数”。例如6的因子是1,2,3,并且6=123,所以6是一个“完数”。下面的程序可以输出2──n之间的所有完数之和。其中n为2~1000之间的任意整数。请将程序填写完全。
PROGRAM bs1(Output);
VAR a,n,s:Integer;
FUNCTION func(n:Integer):Boolean;
VAR s,k:Integer;
BEGIN
s:=0;
FOR k:=1 TO __13___DO
IF n MOD k=0 THEN
s:=___14___;
IF ___15___ THEN
func:=True
ELSE
func:=False
END;
BEGIN
s:=0;Readln(n);
FOR a:=2 TO n DO
IF func(___16___)THEN
s:=sa;
Writeln(s)
END.
(9)下列程序是用筛法生成从2到100之间的所有质数。请将程序填写完全。
PROGRAM p9(Output);
CONST n=100;
VAR next,j,count:Integer;
sieve,primes:SET OF 2.。n;
BEGIN
j:=2;
sieve:=[j];
REPEAT
j:=j1;
sieve:=___17___
UNTIL j》=n;
primes:=[];
next:=___18___;
count:=0;
REPEAT
WHILE NOT (next IN sieve)DO
next:=Succ(next);
primes:=___19___;
Write(next:1,'');
count:=count1;
IF count MOD 5=0 THEN Writeln;
j:=next;
WHILE j《=n DO
BEGIN
sieve:=sieve——[j];
j:=___20___
END
UNTIL sieve=[]
END.









相关文档
相关文档 最新文档