Android开发笔试题.doc
《Android开发笔试题.doc》由会员分享,可在线阅读,更多相关《Android开发笔试题.doc(9页珍藏版)》请在冰豆网上搜索。
我的工作社区,建设行业第一互动平台!
1、给定一个字符串stringstr="天工网定位于我的建设门户、我的工作社区,倾听用户的声音,关注用户的需求是天工生存与发展的根基,网上会员大都是通过口碑相传得知天工网,并成为天工网的忠实用户";
请用程序找出这个字符串中出现频率最高字
(要求把该方法写成一个函数,然后用main()函数调用该方法,开发语言不限,但不能直接调用系统的方法)
解答:
namespace天工网
{
classProgram
{
staticvoidMain(string[]args)
{
stringstr="天工网定位于我的建设门户、我的工作社区,倾听用户的声音,关注用户的需求是天工生存与发展的根基,网上会员大都是通过口碑相传得知天工网,并成为天工网的忠实用户";
Console.WriteLine(findRepeat(str));
Console.ReadKey();
}
publicstaticcharfindRepeat(strings){
inttemp=0;
charword='a';
char[]tgw=s.ToCharArray();
Dictionarydic=newDictionary();//定义字典
for(inti=0;i{
try
{
dic.Add(tgw[i],1);//以文字为key,其对应的默认值为1
}catch
{
dic[tgw[i]]=dic[tgw[i]]+1;//当存在重复值抛出异常的时候,将对应的值+1
}
}
foreach(KeyValuePairkeyindic)
{
//遍历字典,通过比较“值”获得出现次数最多的字
if(temp{
temp=key.Value;
word=key.Key;
}
}
returnword;
}
}
}
2、下图给出了一张地图,地图中每个顶点代表一个城市,两个城市间的连线代表道路,连线上的数值代表道路长度,求从A地到E地的最短路径。
要求写出算法思路就可以了,如果文字说明不清晰的话,最好用伪代码表达。
解答:
一:
定义4个数组,AB[2],BC[8],CD[12]和DE[3],分别记录两个相邻节点之间的距离,如AB[0]=5,AB[1]=3,不相连的城市以距离“0”代替;
二:
进行遍历
定义一个dictionary保存遍历出的路径和距离:
dic;
For(i=0;i{
For(j=0;j{
If(BC[j]==0)
{
Continue;
}
For(k=0;k{
If(CD[k]==0)
{
Continue;
}
For(l=0;l{
Stringtemp=i.tostring()+j.tostring()+k.tostring()+l.tostring();
dic.add(“temp+”,i+j+k+l);
}
}
}
}
三:
通过遍历dic并进行比较即可得出最短路径。
3、编写一个方法来获取网站URL对应key的值(如:
当前页地址为http:
//localhost/?
id=123&name=test,输入"id"即获得"123",输入"name"获得"test")
备注:
用java代码编写,但不能使用系统函数,需要字符串分析
解答:
functionrequest(){
vartextkey=document.getElementByIdx_x("txtId").value;
varurl=location.href;
varstrs=newArray();
vari=0;
strs=url.split("?
");
if(strs.length<2){
alert("url不正确或不包含参数");
return;
}
strs=strs[1].split("&");
if(strs.length<=0){
alert("url不正确或不包含参数");
return;
}
vardic=newArray();
for(i=0;ivarkey=strs[i].split("=")[0];
varvalue=strs[i].split("=")[1];
if(dic[key]!
=undefined||dic[key]!
=null){
alert("传递了重复的key,请更正!
");
return;
}else{
dic[key]=value;
}
}
for(varkeyindic){
if(key==textkey){
document.getElementByIdx_x("message").innerText=dic[key];
}
}
}
4、如下图,安卓手机如何实现把最上面的复选框打勾,下面的3个复选框都打勾,把最上面的复选框取消打勾,下面的3个复选框都取消打勾,请写出一个函数,贴上代码
解答一:
(jquery)
$(function(){
$("#cAll").change(function(){
if($(this).attr("checked")=="checked"){
$(this).siblings().attr("checked","checked");
}else{
$(this).siblings().removeAttr("checked");
}
});
});
解答二:
(纯javascript)
functionchangeCheck(){
vari=0;
varchangeAll=document.getElementByIdx_x("cAll");
varchecks=document.getElementsByName("c");
if(changeAll.checked){
for(i=0;ichecks[i].setAttribute("checked","checked");
}
}else{
for(vari=0;ichecks[i].removeAttribute("checked");
}
}
}
5、设有"学生Student(sID,sName)","课程Course(cID,cName)","选课StudentCourse(scID,sID,cID)"这三个表。
一个学生可以选修0..n门课,一门课也可以被0..n个学生选修。
1):
请用一条SQL语句找出选修了所有课程的学生姓名。
1):
请用一条SQL语句找出选修了所有课程的学生姓名。
SELECTsName
FROMStudent
WHERE(sIDIN
(SELECTsID
FROMStudentCourse
GROUPBYsID
HAVING(COUNT(*)=
(SELECTCOUNT(*)ASExpr1
FROMCourse))))
6、在"信息表Info(infoID,infoTitle)"中,infoID是自增列,但Info表中的数据进行过删除,即infoID不是连续的。
1):
请用一条SQL语句找出按infoID升序排列,现在排在第100~120位置的那20条数据
1):
请用一条SQL语句找出按infoID升序排列,现在排在第100~120位置的那20条数据
select*from
(SELECTinfoID,infoTitle,ROW_NUMBER()OVER(orderbyinfoID)asrownumfromInfo)t
wheret.rownum>100andt.rownum<=120