蘑菇街2016招聘在线笔试题

本文解析了一系列数学和编程挑战题,包括欧拉函数计算、SQL语句验证、指针运算理解等内容,提供了详细的解答思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.已知φ为欧拉函数,求φ(56)。

因为任意一个大于1的正整数,都可以写成一系列质数的积。

根据相关知识,得到

再根据相关知识,得到

也就等于

这就是欧拉函数的通用计算公式。比如,1323的欧拉函数,计算过程如下:

所以φ(56)=φ(8×7)=φ(8)×φ(7)=4×6=24。


2.什么命令可以删除非空文件夹

Linux下删除非空文件夹
 

rm -rf dirname

3.下列sql语句用法错误的是

1)select * from table-name where 3>4

2)truncate table table-name

3)delete from table-name where null=null

4)alter table table-name add column id int

1)是对的。select语句如下:SELECT 列名称 FROM 表名称 WHERE 列 运算符 值。where后面可以跟 2=2或者15<9这样的语句。

2)是对的。truncate table friends 可以删除表friends中的所有记录。

3)是对的。delete用于删除表中的行。格式为:DELETE FROM 表名称 WHERE 列名称 = 值

4)是错的,ALTER TABLE 语句用于在已有的表中添加、修改或删除列。

如需在表中添加列,请使用下列语法:

ALTER TABLE table_name

ADD column_name datatype

要删除表中的列,请使用下列语法:

ALTER TABLE table_name

DROP COLUMN column_name

要改变表中列的数据类型,请使用下列语法:

ALTER TABLE table_name

ALTER COLUMN column_name datatype

由此可见,增加语句用add,删除用drop,修改用alter。修改和删除 要用COLUMN,增加不用COLUMN。第四条语句多了COLUMN。

4. 下列sql语句,能够实现“收回用户LILEI对STAFF表中SALARY的修改权”的语句为?

REVOKE UPDATE(SALARY) ON STAFF FROM LILEI

权限的授予与回收语句规则为:

授予
grant 权限 on 对象 to 用户
拒绝
deny 权限 on 对象 to 用户
回收
revoke 权限 on 对象 from 用户

5.下列赋值语句不正确的是

a.char *p; p ="helloword";

b.char p[12]={,,'v', 'i', 's', 'u',};

c.char p[12]; p2="hhhhh";

d. char p[] = "hhhss";

c是不正确的选项。

6.下列程序的输出是什么?

    short *p, *q;

    short arr[15] = {0};

    p = q= arr;

    p++;

    printf("%d\n", p-q);

    printf("%d\n", (char*)p-(char*)q);

    printf("%d\n",sizeof(arr)/sizeof(*arr));

答案为1, 2, 15。

首先如果两个指针向同一个数组,它们就可以相减,结果为两个指针之间的元素数目。p-q因此为1。

其次:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5

p应该是一个指向对象的指针,即非void*类型的一个指针。这个表达式的结果等于sizeof(*p)。
p是对象指针,对指针的+或-整数运算满足下标移动语义,也就是p+i(i是一个整数)应该等价于&p[i],这里的+i使p在数值增加了i*sizeof(*p),或者说在数值上(int)(p+i) 等于(int)p + i*sizeof(*p)。
而两个相同类型的对象指针相减,得到间隔的元素个数。也就是说,如果p、q是类型相同的指针,那么 p - q 的值等于((int)p-(int)q)/sizeof(*p)(由于类型相同,指向的对象类型也相同,sizeof(*p)也等于sizeof(*q))。
因此,无论p是什么对象类型的指针,(p + 1) - p 总是等于1。这里通过显式类型转换以避免得到这种不期望的结果。由于sizeof(char)等于1,于是(char *)(p+1) - (char *)p的值相当于(int)(p + 1) - (int)p,也就是((int)p + sizeof(*p)) - (int)p,即sizeof(*p)。
换句话说,在这里(char*)p-(char*)q为2,(short*)p-(short*)q为1,(int*)p-(int*)q则为0。
再者:sizeof函数返回一个对象或者类型所占的内存字节数。sizeof(arr)返回arr所占字节数30,sizeof(*arr)为2。因此结果为15。
7.若A,B为任意两个随机时间,则
a.P(AB)<=P(A)P(B)
b.P(AB)>=P(A)P(B)
c.P(AB)<=(P(A)+P(B))/2
d.P(AB)>=(P(A)+P(B))/2
因为P(AB)<=P(A), P(AB)<=P(B),所以2P(AB)<=P(A)+P(B),结果选择C。
8.一直s="abcd",则s[::-1]为:
为"dcba"。
9.运行下面代码,会出现:

