分享紫光华语的笔试题(java部分),进来说说解题方案

willowflx 2009-09-13 11:23:07
紫光华语的笔试题目(java)

前面简单的一些题目就没有全部抄出来了,这是部分的题目,从后面的题目往前面的题目开始。高手进来说说解题方案

1。有一个数据文件,每一行的内容表示的是2008年中的一个日期或是一个时间段,这些时间段可能包含的日期有重复。如:

8月21日

5月1日-6月7日

10月25日

6月1日-7月1日

现在要求将包含在文件中的这些日期按顺序输出,并统计总共有多少天,请设计一种算法。可写代码,伪代码或文字描述。



2。已知某种开发语言有两种注释语言,//表示单行注释,//之后不允许换行;{""} 表示多行注释,“{"”和“"}”之间的内容为注释,允许换行;不考虑注释符号的嵌套情况。请写出一算法提取一段代码的注释内容进行输出。



3。SQL题

表T 四个字段 Dept EmplyeeID city Income(Integer).

1)列出员工为10A的员工的销售清单

2)列出各部门销售收入的汇总数

3)求销售收入最高的城市





4。使用面向对象和消息的响应方法,设计售票队列的实现过程。



5。请描述顺序查找法,折半查找法对被查找的表中元素的要求,对长度为n的表三种查找法的时间复杂度各是多少()设出现概率相同。



6。常见国标字符集。



7。在程序中调用dll有静态调用和动态调用两种方法,说明两种方法的区别。



8。说明javaIO控操作对象类型。(题目没抄写全,就这意思)。



9。写一个三角形分类的函数与实现。(一般三角形,等腰三角形,等边三角形,题目没抄全,就这意思)。



10。java技术基础题:写出程序的输入结果。开始觉得挺怪异的一个题。后来想想,也很正常的。



class insect{
int i=9;
int j;
insect(){
prt("i= "+i+" j="+j);
j=39;
}
static int x1=prt("static insect x1 initialized");
static int prt(String s){
System.out.println(s);
return 47;
}
}

public class Huayu extends insect{

int k=prt("huayu k initialized");
Huayu(){
prt("k="+k);
prt("j="+j);

}
static int x2=prt("static huayu x2 initialized");
static int prt(String s){
System.out.println(s);
return 63;
}
public static void main(String[] args){
prt("initialized constructor");
Huayu b=new Huayu();
}
}



输出的内容需要一点点的分析。

...全文
631 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
willowflx 2009-10-15
  • 打赏
  • 举报
回复
谢谢,谢谢各楼的支持!
java_object 2009-09-13
  • 打赏
  • 举报
回复
sf
zhuyang7654321 2009-09-13
  • 打赏
  • 举报
回复
有点晕。
感觉怎么好像都不会啊 ! ?

得继续努力了...
姓庄滴 2009-09-13
  • 打赏
  • 举报
回复
第一题:

格式都是 xx月xx日,可以将它们先转化成java.util.Date对像。
Date对象是可以比较的。
转换的时候,要用到java.text.SimpleDateFormat类,以及其parse()方法。

第二题:

用正则表达式,JAVA是支持正则表达试的。。一行代码就解决问题。

正则表达式大概这样写:String rex = "/^{\".\"}$/";

我是两年前用过正则表达式,好久没写了,也不知道这个写对没。但是总的来说,用正则表达式来处理,绝对没错。

其它题目就不用多说了。


pigjavalife 2009-09-13
  • 打赏
  • 举报
回复
最后想说,这笔试很牛叉
pigjavalife 2009-09-13
  • 打赏
  • 举报
回复
8月21日=>0821(short)

5月1日-6月7日 =>0501......0607(这里需要判断每个月的天数)

把他们转换成有效的数字放到数组中(动态数组,也可用链表);
如果允许可用hash过滤重复的数字,
然后对数组排序.
输出时在转换0802=>8月21日
PS:现在好多语言字符串也可以比较大小啊,直接搞个Tree,往里放就可以了啊,
fhm727 2009-09-13
  • 打赏
  • 举报
回复
3:
1、select * from T where EmplyeeID='10A'
2、select Dept,sum(Income) from T group by Dept
3、select City,max(Income) from T group by City

老紫竹 2009-09-13
  • 打赏
  • 举报
回复
第一题,把日期转化为long 类型,做整数算法更简单一些!
hn1232 2009-09-13
  • 打赏
  • 举报
回复
mark,有空做!
willowflx 2009-09-13
  • 打赏
  • 举报
回复
谢谢大家的热情回复。对第二个题目想到的也是字符串分割,第一个题目,有人给我一建议,跟fhm727比较相近,先将日期变成时间段,然后转换格式放到数组中,遍历排序,统计天数。
如果可以,希望有更详细的解题方案!欢迎继续讨论。
fhm727 2009-09-13
  • 打赏
  • 举报
回复
第二题较简单:主要是分割字符串
假设代码段为str,首先判断其是否包含{",若有则按其进行分割成str1,str2,在判断str2是否含有“"}”,若有则按其进行分割成str21,str22,那么str22部分就是注释部分,然后再把str22当作str进行处理
若str不包含{",则先将其按\n进行分割,再判断每一个子字符串是否包含//,后面的和上面的处理类似
fhm727 2009-09-13
  • 打赏
  • 举报
回复
第一题可以这样:一天的如8月21日看成是8月21日-8月21日,这样就都变成了一个时间段
然后从每个时间段取出两个字符串,将这些字符串存到两个字符数组中(比如说5月1日-6月7日
存储为date1[0] = "0501",data2[0]="0607"),然后按字符串大小分别排序,然后再对两个数组的元素进行比较整合,组成新的时间段
sustbeckham 2009-09-13
  • 打赏
  • 举报
回复
对第一题感到有点意思

我的想法
先建立一个二维数组 12*31的 ,初始化后二维数组每个值都为0.

其实二维数组是代表日期的标志,比如5月5日 就是array[4[4]
12月1日就是array[11][0].

然后判断日期,如果一行只有一个日期,则先判断数组里对应的值,如果是0,则改为1.
如果一行有日期段,则用String.split打开。然后循环判断。判断数组里对应的值,如果是0,则改为1.

最后将数组里面所有为1的项换算成日期输出【月份和日期即在各自的数组下标上加1】
dajiadebeibei9 2009-09-13
  • 打赏
  • 举报
回复
第一题和第二题我只想到用断用字符分割 相率不高
yubangqi 2009-09-13
  • 打赏
  • 举报
回复
bd

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