历年计算机软考程序设计模拟试题及答案.docx
《历年计算机软考程序设计模拟试题及答案.docx》由会员分享,可在线阅读,更多相关《历年计算机软考程序设计模拟试题及答案.docx(9页珍藏版)》请在冰豆网上搜索。
历年计算机软考程序设计模拟试题及答案
历年计算机软考程序设计模拟试题及答案
A.Program
B.prog#2
C.2ndone
D.prog2
2.在ASCII码字符集中,字符”A”的序数是65,字符”B”的序数是66。
变量A=”B”,则ord(”A”)和ord(A)的值分别是(
)
A.65和65
B.65和B
C.65和66
D.A和66
3.假设要通过read语句分别给变量a和b赋值5和7,数据键入的挨次是:
57。
则(
)的格式是正确的(表示空格)
A.read(ab)
B.read(b,a)
C.read(ab)
D.read(a,b)
4.下面程序段当x的值为9.95时,下面语句输出的内容是(
)
ifx>7.5then
begin
x:
=90.0;
writeln(”xis”,x:
4:
2)
end
elsex:
=25.0;
writeln(”xis”,x:
3:
1);
A.xis90.00
B.xis90.00xis90.0
C.xis90.00xis25.0
D.xis25.0
5.下面各程序段中,()能在一行中输出五个”*”
A.I:
=0;
repeat
write(”*”);
I:
=I+1
untilI=5
B.I:
=0;
repleat
write(”*”)
untilI=5
C.I:
=0;
repeat
write(”*”);
I:
=I-1
untilI=5
D.I:
=0;
repeat
writeln(”*”)
I:
=I+2
untilI=5
6.函数的结果类型可以是()
A.数组类型和简洁类型
B.记录类型和简洁类型
C.文件类型和简洁类型
D.指针类型和简洁类型
7.设定义和说明如下:
TYPECOLORTYPE=(READ,BLUE,YELLOW,WHITE,BLACK);
PERSON=(MAN,WOMAN);
VARCOLOR:
COLORTYPE;
STUDENT:
PERSON;
以下()语句是不正确的
A.FORCOLOR:
=REDTOBLACKDOwrite(”MAN”);
B.WHILECOLOR=BLACKDOwrite(”MAN”);
C.IFCOLORYELLOWTHENWRITE('YES');
D.IFWOMAN>REDTHENWRITE(”NO”);
8.若有定义:
TYPEAR=ARRAY[-2..2,-1..2]OFREAL;它表示AR类型是具有(
)的二维数组
A.4行5列
B.4行3列
C.3行4列
D.5行4列
9.动态变量的撤消必需使用标准过程()
A.NOTNEW(P)
B.DELETE(P)
C.DISPOSE(P)
D.ERASE(P)
10.记录变量进展赋值运算时,要求这两个记录变量类型(
)
A.一样
B.相容
C.全都
D.赋值相容
二、填空题(每空1分,共15分)
1.程序的功能模块设计是指程序模块应当根据程序执行的功能来划分。
这种程序模块应具有简洁性、___________和完整性。
2.在PASCAL中,四种标准类型是:
整型,实型,___________和布尔类型。
3.表达式odd(succ(pred(5)))的值为___________。
4.表达式5*2div4*4的值为___________。
5.下面程序段的输出结果是___________。
ifsucc(6)=pred(4)thenwriteln(”red”)
elseifpred(7)=succ(5)thenwriteln(”yellow”)
elsewriteln(”blue”);
6.设ch为字符型变量,则条件(ch'x')and(ch”y”)and(ch'z')用集合表示___________。
7.标准PASCAL规定,FOR语句执行完毕后,其循环控制变量的值___________。
8.设有以下说明:
vara,b,c:
integer;
则下面程序段的输出是___________。
a:
=5;b:
=8;c:
=1;
whileb-a>cdo
begin
a:
=b-a;b:
=b-a
end;
writeln(b);
9.下面程序的输出结果是___________。
programpp(output);
constm=10;n=5;
varx,y:
integer;
procedurep1;
vary:
integer;
begin
y:
=m+n;x:
=m
end;
y:
=m*n;
pl;
writeln(y)
end.
10.形式参数有___________,变量参数,过程参数和函数参数四种。
11.子界类型属于有序类型,上,下界属于同一有序类型,且要求上界___________下界。
12.设有以下说明:
typeweekday=(sun,mon,tue,wed,thu,fri,sat);
varday;weekday;
以下赋值语句:
day:
=succ(wed);
使用函数pred()来实现与上述语句等价的赋值语句是:
______________________。
13.在各种类型的数组变量中,只有___________数组变量可以作为输出语句的参数。
14.使用标准函数___________,可以推断是否读到文本文件一行的行尾字符。
15.设varp:
^T;则p是指针变量,而___________是类型为T的动态变量。
三、改错题(指出所给程序中的错误,在错误位置处打上横线标记,并注明其错误缘由。
每题4分,共20分)
1.程序功能,求肯定值小于100的任意两个非零整型数据的积和商。
程序:
PROGRAMcalcA(input,output);
VARa,b:
INTEGER;
multi,div:
REAL;
BEGIN
readln(a,b);
multi=a*b;div=a/b;
writeln(a:
4,b:
4,multi:
8:
2,div:
8:
2)
END.
2.程序功能,找出任意三个整型数据x、y、z中的最小者。
程序:
PROGRAMfindmin(input,output);
VARx,y,z,min:
INTEGER;
BEGIN
readln(x,y,z);
IFx
IFy
IFz
writeln(x:
4,y:
4,z:
4);
writeln(”MINIMUMIS”,min:
4)
END.
3.程序功能:
使用尝试法检验任一自然数是否为素数。
检验方法:
任一自然数n,假如从2开头到根号n为止的全部自然数都不能整除(除尽)n,则n即为素数(也称质数)。
程序:
PROGRAMprime2(input,output);
VARi,n:
INTEGER;
isprime:
BOOLEAN;
BEGIN
readln(n);
FORi:
=2TOtrunc(sqrt(n))DO
IFnMODi=0
THENisprime:
=FALSE
ENDDO;
IFisprime
THENwriteln(n,”isaprime!
”)
ELSEwriteln(n,”isnotaprime!
”)
END.
4.程序功能:
用自定义的过程计算一个任意整数的随机数,然后再将计算出的随机数与测试数据test运算后输出,整数r的随机数x可用如下公式计算:
x=((r*168+2159)MDO32767)/32767
(设机器正整数为32767)
程序:
PROGRAMcalc(input,output);
CONSTtest=200.88;
VARa,b:
REAL;
PROCEDURErandom(VARr,rnd:
INTEGER);
BEGIN
rnd:
=(r*168+2159)MODMaxInt
md:
=trunc(rnd/MaxInt)
END;
BEGIN
random(400+test,a);
random(400-test,b);
writeln(”a=”,a,”b=”,b);
END.
5.程序功能:
将数组A中的数据复制到数组B中。
程序:
PROGRAMcopyarray2(input,output);
VARa,b:
ARRAY[10..1]OFINTEGER;
BEGIN
readln(a);
b:
=a;
write(b);
END.
四、阅读程序(阅读给出的程序,将其运行结果写在横线上。
第1、2题各4分,第3、4题各5分,第5题7分,共25分)
(以下↙表示回车换行符)
1.programp5(input,output);
varch:
char;
n:
integer;
begin
n:
=0;
read(ch);
repeat
n:
=n*2+ord(ch)-ord(”0”);
read(ch)
untilch=”#”;
write(n)
end.
执行该程序,当输入1011#↙时,其输出为:
______________________
2.programp6(output)
varn,k,i,s:
integer;
begin
forn:
=9to10do
begin
s:
=0;
k:
=1;
fori:
=1tondo
begin
s:
=s+i*k;
k:
=-k
end;
writeln(s)
end
end.
一.单项选择题(每题1分,共10分)
1.D
2.C
3.D
4.B
5.A
6.D
7.D
8.D
9.C
10.A
二.填空题(每空1分,共15分)
1.独立性
2.字符型
3.TRUE(不区分大小写字母)
4.8
5.yellow(大写字母不给分)
6.not(chin[”x”,”y”,”z”]或not(chin[‘x.”..”z”])
7.已无定义(或无确定的值,或等价的文字说明)
8.3
9.50
10.值参数
11.必需大于(或大于等于)
12.day:
=pred(fri)(不区分大小写字母)
13.字符(或紧凑字符)
14.eoln或eoln()(不区分大小写字母)
15.p↑(不区分大小写字母)
三.改错题(每题4分,共20分)
注:
①错误缘由说明除这里给出的外,可为其他等同含义的描述。
②错误位置指明除这里标明的外,可视详细程序敏捷考虑。
评卷时要依据以上两面三刀点恰当评分。
1.错误位置:
PROGRAMcalcA(input,output);
VARa,b:
INTEGER;
multi,div:
REAL;
(1)
BEGIN
readln(a,b);
multi=a*b;div=a/b;
writeln(a:
4,b:
4,multi:
8:
2,div:
8:
2)
END.
错误说明:
(1)div为(系统)保存字,不能用作变量名。
(2)赋值语句的赋值号应为“:
=”,不是“=”。
评分标准:
指出错误位置每处及错误缘由说明每个各1分。
2.错误位置:
PROGRAMfindmin(input,output);
VARx,y,z,min:
INTEGER;
BEGIN
readln(x,y,z);
(1)
(2)Ifx
(1)
(2)Ify
(1)
(2)Ifzwriteln(x:
4,y:
4,z:
4);
writeln(”MINIMUMIS”,min:
4)
END.
错误说明:
(1)各个关系式中的小于号(c)or(a=c)and(ab)or(b=c)and(ab)(2分)
2.①n>0(或n0)(1分)
②n:
=ndiv10(或n:
=trunc(n/10));(1分)
③inverse:
=t(1分)
④inverse(n)(1分)
3.①w:
=b[i](1分)
②1to5(1分)
③a[j]:
=wmod10(或a[b-j]:
=wmod10)(1分)
④s:
=s+a[j](1分)
⑤writeln(‘”,s)(1分)
4.①fileofinteger;(1分)
②eof(f1)\可交换次序(1分)
③eof(f2)/(1分)
④num1num2(1分)
⑤eof(f1)\可交换次序(1分)
⑥eof(f2)/(1分)
5.①p∧.nextnil(1分)
②j+1(1分)
③find:
=p(1分)