2013年NOC考试试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、基础知识填空题(30分)
1、已知数组A中,每个元素A[I,J]在存贮时要占3个字节,设I从1变化到8,
J从1变化到10,分配内存时是从地址SA开始连续按行存贮分配的。试问:A[5,8]的起始地址为__________
2、为了便于处理表达式,常常将普通表达式(称为中缀表示)转换为前缀{运
算符在前,如X/Y写为/XY}和后缀{运算符在后,如X/Y写为XY/}的表达式。在这样的表示中,可以不用括号即可确定求值的顺序,如:
(A+B)*(C—D)→ *+AB—CD(前缀)或→ AB+CD一*(后缀)
①试将下面的表达式改写成前缀与后缀的表示形式:
(a)P+Q*R/S __________________________________________
(b)P-R*S+Q^E __________________________________________
②试将下面的前缀表示还原成中缀的表示形式,同时写出后缀表示:
+△P*Q△R {前缀式中△表示一元运算符取负号,如△A表示(—A)} _______________________________________________________
3、有2×n的一个长方形方格,用一个1×2的骨牌铺满方格。例如n=3时,为
2×3方格。此时用一个1×2的骨牌铺满方格,共有3种铺法:试对给出的任意一个n(n〉0),铺法总数表达式为___________。
4、7个不同的球装到3个相同的盒子里,每个盒子都不为空,有 _____种方法
二、程序填空,完成以下每个程序中的空白部分。
1、将16进制数字换成十进制(10分)
var
i,k:Integer;
Str:String; {表示16进制的字符串}
S:LongInt;{表示十进制的数字}
Begin
Readln(Str); S:=0;
For i:=1 to _________ Do
Begin
If Str[i] in ['0'..'9'] Then k:=Ord(Str[i])-Ord('0')
Else ___________;
S:=_______;
End;
Writeln(s);
End.
2、计算50!(20分)
var
a:array[0..100] of integer;
i,j,k:integer;
begin
for i:=1 to 100 do a[i]:=0;a[0]:=1;{赋初值,最后一位是1}
for i:=2 to 50 do
begin
for j:=0 to 100 do _________; {先计算乘积}
for j:=0 to 100 do {处理进位}
begin
_________;
__________;
___________;
end;
end;
j:=100;______________; {记录前面不必要的0}
writeln;write('50!=');
for i:=j downto 0 do write(a[i]);
end.
3、计算0.12345678910111213141516………………的第N位数字是几。(20分)var
n,i,j,k,o:integer;
begin
readln(n);
if _______ then o:=n
else if _______ then
begin
i:=__________;j:=(n-____) mod 2;
if j=1 then o:=((i+10) div 10) else o:=(i+9) mod 10;
end
else begin
i:=_________;j:=(n-_____) mod 3;
if j=0 then o:=______________;
if j=1 then o:=_______________;
if j=2 then o:=_______________;
end;
write(o,' ');
end;
end.
三、编写程序求100!末尾有多少个连续的零,最右边的非零数字是几。