面试


51.请写出数据类型(int char varchar datetime text)的意思;请问 varchar 和 char有什么区别?

答:

1Int 整形

2Char字符型

3Varchar 可变长度字符型

4Datetime 时间日期内省

5Text 文本类型

6Varchar 是可变长度类型,占用的空间是字符串的长度+1,而char是固定长度字符串类型,定义了多少空间就占用多少空间。

 

52.MyISAM 和 InnoDB 的基本区别?

答:

MYISAM不支持外键和事务处理,采用表锁机制,查询速度稍快,数据存储文件有3个,InnoDB支持外键和事务处理,采用行锁机制,查询速度比MYISAM稍慢,数据存储文件只有一个。

 

 

53.不使用cookie向客户端发送一个cookie.

答:

$value=”111″;

header(“Set-Cookie:name=$value”);

echo $_COOKIE['name'];

 

54.线性表和顺序表的区别?

答:

1、线性表包括顺序表和链表。

2、顺序表中的元素的地址是连续的,链表里面节点的地址不是连续的,是通过指针连起来的。

55.如何实现多个线程安全的写入一个文件数据。

答:

采用锁机制,当一个用户在对此文件进行读写入操作时,将此文件锁定,操作完毕后解除锁定,在该用户进行读写入操作过程中,其他用户不能操作此文件,需要排队等待。

 

56.isset()empty() 区别,对不同数据的判断结果,$a=0;$a=’0′;$a=”;$a=false;$a=null;

Isset判断变量是否存在,如果存在则返回真,empty判断变量是否为空,如果为空则返回真。

答:

Isset判断:true,true,true,true,false

Empty判断:true,true,true,true,true

 

57.什么是满二叉树?什么事完全二叉树?

答:

满二叉树:除了叶子节点外的所有节点都有两个子节点。

完全二叉树:每个节点最多有两个子节点,缺右不缺左,而且最多只能缺少一个叶子节点。

 

58.如何在页面之间传递变量(至少两种方式) ?

答:

GET,POST,COOKIE,SESSION

 

59.写出匹配URL的正则表达式.

答:

/^http:\/\/www\.([\w]+)\.([\w]+)$/

 

 

 

 

 

 

 

 

60.请写出常见的排序算法(至少三种),并用PHP实现冒泡排序,将数组$a = array()按照从小到大的方式进行排序。

答:

 

冒泡排序法,快速排序法,插入排序法(一维数组)

 

冒泡:

$a=array(1,9,34,78,2,11,5);

Function maopao($arr){

$count=count($arr);

For($i=0;$i<$count;$i++)

{

For($j=$count-2;$j>=$i;$j–)

{

If($arr[$j]>$arr[$j+1])

{

$tmp=$arr[$j];

$arr[$j]=$arr[$j+1];

$arr[$j+1]=$tmp;

}

}

}

}

 

61.在数据库test中的一个表student,字段是nameclassscore。分别代表姓名、所在班级,分数。

答:

1) 学出每个班级中的学生,按照成绩降序排序;

2) 查出每个班的及格人数和不及格人数,格式为:class、及格人数、不及格人数;

3) PHP写入连接数据库(“localhost”,”msuser”,”mspass”)、执行以上SQL、显示结果、判断错误、关闭数据库的过程;

1select * from student order by score desc;

2Select A.class,A.及格人数,B.不及格人数 from (select class, count(*) as ’及格人数‘ from student where score>=60 group by class) as A,(select  class,count(*) as ’不及格人数‘ from student where score<60 group by class) as B where A.class=B.class;

