软件工程师求职试题集合 下载本文

内容发布更新时间 : 2024/5/18 9:01:09星期一 下面是文章的全部内容请认真阅读。

软件工程师求职试题集合

笔试网(www.ipmao.com)

简答题:

(1)已知矩阵c是一个给定的图的邻接矩阵,如果从i到j有一条边,侧c【i,j】=1,否则c【i,j】=0,写一算法求一矩阵a,使得a【i,j】=1,如果从i到j有一条或多条路径,否则为0,a也被称为c的传递包。

(2)给出联机同时外围设备操作(spooling)的优缺点。

(3)非c++内建型别 a 和 b,在哪几种情况下b能隐式转化为a?

(4)由链表组成的三叉堆各元素有四个域:lchild,mchild,rchild和descnum,分别表示:左子树指针,中间树指针、右子树指针和有多少个子元素。初始时,各元素的descnum值为0,请写一算法求得各元素的descnum值,并将其填入到dsecnum域里。

(5)求出 10 到 100 之间的素数(只能被 1 和自身整除的数)并以每行一个素数的格式顺序写入文件 su.dat 。

(6)执行下述程序的输出结果是__________________。 #include

char b[]=\main() {

char *bp;

for (bp=b;*bp;bp+=2) printf(\printf(\}

(7)说出结果 #include main() {

file *fp;

int i,a[4]={1,2,3,4},b;

fp=fopen(\\\for(i=0;i<4;i++)

fwrite(&a[i],sizeof(int),1,fp);

fclose(fp);

fp=fopen(\\\

fseek(fp,-2l*sizeof(int),seek_end); fread(&b,sizeof(int),1,fp); fclose(fp);

printf(\\\}

(8)1.进程与线程的区别?为什么要引入线程?

(9)利用信号量和p、v操作,如何实现进程间的互斥和同步?

(10)现有a、b两道程序,它们各自需要执行1小时,其中各使用处理器18分钟。今在一个多道程序设计系统中让a,b两道程序并发执行,总共花了72分钟使两道程序都执行结束。问两道并发工作时的处理器利用率比单道执行时提高了多少?

(11)对于一个有向图,除了进行拓扑排序,还可以采用什么方法判断图中是否存在回路?请简述判断原则。

(12)已知一组键值序列(22,24,26,25,27,29,21,28),试给出采用直接插入排序法对该组序列作升序排序的每一趟结果。

(13)rewrite readlines to store lines in an array supplied by main , rather than calling alloc to maintain storage. how much faster is the program?

(14)什么是死锁?死锁的必要条件是什么?

(15)某公司数据库中有关系模式如下: 职工(职工号,职工名,性别,年龄) 工作(职工号,公司号,工资) 公司(公司号,公司名,地址)

试用 sql 语句定义一个断言(断言名为 asse5 ),规定“开元”公司职工的工资不能低于 2000 元。

(16)阅读下列程序,回答问题。

#include

int fun(int n);

void main()

{

printf( ″ the fun of 3 is %d \\ n ″ , fun(3));

printf( ″ the fun of 4 is %d \\ n ″ , fun(4));

}

int fun(int n)

{

int result=1;

while (n > 1)

result *=n--;

return result;

}

程序的运行结果是什么 ?

(17)写出影响算法执行的时间效率的主要因素,并指出哪些因素与算法的时间效率直接相关。

(18)在ia32中一共有多少种办法从用户态跳到内核态?

(19)什么叫winsock?如何用winsock实现网络通信?

(20)设下列函数已经通过了调试

bool sort_array(arraytype * pinputarray, arraytype * poutarray);该函数在内存中排序,能把字节数最大为100m字节的arraytype类型的数组排序。其中arraytype是一个预定义的数组类型(细节无关紧要),pinputarray,poutarray分别为排序前的指针和排序后的指针。 请用c语言的伪码风格设计一个算法,他调用上面给出的函数完成下列从输入到输出的任务:

输入:排序前的大文件,名称为char * pinoutfilename ,其内容为用分号分隔的arraytype类型的数组元素,可装满4个100m字节的数组。 输出:排序后的大文件char * poutoutfilename。

(21)根据蒙特卡洛算法计算圆周率

double pi( dowrd dwcount/*测试次数*/ ); 返回值:pi