1992年程序员考试试题
发布时间:2006-10-14 8:11:49   收集提供:gaoqian

上午试题

试题 1

散列法存储的基本思想是根据_A_来决定_B_ , 碰撞 (冲突) 指的是_C_ , _D_ , 崐越大, 发生碰撞的可能性也越大. 处理碰撞的两类主要方法是 E .

供选择的答案

A 、B 、D :① 存储地址 ② 元素的序号 ③ 元素个数 ④ 关键码值

⑤ 非码属性 ⑥ 平均检索长度 ⑦ 负载因子 ⑧ 散列表空间

C :① 两个元素具有相同序号 ② 两个元素的关键码值不同, 而非码属性相同

③ 不同关键码值对应到相同的存储地址

④ 负载因子过大 ⑤ 数据元素过多

E :① 线性探查法和双散列函数法 ② 建溢出区法和不建溢出区法

③ 除余法和折叠法 ④ 拉链法和开地址法

试题 2

① 解释程序是接受参数, 按照某一样板产生机器语言程序的计算机程序

② 编译程序是为把高级语言书写的计算机程序翻译成面向计算机的目标程序崐而使用的计算机程序.

③ 就执行速度而言, 编译程序比解释程序慢

④ 解释程序是用来逐句分析执行源程序语句的计算机程序.

⑤ COBOL和FORTRAN语言程序通常解释执行.

⑥ 使用编译程序时, 因为是逐句地翻译执行源程序的语句, 所以可逐条语句崐排错.

⑦ 汇编程序的功能是将汇编语言书写的源程序翻译成由机器指令和其它信息

组成的目标程序.

⑧ 任何一种汇编语言的每一语句都能对应于一条机器语言指令.

⑨ 连接装配程序可把经编译程序产生的目标程序变成可执行的机器语言程序.

⑩ 某些连接装配程序可把由PASCAL语言编译程序和C语言编译程序分别产生崐的目标程序, 连接成一个可执行程序.

试题 3

_A_文仟件主要在磁盘上生成, 在建立文件时, 记录可不必顺序存放, 只要采崐用某种方式进行记录标识到记录的物理地址变换.

_B_文件, 在建立文件时, 给每一个记录编号, 系统保持记录号到记录的物理崐位置的对照表, 记录号不作为记录中的内容, 也不出现在对照表上.

存放在磁盘上的键文件, 也称为_C_表, 此表指出了索引文件中各记录的物理崐位置.

_D_文件能够在磁盘和磁带等多种媒体上生成. 特别适宜于全文件的读写, 原崐则上文件的更新用文件全体复制进行. 但是, _E_则不必全体复制.

供选择的答案

A : ① 标识 ② 分区 ③ 直接 ④ 链接

B : ① 标号 ② 索引 ③ 顺序 ④ 相对

C : ① 关键字 ② 关联 ③ 索引 ④ 控制

D : ① 索引 ② 字节流 ③ 随机 ④ 顺序

E : ① 在文件最后追加记录 ② 删除记录

③ 插入记录 ④ 在长度不变条件下, 改写记录

试题 4

在操作系统中处理机管理部分由作业管理和进程管理两部分组成. 作业管理崐把流分成提交、 后备、 运行、 完成四个状态, 进程管理把进程分成就绪、 崐执行、 阻塞三个基本状态. 作业由提交状态到后备状态由_A_完成. 由后备状态崐到运行状态由_B_完成; 进程由就绪状态到执行状态由_C_完成, 由执行状态到阻塞崐状态或就绪状态由_D_完成; 用户进程的祖先进程是由_E_建立的

供选择的答案

A ~ E : ① 作业调度程序 ② 进程调度程序 ③ 存储管理程序

④ 输入输出程序 ⑤ 假脱机(spooling)处理程序

⑥ 交通控制程序 ⑦ 设备管理程序 ⑧ 文件管理程序

试题 5

关系型数据库语言 SQL 目前得到了越来越广泛的使用. SQL 基本的使用方崐式有两种, 即它可以单独使用, 称为_A_, 也可以在用高级语言编写的应用程序中崐使用, 称为_B_, 这时相应的高级语言称为_C_. 从SQL数据库的体系结构角度来看,

用户可以用SQL语言的语句, 对_D_和_E_进行查询等操作, 用户可把它们都看作为崐关系(表格), 但是_E_是一个或_D_导出的表, 它本身不独立存储在数据库中.

