当前位置:首页 » 操作系统 » 算法工程师面试题

算法工程师面试题

发布时间: 2023-02-28 16:44:18

❶ .net软件工程师笔试题和面试题答案目

说明:

1. 本试题分可选题和必选题两部分。必选题需要根据题目要求回答。

2. 本试题考试时间为 0.5 小时。

3. 本试题完成后,请标明你的姓名以及联系方式(包括:Email、联系电话)。

注意事项:

1、在规定时间内自行选题(在可选题部分中),选题数目不能少于2个,难度不限,编程语言不限(除非题目中有特别说明)。

2、尽可能用代码段或函数完成,或自然语言来描述解题方法。

3、评分标准跟所选题目的数量和完成度无关,请尽可能展示自己的编程能力、思路、经验和风格。

可选题部分:

(1) 请使用目录树遍历的方法统计出指定逻辑驱动器的目录总数及文件总数,并显示硬盘空间浪费的百分比

> 类别:系统类

> 难度:中级

(2) 列出局域网中的所有工作组和计算机名,并可显示每一个计算机的共享目录

> 类别:系统类

> 难度:高级

(3) 写一个类似OICQ点对点消息发送软件,仅实现发送和接收的功能即可

> 类别:网络编程类

> 难度:高级

(4) 为DataGrid(WinForm)增加ComboBox样式的数据列

> 类别:数据库编程类

> 难度:中级

(5) 一维数组iArray[10],类型为int。请使用选择排序算法对其排序,并输出结果。

> 类别:数据算法

> 难度:初级

(6) 请新建一个类(名称为ClassA),该类必须含有三个属性:姓名(字符串),性别(布尔值),年龄(数值)。

用该类建立一个链表,该链表有以下算法:创建、添加、插入、删除和查找,算法内不用

考虑内存的分配与释放

> 类别:数据结构

> 难度:中级

Public Class ClassA{

Public string name;

Public boolean sex;

Public int age;

}

(7) 在上题的基础上,实现以下两个功能:

a. 保存该链表为二进制文件test.lib(存放在本题目路径之下)

b. 读取生成的二进制文件到链表中。

> 类别:数据结构

> 难度:中级

(8) 你所知道有哪些操作平台,谈谈你对他们的见解

> 类别:其它类

> 难度:无

(9) 你所知道有哪些编程语言,谈谈你对他们的看法,你使用过哪些语言,熟练程度

如何,编写过什么样的程序

> 类别:其它类

> 难度:无

(10) 请用VBScript或JavaScript语言中任何一种,与CSS结合,编写出移动Layer的例子,具体效果与Windows窗体类似。

> 类别:Web

> 难度:中级

必选题部分(必须用VS2003开发):

(1) C#回答题:请描述抽象类、接口、结构三者的区别:

抽象类当中的属性和方法不能被其子类重写,接口只定义其中的属性和方法,其方法的实现部分必须在其继承的子类中实现,结构和类比较类似,也有其属性和方法,但不能被继承和实例化.

(2) C#编程题:在WinForm 中实现类似于Windows 资源管理器的功能,左边有目录树,点击目录树,在右边显示该目录下的所有文件。查看方式分:大图标、小图标、列表、详细资料等。

(3) 写一个简单的存储过程或触发器,要求能正确运行(数据库采用Oracle,自建测试表)

Create table test

(id int primary key,

Name varchar2(10) not null,

Address varchar2(50),

Tel varchar2(18)

);

Create or replace procere InsertTest as

Declare IDN test.id%type;

Declare VName test.name%type;

Declare VAddress test.address%type;

Declare VTel test.tel%type;

Begin

Select nvl(decode(max(id),0,1,max(id)),1) + 1 into IDN

End

When

4 更多相关文章推荐参考:
安捷伦笔试真题
中兴数据库笔试真题
工商银行历年考试真题

❷ 如何面试算法工程师

墙面是算法工程师话你基本上你要有这个工程师的证,还有就是一些个人资料的简历证明

❸ 都快2021年了,算法岗位应该怎样准备面试

说到算法岗位,现在网上的第一反应可能就是内卷,算法岗位也号称是内卷最严重的岗位。针对这个问题,其实之前我也有写过相关的文章。这个岗位竞争激烈不假,但我个人觉得称作内卷有些过了。就我个人的感觉,这几年的一个大趋势是从迷茫走向清晰。

早在2015年我在阿里妈妈实习的时候,那个时候我觉得其实对于算法工程师这个岗位的招聘要求甚至包括工作内容其实业内是没有一个统一的标准的。可以认为包括各大公司其实对这个岗位具体的工作内容以及需要的候选人的能力要求都不太一致,不同的面试官有不同的风格,也有不同的标准。

