一个校园实验室的纳新试题——(2)我的服务端开发笔试题

晚上整理

一个校园实验室的纳新题——(1)资源整理 http://www.cnblogs.com/corvoh/p/4869403.html

服务端开发笔试题

1.简述const与define的区别。

在PHP中定义常量时,const与define的区别:

用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数。另外const在编译时

要比define快得多。在PHP 5.3.0 以后,可以使用const关键字在类定义的外部定义常量,先前版本const

关键字只能在类(class)中使用。一个常量一旦被定义,就不能再改变或者取消定义。

(1)const用于类成员变量的定义,一经定义便不可修改。define不可用不类成员变量的定义,可用于全

局常量。

(2)const不能在条件语句中定义常量。

如:

        if (...) {

          const FOOT = ‘BALL’;//无效定义

        }

        if (...) {

          const FOOT = ‘BALL’;//无效定义

        }

(3)const采用一个普通的变量名称,define可以采用表达式作为名称。

如:

        const FOOT  = ’BALL’;

        for ($i = 0;$i < 32; ++$i) {

          define(‘BIT_’. $i,1 << $i);

        }

(4)const只能接受静态的标量,而define可以采用任何表达式。

如:

const BIT_5  = 1 << 5; //无效定义

define(‘BIT_5’,1 << 5); //有效定义

(5)const定义的常量对大小写敏感的,而define可通过第三个参数(为true表示大小写不敏感)来指

定大小写是否敏感。

如:

        define(‘FOOT’,’BALL’,true);

        echo FOOT; //BALL

        echo FOOT; //BALL

2.说明函数传值与传引用的区别。

按值传递:函数范围内对制的任何改变在函数外部都会被忽略。

按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改。

优缺点:

按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将是一个代价很大的操作。

按引用传递则不需要复制值,对于性能提高很有好处。

如果不想改变原变量的值的时候就传值,如:

      <?php

        $a = 1;

        function aa($a) {

        echo ++$a;

        }

        aa($a);

      ?>

如果可以让函数改变了原变量的值就可以引用传值:

      <?php

        $a = 9;

        function aa(&$a) {

        echo ++$a;

        }

        aa($a);

      ?>

3.请写出至少两种不用中间值实现a与b交换值的方法。(a与b全小整型)。

①a=a+b;b=a-b;a=a-b

②a=a*b;b=a/b;a=a/b

    <?php

      $a = 1;

      $b = 2;

      $a = $a+$b;

      $b = $a-$b;

      $a = $a-$b;

      echo $a;

    ?>

4.“数据库”从表中user中选出name字段包含admin的前10条结果所有信息的sql语句。

  select * from user where name like ‘%admin%‘ limit 0,10

5.简述HTTP协议中GET、POST、PUT、HELETE、HEAD这几个请求的方法。

HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。

GET:向特定的资源发出请求。GET方法不应当被作用于产生“副作用”的操作中。

POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体重。POST请求

可能会导致新的资源的建立和/或已有资源的修改。

PUT:向指定资源位置上传其最新内容。

DELETE请求服务器删除Request-URI所标识的资源。

6.简述HTTP请求状态码中1**、2**、3**、4**、5**的意义。

1**:信息类,表示收到web浏览器请求,正在进一步处理。

2**:请求成功,表示用户请求已成功被服务器接收、理解、并接受。

3**:重定向,表示请求没有成功客户端必须采取进一步的动作。

4**:客户端错误,表示客户端提交的请求有错误。

5**:服务器错误,表示服务器在处理请求的过程中有错误或者异常状态发生。

7.简述目前利用服务端语言解决HTTP无状态的方法?

HTTP本身是一个无状态的连接协议,为了支持客户端与服务器之间的交互,我们就需要通过不同的技术为交互存储状态,而这些不同的技术就是Cookie和Session了:

Cookie是通过客户端保持状态的解决方案。Cookie就是服务器发给客户端的特殊信息。有了Cookie这样的技术实现,服务器在接收到来自客户端浏览器的请求之后,就能够通过分析存放于请求头的Cookie从而得到客户端特有的信息,动态生成与之相对应的内容。

Session通过服务器保持状态。Session是服务器端为客户端所开辟的存储空间,在其中保存的信息就是用于保持状态。在服务器端建立Session后,客户端和服务器端之间用Session id联络,从而使用户的状态得以保持。

例,在CodeIgniter框架下Session的建立和使用。

Session在服务器端的建立与使用:

      <?php $this->session->set_userdata(‘user‘,$user);?>

      <?php $user = $this->session->userdata(‘user‘);?>

8.谈谈你对MVC的理解。

MVC是模型(Model)-视图(View)-控制器(Controller)的缩写。它是一个强制性使应用程序的输入、

处理和输出分开的设计模式。它们各自处理自己的任务。视图是用户看到并与之交互的界面。模型表示企业数据和业务规则。控制器接受用户的输入并调用模型和视图去完成用户的需求。

MVC的优点:低耦合性、高重用性和可适用性、较低的生命周期成本、快速的部署、可维护性、可拓展性,有利于软件工程化管理。

MVC的缺点:没有明确的定义,完全理解MVC并不容易、不适合小型规模的应用程序、视图与控制器间的过于紧密的连接、视图对模型数据的低效率访问问题等。

9.描述你在开发过程中遇到印象最深刻的问题以及解决的过程。

CI框架下的传参问题。

暑假刚接触PHP和CI,便有做一个用户登录并接收到属于用户自己的欢迎界面的想法,需要用到传参。

预期功能:注册、登录并完善信息后,网页左上角输出用户姓名+问候语。