供选择的答案

A,B:① 宿主语言 ② 嵌入式语言 ③ 数据定义语言 ④ 交互式语言 ⑤ 数据操纵语言

C:① 元语言 ② 目标语言 ③ 源语言 ④ 宿主语言

D,E:① 游标 ② 视图 ③ 库文件 ④ 基本表 ⑤ 存储文件

试题 6

计算机病毒为了隐蔽起见,领先依靠它的-A-实现自身与合法的系统连接在一崐起.将自身连接于被传染程序的开头或结尾处的微机病毒是-B-.除计算机病毒外,威崐胁计算机系统安全的程序主要有-C-,-D- 和-E-.

供选择的答案

A:① 系统调用部分 ② 启动部分 ③ 破坏部分 ④ 传染部分

B:① 源程序型病毒 ② 入侵型病毒 ③ 外壳型病毒 ④ 操作系统型病毒

C~E:① 复盖程序 ② 破坏系统程序 ③ 盗窃互锁程序

④ 偷盗信息程序 ⑤ 并发盗窃程序 ⑥ 计算机盗窃程序

试题 7

①把十进制数105.5转化成二进制数为-A-,转化成八进制数为-B-,转化成十崐六进制数为-C-.

②把下面的十进制分数表示成浮点规格化数(阶码三位,用原码表示;尾数七崐位,其中一位为符号位,用补码表示;基数为2):13/32的浮点规格化数为-D-,-13/32崐的浮点规格化数为-E-.

供选择的答案

A:① 1101001.01 ② 1101001.1 ③ 1100100.1 ④ 1100100.01

B:① 131.1 ② 151.1 ③ 151.4 ④ 131.4

C:① 69.8 ② 70.4 ③ 69.4 ④ 70.8

D:① 0 111010 101 ② 0 110100 001 ③ 0 110100 101 ④ 0 011010 000

E:① 1 001100 101 ② 1 111010 001 ③ 1 110100 001 ④ 1 001100 100

↑│____│ ↑ ↑│____│ ↑ ↑│____│↑ ↑│____│↑

数 尾 阶 数 尾 阶 数 尾 阶 数 尾 阶

符 数 码 符 数 码 符 数 码 符 数 码

试题 8 :

从供选择的答案中选出应填入 ____ 内的正确答案, 把编号写在答卷的对应崐栏内.

可以用文氏(Venn)图来表示变量不多的逻辑表达式.

若某逻辑表达式由下述文氏图的阴影区域表示

试题9

如图所示,有9个字符存放在列C1--C9中,每个用7位数据另1位奇偶检验位b0表崐示,在水平方向上也另了奇偶检验字符ph.(-表示为0或为1)

问题:

(1)选择图中的_A_、_B_和_C_的取值。

(2)根据该图所示的数据检查方式,1位数据错_D_;

(3)若水平方向采用与垂直方向同样的检验方式,则PH(b0b1b2b3b4b5b6b7)崐=_E_。

C1 C2 C3 C4 ...... C9 Ph

  ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐

b0│ A │ 1 │ - │ 0 │ 1 │ 1 │ 1 │ 0 │ 0 │ - │

  ├──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤

b1│ 0 │ - │ 0 │ 0 │ 1 │ 1 │ 0 │ 1 │ 1 │ - │

  ├──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤

b2│ 0 │ 1 │ 1 │ 1 │ 1 │ 1 │ 0 │ 0 │ 1 │ - │

  ├──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤

b3│ 1 │ 1 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 1 │ - │

├──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤

. │ 1 │ 0 │ 0 │ 1 │ - │ - │ 1 │ 1 │ 0 │ - │

. ├──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤

. │ 0 │ 0 │ 1 │ 1 │ 0 │ 1 │ 0 │ 0 │ 1 │ - │

├──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤

│ 1 │ 0 │ 1 │ - │ 1 │ 0 │ 0 │ B │ 1 │ - │

├──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤

│ 1 │ 1 │ 0 │ 0 │ 0 │ 0 │ C │ 1 │ 0 │ - │

b7└──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘

供选择的答案

A--C:① 0 ② 1 ③ 不确定

D:① 能够发现,但不知道出错的位置 ② 不能发现