我举几个例子,第一个例子是我当初实习面试的时候,因为是本科生,的确对机器学习这个领域了解非常非常少,可以说是几乎没有。但是我依然通过了,通过的原因也很简单,因为有acm的获奖背景,面试的过程当中主要也都是一些算法题,都还算是答得不错。但是在交叉面试的时候,一位另一个部门的总监就问我有没有这块的经验?我很明确地说了,没有,但是我愿意学。

接着他告诉我,算法工程师的工作内容主要和机器学习相关,因此机器学习是基本的。当时我就觉得我凉了,然而很意外地是还是通过了面试。

核心能力

由于我已经很久没有接触校招了,所以也很难说校招面试应该怎么样准备,只能说说如果是我来招聘,我会喜欢什么样的学生。也可以理解成我理解的一个合格优秀的算法工程师应该有的能力。

模型理解

算法工程师和模型打交道,那么理解模型是必须的。其实不用说每一个模型都精通,这没有必要,面试的时候问的模型也不一定用得到。但更多地是看重这个人在学习的时候的习惯,他是浅尝辄止呢,还是会刨根究底,究竟能够学到怎样的地步。

在实际的工作当中我们可能会面临各种各样的情况,比如说新加了特征但是没有效果,比如升级了模型效果反而变差了等等,这些情况都是有可能发生的。当我们遇到这些情况之后,需要我们根据已知的信息来推理和猜测导致的原因从而针对性的采取相应的手段。因此这就需要我们对当前的模型有比较深入地了解,否则推导原因做出改进也就无从谈起。

所以面试的时候问起哪个模型都不重要,重要的是你能不能体现出你有过深入的研究和理解。

数据分析

算法工程师一直和数据打交道,那么分析数据、清洗数据、做数据的能力也必不可少。说起来简单的数据分析,这当中其实牵扯很多,简单来说至少有两个关键点。

第一个关键点是处理数据的能力,比如SQL、hive、spark、MapRece这些常用的数据处理的工具会不会,会多少?是一个都不会呢,还是至少会一点。由于各个公司的技术栈不同,一般不会抱着候选人必须刚好会和我们一样的期待去招人,但是候选人如果一无所知肯定也是不行的。由于学生时代其实很少接触这种实践的内容,很多人对这些都一无所知,如果你会一两个,其实就是加分项。

第二个关键点是对数据的理解力,举个简单的例子,比如说现在的样本训练了模型之后效果不好,我们要分析它的原因,你该怎么下手?这个问题日常当中经常遇到,也非常考验算法工程师对数据的分析能力以及他的经验。数据是水,模型是船,我们要把船驶向远方,只懂船只构造是不行的,还需要对水文、天象也有了解。这样才能从数据当中捕捉到trick,对一些现象有更深入的看法和理解。

工程能力

虽然是算法工程师,但是并不代表工程能力不重要,相反工程能力也很重要。当然这往往不会成为招聘的硬性指标, 比如考察你之前做过什么工程项目之类的。但是会在你的代码测试环节有所体现,你的代码风格,你的编码能力都是你面试的考察点之一。

并不只是在面试当中如此,在实际工作当中,工程能力也很关键。往小了说可以开发一些工具、脚本方便自己或者是团队当中其他人的日常工作,往大了说,你也可以成为团队当中的开发担当,负责其团队当中最工程的工作。比如说复现一篇paper,或者是从头撸一个模型。这其实也是一种差异化竞争的手段,你合理地负担起别人负担不了的工作,那么自然就会成为你的业绩。

时代在变化,行业在发展,如今的校招会问些什么早已经和当年不同了。但不管怎么说,这个岗位以及面试官对于人才的核心诉求几乎是没有变过的,我们从核心出发去构建简历、准备面试,相信一定可以有所收获。

linux系统工程师面试题附答案

一、简答题

1.如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0:

答:# iptables -t nat -A PREROUTING -d 192.168.16.1 -p tcp --dport 80 -j DNAT --to 192.168.16.1:8080

或 者:# iptables -t nat -A PREROUTING -i eth0 -d 192.168.16.1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

2.什么是NAT,常见分为那几种,DNAT与SNAT有什么不同,应用事例有那些?

SNAT,DNAT,MASQUERADE都是NAT。

MASQUERADE是SNAT的一个特例。

SNAT是指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,这样,接收方就认为数据包的来源是被替换的那个IP的主机。

