2017秋招笔试题(php)部分题

1.下列代码输出结果是

<?php
$a = "www";
settype($a,'array');
(string)$a;
floatval($a);
echo gettype($a);
?>

【答案】:array

【解析】:对于这些强制类型转换,甚至是自动类型转换,这并没有改变这些操作数本身的类型;改变的仅是这些操作数如何被求值以及表达式本身的类型。 如果要改变变量的类型,就得用settype();
2.现有表book,主键bookid设为标识列。若执行语句:select value1,value2 into book2 from book, 以下说法正确的是?

A.若数据库中已存在表book2, 则会提示错误。
B.若数据库中已存在表book2, 则语句执行成功,并且表book2中的bookid自动设为标识。
C.若数据库中不存在表book2, 则语句执行成功,并且表book2中的bookid自动设为主键。
D.若数据库中不存在表book2, 则语句执行成功,并且表book2中的bookid自动设为标识。

【答案】:A、D;很明显会选择A;B肯定是错的,select into…
要求目标表不存在,因为在插入时会自动创建。C.select into复制表或表结构的时候,只是得到了一个“外壳”,就像克隆人一样,只是得到了一个躯体,个人的意识、回忆都不会克隆的。像原表的主键、外键、约束、触发器、索引都不会被复制过来。D.标识列的意思就是非空自动递增的列,有的时候也会叫标记列,设置某一列为自动递增。

3.关于mysql索引的描述正确的是:
A.mysql不支持全文索引
B.myISAM和InnoDB存储引擎的表默认创建索引都是B-TREE
索引
C.mysql目前不支持函数索引,但支持前缀索引

【答案】:B
A.Mysql是支持全文索引的, 旧版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的字段上。
不过新版的MySQL5.6.24上InnoDB引擎也加入了全文索引。
可以在创建表的时候创建全文索引,也可以通过 alter table 的方式来添加,也可以直接create index
B.索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的。MyISAM引擎使用B+Tree作为索引结构.InnoDB也使用B+Tree作为索引结构,但具体实现方式与MyISAM截然不同
C.mysql目前已经支持函数索引了,MySQL 5.7中引入了Generated Column(函数索引),前缀索引在网上我还没看到对之有具体的定义。。。
4.在Php中this和self以及parent的区别?
具体选项倒是没记下来,大概的考察内容就如下。
【解答】
- this是在实例化的时候来确定指向谁,是指向当前对象实例的指针,不指向任何其他对象或类。
- self是指向类本身,也就是self是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量
-parent是指向父类的指针,一般我们使用parent来调用父类的构造函数
parent::__constrcuct调用父类的构造方法

5.TCP协议中,服务器进程产生异常重启,仍能接收客户端报文,则可通过发送()报文断开此连接?
A.URG
B.FIN
C.RST
D.SYN

【答案】:C
他们都是TCP报文段的首部固定部分的一些字段
A.紧急URG,当URG=1时,表明紧急指针字段有效,它告诉系统此报文段有紧急数据
B.终止FIN,用来释放一个连接。当FIN=1时,表示此报文段的发送方的数据以发送完毕,并要求释放运输连接。
C.复位RST,当RST=1时,表明TCP连接中出现了严重的错误(如由主机崩溃或其他原因),必须释放连接,然后重新建立运输连接,RST置1还用来拒绝一个非法的报文段或拒绝打开一个连接,RST可称为重建位或重置位
D.同步SYN,在建立连接时用来同步序号,当它等于1时,表示这是一个请求连接或请求接受报文
6.linux通过互斥锁和条件变量共享data,线程被条件变量阻塞时,唤醒它的命令是什么
(选项没记。。。)

7.关于HTML Canvas的性能优化,错误的是…..
8.下面代码的时间复杂度是

int  func(int n){
  if(n<=l)return l;
  return n*fact(n-1);
  }

9.以下哪种情况属于策略模式的范畴( )

A.许多相关类仅仅是行为有差异

B.核心是采用面向对象的多态性的思想

C.需要经算法和对象分开,算法随它的客户而变化

D.避免暴露复杂的、与算法相关的数据结构
【答案】:ABD

考的是软件工程
策略模式:定义一系列的算法,把每一个算法封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。也称为政策模式

策略模式把对象本身和运算规则区分开来,其功能非常强大.**因为这个设计模式本身的核心思想就是面向对象编程的多形性的思想<**
算法使用客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构。

