更新时间:2018-11-22 15:29作者:王华老师
一、简答题(30分)
1、用简单的语言进行数据库操作的步骤。(10分)
2、TCP/IP的四层结构。(10分)
3、什么是MVC结构并简要介绍各层次的结构。(10分)
二、编程题(40分)
1、公司技术部接到一个任务,需要使用a-z、0-9组成3位的字符密码,现请你设计一个算法,将可能的密码组合全部打印出来。(10分)
2、请实现字符串反转函数。(10分)
3、给定三种字符串的操作:
i)插入操作,你可以在任意位置插入一个char字符。
ii)删除操作,你可以在任意位置删除一个char字符。
Iii)替换操作,你可以把任意一个char,替换成一个新的char。
通过上述三种操作可以将一个给定的字符串A变换成另一个给定的字符串B,例如A=acegf,B=adef,那么将A变换到B的最小操作次数是2。第一次操作是把c换成d,第二次操作是删除g。
1)给定A=gumbo,B=gambol,最小次数为多少?并给出具体的操作过程。(2分)
2)A、B为任意字符串?如何计算出最小操作次数?简述出你的计算思路,并给出递归公式。(3分)
3)实现代码(注意代码风格与效率)。(15分)
三、系统设题(30分)
【题目】RSA SecurID安全系统
RSA SecurID是在企业、银行等领域应用较多的一种用户登录验证手段。用户持有一个小设备,其上的6位数每60秒(也可以是其他时间间隔)变化一次,用户登录时需要输入这6位数字,服务器进行认证,通过则允许登录。如果由你来设计这个系统,会怎么做。
从系统设计的角度,回答如下问题
1)基础设计思路是什么?要求说明清楚服务器端为何能有效认证动态密码的正确性。
2)如果用户数量达到千万量级,给出系统设计图示或说明。要求子功能模划分清晰,给出关键的数据结构或数据库表结构,请考虑用户量级带来的影响和扩展性,考虑用户之间密码的随机性等因素,设计如何支持这几个因素,给出说明。
3)如果系统的算法升级,可能服务器和设备端都要有所修改。系统如何设计,能够使得升级过程(包括可能的设备替换或重设)尽量平滑?