3$conn=mysql_connect(‘localhost’,'root’,’12345′);

Mysql_select_db(‘test’);

$sql=”";

$result=Mysql_query($sql);

Mysql_close();

 

 

 

 

62.ftp://pub.foo.bar.com:2121/incoming/rls.sfv 请给出这个URL各部分的意义 

答:

1ftp:// ;使用的协议是:ftp

2Pub.foo.bar.com 是域名

32121 是使用的端口

4Incoming/rls.sfv 是当前访问的文件。

 

63.请列出4个常用的HTML标签名 

答:

<table></table>

<a></a>

<form></form>

<div></div>

 

64.下列不属于Javascript语法关键/保留字的是 B

A. var

B. $

C. function

D. while

 

65.下列不属于Javascrip DOM操作事件的是 C

A. onclick

B. onkeydown

C. onbodyload

D. onmouseover

 

66.请写出5个常用的unix操作命令

答:

1Ls -l

2tar -zxvf

3Touch

4Cat

5Mkdir

6rm

 

67.请写出以下5UNIX系统配置文件/服务的作用

答:

/etc/passwd /etc/hosts /etc/fstab crontab sshd

 

1/etc/passwd :用户信息文件,其中包含用户名、用户是否有密码、用户ID及用户所属组

2/etc/hosts:主机名数据库,包IP地址、主机名或域名、别名等信息,在此文件中添加记录可绕过DNS

3/etc/fstab  保存了系统所有分区信息的配置文件。

4Crontab 计划任务命令

5Sshd 远程连接管理命令

 

68.请写出5个常用的SQL操作关键字

答:

Select ,update, delete, insert into, create ,group by ,order by

 

69.请列出5个常用的PHP操作MySQL的函数 

答:

1Mysql_connect()

2Mysql_select_db()

3Mysql_query()

4Mysql_fetch_row()

5Mysql_close()

 

70.请写出下面MySQL数据类型表达的意义。

答:

1int(10) 整数类型,长度10

2char(16) 字符类型,长度16

3varchar(16) 可变长度字符类型,长度16

4Datetime 时间日期类型

5Text 大字符串类型

 

71.有两张数据表,表user(id, name)记录了用户的ID和昵称,表article(id, title, content, time)记录了用户发表的文章标题、内容和时间,写一个SQL语句打印出每个用户的昵称及其发表的文章总数。

答:

Select user.name,A.id,A.总数 from user,(select id,count(*) as ’总数‘ from article group by id) as A where user.id=A.id;

 

72.下列PHP函数中不能直接在页面输出字符串的函数是 B

A. echo

B. sprintf

C. printf

 

73.在PHP中,‘+’操作符的功能不包括 A

A. 字符串连接

B. 数组数据合并

C. 变量数据相加

 

74.下面哪个选项没有将john添加到users数组中?C

(A) $users[] = ’john’;

(B) array_push($users, ’john’);

(C) $users ||= ’john’;

(D) array_unshift($users, ’john’);

 

74.请列出3PHP数组循环操作的语法,并注明每种循环的优缺点 

答:

1Foreach() 可以遍历关联数组和索引数组,操作简单

2For() 只能遍历索引数组

3Each list while 以关联和索引两种方式遍历数组,操作复杂

 

75.请列出3PHP中的预定义全局变量 

答:

1$_SESSION

2$_COOKIE

3$_SERVER

4$_GET

5$_POST

 

76.从PHP4.2.0开始 PHP默认配置将register_globals配置设定为off,请指出这个设定的作用和对PHP相关程序的影响。

答:

Register_globals=off;的时候,关闭了全局变量注册,访问POST方式提交值时用$_POST[];来访问,访问GET方式提交的值时用$_GET[];方式访问。

 

77.写一个函数实现字符串翻转

答:

 

1、Strrev()

2自己写:

Function str($a){

$len=strlen($a);

$b=”";

For($i=$len-1;$i>=0;$i–)

{

$b.=$a[$i];

}

Return $b;

}

 

 

 

 

 

 

 

 

78.请写出下列PHP代码的执行结果 

$var1 = 5;

$var2 = 10;

function foo(&$my_var)

{

global $var1;

$var1 += 2;

$var2 = 4;

$my_var += 3;

return $var2;

}

$my_var = 5;

echo foo($my_var) . ”\n”;     4

echo $my_var . ”\n”;       8

echo $var1 . ”\n”;   7

echo $var2 . ”\n”;   10

$bar = ’foo’;

$my_var = 10;

echo $bar($my_var) . ”\n”;    4

 

79.不断在文件hello.txt头部写入一行“Hello World”字符串,要求代码完整

答:

$fp=fopen(‘hello.txt’,'r’);

$str=’hello!’.”\n”;

$str.=fread($fp,filesize(‘hello.txt’));

fclose($fp);

$fp1=fopen(‘hello.txt’,'w’);

fwrite($fp1,$str);

 

80.输出用户的IP地址,并且判断用户的IP地址是否在192.168.1.100 — 192.168.1.150之间

答:

Echo $ip=getenv(‘REMOTE_ADDR’);

$ip=Str_replace(‘.’,”",$ip);

If($ip<1921681150 && $ip>1921681100)

{

Echo ’ip192.168.1.100—–192.168.1.150之间‘;

}

Else

{

Echo ’ip不在192.168.1.100—–192.168.1.150之间‘;

}

 

 

 

81.请将2维数组按照name的长度进行重新排序,按照顺序将id赋值。

答:

<?php

$Tarray = array(

array(‘id’ => 0, ‘name’ => ‘123’),

array(‘id’ => 0, ‘name’ => ‘1234’),

array(‘id’ => 0, ‘name’ => ‘1235’),

array(‘id’ => 0, ‘name’ => ‘12356’),

array(‘id’ => 0, ‘name’ => ‘123abc’)

)

 

foreach($tarray as $key=>$val)

{

$c[]=$val['name'];

}

 

function aa($a,$b)

{

if(strlen($a)==strlen($b)) return 0;

return strlen($a)>strlen($b)?-1:1;

}

usort($c,’aa’);

$len=count($c);

for($i=0;$i<$len;$i++)

{

$t[$i]['id']=$i+1;

$t[$i]['name']=$c[$i];

}

echo ’<pre>’;

print_r($t);

echo ’</pre>’;

 

82.表单数据提交方式POSTGET的区别,URL地址传递的数据最大长度是多少?

答:

POST方式提交数据用户不可见,是数据更安全,最大长度不受限制,而GET方式传值在URL地址可以看到,相对不安全,对大长度是2048字节。

 

83.SESSIONCOOKIE的作用和区别,SESSION信息的存储方式,如何进行遍历?

答:

SESSIONCOOKIE都能够使值在页面之间进行传递,SESSION存储在服务器端,数据更安全,COOKIE保存在客户端,用户使用手段可以进行修改,SESSION依赖于COOKIE进行传递的。Session遍历使用$_SESSION[]取值,cookie遍历使用$_COOKIE[]取值。

 

 

84.通过PHP函数的方式对目录进行遍历,写出程序

答:

$dir=”./dd”;

Function open($dirs){

$dir=opendir($dirs);

while($f=readdir($dir))

{

If($f!=’.' && $f!=’..’)

{

$file=$dirs.’/’.$f;

If(is_file($file))

{

Echo ’文件名:‘.$file;

}

Else

{

Open($file);

}

}

}

}

 

Open($dir);

 

85.Linux的目录进行遍历,编写shell脚本

答:

#!/bin/bash

tree

 

86.什么是数据库索引,主键索引,唯一索引的区别,索引的缺点是什么?

答:

索引用来快速地寻找那些具有特定值的记录。

主键索引和唯一索引的区别:主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”,每个表只能有一个主键。唯一索引索引列的所有值都只能出现一次,即必须唯一。

索引的缺点:

1、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

2、索引需要占用物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,需要的空间就会更大。

3、当对表中 的数据进行增加、删除、修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

 

 

 

 

87.数据库设计时,常遇到的性能瓶颈有哪些,常有的解决方案?

答:

瓶颈主要有:

1、磁盘搜索 优化方法是:将数据分布在多个磁盘上

2、磁盘读/写 优化方法是:从多个磁盘并行读写。

3CPU周期 优化方法:扩充内存

4、内存带宽 

 

88.编写一个在线留言本,实现用户的在线留言功能,留言信息存储到数据库?

答:

假设现在有数据库:test 表名:mess 字段:idnamemessage

1.html页面,填写留言:

<form action=’post.php’>

留言者:<input type=’text’ name=’name’/>

留言内容:<input type=’text’ name=’message’/>

<input type=’submit’ value=’提交‘/>

</form>

Post.php页面,处理留言:

$conn=mysql_connect(‘localhost’,'root’,’12345′) or die(‘连接数据库失败!‘);

Mysql_select_db(‘test’);

$sql=”insert into mess(‘name’,'message’) values(‘{$_POST['name']}’,'{$_POST['message']}’)”;

$result=Mysql_query($sql);

If($result && mysql_insert_id($conn)>0)

{

Echo ’留言成功!‘;

}

 

89.通过JS实现页面的前进和后退操作?

答:

<a href=”javascript:window.history.go(+1)”>前进</a>

<a href=”javascript:window.history.go(-1)”>后退</a>

 

90.浏览器IE和非IE浏览器的划分,区别是什么?

答:

IE浏览器指的是使用IE内核的浏览器,对一些W3C标准的网页代码的支持不是很好。

IE浏览器指的是没有使用IE内核的浏览器,对W3C标准的网页代码有很好的支持。

 

91.设定网站的用户数量在千万级,但是活跃用户的数量只有1%,如何通过优化数据库提高活跃用户的访问速度?

答:

我们可以根据用户的活跃程度,把活跃的用户提取出来放到另外一张表里面,每次活跃的用户登陆的时候就直接到活跃用户表中进行查询,这样就提高了数据库的查询速度。

 

 

92.表单中getpost提交方法的区别?

答:

GET方式通过URL地址进行传值,在URL地址可以看到传递的值,最大长度也只支持2048字节,相对不安全。

POST方式通过http协议进行传值,用户无法看到传递的值,最大长度不受限制,相对比较安全。

 

93.Session cookie的区别?

答:

SESSION存储在服务器端,用户无法进行修改,相对比较安全,COOKIE存储在客户端,用户通过手段可以进行修改,相对不安全。

Session会在一定时间内保存在服务器上,当访问增多,会比较占用服务器资源。

单个cookie在客户端的限制是3k,就是说一个站点在客户端存放的COOKIE不能超过3k

 

94.数据库中的事务是什么?

答:

事务就是一系列的操作,这些操作完成一项任务,只要这些操作中有一个没有操作成功,事务就操作失败,发生回滚事件,即撤销当前操作,这样可以保证数据的一致性。而且可以把操作暂时放在缓存里,等所有操作都都成功在提交到数据库,这样保证了操作的有效性。

 

95.实现不使用第3个变量,交换$a$b的值,$a$b的初始值自己定。

答:

$a=4;

$b=5;

$a=explode(‘,’,$a.’,’.$b);  把用逗号把4,5分开。

$b=$a[0];

$a=$a[1];

echo $a,$b;

 

96.用php打印出前一天的时间格式是2006-5-10 22:21:21

答:

Echo date(“Y-m-d H:i:s”,strtotime(“-1 day”));

97.如何实现字符串翻转?

答:

Strrev(字符串);

 

98.PHP的意思,它能干些什么?

答:

Hypertext preprocessor,是一种开源通用的脚本语言,它能嵌入到HTML中,实现web开发。
99.GD库是做什么用的?

答:

GD库是php的一个扩展,用来进行图像处理。

 

100.数据类型(int char varchar datetime text)的意思请问varcharchar有什么别?

答:

Int是整数类型

Char是定长字符串类型

Varchar 是不定长度字符串类型

Datetime 是时间日期类型

Text 是长字符串类型

Varcahar 不定长度,占用多少空间由里面字符串的长度决定。

Char 定义了多少长度就使用多少空间

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值