最初用的是类方法中的传参,在一个方法里分配视图的时候合并参数建立数组并保存到$data中传递给视

图,再在视图中调用。但随着网页层级的加深,跳转传参变得既困难繁琐又重复难改,为了优化源码,便

于理解和修改,开始寻找解决方法。

解决问题的过程中依靠最多的是用户手册、百度百科和其他博主的博客,找要点学习从而知道了Session。

当用Session重新部署源码后,省去了很多空间,也使源码变得清晰易懂,优化很多。

最终以邮件保存此段经历心得收尾。而下面所附的迷你型网站项目便是此次经历的成果。

下附:

个人博客:http://www.cnblogs.com/corvoh/

个人主页:http://hanyile.sinaapp.com/

一个迷你型网站项目:http://2.corvoh.sinaapp.com/

时间: 2024-10-11 16:20:04

一个校园实验室的纳新试题——(2)我的服务端开发笔试题的相关文章

一个校园实验室的纳新试题

大学实验室纳新,笔试题提前一周便公布在微信公众平台里. 虽然有参加的想法并付出了一些努力,却终究因为自己还是大一新生没有理论经验的缘故选择性放弃了. 于是作出如下整理,供以后的自己寻找发展方向并深入学习,也供大家参考和挑战自己. 笔试题分为四部分:前端开发.服务端开发.视觉设计.产品经理/运营. 前端开发笔试题 1.简要概述什么是标准文档流:什么是块级元素,行内元素,各有什么特点:CSS选择器的id和class各自适合什么时候使用. 2.简要概述ajax技术的作用,使用方法(在不使用任何框架,库

面试题:各大公司Java后端开发面试题总结 !=!未看

ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量. 采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突. ThreadLocal类中维护一个Map,用于存储每一个线程的变量副本,Map中元素的键为线程对象,而值为对应线程的变量副本. ThreadLocal在Spring中发挥着巨大的作用,在管理Request作用域中的Bean.事

一个C#的tcp通讯示例小程序(含服务端与客户端)

c#中经常要用到socket通讯,本示例演示了一个服务端程序与客户端程序进行通讯. 服务端封装了Socket类,先创建Socket对象,然后使用Bind()绑定端口.然后开启线程,等待客户端的连接请求.当有客户端发来连接请求后,接受请求并再开一个子 线程与客户端进行通讯. 客户端也同样使用Socket类与服务端进行通讯.详细过程参见示例程序(本程序只是一个简单的示例,不完善的地方请见谅).     2020-02 Demo下载 原文地址:https://www.cnblogs.com/sky20

聚聚科技——php开发笔试题及答案

聚聚科技是一个刚创立的公司,很小很小,人很少,老板感觉是个典型的北京小伙儿,戾气很重,很有个性.笔试题倒是简单: 1. echo(), print(), print_r()的区别? echo是PHP语言结构, print和print_r是函数.语言结构没有返回值,函数可以有返回值(即便没有用)  . print()      只能打印出简单类型变量的值(如int,string) print_r() 可以打印出复杂类型变量的值(如数组,对象) echo        输出一个或者多个字符串 2.

2014网易前端开发笔试题-解答

原文来自:http://yjbys.com/bishi/timu/585868.html 主要是为了今晚的网易笔试.整理一下 1.(2分)对于多关键字而言,那种文件组织方便而又高效() A.顺序文件 B.倒排文件 C.散列文件 D.B+树索引文件 解析:答案 B. 文件在外存上的基本的组织方式有四种:顺序组织,索引组织,散列组织和链组织;对应的的文件名称分别为:顺序文件.索引文件.散列文件和多关键字文件.选择哪一种文件组织方式,取决于对文件中记录的使用方式和频繁程度.存取要求.外存的性质和容量.

前端开发笔试题

part1:Css 1.css中,Transform,Transition,Animation的区别?import和link的区别? 2.请用css画一个三角形和圆? 3.请解释css sprites和iconfonts? 4.行内元素和块级元素的区别? part2:JavaScript 1.列举异步加载JS的方式? 2.给Array本地对象增加一个原型方法,它的用途是删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组? 3.请用JS编写一个方法实现获取url参数值

聚聚科技---PHP开发笔试题及答案

1. echo(), print(), print_r()的区别? echo是PHP语言结构, print和print_r是函数.语言结构没有返回值,函数可以有返回值(即便没有用)  . print()      只能打印出简单类型变量的值(如int,string) print_r() 可以打印出复杂类型变量的值(如数组,对象) echo        输出一个或者多个字符串 2. 语句include和require的区别是什么?为避免多次包含同一个文件,可用(?)语句代替? require 生

使用PowerShell解三道测试开发笔试题

在网上看到了三道测试开发的笔试题,答案是用Python解的.这段时间正好在学PowerShell,练习一下:) 1. 验证邮箱格式 2. 获取URL的后缀名 3. 获取前一天时间或前一秒 我的解法是: 1 # Check Email format 2 Write-Host "Please input your email address" 3 $email=Read-Host 4 $regular="[a-zA-Z0-9]\@[a-zA-Z0-9]\.[a-zA-Z0-9]&

总结的一些前端开发笔试题

最近正忙于前端的应聘,在网络上搜集了一些问题,顺便结合网络答案,自己也整理了一部分,如有纰漏,还望批评指正. 1.请写出至少三个CSS3中新添加的样式属性的名字: (1)增强的文本属性:text-shadow(CSS2.1中已定义,但CSS3中又重新定义并增加了不透明度效果).text-overflow.word-wrap; (2)新增的盒模型属性:box-align.box-direction.box-flex.box-flex-group.box-lines.box-orient.box-p