10.死锁与安全状态的关系是()。

A.死锁状态有可能是安全状态

B.安全状态也可能是死锁状态

C.不安全状态必定产生死锁

D.死锁状态一定是不安全状态

【答案】:D

11.一个航班系统,其航班信息需要人工输入,航班信息表名为HBXX,某航班的编号字段名为HBBH,票价为pj,某员工有一次手误,将航班编号为0001的票价99错输成了999,请问要修改它,下列语句正确的是
A.UPDATE HBXX SET pj=99 WHERE HBBH=’0001’;
B.UPDATE HBXX SET pj=99 WHERE pj=99;
C.ALTER HBXX SET pj=99 WHERE HBBH=0001;

【答案】:肯定选A啦
12.下列属于JS模块化规范的是
A.CommonJS
B.NODE JS
C.ECMA javascript
D.AMD

【答案】:AD
13.设有1000000个记录,通过分块划分为若干子表,建立索引,每个子表大小应设计为多少
A.1000
B.100
C.500
D.2000

【答案】:A
考察:数据结构-索引
这里写图片描述
14.

int a[2][3]={0,1,2,3,4,5};
int(*p)[3];
p=a;

下列表示地址的选项是
A.*(a+1)
B.a[1]+1
C.*a[1]+1
D.a[1]

【答案】:A(他是多选题,其他答案,我不确定。。。)

考察数组指针
p是二维数组指针

15.有10个闭区间,去掉尽可能少的区间,使得剩下的区间不相交,最少可以去掉几个

[1,100] [5,6] [6,7] [7,8] [9,18] [20,210] [70,99] [99,100] [70,100]
[101,102]

16,
下列代码输出的结果是

int func(int x){
 int countx=0;
 while(x){
   countx++;
   x=x*(x-1);
   }
   return countx;
   }
  void main(char[]argv){
  cout<<func(135)<<endl;
  }

【答案】:4

注意countx+;x=x&(x-1)。最后得到的countx就是x的二进制中1的个数

17.
下面代码输出结果是

usigned int a =0xfffffff7;
char *b = (char *)&a;
unsigned char i = (unsigned char)a;
printf("%08x,%08x\n",i,*b);

【答案】:ffffffff7
在X86系列的机器中,数据的存储是“小端存储”,小端存储的意思就是,对于一个跨多个字节的数据,其低位存放在低地址单元,高位存放在高地址单元,char b = (char*)&a,&a指向了unsigned int类型数据的指针,(char*)&a将&a强制转换成了char*类型的指针,并且这个时候发生了截断,截断后,指针b只指向了oxf7(为什么b指向了最低位的oxf7而不是最高位的oxff?这就是刚刚说到的小端存储,低地址单元存放低位数据,又由于指针b是char*型的,属于有符号数,所以有符号数在printf()的作用下输出fffffff7;
18.有向图有向边{

int a = 3;
int b =4;
int c=  5;
int d = 6;
int m = 5;
int n = 5;
if((m=a>b)&&(n=c>d)){
m++;
print("%d%d\n",m,n);


}

【答案】:0,5;

考察优先级以及&&符号,这种代码也只有在php和c++中才可以支持,java中回报错。。。
首先计算(m)=(a>b);对m做赋值,因为a>b=0,所以m=0;&&符号有一个特点,当前面的条件为false或者是0,它后面就不会执行了

所以m被赋值为0以后,就再也没有后续了。。。n是不会变的,还是5.
【注】:php、c++笔试题经常考这种优先级的问题,巨坑,可以对这种类型多加练习

可以看看这篇文章,http://www.jianshu.com/p/5ab28ce6472a
都是特别典型的题目

总结

常会考的是c++的指针问题,数据库的索引,以及一些基本操作语句,

只要考php,必定会考和优先级赋值语句相关的题目以及linux还有少量前端知识,还考了计算机网络的TCP协议,数据结构中求带权路径和图的一些计算也会考,一定要会。

数据库通常还会考它的隔离级别、事务的特性,会围绕它的事务特性去考一些知识点,例如读脏数据、幻读、不可重复读;数据库的查询优化、并发控制

后来,发现自己做过的题,经常考起来又没有做对,有印象做过,却记不起来答案啊。。。

猜你喜欢

转载自blog.csdn.net/sinat_35803474/article/details/77621415
今日推荐