一、单选题
1、下列无符号数中,最小的数是( ).
A (11011001)2
B (75)10
C (37)8
D (2A)16
2、在外部设备中,绘图仪属于( ).
A 输入设备
B、 输出设备
C 辅(外)存储器
D 主(内)存储器
3、GB2312-80 规定了一级汉字3755个,二级汉字3008个,其中二级汉字字库中的汉字是以( )为序排列的.
A 以笔划多少
B 以部首
C 以ASCII码
D 以机内码
4、算法是指( ).
A 为解决问题而编制的计算机程序
B 为解决问题而采取的方法与步骤
C 为解决问题而需要采用的计算机语言
D 为解决问题而采用的计算方法
5、RAM 中的信息是( ).
A 生产厂家预先写入的
B 计算机工作时随机写入的
C 防止计算机病毒侵入所使用的
D 专门用于计算机开机时自检用的
6、计算机主机是由CPU 与( )构成的.
A 控制器
B 运算器
C 输入、输出设备
D 内存储器
7、计算机病毒的特点是( ).
A、
传播性、潜伏性、易读性与隐蔽性
B、
破坏性、传播性、潜伏性与安全性
C 传播性、潜伏性、破坏性与隐蔽性
D 传播性、潜伏性、破坏性与易读性
8、设循环队列中数组的下标范围是1–n,其头尾指针分别为f和r,则其元素个数为( ).
A r- f
B r- f +1
C (r- f ) MOD n+1
D (r- f + n) MOD n
9、在待排序的数据表已经为有序时,下列排序算法中花费时间反而多的是( ).
A 堆排序
B 希尔排序
C 冒泡排序
D 快速排序
10、Internet 的规范译名应为( ).
A 英特尔网
B 因特网
C 万维网
D 以太网
11、WINDOWS 9X 是一种( )操作系统.
A 单任务字符方式
B 单任务图形方式
C 多任务字符方式
D、 多任务图形方式
12、某种计算机的内存容量是640K, 这里的640K 容量是指( ) 个字节.
A 640
B 640*1000
C 640 * 1024
D 640*1024*1024
13、在Windows 9X中,菜单项后带有符号“…”,表示该菜单项( ) .
A 可以进行开关选择
B 执行时有对话框
C 有若干子命令
D 不能执行
14、某数列有1000个各不相同的单元,由低至高按序排列;现要对该数列进行二分法检索(binary search),在最坏的情況下,需检视( )个单元.
A 1000
B 10
C 100
D 500
15、已知数组A中,每个元素A[I,J]在存贮时要占3个字节,设I从1变化到8,J从1变化到10,分配内存时是从地址SA开始连续按行存贮分配的。
试问:A[5,8]的起始地址为( ).
A SA+141
B SA+180
C SA+222
D SA+225
16、大家知道,不同类型的存储器组成了多层次结构的存储器体系,按存取速度从快到慢的排列是( ).
A 快存 / 辅存 / 主存
B、
外存 / 主存 / 辅存
C、 快存 / 主存 / 辅存
D 主存 / 辅存 / 外存
17、线性表若采用链表存贮结构,要求内存中可用存贮单元地址( ).
A 必须连续
B 部分地址必须连续
C 一定不连续
D 连续不连续均可
18、下列叙述中,正确的是( ).
A 线性表的线性存贮结构优于链表存贮结构
B 队列的操作方式是先进后出
C 栈的操作方式是先进先出
D 二维数组是指它的每个数据元素为一个线性表的线性表
19、电线上停着两种鸟(A,B),可以看出两只相邻的鸟就将电线分为了一个线段。这些线段可分为两类:一类是两端的小鸟相同;另一类则是两端的小鸟不相同.
已知:电线两个顶点上正好停着相同的小鸟,试问两端为不同小鸟的线段数目一定是( ).
A 奇数
B 偶数
C 可奇可偶
D 数目固定
20、请仔細閱读下列程序段:
上列程序段的正确輸出是( ).
A -1
B -2
C -3
D -4
二、实操题
21、已知,按中序遍历二叉树的结果为:abc
问:有多少种不同形态的二叉树可以得到这一遍历结果,并画出这些二叉树。
参考答案:对于给定的中序遍历结果“abc”,我们可以得到以下三种不同形态的二叉树:1. a/ \b c2. a/b/ \c3. a/bc
22、有2×n的一个长方形方格,用一个1×2的骨牌铺满方格。例如n=3时,为2×3方格。
此时用一个1×2的骨牌铺满方格,共有3种铺法:
试对给出的任意一个n(n>0),求出铺法总数的递推公式。
参考答案:对于n=1的情况,只有一个方格,只能有一种铺法。对于n≥2的情况,考虑最右边的方格,有两种可能:1. 最右边的方格上方被骨牌覆盖,此时,剩余的n-1个方格有f(n-1)种铺法;2. 最右边的方格下方被骨牌覆盖,此时,剩余的n-1个方格也有f(n-1)种铺法。因此,对于n个方格,总的铺法为f(n) = 2 × f(n-1)。
23、program noi_002;
var i, j, l, n, k, s, t : integer;
b : array[1..10] of 0..9;
Begin
readln(l,n); s:=l; k:=1; t:=l;
while s<n do
begin k:=k+1; t:=t*l; s:=s+t end;
s:=s-t; n:=n-s-1;
for i:=1 to 10 do b[i]:=0;
j:=11;
while n>0 do
begin j:=j-1; b[j]:=n mod l; n:=n div l end;
for i:=10-k+1 to 10 do write(chr(ord('A')+b[i]));
End.
输入: 4 167
输出:
参考答案:输出:G
24、program noi_004;
var i, j, j1, j2, p, q : integer;
p1 : boolean;
b,c : array[1..100] of integer;
Begin
readln(q,p); j:=1; p1:=true; b[j]:=q; j1:=0;
while (q>0) and p1 do
begin
j1:=j1+1; c[j1]:=q*10 div p; q:=q*10-c[j1]*p;
if q>0 then begin
j2:=1;
while (b[j2]<>q) and (j2<=j) do j2:=j2+1;
if b[j2]=q then
begin
p1:=false; write('0.');
for i:=1 to j2-1 do write(c[i]:1);
write('{');
for i:=j2 to j1 do write(c[i]:1);
writeln('}')
end
else begin j:=j+1; b[j]:=q end
end
end;
if q=0 then begin
write('0.');
for i:=1 to j1 do write(c[i]:1);
writeln
end; readln
End.
输入 ① 1 8 输出
输入 ② 2 7 输出
参考答案:输入①:1 8输出:0.1输入②:2 7输出:0.251
25、将个0和
个1,排成一圈。从任一个位置开始,每次按逆时针的方向以长度为n+1的单位进行数二进制数。
要求给出一种排法,用上面的方法产生出来的个二进制数都不相同。
例如,当n=2时, 即个0 和
个1 排成如下一圈:
比如,从A位置开始,逆时针方向取三个数000,然后再从B位置上开始取三个数001,接着从C开始取三个数010,...可以得到000,001,010,101,011,111,110,100共8个二进制数且都不相同。
程序说明
以n=4为例,即有16个0,16个1,
数组a用以记录32个0,1的排法,
数组b统计二进制数是否已出现过。
程序清单
参考答案:根据题目描述,我们需要将一定数量的0和1排列成一圈,然后按照逆时针方向以长度为n+1的单位进行数二进制数,要求产生的二进制数都不相同。以n=4为例,即有16个0,16个1。我们可以按照以下方式排列:010101010101010101010101010101010101010101从任意位置开始,逆时针方向以长度为n+1=5的单位进行数二进制数,可以得到以下8个不同的二进制数:0101010101010101010101010101010101010101010101010101010101010101010101010101
26、多项式的乘法。
例如有如下多项式:
则
程序说明:
多项式的表示:系数、指数
如上例中: P(X): 系数 指数 Q(X) 系数 指数
2 2 1 1
-1 1 1 0
1 0 0 0
0 0
PXQ的结果存入C中。其输出格式是:依次用一对括号内的(系数,指数)分别来表示。如上例的输出结果表示为:(2,3)(1,2)(1,0)
程序清单
参考答案:根据题目给出的多项式表示和程序说明,我们可以得出以下步骤:1. 首先,将多项式P(X)和Q(X)的系数和指数分别列出。2. 然后,根据多项式乘法的规则,将P(X)和Q(X)的每一项相乘,得到新的系数和指数。3. 最后,将相乘得到的新系数和指数按照题目要求的输出格式进行整理,即依次用一对括号内的(系数,指数)来表示。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!