京东2016实习生招聘  PHP开发工程师

1关于软件质量特性,指软件所实现的功能满足用户需求的程度的是(正确性

2在MySql中,如果要修改表的列名,下列语句的语法正确的是(ALTER TABLE 表名字 CHANGE 列名字新列名字

3不同系列的机器之间,实现软件移植途径不包括(用统一的汇编语言

4有一语法制导翻译如下所示:             S→bAb  {print”1″}                      A→(B  {print”2″}                    A→a  {print”3″}                     B→Aa)  {print”4″}                  若输入序列为b(((aa)a)a)b,且采用自底向上的分析方法,则输出序列为(   34242421   )

解析:

null     null       b(((aa)a)a)b

null     b          (((aa)a)a)b

3     b(((A             a)a)a)b        A→a {print”3″}

4     b(((Aa)       a)a)b       B→Aa) {print”4″}

2     b(((B        a)a)b       A→(B {print”2″}

4     b((Aa)        a)b        B→Aa) {print”4″}

2     b((B         a)b        A→(B {print”2″}

4     b(Aa)         b         B→Aa) {print”4″}

2     b(B            b         A→(B {print”2″}

1     bAb         null            S→bAb {print”1″}

5windows系统口令配置文件是(   c:windowssystem32configSAM   )

解析:SAM文件即账号密码数据库文件。
当我们登录系统的时 候,系统会自动地和Config中的SAM自动校对,
如发现此次密码和用户名全与SAM文件中的加密数据符合时,
你就会顺利登录;如果错误则无法登录。
如果你不用管本来系统卡包含的任意账号,而且有两个操作系统的话,可以使用另外一个能访问NTFS的操作系统启动电脑,或者虽然没有安装两个系统,但可以使用其他工具来访问NTFS。然后删除C:\WINNT\system32\config目录下的SAM文件,重新启动。这时,管理员Administrator账号就没有密码了。当然,取下硬盘换到其他机器上来删除SAM文件也算个好办法。
小提示:WindowsNT/2000/XP中对用户账户的安全管理使用了安全账号管理器(Security

AccountManager,SAM)的机制,安全账号管理器对账号的管理是通过安全标识进行的,安全标识在账号创建时就同时创建,一旦账号被删除,安全标识也同时被删除。安全标识是惟一的,即使是相同的用户名,在每次创建时获得的安全标识都是完全不同的。因此,一旦某个账号被删除,它的安全标识就不再存在了,即使用相同的用户名重建账号,也会被赋予不同的安全标识,不会保留原未的权限。

  安全账号管理器的具体表现就是%SystemRoot%\system32\config\sam文件。SAM文件是WindowsNT/2000/XP的用户账户数据库,所有用户的登录名及口令等相关信息部会保存在这个文件中。
小提示:MBR俗称主引导区,它的作用是读取磁盘分区表(Partition
Table)里面所设定的活动分区 (Active
Partition),位于硬盘的柱面0、磁头0、扇区1的位置,也即俗你的0磁道位置。它是由分区命令fdisk产生的。MBR包括硬盘引导程序和分区表这两部分。MBR结束标志为55AA,用杀毒软件KV3000的F6功能即可查看,其默认画面即为MBR。如果MBR找不到活动分区,就会在屏幕上显示像Missing
operating
System等错误讯息,所以,如果你的WindowsXP无法正常开启。而你又在屏幕上看到类似这样的错误讯息,原因大多就是出在这里了。

7在一个长度为n的带头结点的单链表h上,另设有尾指针r(指向尾结点),在单链表最后一个元素之后插入一个新元素p,执行的操作(   r->next=p;p->next=NULL;  r=p;   )

8后缀算式5  3  2+ * 8 2/ -的值为(   21   )

后缀表达式

不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则,如:(2 + 1) * 3 , 即2 1 + 3 *

这里我给出一个中缀表达式:a+b*c-(d+e)

第一步:按照运算符的优先级对所有的运算单位加括号:式子变成了:((a+(b*c))-(d+e))

第二步:转换前缀与后缀表达式

前缀:把运算符号移动到对应的括号前面

则变成了:-( +(a *(bc)) +(de))

把括号去掉:-+a*bc+de 前缀式子出现

后缀:把运算符号移动到对应的括号后面

则变成了:((a(bc)* )+ (de)+ )-

把括号去掉:abc*+de+- 后缀式子出现

9在分块查找中,若索引表各块内均用顺序查找,则有324个元素线性表若分成9块,其平均查找长度为(     )

若以顺序查找方式来确定元素所在的块,则平均查找长度为:(b+1)/2+(s+1)/2

其中b代表索引表的长度(即总块数)

s代表块内所含元素的个数

所以:(9+1)/2+(324/9+1)/2=23.5

10

有一个有序表为{1,5,8,11,19,22,31,35,40,45,48,49,50},当二分查找值为48的结点时, 查找成功需要比较的次数(    4  )

一共13个数,将其分别标号为1~13:

low和high分别指向待查元素所在范围的下界和上界,mid指向区间的中间位置,

第一次比较:low=1,high=13,mid=7,31<48,未找到

第二次比较:low=mid+1=8,high=13,mid=10,45<48,未找到

第三次比较:low=mid+1=11,high=13,mid=12,49>48,未找到

第四次比较:low=11,high=mid-1=11,mid=11,48=48.找到,结束。

13

分析下面的HTML代码段,该页面在浏览器中的显示效果为(  从右向左滚动显示“Welcome!”    )     

<HTML> 
<body> 
   <marquee scrolldelay="300" direction="left">Welcome!</marquee> 
</body> 
</HTML>

 14在HTML5中,sessionStorage保存数据的方法正确的是(  sessionStorage.setItem(“键名”,”键值”);    )

setItem存储value

用途:将value存储到key字段
用法:.setItem( key, value)
代码示例:

sessionStorage.setItem(“key”, “value”); localStorage.setItem(“site”, “js8.in”);

getItem获取value

用途:获取指定key本地存储的值
用法:.getItem(key)
代码示例:

var value = sessionStorage.getItem(“key”); var site = localStorage.getItem(“site”);

removeItem删除key

用途:删除指定key本地存储的值
用法:.removeItem(key)
代码示例:

sessionStorage.removeItem(“key”); localStorage.removeItem(“site”);

clear清除所有的key/value

用途:清除所有的key/value
用法:.clear()
代码示例:

sessionStorage.clear(); localStorage.clear();

15

若表单提交时采用的是Get方法,则服务器端要获得表单所提交的数据,应采用:(Request.QueryString(”表单域名”))

16

下面代码加入下面那个函数后返回TRUE:

 return ? == ‘A’;

chr(65)

17

执行下面的代码后,

<?php
 echo function_exists('print');
 ?>

 得到的输出是:(

返回false echo为空

18

如果没有为Cookie指定失效时间,则设置的Cookie将在何时失效?(  结束当前会话时    )

19

下面程序的运行结果为?(  thizlinux    )

<?
 $a=“thiz”;
 function change(&$a)
 {
  $a.=“linux”;
 }
 change($a);
 echo $a;
?>

20

语句for($k=0;$k=1;$k++);

和语句for($k=0;$k==1;$k++);

执行的次数分别是:(无限和0

21

9个元素 ABCDEFGHI 被依次push入栈中,pop操作有可能在任何时候进行,那么以下那种出栈次序是不正确的( IHGFEABCD  )

22

以下函数的时间复杂度是多少?( O(NlogN)   )

int foo(int N)
         {
                   int result =0;
                   for(int i = 1; i <= N; ++i)
                            for(int j = 1; j<= N; j += i)
                                     result += (i+j);
                   return result;
         }

第一次是n个,第二次由于每次加2,所以是n/2次,第三次由于每个加3是n/3….

抽出n

变成n(1+1/2+1/3+….)

根据欧拉公式

1+1/2+1/3+…=ln n

所以就是n ln n

也就是nlogn

23

当x=2015时,以下函数的返回值是多少?( 10  )

int func(x)
{
           int count = 0;
           while(x)
           {
                    count++;
                    x = x&(x-1);
           }
           return count;
}

2015是11111011111

其中共有10个1

这个过程可以看做是把1变为0的过程,每次都有一个1变成0,共有10个1,所以需要十次x将变为0

所以此时conut为10

24

当我们在局域网内使用 ping www.jd.com 时,那种协议没有被使用?( TCP   )

1、因为ping的话 后面跟的是地址,所以要先将域名转换为ip地址,即用到了DNS

2、获取到ip地址后,在数据链路层是根据MAC地址传输的,所以要用到ARP解析服务,获取到MAC地址

3、ping功能是测试另一台主机是否可达,程序发送一份ICMP回显请求给目标主机,并等待返回ICMP回显应答,(ICMP主要是用于ip主机、路由器之间传递控制信息,控制信息是指网络通不通,主机是否科大)

4、TCP的话,不涉及数据传输,不会用到

25

有5个人ABCDE排队,排好后他们决定重新排队,每个人都不在原来的位置上,那么总共有多少种排法?( 44  )

n个人每个人都不站在原来的位置的方法数有:
f(n)=n!(1/2!-1/3!+1/4!+..+(-1)^n/n!)
此公式的推导过程要用到筛法公式,而且推导过程很复杂,除了竞赛高考肯定不会出现,对于n不大于4时可采用枚举法.一般只需记住n不大于5的情况即可
f(2)=1,f(3)=2,f(4)=9,f(5)=44