当前位置:编程学习 > JAVA >>

java面试---机试题

第一题: 
         java上机实现统计D://document/file.txt文件中出现的字母个数、数字个数、汉字个数、空格个数及行数?

第二题:
         请编写一个Singleton模式的程序


第三题: 
         有一个长阶梯,每一步上2阶,最后剩1阶;若每一步上3阶;最后剩2阶;若每一步上5阶;最后剩4阶;
若每一步上6阶;最后剩5阶;只有每步上7阶,最后一阶也不剩。请问该阶梯至少有多少阶?
编写一个Java程序解决该问题

第三题:
         Employee 职工 (工号,姓名,性别,年龄,部门)(num,name,sex,age,departmentno)
         Wage工资 (编号,工资金额)(No,amount)
         Attend出勤 (工号,工资编号,出勤率)(num,No,attendance)
      请根据要求,编写相应的SQL语句。
         (1)写一个SQL语句,查询工资金额为8000的职工工号和姓名。
         (2)写一个SQL语句,查询职工张三的出勤率。
         (3)写一个SQL语句,查询3次出勤率为0的职工姓名和工号。
         (4)写一个SQL语句,查询出勤率为10并且工资金额小于2500的职工信息。
 
第四题
        通过jQuery框架对validate.html中的表单字段进行验证
         (1)公司名称必填,要求-中文或英文字母 40字以内
         (2)公司网址必填,要求-url格式
         (3)所属行业必选
         (4)招聘职位必填,要求40字以内不包含特殊字符
         (5)招聘人数必填,要求0-9的数字
         (6)学历要求必选
         (7)联系人必填,要求-中文或英文字母 20字以内
         (8)电话,手机,邮箱三个至少选择一项并对格式进行验证
          例如:电话 010-85390125 手机:13011708155 邮箱:hyg@126.com


第五题:
       基于spring2.5+struts1.3实现用户登入功能
       要求:
          (1)用户名只能包含英文字母,数字,下划线 (6至16位)
          (2)密码不能少于6位
--------------------编程问答--------------------

第三题
public class Ladder {
public static void main(String[] args){
int i = 7;
while(true){
++i;
if(i % 2 == 1 && i % 3 == 2 && i % 5 == 4 && i % 6 == 5 && i % 7 == 0){
break;
}
}
System.out.println(i);
}

}
--------------------编程问答-------------------- 第二题:

