noip普及组初赛模拟试卷10(附答案) 下载本文

内容发布更新时间 : 2024/10/26 3:39:46星期一 下面是文章的全部内容请认真阅读。

选择题

1. 计算机自诞生以来,无论在性能、价格等方面都发生了巨大的变化,但是下列______D____并没有发生多大的改变。 A: 耗电量 B: 体积

C:运行速度 D: 基本工作原理

2. 设二维数组F的行下标为1至5,列下标为0至8,F的每个数据元素均占4个字节。在按行存贮的情况下,已知数据元素F[2,2]的第一个字节是1044,则F[3,4]和F[4,3]的第一个字节的地址分别为A 和____D_______ , A、1088 B、1084 C、1092 D、1120

3. 以下数据结构中_____B_____________是线性结构? A、有向图 B、栈 C、二叉树 D、B树

4. 与十进制数 1770.625 对应的八进制数是( D )。 A. 3350.5 B. 3352.65 C. 3352.1161 D. 前 3 个答案都不对 5. (2004)10 + (A2)16的结果是( C )。 A. (2036)16 B. (2054)10

C. (4166)8 D. (100000000110)2

6. 常见的邮件传输服务器使用( B )协议发送邮件。 A. HTTP B. SMTP C. TCP D. POP3

7.与二进制数101.01011等值的十六进制数为( D )。 A)A.B B)5.51 C)A.51 D)5.58

8.CPU处理数据的基本单位是字,一个字的字长( D ) 。

A) 为8个二进制位 B) 为16个二进制位 C) 为32个二进制位 D) 与芯片的型号有关 9.在计算机硬件系统中,cache是( D )存储器。

A)只读 B)可编程只读 C)可擦除可编程只读 D)高速缓冲 10.在Windows98中,通过查找命令查找文件时,若输入F*.? , 则下列文件( C ) 可以被查到。

A) F.BAS B) FABC.BAS C) F.C D) EF. 11.设循环队列中数组的下标范围是1..n,其头尾指针分别为f和r,则其元素个数为( B )

A) f+r B) (r-f+n)mod n C) f+r+n D) (r-f) mod n 12.下列关于高级语言的说法正确的有( D )。 A. Ada 是历史上的第一个高级语言 B. 高级语言可被CPU直接运行

C. C++是历史上的第一个支持面向对象的语言 D. FORTRAN是历史上的第一个电脑高级语言 (Smalltalk被认为是第一个真正面向对象的语言 ) 13. 以下哪一个不是栈的基本运算( B) A)删除栈顶元素 B)删除栈底的元素 C)判断栈是否为空 D)将栈置为空栈 14. 下列叙述中,正确的是( D )

A.线性表的线性存贮结构优于链表存贮结构 B.队列的操作方式是先进后出

C.栈的操作方式是先进先出 D. 二维数组是指它的每个数据元素为一个线性表的线性表

15. 二叉树T,已知其前序遍历序列为1 2 4 3 5 7 6,中序遍历序列为4 2 1 5 7 3 6,则其后

序遍历序列为( B )。

A. 4 2 5 7 6 3 1 B. 4 2 7 5 6 3 1 C. 4 2 7 5 3 6 1 D. 4 7 2 3 5 6 1 16. ASCII码的主要作用是(A)

A.方便信息交换 B.方便信息存储 C.便于管理 D.便于输出

17. 设全集E={1,2,3,4,5},集合A={1,4}, B={1,2,5}, C={2,4},则集合(A ∩B)∪~C 为( D )。

A) 空集 B) {1} C) {3,5} D) {1,3,5} 18. 在 Pascal 语言中,表达式 13 and -17的值是(C ) A. 1 B. 17 C.13 D. -1

19.在编程时(使用任一种高级语言,不一定是 Pascal),如果需要从磁盘文件中输入一个很大的二维数组(例如 1000*1000 的 double 型数组),按行读(即外层循环是关于行的)与按列读(即外层循 环是关于列的)相比,在输入效率上(D )。 A. 没有区别

B. 按行读的方式要高一些 C. 按列读的方式要高一些 D. 取决于数组的存储方式。

20.在有N个叶子节点的哈夫曼树中,其节点总数为( B ) A.不确定 B. 2N-1 C. 2N+1 D. 2N 问题求解

1. 有5本不同的数学书分给5个男同学,有4本不同的英语书分给4个女同学,将全部书 收回来后再从新发给他们,与原方案都不相同的方案有________种。 答案:

5!*4!+D(5)*D(4)=1140480

其中:D(n)=(n-1)*(D(n-1)+D(n-2)) (n > 2) D(1)=0 D(2)=1

写出下列程序运行结果

1.var

p,q:array[0..5] of integer; i,x,y:integer; begin y:=20;

for i:=0 to 4 do read(p[i]); readln;

q[0]:=(p[0]+p[1])+(p[2]+p[3]+p[4]) div 7; q[1]:=p[0]+p[1] div ((p[2]+p[3]) div p[4]); q[2]:=p[0]*p[1] div p[2]; q[3]:=q[0]*q[1];

q[4]:=q[1]+q[2]+q[3];

x:=(q[0]+q[4]+2)-p[(q[3]+3) mod 4];

If (x>10) then y:=y+(q[1]*100-q[3]) div (p[p[4] mod 3]*5)

else y:=y+20+(q[2]*100-q[3]) div (p[p[4] mod 3]*5);

writeln(x,',',y);

end.

输入:6 6 5 5 3 输出:129,43 2.var

a,b:integer; x,y:^integer;

procedure fun(a:integer ;VAR B :INTEGER); var

k:integer;

begin k:=a; a:=b; b:=k; end; begin

a:=3; b:=6; x:=@a; y:=@b; fun(x^,y^);

write('No.1:',a,',',b,' '); fun(a,b);

writeln('No.2:',a,',',b); end.

输出 No.1:3,3 No.2:3,3

3.const max=10;

var w:array[1..max] of integer; i,n,m,weight:integer; begin

readln(weight); write(weight,'='); m:=1; i:=1; w[i]:=1; while m

begin i:=i+1; w[i]:=w[i-1]*3; m:=m+w[i]; end; n:=weight+m; i:=1; while n>0 do begin

case n mod 3 of 0:write('-',w[i]);

2:if i>1 then write('+',w[i]); end;

n:=n div 3; i:=i+1; end; end. 输入 105

输出 105=-3+27+81

4.Type str1=string[100]; Str2=string[200]; Var

S1:str1; s2:str2;

Function isalpha(c:char):Boolean;