蘑菇街2016招聘在线笔试题

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。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值