MASQUERADE是用发送数据的网卡上的IP来替换源IP,因此,对于那些IP不固定的场合,比如拨号网络或者通过dhcp分配IP的情况下,就得用MASQUERADE。

DNAT,就是指数据包从网卡发送出去的时候,修改数据包中的目的IP,表现为如果你想访问A,可是因为网关做了DNAT,把所有访问A的数据包的目的IP全部修改为B,那么,你实际上访问的是B

因为,路由是按照目的地址来选择的,因此,DNAT是在PREROUTING链上来进行的,而SNAT是在数据包发送出去的时候才进行,因此是在POSTROUTING链上进行的。

3.包过滤防火墙与代理应用防火墙有什么区别,能列举几种相应的产品吗?

4.iptables是否支持time时间控制用户行为,如有请写出具体操作步骤。

5.说出你知道的几种linux/unix发行版本。

Redhat、CentOS、Fedora、SuSE、Slackware、Gentoo、Debian、Ubuntu、FreeBSD、Solaris、SCO、AIX、HP…

6.列出linux常见打包工具并写相应解压缩参数(至少三种)

7.计划每星期天早8点服务器定时重启,如何实现?

8.列出作为完整邮件系统的软件,至少二类。

9,当用户在浏览器当中输入一个网站,说说计算机对dns解释经过那些流程?注:本机跟本地dns还没有缓存

答:

a.用户输入网址到浏览器;

b.浏览器发出DNS请求信息;

c.计算机首先查询本机HOST文件,看是否存在,存在直接返回结果,不存在,继续下一步;

d.计算机按照本地DNS的顺序,向合法dns服务器查询IP结果;

e.合法dns返回dns结果给本地dns,本地dns并缓存本结果,直到TTL过期,才再次查询此结果;

f.返回IP结果给浏览器;

g.浏览器根据IP信息,获取页面;

10,我们都知道,dns既采用了tcp协议,又采用了udp协议,什么时候采用tcp协议?什么时候采用udp协议?为什么要这么设计?

答:这个题需要理解的东西比较的多,分一下几个方面

a,从数据包大小上分:UDP的最大包长度是65507个字节,响应dns查询的时候数据包长度超过512个字节,而返回的只要前512个字节,这时名字 解释器通常使用TCP从发原来的请求。

b,从协议本身来分:大部分的情况下使用UDP协议,大家都知道UDP协议是一种不可靠的协议,dns不像其它的使用UDP的Internet应用 (如:TFTP,BOOTP和SNMP等),大部分集中在局域网,dns查询和响应需要经过广域网,分组丢失和往返时间的不确定性在广域网比局域网上更 大,这就要求dns客户端需要好的重传和超时算法,这时候使用TCP。

11,一个EXT3的文件分区,当使用touch test.file命令创建一个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况,说说你的理由。

答:两种情况,一种是磁盘配额问题,另外一种就是EXT3文件系统的设计不适合很多小文件跟大文件的一种文件格式,出现很多小文件时,容易导致inode 耗尽了。

12,我们都知道FTP协议有两种工作模式,说说它们的大概的一个工作流程?

FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)

在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。

服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。

在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通 知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。

总的来说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的.FTP是指服务器被动地等待客户端连接自己的数据端口。

被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTp服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。

因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。

13.编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下

Q:主要是考察awk 这些的用法

#/bin/sh

#Programm :

# Using for move currently directory to /tmp

for FileName in `ls -l |awk ‘$5>10240 {print $9}’`

do

mv $FileName /tmp

done

ls -la /tmp

echo “Done! ”

14.apache有几种工作模式,分别介绍下其特点,并说明什么情况下采用不同的工作模式?

apache主要有两种工作模式:prefork(apache的默认安装模式)和worker(可以在编译的时候加参数–with-mpm- worker选择工作模式)

热点内容
安全教育平台的首次账号密码多少 发布:2025-08-16 13:51:04 浏览:490
卖手机密码锁忘记开了能卖多少 发布:2025-08-16 13:49:35 浏览:224
印度预算法 发布:2025-08-16 13:43:48 浏览:289
java基础选择题题库 发布:2025-08-16 13:42:10 浏览:681
oracle数据库的存储结构设计 发布:2025-08-16 13:37:24 浏览:692
go安卓交叉编译 发布:2025-08-16 13:33:06 浏览:89
铜梁编程 发布:2025-08-16 13:29:11 浏览:930
编程男生 发布:2025-08-16 13:12:33 浏览:567
php基本数据 发布:2025-08-16 13:08:47 浏览:784
广度遍历算法 发布:2025-08-16 13:07:59 浏览:217