if(p[i-1]>p[i]){
swap(p[i-1],p[i]);
bSwapped=true;
}
}
}while(bSwapped);
}
23.一个byte几个单位。
(计算机基础)
答:
8bit。
24.常用UNIX命令(Linux的常用命令)(至少10个);(Unix)
答:
ls,pwd,mkdir,rm,cp,mv,cd,ps,ftp,telnet,ping,env,more,echo
greap,cat,view,pr,in,chmod,find,chown.
25.写一个一小段程序检查数字是否为质数;(C++)
以上的程序你采用的哪种语言写的.采用该种语言的理由是什么,
答:
代码如下:
#include
boolprime(intn){
if(n<=0)exit(0);
for(inti=2;i<=n;i++)
for(intj=2;j<=sqrt(i);j++)
if((n%j==0)&&(j!
=n))
returnfalse;
returntrue;
}
C++,运行效率高
1.张表,学生表S,课程C,学生课程表SC,学生可以选修多门课程,一门课程可以被多个学生选修,通过SC表关联;(SQL)
1)写出建表语句;
答:
建表语句如下(mysql数据库):
createtables(idintegerprimarykey,namevarchar(20));
createtablec(idintegerprimarykey,namevarchar(20));
createtablesc(
sidintegerreferencess(id),
cidintegerreferencesc(id),
primarykey(sid,cid)
);
2)写出SQL语句,查询选修了所有选修课程的学生;
答:
SQL语句如下:
selectstu.id,stu.namefromsstu
where(selectcount(*)fromscwheresid=stu.id)=
(selectcount(*)fromc);
3)写出SQL语句,查询选修了至少5门以上的课程的学生。
答:
SQL语句如下:
selectstu.id,stu.namefromsstu
where(selectcount(*)fromscwheresid=stu.id)>=5;
2.数据库表(Test)结构如下:
(SQL)
IDNAMEAGEMANAGER(所属主管人ID)
106A30104
109B19104
104C20111
107D35109
112E25120
119F45NULL
要求:
列出所有年龄比所属主管年龄大的人的ID和名字?
答:
SQL语句如下:
selectemployee.namefromtestemployeewhereemployee.age>
(selectmanager.agefromtestmanagerwheremanager.id=employee.manager);
3.有3个表(15分钟):
(SQL)
Student学生表(学号,姓名,性别,年龄,组织部门)
Course课程表(编号,课程名称)
Sc选课表(学号,课程编号,成绩)
表结构如下:
1)写一个SQL语句,查询选修了’计算机原理’的学生学号和姓名(3分钟)
答:
SQL语句如下:
selectstu.sno,stu.snamefromStudentstu
where(selectcount(*)fromscwheresno=stu.snoandcno=
(selectcnofromCoursewherecname='计算机原理'))!
=0;
2)写一个SQL语句,查询’周星驰’同学选修了的课程名字(3分钟)
答:
SQL语句如下:
selectcnamefromCoursewherecnoin(selectcnofromscwheresno=(selectsnofromStudentwheresname='周星驰'));
3)写一个SQL语句,查询选修了5门课程的学生学号和姓名(9分钟)
答:
SQL语句如下:
selectstu.sno,stu.snamefromstudentstu
where(selectcount(*)fromscwheresno=stu.sno)=5;
5.写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数。
(CoreJava)
答:
代码如下:
publicintcountWords(Stringfile,Stringfind)throwsException{
intcount=0;
Readerin=newFileReader(file);
intc;
while((c=in.read())!
=-1){
while(c==find.charAt(0)){
for(inti=1;ic=in.read();
if(c!
=find.charAt(i))break;
if(i==find.length()-1)count++;
}
}
}
returncount;
8.用程序给出随便大小的10个数,序号为1-10,按从小到大顺序输出,并输出相应的序号。
(CoreJava)
答:
代码如下:
packagetest;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.Iterator;
importjava.util.List;
importjava.util.Random;
publicclassRandomSort{
publicstaticvoidprintRandomBySort(){
Randomrandom=newRandom();//创建随机数生成器
Listlist=newArrayList();
for(inti=0;i<10;i++){//生成10个随机数,并放在集合list中
list.add(random.nextInt(1000));
}
Collections.sort(list);//对集合中的元素进行排序
Iteratorit=list.iterator();
intcount=0;
while(it.hasNext()){//顺序输出排序后集合中的元素
System.out.println(++count+":
"+it.next());
}
}
publicstaticvoidmain(String[]args){
printRandomBySort();
}
}
9.写一个函数,2个参数,1个字符串,1个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码:
如(“我ABC”,4)应该截为“我AB”,输入(“我ABC汉DEF”,6)应该输出为“我ABC”而不是“我ABC+汉的半个”。
(CoreJava)
答:
代码如下:
publicStringsubString(Stringstr,intsubBytes){
intbytes=0;//用来存储字符串的总字节数
for(inti=0;iif(bytes==subBytes){
returnstr.substring(0,i);
}
charc=str.charAt(i);
if(c<256){
bytes+=1;//英文字符的字节数看作1
}else{
bytes+=2;//中文字符的字节数看作2
if(bytes-subBytes==1){
returnstr.substring(0,i);
}
}
}
returnstr;
}
14.struts的入口类;(Web)
答:
ActionServlet是Struts的入口类,所有的struts请求都经由该类转发处理
16.servlet的生命周期以及与其相关的类接口和相关方法;(Web)
答:
servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。
这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。
17.关于hibernate:
1)在hibernate中,在配置文件呈标题一对多,多对多的标签是什么;
2)Hibernate的二级缓存是什么;
3)Hibernate是如何处理事务的;
答:
1)一对多的标签为:
;多对多的标签为:
;
2)sessionFactory的缓存为hibernate的二级缓存;
3)Hibernate的事务实际上是底层的JDBCTransaction的封装或者是JTATransaction的封装;默认情况下使用JDBCTransaction。
18.JSP中两种include方式的区别;(Web)
答:
动态include用jsp:
include动作实现,它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;静态include用<%@include%>指令实现,适用于包含静态页面
19.javascipt的优缺点和内置对象;(Web)
答:
关于javascipt:
1)优点:
简单易用,与Java有类似的语法,可以使用任何文本编辑工具编写,只需要浏览器就可执行程序,并且事先不用编译,逐行执行,无需进行严格的变量声明,而且内置大量现成对象,编写少量程序可以完成目标;
2)缺点:
不适合开发大型应用程序
3)javascript有11种内置对象:
Array,String,Date,Math,Boolean,Number,Function,Global,Error,RegExp,Object
20.get和post的区别?
(Web)
答:
form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET
和POST方法。
二者主要区别如下:
1)Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据;
2)Get将表单中数据的按照variable=value的形式,添加到action所指向的URL
后面,并且两者使用“?
”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL;
3)Get是不安全的,因为在传输过程,数据被放在请求的URL中,
Post的所有操作对用户来说都是不可见的;
4)Get传输的数据量小,这主要是因为受URL长度限制,而Post可以传输大量
的数据,所以在上传文件只能使用Post;
5)Get限制form表单的数据集必须为ASCII字符,而Post支持整个ISO10646
字符集;
6)Get是form的默认方法。
22.写出你熟悉的开源框架以及各自的作用。
答:
框价:
hibernate,spring,struts.
Hibernate主要用于数据持久化;
Spring的控制反转能起到解耦合的作用;
Struts主要用于流程控制;
服务器类:
ApacheTomcatJboss等
25.JSP标签的作用?
如何定义;(Web)
答:
作用:
分离jsp页面的内容和逻辑;
业务逻辑开发者可以创建自定义标签;
封装业务逻辑;
可重用并且易维护;
易于手工修改、易于工具维护;
提供简洁的语法;
定义:
写标签处理器;
写tld文件;
讲标签处理器和tld文件放到同一个包里面;
把jsp页面和标签库配置部署在一起。
26.写一个自定义标签;(Web)
答:
代码如下:
importjavax.servlet.jsp.tagext.*;
importjavax.servlet.jsp.*;
importjava.io.*;
publicclassTimeTagextendsSimpleTagSupport{
privatebooleanisServer=true;
publicvoidsetServer(booleanisServer){
this.isServer=isServer;
}
publicvoiddoTag()throwsJspException,IOException{
JspWriterout=getJspContext().getOut();
if(isServer){
out.println(newjava.util.Date());
}else{
out.println("");
out.println("document.write(newDate());");
out.println("");
}
}
}
27.写出熟悉的JSTL标签;(Web)
答:
如下:
if>
forEach>
set>
import>
redirect>
28.说出struts中的标签;(Web)
答:
如下:
message/>errors/>
include/>messages/>
define/>html>
write/>form>
resource/>link>
cokkie/>text>
heder/>present/>
parameter/>equal/>
size/>
29.如何从form表单中得取checkbox的值;(Web)
答:
可在页面把checkbox的name属性取同一个,value属性取每个条目的id,后台用getParamter(“name”)能取到checkbox的一组值。
30.简述HttpSession的作用、使用方法,可以用代码说明。
(时间3分钟)(Web)
答:
HttpSession中可以跟踪并储存用户信息,把值设置到属性中,有2个方法:
setAttribute(),getAttrribute();
例如:
在一个方法中用session.setAttribute(“student”,st