作业帮 > 数学 > 作业

急求noip2011提高组初赛答案

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/07/05 22:12:09
急求noip2011提高组初赛答案
单选就算了吧太多了~~~
答案:A
二、不定项选择题(共10题,每题1.5分,共15分.每题有一个或多个正确选项.多选或少选均不得分.)
(这部分较难得分,我错了很多题)
1. 如果根节点的深度记为1,则一棵恰有2011个叶子结点的二叉树的深度可能是( ).
A. 10
B. 11
C. 12
D. 2011
答案:CD
2. 在布尔逻辑中,逻辑“或”的性质有( ).(原题ABCD选项里的或是个类似V的表示或的符号,为了该文档流通方便我都改成了“V”)
A. 交换律:PVq=qVp
B. 结合律:P V(Q V R)=(P V Q)V R
C. 幂等律:P V P = P
D. 有界率:P V 1 = 1 (1表示逻辑真)
答案:ABCD
3. 一个正整数在十六进制下有100位,则它在二进制下可能有( )位.
A. 399
B. 400
C. 401
D. 404
答案:AB
4. 汇编语言( ).
A. 是一种与硬件无关的程序设计语言
B. 在编写复杂程序时,相对于高级语言而言代码量较大,且不易调试
C. 可以直接访问寄存器、内存单元、I/O端口
D. 随着高级语言的诞生,如今已完全被淘汰,不再使用
答案:BC
5. 现有一段文言文,要通过二进制哈弗曼编码进行压缩.简单起见,假设这段文言文只由4个汉字“之”、“乎”、“者”、“也”组成,它们出现的次数分别为700、600、300、400.那么,“也”字的编码长度可能是( ).
A. 1
B. 2
C. 3
D. 4
答案:BC
6. 生物特征识别是利用人体本身的生物特征进行身份认证的一种技术.目前,指纹识别、虹膜识别、人脸识别等技术已广泛应用于政府、银行、安全防卫等领域.以下属于生物特征识别技术及其应用的是( ).

A. 指静脉验证
B. 步态验证
C. ATM机密码验证
D. 声音验证
答案:ABD
7. 对于序列“7、5、1、9、3、6、8、4”,在不改变顺序的情况下,去掉( )会使逆序对的个数减少3.
A. 7
B. 5
C. 3
D. 6
答案:CD
8. 计算机中的数值信息分为整数和实数(浮点数).实属之所以能表示很大或者很小的数是由于使用了( ).
A. 阶码
B. 补码
C. 反码
D. 较长的位数
答案:A
9. 对右图使用Dijkstra算法计算S点到其余各点的最短路径长度时,到B点的距离d【B】初始时赋值为8,在算法的执行过程中还会出现的值有( ).
(原试题右图,为照顾手机党我字述边集((a,b,c)代表a到b有条长c的边):(S,A,2),(S,B,8),(S,D,3),(A,B,5),(B,C,1),(B,D,3),(C,D,1)
A. 3
B. 7
C. 6
D. 5
答案:BCD
10. 为计算机网络中进行数据交换而建立的规则、标准或约定的**称为(原题写的是“成为”)网络协议.下列英文缩写中,( )是网络协议.
A. HTTP
B. TCP/IP
C. FTP
D. WWW
答案:ABC
三、问题求解(共2题,每题5分,共计10分)
1.平面图是可以画在平面上,且它的边仅在顶点上才能相交的简单无向图.4个顶点的平面图至多有6条边,如右图所示.那么,5个顶点的平面图至多有____条边.
(图我就不画了,比较简单,是一个口画一条对角线,然后没有对角线的那2个点从口外面连了一条曲线)
答案:9
2.定义一种字符串操作,一次可以将其中一个元素移到任意位置.举例说明,对于字符串“BCA”,可以将A移到B之前,变成字符串“ABC”.如果要将字符串“DACHEBGIF”变成“ABCDEFGHI”,最少需要____次操作.
答案:4
四、阅读程序写结果(共4题,每题8分,共计32分)
1.
const
SIZE=100;
var
n,i,sum,x:integer;
A:array[1..SIZE]of integer;
begin
readln(n);
fillchar(a,sizeof(a),0);
for i:=1 to n do
begin
read(x);
inc(a[x]);

end;
i:=0;
sum:=0;
while sum0
then inc(ans.len);
add := ans;
end;
function average(a,b: hugeint) : hugeint;
var
i : integer;
ans : hugeint;
begin
ans := add(a,b);
for i:= ans.len downto 2 do
begin
ans.num[i-1] := ans.num[i-1] + (④) *10;
ans.num[i]:=ans.num[i] div 2;
end;
ans.num[1]:=ans.num[1] div 2;
if ans.num[ans.len] = 0
then dec(ans.len);
average := ans;
end;
function plustwo(a : hugeint) : hugeint;
var
i : integer;
ans : hugeint;
begin
ans := a;
ans.num[1] := ans.num[1] + 2;
i:=1;
while (i = 10) do
begin
ans.num[i + 1] := ans.num[i + 1] + ans.num[i] div 10;
ans.num[i] := ans.num[i] mod 10;
inc(i);
end;
if ans.num[ans.len + 1] > 0
then ⑤;
plustwo := ans;
end;
function over(a , b: hugeint) : boolean;
var
i: integer;
begin
if (⑥) then

begin
over := false;
exit;
end;
if a.len > b.len then
begin
over := true;
exit;
end;
for i := a.len downto 1 do
begin
if a.num[i] < b.num[i] then
begin
over := false;
exit;
end;
if a.num[i] > b.num[i] then
begin
over := true;
exit;
end;
end;
over := false;
end;
begin
readln(s);
fillchar(target.num,sizeof(target.num),0);
target.len := length(s);
for i := 1 to target.len do
target.num[i] := ord(s[target.len - i +1]) - ⑦;
fillchar(left.num,sizeof(left,num),0);
left.len:=1;
left.num[1]:=1;
right:=target;
repeat
middle:=average(left,right);
if over(⑧)
then right := middle
else left := middle;
until over(plustwo(left),right);
for i:= left.len downto 1 do
write(left.num[i]);
writeln;
end.
答案:
① ans.num[i+j-1]
② ans.num[i]:=ans.num[i] mod 10
③ ans.num[i]+a.num[i]+b.num[i]
④ ans.num[i] mod 2
⑤ inc(ans.len)
⑥ a.len