public class Singleton {
private static Singleton singleton;

private Singleton() {
System.out.println("执行构造函数");
}
public static  Singleton getInstance(){
if(singleton==null){
singleton=new Singleton();
}
return  singleton;
}

}
--------------------编程问答-------------------- 还有呢? --------------------编程问答-------------------- 请问可以查api吗、???? --------------------编程问答-------------------- http://blog.csdn.net/hzc543806053/article/details/7306812 --------------------编程问答-------------------- 学习java真是不容易啊,要学这么多东西 --------------------编程问答-------------------- 学习java得有SQL、html、javaSE基础、逻辑框架、ajax。。。 --------------------编程问答-------------------- 多着呢 不光要学这些 --------------------编程问答-------------------- 单例
http://hi.baidu.com/15574016362/blog/item/449a884084c4d139cffca395.html --------------------编程问答-------------------- --------------------编程问答-------------------- 水题,鉴定完毕。 --------------------编程问答-------------------- 除了jQuery这道题不会,其他题还是蛮简单的···不知道lz机试的时候需要在多少时间内做好? --------------------编程问答-------------------- java真难学,尤其是姥姥是教时没好好学,现在要汤剩饭 --------------------编程问答-------------------- 第一题
public static void main(String[] args) {
File file = new File("D:\\document\\file.txt");
StringBuffer sbf = new StringBuffer();
int count = 0;
String str = null;
try {
InputStream input = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(input));
while((str = br.readLine()) != null){
sbf.append(str);
count++;
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(sbf);
System.out.println("总行数:"+count);
System.out.println("多少个字母:"+get(sbf.toString()));
}

public static int get(String str){
int k=0;
for (int i = 0; i < str.length(); i++) {
int c = (int)str.charAt(i);
if(c>=97 && c<=122 || c>=65 && c<=90){
k++;
}
}
return k;
} --------------------编程问答--------------------

class Test{
// 第三题:
//   Employee 职工 (工号,姓名,性别,年龄,部门)(num,name,sex,age,departmentno)
//   Wage工资 (编号,工资金额)(No,amount)
//   Attend出勤 (工号,工资编号,出勤率)(num,No,attendance)
//   请根据要求,编写相应的SQL语句。
//   (1)写一个SQL语句,查询工资金额为8000的职工工号和姓名。
//   (2)写一个SQL语句,查询职工张三的出勤率。
//   (3)写一个SQL语句,查询3次出勤率为0的职工姓名和工号。
//   (4)写一个SQL语句,查询出勤率为10并且工资金额小于2500的职工信息。

public static void main(String args[]){
//mysql
String sql1="select num,name from (select a.num num,a.name,w.amout amout,a.No no from Employee e left join Attend a on e.num=a.num left join Wage w on a.No=w.No) view where amout =8000";
String sql2 ="select a.attendance  from Attend a left join Employee e on a.num = e.num where a.name='张三'";
String sql3 = "select num ,name from" +
"(select num,name,count(*) count from " +
"(select a.num num,e.name name,a.attendance from Attend a left join Employee e on a.num=e.num where a.attendance = 0) " +
" group by num) where count=3 ";
//出勤率为10?神马意思,具体实现没什么意思了。。
}
} --------------------编程问答-------------------- 我真心觉得第一题和第四题恶心,其他的还好!! --------------------编程问答-------------------- 这题太多正则表达式,这没过关!!!! --------------------编程问答--------------------
引用 1 楼 udbwcso 的回复:
Java code?1234567891011121314第三题public class Ladder {    public static void main(String[] args){        int i = 7;        while(true){            ++i;            if(i % 2 == 1 && ……


   这样是效率最差的吧? --------------------编程问答-------------------- 第三题 花了1分钟

/**
 * 有一个长阶梯,每一步上2阶,最后剩1阶;若每一步上3阶;最后剩2阶;若每一步上5阶;最后剩4阶;
 * 若每一步上6阶;最后剩5阶;只有每步上7阶,最后一阶也不剩。请问该阶梯至少有多少阶? 编写一个Java程序解决该问题
 * 
 * @author zyc
 * 
 */
public class Test3 {

public static void main(String[] args) {
for (int i = 7;; i += 7) {
if(i % 2 == 1 && i % 3 == 2 && i % 5 == 4 && i % 6 == 5) {
System.out.println(i);
 break;
}
}
}

}

--------------------编程问答-------------------- 第三题给的条件都不用编程了,分析一下就出来了
第一个条件说明说明楼梯数位奇数;第二个条件没有第四个条件苛刻,所以舍弃;第三个条件说明楼梯数末位是9;第四个条件先保留;第五个条件说明是7的倍数;然后第三个条件和第五个条件结合可以得出楼梯数应该是49+70n;然后结合第四个条件,49%6=1,所以要求70n%6=4,而70%6=4,直接就得出答案49+70了…… --------------------编程问答--------------------   留个记号 有时间弄弄  嘎嘎 --------------------编程问答-------------------- 太邪恶了! --------------------编程问答-------------------- 哈哈,我来做下第二题吧:

public class Singleton {
private Singleton(){}
private static Singleton singleton = null;
private synchronized static Singleton getInstance(){
if(singleton == null){
singleton = new Singleton();
}
return singleton;
}
}

我这里写的是懒汉模式,另外还有饥饿模式和登记模式,楼主感兴趣可以研究下 --------------------编程问答--------------------
引用 2 楼 zhucegepp 的回复:
第二题:


Java code
?



123456789101112131415

public class Singleton {     private static Singleton singleton;           private Singleton() {         System.out.println("执行构造函数");     }     ……

学习了 ~ --------------------编程问答-------------------- 都是很简单的题,初程面试题而已
第一题考正则,稍微偏点。。其它都很简单 --------------------编程问答-------------------- 某知我企业面试题:http://www.ctdisk.com/file/17536911 --------------------编程问答--------------------
引用 19 楼 zyc13701469860 的回复:
第三题 花了1分钟
Java code?12345678910111213141516171819/** * 有一个长阶梯,每一步上2阶,最后剩1阶;若每一步上3阶;最后剩2阶;若每一步上5阶;最后剩4阶; * 若每一步上6阶;最后剩5阶;只有每步上7阶,最后一阶也不剩。请问该阶梯至少有多少阶? 编写一个Java程序解决该问题 *  * @author zyc *  *……


把判断条件倒过来会不会好点,先对6取余数 --------------------编程问答-------------------- LZ这是什么级别的题 --------------------编程问答--------------------
public class Stair {
 
    public static void main(String[] args) {
        for (int i = 7;; i += 7) {
            if(i % 6 == 5 &&  i % 5 == 4 &&i % 3 == 2 && i % 2 == 1  ) {
                System.out.println(i);
                 break;
            }
        }
    }
 
}


这样子比较次数少些 --------------------编程问答-------------------- jquery 这一题 可以参考我以前写的例子


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<style type="text/css">
*{font-family:Verdana;font-size:96%;}

label {width:10em;float:left;}

label.error { float:none; color:red; padding-left:.5em; vertical-align:top;}

p{clear:both;}

.submit{margin-left:12em;}

em{font-weight:bold; color:#F00; padding-right:1em; vertical-align:top;}
</style>

<script type="text/javascript">
$(document).ready(function(){
$("#commentForm").validate({
rules: {
username:{
required:true,
minlength:2
},
email:{
required:true,
email:true
},
url:"url",
comment:"required"
}
});
});
</script>

<title>表单验证</title>
</head>
<body>
<form class="cmxform" id="commentForm" method="get" action="#">
     <fieldset>
         <legend>表单验证</legend>
            <p>
             <label for="cusername">姓名</label><em>*</em>
                <input id="cusername" name="username" size="25"/>
            </p>
            <p>
             <label for="cemail">电子邮件</label><em>*</em>
                <input id="cemail" name="email" size="25"/>
            </p>
            <p>
             <label for="curl">网址</label><em> </em>
                <input id="curl" name="url" size="25" value=""/>
            </p>
            <p>
             <label for="ccomment">你的评论</label><em>*</em>
                <textarea id="ccomment" name="comment" cols="22">
                </textarea>
            </p>
            <p>
             <input class="submit" type="submit" value="提交">
            </p>
        </fieldset>
    </form>
</body>
</html>
--------------------编程问答-------------------- 第三题:循环9次
public static void main(String[] args) {
int a = 0;
int s = 0;
while(true){
a = 7*(2*s+1);
if(a%3 == 2 && a%5 == 4){
break;
}
s++;
}
System.out.println(a);
} --------------------编程问答-------------------- 怎么现在不愿做这样的题目了呢 --------------------编程问答--------------------

DROP DATABASE IF EXISTS `companydb`;
CREATE DATABASE `companydb`;

USE `companydb`;

CREATE TABLE `employee` (
`num` INT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(20) NOT NULL,
`sex` CHAR(1) NOT NULL,
`age` INT NOT NULL,
`departmentno` VARCHAR(40)
);

CREATE TABLE `wage`(
`no` INT PRIMARY KEY,
`amount` INT
);

CREATE TABLE `attend` (
`num` INT,
`no` INT,
`attendance` INT,

#constraint num_no_key primary key(`num`, `no`)
CONSTRAINT FOREIGN KEY num_key(`num`) REFERENCES `employee`(`num`),
CONSTRAINT FOREIGN KEY no_key(`no`) REFERENCES `attend`(`no`)
);

INSERT INTO `employee` VALUES
(NULL, 'zhangsan', 'M', 23, 'Personnel department'),
(NULL, 'lisi', 'M', 43, 'Treasury department'),
(NULL, 'wangwu', 'F', 27, 'Marketing Department '),
(NULL, 'hello', 'M', 20, 'Treasury department'),
(NULL, 'world', 'F', 78, 'Personnel department'),
(NULL, 'welcome', 'F', 19, 'Marketing Department'),
(NULL, 'google', 'M', 32, 'Product department'),
(NULL, 'baidu', 'F', 26, 'Product department');


INSERT INTO `wage` VALUES 
(1, 4000),
(2, 6000),
(3, 8000),
(4, 2000);

INSERT INTO `attend` VALUES
(1, 1, 7),
(2, 4, 10),
(3, 1, 9),
(4, 2, 13),
(5, 4, 10),
(6, 3, 8),
(7, 1, 10),
(8, 3, 10);






USE `companydb`;

#(1)
SELECT a.`num`, e.`name`
FROM `employee` e 
LEFT JOIN `attend` a ON e.`num` = a.`num`
LEFT JOIN `wage` w ON a.`no` = w.`no`
WHERE w.`amount` = 8000;


#(2)
SELECT e.`name`, a.`attendance`
FROM `attend` a
LEFT JOIN `employee` e ON a.`num` = e.`num`
WHERE e.`name` = 'zhangsan';


#(3)
#“3次出勤率为0”到底是啥意思,没看懂啊- -

#(4)
SELECT e.`num`, e.`name`, e.`sex`, e.`age`, e.`departmentno`
FROM `employee` e
LEFT JOIN `attend` a ON a.`num` = e.`num`
LEFT JOIN `wage` w ON w.`no` = a.`no`
WHERE a.`attendance` = 10 AND w.`amount` < 2500;

--------------------编程问答--------------------

for(int i=49;;i=i+70){
  if(i%2==1&&i%3==2&&i%6==5){
    System.out.println("至少"+i+"阶");
    break;
  }
}
--------------------编程问答--------------------
引用 34 楼 wujia_123 的回复:
Java code?123456for(int i=49;;i=i+70){  if(i%2==1&&i%3==2&&i%6==5){    System.out.println("至少"+i+"阶");    break;  }}

为什么要从49开始啊 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 35 楼 ggcaozheng 的回复:
引用 34 楼 wujia_123 的回复:Java code?123456for(int i=49;;i=i+70){  if(i%2==1&amp;&amp;i%3==2&amp;&amp;i%6==5){    System.out.println("至少"+i+"阶");    break;  }}
为什么要从49开始啊
    ……

最后一条件告诉我们是7的倍数,“若每一步上5阶;最后剩4阶”又告诉我们各位数是4或者9,所以从49开始。 --------------------编程问答--------------------
引用 37 楼 wujia_123 的回复:
引用 35 楼 ggcaozheng 的回复:引用 34 楼 wujia_123 的回复:Java code?123456for(int i=49;;i=i+70){  if(i%2==1&amp;amp;&amp;amp;i%3==2&amp;amp;&amp;amp;i%6==5){    System.out.println("至少"……

不可以是14么,也一样符合你说的,实际上这样不是已经成为推理题了么,还有必要去写程序么?还是写程序的时候能够自己完成的,就没必要去浪费计算机的计算次数了? --------------------编程问答-------------------- 第一题就是考基本功的,基本功不扎实的人都不屑,我也不屑
--------------------编程问答-------------------- 有人会做第一题吗?汉字、空格都怎么判断啊? --------------------编程问答-------------------- 空格可以用" "的字符串进行比较 --------------------编程问答-------------------- 第一题
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 *  java实现统计D:/aa.txt文件中出现的字母个数、数字个数、汉字个数、空格个数及行数
 *
 */
public class StatisticalCharacters {

/**
 * @param args
 * @throws FileNotFoundException 
 */
public static void main(String[] args) throws FileNotFoundException {
String name = "D:/aa.txt"; //文件名  
int num = 0;      //数字数  
int letter = 0;    //字母数  
int line = 0;    //行数  
int space = 0;  //空格数  
int word= 0;  //汉字数
try{

File file=new File(name);
BufferedReader br= new BufferedReader(new FileReader(file));
String str = null;

while((str=br.readLine())!=null){
System.out.println(str);
line++;
    num += countNumber(str);
letter += countLetter(str);
word += countChinese(str);
space += countSpace(str);
}

}catch(Exception e){
e.printStackTrace();
}

System.out.println("数字数:"+num);
System.out.println("字母数"+letter);
System.out.println("汉字数"+word);
System.out.println("空格数"+space);
     System.out.println("行数"+line);
}

/**
 * 统计数字数
 * @param str
 * @return
 */
public static int countNumber(String str) {
        int count = 0;
        Pattern p = Pattern.compile("\\d");
        Matcher m = p.matcher(str);
        while(m.find()){
            count++;
        }
        return count;
    }

/**
 * 统计字母数
 * @param str
 * @return
 */
    public static int countLetter(String str) {
        int count = 0;
        Pattern p = Pattern.compile("[a-zA-Z]");
        Matcher m = p.matcher(str);
        while(m.find()){
            count++;
        }
        return count;
    }

    /**
     * 统计汉字数
     * @param str
     * @return
     */
    public static int countChinese(String str) {
        int count = 0;
        Pattern p = Pattern.compile("[\\u4e00-\\u9fa5]");
        Matcher m = p.matcher(str);
        while(m.find()){
            count++;
        }
        return count;
    }
    
    /**
     * 统计空格数
     * @param str
     * @return
     */
    public static int countSpace(String str) {
        int count = 0;
        Pattern p = Pattern.compile("\\s");
        Matcher m = p.matcher(str);
        while(m.find()){
            count++;
        }
        return count;
    }
    

}
--------------------编程问答-------------------- 第二题
package singleton;

/**
 * 单实例饿汉模式
 */
public class Singleton {

private static  Singleton  singleton = null ;
private Singleton(){} ;

public static Singleton getInstance(){
if(singleton==null){
synchronized(Singleton.class){
if(singleton==null){
singleton = new Singleton() ;
}
}
}
return singleton ;
}
}
这样对并发获取实例都好很多啦! --------------------编程问答--------------------
引用 35 楼 ggcaozheng 的回复:
Quote: 引用 34 楼 wujia_123 的回复:

Java code?123456for(int i=49;;i=i+70){  if(i%2==1&&i%3==2&&i%6==5){    System.out.println("至少"+i+"阶");    break;  }}

为什么要从49开始啊


因为既是7的倍数。又必须末尾是9。(单数,除5余4得出)。 --------------------编程问答-------------------- 我是来学习的,看来学JAVA路程还远啊。 --------------------编程问答-------------------- --------------------编程问答-------------------- mark  有机子也测试下 --------------------编程问答-------------------- 还没有学单例,上面中只有几道会 学习了
--------------------编程问答-------------------- 看来很多基础的都忘记了,因为开发时候都少用,并且恩多时候就拷贝过来,能运行就可以了,没有记下来,哎,以后得多记记
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,