③ 不仅能发现,而且还能找到出错的位置 ④ 有时能发现,有时不能发现

E:① 00110110 ② 10111110 ③ 11110110

④ 10110110 ⑤ 10110100 ⑥ 00101111

试题 10

① RAM是非易失性的存储器,即使电源关断,其内容也不会丢失.

② ROM 只可用作微程序设计计算机的控制存储器.

③ 条形码可用于商品,图书管理等方面的编码.

④ 磁盘的优点是容量比磁带大.

⑤ 输入/输出设备必须通过适配才能接到系统总线上和主机进行信息交换.

⑥ 磁盘的寻址时间是磁头找到目的所需要的时间.

⑦ 动态RAM 组成的存储器,必须周期性进行刷新,否则存放内容就会丢失.刷新崐对于用户是透明的.

⑧ 每个磁盘面的存储容量为K*S*B字节,其中K:每个磁盘面的磁道数,S:每个磁崐道的扇区数, B:每个扇区记录的字节数.

⑨ 磁带和磁盘都是直接存取存储设备.

⑩ 磁盘的记录密度等于道密度乘上位密度.

试题 11

The C programming language has _A_ one of the most _B_programming

languages,and it has been implemented on most personal computers and mutiuser

systems, especially those designed for research and development.It evolved from

the version described in Kernighan and Ritche's work (called "K&R C" after the

authors into _C_ variants, including the standard ANSI C,which _D_many

type-checking features and includes a standard library.Of the two main _E_,

K&R C is probebly the most commonly used on multiuser computers,with ANSI C

close behind:in the personal computing world,ANSI C is far more common.

供选择的答案

A--E:

① much ② variants ③ complex ④ incorporates ⑤ several

⑥ become ⑦ popular ⑧ editions ⑨ come ⑩ users

试题 12

The use of the computer is changing the very _A_of many jobs that崐 exist within a business. In the industrial _B_,tools were developed崐 to assist in improving production, but much work still involved _C_ 崐 labor.The infomation _B_has brought about another change - a change 崐from _C_labor to _D_labor.

Pressure on computer worker can be great. Whether operating a robot,崐 running a computer,or programming a computer,a single error can be _E_.

The snalest error could misdirect an airline, desrupt delivery schedules,

or cost millions of dollars.

供选择的答案

A--E:

① important ② great ③ disastrous ④ physical ⑤ body

⑥ brain ⑦ mental ⑧ revolving ⑨ revolution ⑩ nature

 

下午试题

1.本程序采用筛选法求质数。程序用一个无符号整数数组代表筛,它的每一位对应一个整数。因除2以外,其

余所有的质数都是奇数,约定数组按位的顺序,依次对应整数3,5,7,9,11。程序首先将数组所能容

纳的上述奇数放入筛中,即将数组的全部位置成1。从筛中找出最小的数,该数即为质数,然后将该质数的倍

数从筛中去掉,即将在数组中与它们对应的位置成0。因偶数不在筛中,去掉的数是找到的质数的1倍,3倍,

5倍……等整数。反复上述过程,直至筛为空。程序就能找到指定范围内的全部质数。

【程序】

 #include <stdio.h>

#define N 50

#define LN 16

main()