public static void main(String[] args) {

           // TODO Auto-generated method stub

           int arr[] = new int[5];

           System.out.println(arr[5]);

       }

答案为:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
10.代码片段:

byte b1=1,b2=2,b3,b6; 

final byte b4=4,b5=6

b6=b4+b5;

b3=(b1+b2); 

System.out.println(b3+b6);

关于上面代码片段叙述正确的是() 
A、输出结果:13 
B、语句:b6=b4+b5编译出错 
C、语句:b3=b1+b2编译出错 
D、运行期抛出异常

答案是C、

b4 被定义为最终类型,不用进行强转就可以被byte类型接收。被final修饰的变量是常量,这里的b6=b4+b5可以看成是b6=10;在编译时就已经变为b6=10了.而b1和b2是byte类型,java中进行计算时候将他们提升为int类型,再进行计算,b1+b2计算后已经是int类型,赋值给b3,b3是byte类型,类型不匹配,编译不会通过,需要进行强制转换。Java中的byte,short,char进行计算时都会提升为int类型。
11.下面函数中不是用于处理日期和时间的函数有?
a.round
b.weekday
c.curdate
d.dayofmonth

答案为a。ROUND(X)返回参数X的四舍五入的一个整数。WEEKDAY(date)返回日期的星期索引(0=周一,1=周二,6=星期日)。CURDATE() 函数返回当前的日期。DAYOFMONTH(date) 返回date是一月中的第几日(在1到31范围内) 。

12.下列有关jobtracker叙述中重要的是?

参见链接。http://www.2cto.com/kf/201311/260826.html

13.mapreduce中,哪些数据保存在hdfs上?

a.分片

b.日志

c.map输出

d.reduce输出

答案是abcd。hdfs是抽象出来的文件系统。所有的东西都在hdfs上。

14.设随机变量x,y不相关,且Ex=2,Ey=1,Dx=3,则E(X(X+Y-2))为多少

15.

现有订单表orders,包含用户信息userid, 产品信息 productid, 以下()语句能够返回至少被订购过两回的productid?
a) select productid from orders where count(productid)>1
b) select productid from orders where max(productid)>1
c) select productid from orders where having count(productid)>1 group by productid
d) select productid from orders group by productid having count(productid)>1


编程题


这道题的解答思路需要注意两点。
1. 题目没说只选中一个人。而大家又都同样聪明。所以结果就是大家都是选择同样的数,并且最后得到的y跟每个人选择的数都是一样的。
2.通过上式计算出来的数,有可能不在[1, m]之间,如果小于1,则返回1,若大于m则返回m。


内容概要:本文档详细介绍了基于MATLAB实现的无人机三维路径规划项目,核心算法采用蒙特卡罗树搜索(MCTS)。项目旨在解决无人机在复杂三维环境中自主路径规划的问题,通过MCTS的随机模拟与渐进式搜索机制,实现高效、智能化的路径规划。项目不仅考虑静态环境建模,还集成了障碍物检测与避障机制,确保无人机飞行的安全性和效率。文档涵盖了从环境准备、数据处理、算法设计与实现、模型训练与预测、性能评估到GUI界面设计的完整流程,并提供了详细的代码示例。此外,项目采用模块化设计,支持多无人机协同路径规划、动态环境实时路径重规划等未来改进方向。 适合人群:具备一定编程基础,特别是熟悉MATLAB和无人机技术的研发人员;从事无人机路径规划、智能导航系统开发的工程师;对MCTS算法感兴趣的算法研究人员。 使用场景及目标:①理解MCTS算法在三维路径规划中的应用;②掌握基于MATLAB的无人机路径规划项目开发全流程;③学习如何通过MCTS算法优化无人机在复杂环境中的飞行路径,提高飞行安全性和效率;④为后续多无人机协同规划、动态环境实时调整等高级应用打下基础。 其他说明:项目不仅提供了详细的理论解释和技术实现,还特别关注了实际应用中的挑战和解决方案。例如,通过多阶段优化与迭代增强机制提升路径质量,结合环境建模与障碍物感知保障路径安全,利用GPU加速推理提升计算效率等。此外,项目还强调了代码模块化与调试便利性,便于后续功能扩展和性能优化。项目未来改进方向包括引入深度强化学习辅助路径规划、扩展至多无人机协同路径规划、增强动态环境实时路径重规划能力等,展示了广阔的应用前景和发展潜力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值