1. 简述数据库操作的过程。
    以下给出的应用程序A读取数据库中数据的一般步骤和过程,并体现了三级模式的作用。不同的数据库管理系统其操作细节可能存在差异,但其基本过程大体一致。至于其它的数据操作,如写入数据、修改数据、删除数据等,其步骤会有增加或变化,但总体上是十分相似的,在此不在详细叙述,下面是操作过程的示意图,以及具体的步骤描述。

百度笔试题_应用程序

⑴ 应用程序A向DBMS发出读取数据的请求,同时给出记录名称和要读取的记录的关键字值;
      ⑵ DBMS接到请求之后,利用程序A所用的外模式来分析这一请求;
      ⑶ DBMS调用模式,进一步分析请求,根据外模式和模式之间变换的定义,决定应读入哪些模式记录;
      ⑷ DBMS通过内模式,将数据的逻辑记录转换为实际的物理记录;
      ⑸ DBMS向操作系统发出读所需物理记录的请求;
      ⑹ 操作系统对实际的物理存储设备启动读操作;
      ⑺ 读出的记录从保存数据的物理设备送到系统缓冲区;
      ⑻ DBMS根据外模式和模式的规定,将记录转换为应用程序所需的形式;
      ⑼ DBMS把数据从系统缓冲区传送到应用程序A的工作区;
      ⑽ DBMS向应用程序A发出请求执行的信息。

2. TCP/IP分层结构。

百度笔试题_数据_02

TCP/IP协议被组织成四个概念层,其中有三层对应于ISO参考模型中的相应层。ICP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。
TCP/IP分层模型的四个协议层分别完成以下的功能:
第一层 网络接口层
网络接口层包括用于协作IP数据在已有网络介质上传输的协议。实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。相反,它定义像地址解析协议(Address Resolution Protocol,ARP)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。
第二层 网间层
网间层对应于OSI七层参考模型的网络层。本层包含IP协议、RIP协议(Routing Information Protocol,路由信息协议),负责数据的包装、寻址和路由。同时还包含网间控制报文协议(Internet Control Message Protocol,ICMP)用来提供网络诊断信息。
第三层 传输层
传输层对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中TCP协议(Transmission Control Protocol)提供可靠的数据流运输服务,UDP协议(Use Datagram Protocol)提供不可靠的用户数据报服务。
第四层 应用层
应用层对应于OSI七层参考模型的应用层和表达层。因特网的应用层协议包括Finger、Whois、FTP(文件传输协议)、Gopher、 HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等。

3. MVC是什么?其各层有什么作用。

MVC与模板概念的理解
MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。 
MVC如何工作 
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。 
视图(View) 
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和 Web services. 
如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。 
模型(Model)
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。 
控制器(Controller)
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。

 
现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。

 

百度笔试题_应用程序_03

 


4. a-z、0-9的字符组成3位密码,所有的密码组合。

#include <cstdio>
#include <cstdlib>
using namespace std;
void print_pass(FILE* f,char* s,int index,int n){
    if(index>=n) {
        s[index]='\0';
        fprintf(f,"%s\n",s);
        return;
    }
    for(int i=0;i<36;i++){
        if(i>=0&&i<=9)
            s[index]=i+'0';
        else
            s[index]=i+'a'-10;                                                                                                                              
        print_pass(f,s,index+1,n);
    }
}
int main(){
    FILE *f;
    f=fopen("a.txt","w");
    if(f==0){
        fprintf(stderr,"can't open file\n");
        exit(0);
    }
    int n=3;
    char *s=new char[n+1];
    print_pass(f,s,0,n);
    fclose(f);
}


5. 反转字符串。
6. 有插入,删除和替换操作,从任意字符A变换到任意字符B所需要的最少的操作数。gumbo与gambol 编辑距离的问题


7. RSA SercuityID 原理。

百度笔试题_MVC_04百度笔试题_应用程序_05百度笔试题_MVC_06

8. 一个素数可以表示成两个正整数的和,如5表示为(1,4)or(2,3),那么1~N的所有素数可以表示成由多个数对构成的链,如2,3,5,7 ... 表示成(1,1)(1,2)(1,4)(1,6),由于每个素数有多种数对来表示,这个链也有多种形式。求具有最多个不同的正整数的链。如前面例子中出现1,2,4,6四个数。