硬件测试求职试题集合.docx
《硬件测试求职试题集合.docx》由会员分享,可在线阅读,更多相关《硬件测试求职试题集合.docx(47页珍藏版)》请在冰豆网上搜索。
硬件测试求职试题集合
硬件测试求职试题集合
笔试网()
简答题:
(1)何谓trie树?
试构造一棵对应关键字的trie树,请注意应该使树的深度尽可能小。
{program,programmer,programming,processor,or}
(2)事务t1、t2和t3的定义如下:
t1:
x:
=x+1
t2:
x:
=x*2
t3:
x:
=3
假设x的初值为0,若允许这三个事务并发执行,试列出所有可能的调度和相应的x值。
(3)请实现两棵树是否相等的比较,相等返回,否则返回其他值,并说明算法复杂度。
数据结构为:
typedefstruct_treenode{
charc;
treenode*leftchild;
treenode*rightchild;
}treenode;
函数接口为:
intcomptree(treenode*tree1,treenode*tree2);
注:
a、b两棵树相等当且仅当root->c==rootb-->c,而且a和b的左右子树相等或者左右互换相等。
(4)编程实现将任意的十进制整数转换成r进制数(r在2-16之间)。
(5)怎样在复杂的各种形式的网页中提取mp3下载的结构化数据?
(6)设有一个顺序表a,包含n个元素,要求写出一个将该表逆置的算法,并只允许在原表的存储空间少再加一个附加的工作单元。
(7)找出字符串a中包含的字符可以进行的所有不同组合。
例如:
abccd中,ab,ac,bc,cc,abd等都是可能的组合。
(8)请设计一个企业进销存系统的数据库表结构,需要实现基本的进销存管理,需要记录的信息包括:
供应商信息、商品信息、库存信息、客户信息、出入库信息、仓库信息等;其中,入库视为进货,出库视为销售,且企业有多个仓库;请画表格描述表结构(需要说明每个字段的字段名、字段类型、字段含义描述);
在数据库设计中应:
1.保证每个供应商、商品类别、客户、仓库等的唯一性;
2.保证供应商信息、商品信息、仓库信息、客户信息与出入库信息之间的参照完整性;
3.若有新供应商、新的商品、新的客户、新的仓库加入,保证自动生成其唯一性标识;
4.数据库设计应为以下报表需求提供支持:
(无特定说明,不需编写实现语句,而需在数据库设计中,保证这些报表可以用最多一条sql语句实现)
a)日报表:
每日进货、销售的商品种类与数目清单,包括对应的供应商信息、仓库信息等;每日企业毛利报表(销售与进货的价格差);
b)月报表:
每月来自各个供应商的商品销售情况;
c)实时报表:
i.盘点当前各仓库库存商品列表,包括商品名称、编号、库存时间等请编写实现此需求的sql语句:
数据库应用:
请撰写一系列的sql语句,描述完整的商品转库操作,即某种类的一部分商品,从某仓库中转运到另一仓库的过程中,进销存系统需要执行的一系列sql语句;并保证这一系列的sql语句的执行完整性;
(9)假定磁带的记录密度为每英寸1000个字符,每一个逻辑记录长为240个字符,块与块之间的间隙为0.5英寸,现有600个逻辑记录需要存储到磁带上,请回答下列问题:
1)在没有采用成组操作时,磁带空间的利用率是多少?
2)在采用以8个逻辑记录为一组的成组操作时,磁带空间的利用率是多少?
3)为了使磁带空间的利用率大于70%,采用记录成组操作时的块因子至少应为多少?
(10)设用输入广义表表示的字符串来创建二叉链表结构的二叉树,具体规定如下:
广义表的表名作为树的根结点,每个结点的左子树和右子树用逗号分隔,若仅有右子树,则逗号不能省略;以特殊符号‘$’表示广义表的结尾。
(1)若输入的字符串为a(b(c),d(e(,f),g)),画出所表示的二叉树。
(2)实现用上述方法创建二叉树的算法。
(11)若有一棵二叉树的存储结构为二叉链表,t指向根结点,请写出一个非递归算法判定其是否为二叉排序数。
(12)写一个程序,读入一个3×3的矩阵,输出它的转置。
(注:
转置是将原矩阵的行列互换)
(13)头文件中的ifndef/define/endif干什么用?
(14)数据库中有三个关系(基本表):
s(学号,姓名,性别,年龄,系别)
c(课号,课名)
sc(学号,课号,成绩)
依据此信息用sql语句完成下面问题。
1.查询每个学生的姓名和年龄,并按年龄降序排列。
2.查询s表中姓“王”的学生的情况。
3.查询选修了“数据库原理”的学生的姓名和成绩。
4.查询与“刘平”同一系的学生情况。
(15)设有如下的三个关系模式:
s(sno,sname,age,sex)
sc(sno,cno,grade)
c(cno,cname,teacher)
试写出检索学习″wang″老师讲授课程的男学生的姓名(sname)的关系代数表达式。
(16)描述派生类的内存存储方式。
(17)已知某企业各部门有许多职员,一个职员仅属于一个部门;每个职员可在多项工程中做工或负责管理,每项工程可有多个职员参加。
其中,职工有:
职工号,职工名;
部门有:
部门号,部门名;
工程有:
工程号,工程名;
每个职工参加某个工程有参加日期。
请完成如下设计或处理:
(1)据上述语义设计e-r模型,要求标注联系类型,可省略属性。
(2)将e-r模型转换成关系数据模型,并指出每一个关系的主键和外键(如果存在)。
(18)假定系统有三个并发进程read,move和print共享缓冲器b1和b2。
进程read负责从输入设备上读信息,每读出一个记录后把它存放到缓冲器b1中。
进程move从缓冲器b1中取出一记录,加工后存入缓冲器b2。
进程print将b2中的记录取出打印输出。
缓冲器b1和b2每次只能存放一个记录。
要求三个进程协调完成任务,使打印出来的与读入的记录的个数,次序完全一样。
请用pv操作,写出它们的并发程序。
(19)intf(n)
intn;
{if(n>0)returnn*f(n-1);
elsereturn1;
}
main()
{intk;
k=f(5);
printf(”k=f(5)=%d\n”,k);
}
程序运行结果是:
(20)输入一字符串,检查是否回文(回文是指正反序相同,如,level),若是则输出“yes”,否则输出“no”。
(21)请判断下述二叉搜索树的结点删除算法是否正确。
(a)如果正确,请给出一个简单实例,演示算法运行步骤;
(b)如果不正确,请指出错误之处,并给出改正后的算法。
如果只是局部修改,建议大家只具体给出所修改部分(例如,第x行-第y行代码修改为)
template/*第1行*/
voidbinarysearchtree:
:
deletenode(/*第2行*/
binarytreenode*pointer){/*第3行*/
if(pointer==null)/*第4行*/
return;/*第5行*/
binarytreenode*temppointer=null;/*第6行*/
binarytreenode*parent=getparent(root,pointer);/*第7行*/
if(pointer->leftchild()==null)/*第8行*/
{/*第9行*/
if(parent->leftchild()==pointer)/*第10行*/
parent->left=pointer->rightchild();/*第11行*/
else/*第12行*/
parent->right=pointer->rightchild();/*第13行*/
deletepointer;/*第14行*/
pointer=null;/*第15行*/
return;/*第16行*/
}//endif/*第17行*/
temppointer=pointer->rightchild();/*第18行*/
while(temppointer->rightchild()!
=null)/*第19行*/
temppointer=temppointer->rightchild();/*第20行*/
temppointer->right=pointer->rightchild();/*第21行*/
if(parent==null)/*第22行*/
root=pointer->leftchild();/*第23行*/
elseif(parent->leftchild()==pointer)/*第24行*/
parent->left=pointer->leftchild();/*第25行*/
else/*第26行*/
parent->right=pointer->leftchild();/*第27行*/
return;/*第28行*/
}/*第29行*/
(22)操作系统中进程调度策略有哪几种?
(23)设双链表结点结构为llinkdatarlink,请设计算法将其中p所指结点与其rlink所指结点位置互换的算法。
(24)设计一函数,求整数区间[a,b]和[c,d]的交集。
(25)写一个病毒。
(26)某采用页式存储管理的系统,接收了一个共11页的作业,作业执行时依次访问的页为:
1、2、3、4、1、2、6、5、2、1、2、7、3、4、5、5、4、7、1。
若把开始四页先装入主存且维持四个页在主存工作,当分别用先进先出(fifo)调度算法和最近最少用(lru)调度算法时,作业执行过程中会产生多少次缺页中断?
写出依次产生缺页中断后淘汰的页。
(27)我们需要编写一个图形相关的应用程序,需要处理大量图形(shape)信息,图形有矩形(rectangle),正方形(square),圆形(circle)等种类,应用:
需要计算这些图形的面积,并且可能需要在某个设备上进行显示(使用在标准输出上打印信息的方式做为示意)。
a)请用面向对象的方法对以上应用进行设计,编写可能需要的类
b)请给出实现以上应用功能的示例性代码,从某处获取图形信息,并且进行计算和绘制
c)如果你的square继承自rectangle,请给出理由,如果不是,请给出理由,并且请比较两种方式的优劣
d)请问你所编写的类,在如下代码中会有何表现,请解释
voidtest_rectangle_area(rectangle&r)
{
r.set_width(10);
r.set_height(15);
assert(r.area()==150);
}
(28)描述一个数学模型。
解决下面的问题:
给定任务t1、t2、t3……tn,它们分别需要t1、t2、……tn的时间完成。
给定一个约束集合,其中条件如:
tj开始之前ti必须完成。
求出完成任务的最少时间。
(29)设有关系模式:
emp(职工号,姓名,工资,部门号),试用sql语句创建一个工资总额超过20万元(含20万元)的各部门工资总额视图v-sal。
(30)用<<,>>,|,&实现一个word(2个字节)的高低位交换!
!
(31)现在普通关系数据库用得数据结构是什么类型的数据结构?
(32)在有向图中判别是否存在回路有那些方法,是说明其中两种方法的基本思想。
(33)编制一个完成两个数的四则运算程序。
如:
用户输入34+56则输出结果90.00。
要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。
(34)正向最大匹配分词,怎么做最快?
(35)简述顺序存储队列的队列满和空的条件?
(36)简述堆栈与队列的区别。
(37)编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。
如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0秒。
(38)x博士是一个研究儿童智力开发方法的科学家,他为幼儿教育领域做出了许多贡献。
最近,x博士正在研究一种适合儿童的游戏,用以辅助发展儿童的观察力、注意力和思维能力。
经过连日的构思,x博士终于设计出了一种游戏:
彩球游戏。
彩球游戏是一种单人参与的游戏,游戏首先给出一串由许多不同颜色的小球组成的小球序列,以及一个整数参数m(m≥2)。
一段连续的具有相同颜色的小球序列称为连续同色序列。
小孩,即游戏参与者,每次可以向任意一段连续同色序列插入一个同色小球,使该序列的长度加一。
当一段连续同色序列在插入一个同色小球后其长度达到m时,该序列就会爆炸消失,然后原序列两边的其余小球会重新连成一串,如果两段相同颜色的连续同色序列在此时连接在一起,它们就会合并形成一段新的连续同色序列。
如果新形成的连续同色序列长度达到m,这段序列也会爆炸消失,然后重复上述过程,直到没有新的长度达到m的连续同色序列出现为止。
游戏的目标很简单,就是插入尽量少的小球,使得所有小球都爆炸消失掉。
通过长时间的游戏和不断提高游戏水平,这个游戏可以很好地开发儿童的观察力、注意力和思维能力。
但是x博士仍然面临着一个困难的问题,他还需要设计出一个游戏演示ai程序,可以以最优的方式(即插入的小球数量最小)进行游戏,用于游戏教学,或者在游戏中对小孩给出提示。
x博士并不擅长此类程序,因而他无法完成这个任务,你可以帮助他吗?
(39)什么是多值依赖中的数据依赖?
举例说明。
(40)有一个unsignedlong型整数,先要分别将其前2个字节和后2个字节用为两个unsignedint型整数输出(设一个int型数据占2个字节),试编写一函数partition实现上述要求。
要求在主函数输入该long型整数,在函数partition中输出结果。
(41)为建立一个具有n份档案的档案库需要设计如下数据结构:
所有档案存储在一个动态存储的双向循环链表中,每份档案占用一个地址连续的存储块成为该链表中的一个结点,整个链表为一个链接顺序文件,取名为dossier(档案),同时分别建立两个索引,其中一个为稠密索引,取名为dense,另一个是表长为m的杂凑表索引,取名为bucket,该杂凑表采用链地址法处理冲突。
上述两种索引中都分别存储在每一份档案的存储地址。
1.请分别画出dossier、dense、bucket的结构示意图。
2.分别设计出dossier、dense、bucket的数据结点的结构,即为了满足档案的插入、删除、查找的操作,每个结点必要的数据项的名称及其作用。
3.针对上述结构,用简明的文字分别说明所有可能的查找方法(查找路径)。
4.分别给出每一种查找方法在查找成功时的平均查找长度。
(42)如果让你来实现数据库的等值连接,请你说出你的算法或者思路。
(43)设有如下3个关系模式:
职工emp(职工号,姓名,性别,出生年月)
工程prj(工程编号,工程名称,预算)
报酬sal(职工号,工程编号,工资)
用sql语句,写出以下问题的sql;
1.按照职工号统计每个职工的总收入。
2.创建一个查询职工承担工程的视图vps,vps包括职工号、姓名、工程名称和工资属性。
3.将预算额达到100万元以上工程的职工工资提高10%。
(44)已知二维数组a[1:
n,1:
n],请写一空间复杂度为o
(1)的算法,该算法将数组顺时针方向旋转90度(即把第1行变成第n列,第2行变成第n-1列,第3行变成第n-2列,…,第n行变成第1列)。
(45)执行下述程序的输出结果是________________。
#include
intw=3
main()
{
intw=10;
printf("%d\n",fun(5)*w);
}
intfun(intk)
}
if(k==0)
return(w);
return(fun(k-1)*k);
}
(46)独占设备采用哪种分配方式?
(47)在页式虚存管理系统中,设页面大小为26,页表内容如下,现访问虚地址:
(245)8和(126)8,问是否会发生页故障中断?
若会则简述故障中断的处理过程,否则将虚地址变换成相应的物理地址。
(48)main函数执行以前,还会执行什么代码?
(49)写一语句实现x是否为2的若干次幂的判断。
(50)列举磁盘移臂调度四种常用算法。
(51)c语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?
inta=5,b=7,c;
c=a+++b;
(52)以下程序的功能是在输入的一组正整数中找出其中的最大者,若输入的数值为0,程序结束。
main()
{inta,max=0;
scanf(”%d”&a);
while(a)
{if(________)max=a;
scanf(“%d”,&a);}
printf(“%d”,max);
}
将空白处的代码补充完整。
(53)写出输出结果:
charstr1[]="abc";
charstr2[]="abc";
constcharstr3[]="abc";
constcharstr4[]="abc";
constchar*str5="abc";
constchar*str6="abc";
char*str7="abc";
char*str8="abc";
cout<<(str1==str2)<cout<<(str3==str4)<cout<<(str5==str6)<cout<<(str7==str8)<(54)x=x+1,x+=1,x++,为这三个语句的效率排序。
并说明为什么。
(55)设有两个关系模式:
s(sno,sname,sex,age),其属性含义依次为学号、姓名、性别、年龄;
sc(sno,cname,grade),其属性含义依次为学号、课程名、分数。
试根据下列sql语句写出等价的关系代数表达式。
selectsname
forms
wheresnoin
(selectsno
fromsc
wheregradebetween70and80)
(56)简述存储管理的功能。
(57)设有两个关系模式:
s(sno,sname,sex,age),其属性含义依次为学号、姓名、性别、年龄;
sc(sno,cname,grade),其属性含义依次为学号、课程名、分数。
试根据下列sql语句写出等价的关系代数表达式。
selectsname
forms
wheresnoin
(selectsno
fromsc
wheregradebetween70and80)
(58)#include
voidmain()
{intc;
while((c=getchar())!
=′\n′)
switch(c-′2′)
{case0:
case1:
putchar(c+4);break;
case2:
putchar(c+4);break;
case3:
putchar(c+3);break;
default:
putchar(c+2);break;
}
printf(″\n″);
}
运行时输入:
2473,输出结果:
(59)给出ccdos中涉及汉字编码转换的模块,并简述它们的功能。
(60)employee(id,name,manager,dept,salary)分别为编号,姓名,是否是经理,所在部门,薪水。
写一个sql查出所有部门薪水最高的员工,并分析你的sql,还能更快吗?
(61)常用的关键查询应该使用哪种索引,稠密,还是稀疏索引?
为什么?
(62)简述数据库一致性状态的概念。
(63)简述树形目录结构的优点。
(64)简述“运行记录优先原则”。
(65)用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
(66)请实现两棵树是否相等的比较,相等返回,否则返回其他值,并说明算法复杂度。
数据结构为:
typedefstruct_treenode{
charc;
treenode*leftchild;
treenode*rightchild;
}treenode;
函数接口为:
intcomptree(treenode*tree1,treenode*tree2);
注:
a、b两棵树相等当且仅当root->c==rootb-->c,而且a和b的左右子树相等或者左右互换相等。
(67)一列数的规则如下:
1、1、2、3、5、8、13、21、34.求第30位数是多少,用递归算法实现。
(68)简述树形目录结构的优点。
(69)简述故障恢复中利用日志文件恢复事务的过程。
(70)双向链表的删除结点。
来源:
笔试网;面试网
选择题:
(1)缓冲技术中的缓冲池在( )中。
a.主存
b.外存
c.rom
d.寄存器
(2)用isam和vsam组织文件属于
a.顺序文件
b.索引文件
c.散列文件
d.都不是
(3)若定义了intm,n=0,*p1=&m;,则下列与m=n;等价的正确语句是
a.m=*p1;
b.*p1=&*n;
c.*&p1=&*n;
d.*p1=*&n;
(4)属于c语言基本数据类型的是
a.指针型
b.无符号整型
c.数组型
d.结构型
(5)事务日志的用途是
a.事务处理
b.完整性约束
c.数据恢复
d.安全性控制
(6)有10个顶点的有向完全图应具有
a.20条弧
b.50条弧
c.90条弧
d.100条弧
(7)在关系数