{

unsigned int sieve[N],primes[N];

unsigned int j,w,p,c;

for(j=0;j<N;j++)

{ sieve[j] =0xFFFFFFFF;

primes[j] =0x00;

}

w=0; j=0;

do { while (((0x01<< (j++)) & sieve[w]==0x00);

p=________;

c=________;

primes[w] |= (___________);

do

{ sieve[p/LN] &=(~(___________));

p+=c;

} while (p < N*LN-LN);

while ((sieve[w] == 0x00) && (w < N-1))

{ w++;

j=0;

}

} while (sieve[w]) ;

printf("%5d",2);

for(w=0;w<N;w++)

{ for(j=0;j<LN;j++)

if((0x01 << j) & primes[w])

printf("%5d",__________);

}

printf("\n");

}

 

 

2. 设有两整数向量 A, B 的比较矩阵M 可定义为:

┏ 1 a(j) > b(i),

m(i)(j) = ┃ -1 a(j) < b(i), (i,j=0,1,┄,n-1)

┗ 0 a(J) = b(I),

如图所示。

┌──┬───────────┐

│B\A│ 8 9 4 6 2 4│

├──┼───────────┤

│ 3 │ 1 1 1 1 -1 1│

│ 7 │ 1 1 -1 -1 -1 -1│

│ 7 │ 1 1 -1 -1 -1 -1│

│ 5 │ 1 1 -1 1 -1 -1│

│ 3 │ 1 1 1 1 -1 1│

│ 8 │ 0 1 -1 -1 -1 -1│

└──┴───────────┘

(1) 本程序对给定的比较矩阵 M,确定满足 a(k)=x 条件的 A, B的一个整数解。

(2) 本程序的解法是: 读入 M,k,x后

1.填充A,B, 令b(i)=x-m(i)(k), a(i)=x (i=0,1,┄,n-1)

2.检查 a(j) 与b(i)是否满足 m(i)(j)

.若满足检查下一个;

.否则向上调整相应元素,并按以下约定回朔检查: 当B的第i个元*

素调整时,则回朔到A的第一个元素; 当A的第j个元素调整时,则*

回朔到A的当前元素和B的第一个元素.

本程序对比较矩阵M的合理性未作检查,并假定在指定的条件下一定能找到一个解。

【程序】

#include <stdio.h>

#define MN 20

typedef int Vector[MN];

Vector Matrix[MN];

int N;

main(argc,argv)

int argc; char **argv;

{ Vector a,b;

int i,j,x,k;

void PrintVector();

void FillVector();

FILE *fp,*fopen();

if ((fp=fopen(argv[argc-1],"r")) == NULL)

{ printf("Cannot open file %s\n",argv[argc-1]);

exit(1);

}

fscanf(fp,"%d",&N);

for(i=0;i<N;i++)

for(j=0;j<N;j++)

fscanf(fp,"%d",&Matrix[i][j]);

fscanf(fp,"%d%d",&k,&x);

fclose(fp);

FillVector(a,b,k,x);

printf("The Vector A is:\n");

PrintVector(a);

printf("The vector B is:\n");

PrintVector(b);

}

void PrintVector(v)

Vector v;

{ int i;

printf("[");

for(i=0;i<N;i++)

printf("%5d",v[i]);

printf("]\n");

}

void FillVector(a,b,k,x)

Vector a,b;

int k,x;

{ int i,j,temp;

for(i=0;i<N;i++)

{ b[i]=x-Matrix[i][k];

a[i]=x;

}

for(i=0;i<N;i++)

{ for(j=0;j<N;j++)

{ Temp=b[i]+Matrix[i][j];

if (Matrix[i][j]==1 && Temp > a[j])

{ _________; i=0;}

else if(Matrix[i][j]==-1 && Temp < a[j])

{ b[i]=a[j]+1; _________ ; }

else if( a[j]>b[i] )

{ b[i]=a[j] ; ________ ; }

else if( a[j] < b[i] )

{ __________ ; __________ ; }

}

}

}

 

 

3. 本子程序利用递归法判别用链表表示的两个非递归链表是否相等.

程序中的非递归列表定义为:

(1) 无元素的空列表;

(2) 由元素序列组成的一个列表,其中的元素可以是一个字符,或者是满足本定*

义的一个列表.

这种列表的一个例子是:

  S

┌───┐ ┌─┬─┬─┐ ┌─┬─┬─┐

│ ├→┤0│a│ ├→┤1│││^│

└───┘ └─┴─┴─┘ └─┴┼┴─┘

┌─────┘

│ ┌─┬─┬─┐ ┌─┬─┬─┐

└→┤0│b│ ├→┤0│c│^│

└─┴─┴─┘ └─┴─┴─┘

列表S由两个元素组成,第一个元素是字符a (标志为0),第二个元素是另一个列*

表(标志为1),该元素又有两个元素组成(标志为0),分别为字符b和字符c.

在两个列表中,若它们的元素个数相等,且表中元素依次相同,则两个列表相等(*

子程序回答1),否则不相等(子程序回答0).

 【程序】

typedef struct lnode

{ int tag;

union

{ char data;

struct lnode *dlink;

} un;

struct lnode *link;

} listnode;

int equal(s,t)

listnode *s,*t;

{ int x,res;

if(s==t)

__________ ;

else if( _________ )

if( _________ )

{ if(!s->tag)

x= ___________ ;

else

x= ___________ ;

if(x) return (_________);

}

return(0);

}

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50