您的位置:首页 > 其它

黑马基础测试题

2014-03-21 20:25 337 查看
package com.itheima;

/*
*第1题: 定义一个二维int数组,编写代码获取最小元素。
*/
public class Test1
{

public static void main(String[] args)
{
// TODO Auto-generated method stub
int[][] a = {{1,2,3},{2,3,4},{0,1,2},{3,4,5}};//定义一个二维int数组
int min=a[0][0];//定义一个变量min,并赋初值
//通过循环比较,得到最小值
for(int i=0;i<a.length;i++)
{
for(int j=0;j<a[i].length;j++)
{

if(a[i][j]<min)
{
min=a[i][j];
}
}
}
//打印输出最小值
System.out.println("min="+min);
}

}


package com.itheima;

/*
*第2题:从键盘接受一个数字,列出该数字的中文表示格式
*例如:
*键盘输入123,打印出一二三
*键盘输入3103,打印出三一零三
*/
import java.io.*;
public class Test2
{

public static void main(String[] args)
{
BufferedReader br=null;//引用变量
BufferedWriter bw=null;//引用变量
try
{
//创建输入流
br=new BufferedReader(new InputStreamReader(System.in));
//创建输出流
bw=new BufferedWriter(new OutputStreamWriter(System.out));
//建立数组,0-9的角标对应数组内容
char[] arr={'零','一','二','三','四','五','六','七','八','九'};
String s=null;
while ((s=br.readLine())!=null)
{
//将读取的字符串转换成字符数组
char[] arr1=s.toCharArray();
for (int i = 0; i < arr1.length; i++)
{
//将对应‘1’字符的AScII码值转换成字符串,通过parseint方法转换成int类型数值
int index=Integer.parseInt(new String(new char[]{arr1[i]}));
bw.write(arr[index]);
bw.flush();
}
}

}
//异常处理
catch (IOException e)
{
System.out.println(e.toString());
}
finally
{
if(br!=null)
try
{
br.close();
}
//异常处理
catch (IOException e1)
{
throw new RuntimeException("输入流关闭失败");
}
if(bw!=null)
try
{
bw.close();
}
//异常处理
catch (IOException e2)
{
throw new RuntimeException("输出流关闭失败");
}

}

}

}


package com.itheima;

/*
* 第3题: 以下代码哪个是正确的?为什么?
*a. byte b = 1 + 1;
*b. byte b = 1; b = b + 1;
*c. byte b = 1; b = b += 1;
*d. byte b = 1; b = ++b;
*/
/*答案
* a正确,定义byte类型的变量时,会自动将右边的数值自动完成了强转
* b错误,编译失拜。这是数据类型类型转换,b是byte型,1默认是int类型的,运算结果是int类型的,赋值给byte类型的b变量可能损失精度。
* c正确,首先,byte b = 1;实际上这个值是编译器先进行了一次检查,范围在byte范围内,则编译通过,
*同时将1这个int类型的值在底层转化为了byte类型赋给了b;
*再说说b = b += 1;这个运算是将b += 1的计算结果赋给了b,所以我们只说b += 1的运算过程就行了,
*b += 1,其实等价于 b = (byte)(b+1);底层会对这个结果进行强转的,所以它编译的时候没事

* d正确,先进行++b的运算,再把运算后的结果赋给b,++b计算后是一个int类型的,
*不管结果等于多少,底层会进行一个强转,也就是说++b就相当于 b = (byte)(b+1),所以这个编译也没有问题
*/
public class Test3 {
public static void main(String[] args)
{

}

}


package com.itheima;

/*
* 第4题:创建ArrayList对象,添加5个元素,使用Iterator遍历输出
*/
import java.util.ArrayList;
import java.util.Iterator;
public class Test4
{
public static void main(String[] args)
{
//创建ArrayList对象
ArrayList<String> al = new ArrayList<String>();
//添加5个元素
al.add("zhangsan");
al.add("lisi");
al.add("wangwu");
al.add("tianqi");
al.add("zhaoba");
//获取迭代器
Iterator<String> it = al.iterator();
//遍历取出元素
while(it.hasNext())
{
String el = it.next();
System.out.println(el);
}

}
}


package com.itheima;

/*
* 第5题: 编写程序接收键盘输入的5个数,装入一个数组,并找出其最大数和最小数。
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test5
{
public static void main(String[] args)
{
//获取键盘录入
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] arr = new int[5];
int max=0;
int min=0;
for(int i=0;i<arr.length;i++)
{

min = arr[0];
try
{
System.out.println("请输入第"+(i+1)+"个数:");
//将输入字符转换成十进制整数存入数组
arr[i] = Integer.parseInt(br.readLine());

}
catch(IOException e)
{
e.printStackTrace();
}
//获取最大值
if(arr[i]>max)
max = arr[i];
//获取最小值
if(arr[i]<min)
min = arr[i];
}

System.out.println("max = "+max);
System.out.println("min = "+min);

}
}


package com.itheima;

/*
* 第6题: 编写一个可以获取文件扩展名的函数,形参接收一个文件名字符串,返回一个扩展名字符串。
*
* 思路:1、通过键盘录入获取文件名字符串
*     2、通过substring(path.lastIndexOf(".")+1)方法截取扩展名字串
*/
import java.io.*;
public class Test6
{

public static void main(String[] args)throws IOException
{
System.out.println("请从键盘上随便输入一个带扩展名的文件名");
//键盘录入输入流
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//获取文件名
String s=br.readLine();
//打印输出扩展名
System.out.println(getPath(s));
}
//获取扩展名方法
public static String getPath(String path)
{
return path==null||path.lastIndexOf(".")==-1?null:path.substring(path.lastIndexOf(".")+1);
}

}


package com.itheima;

/*
* 第7题: 声明类Student,包含3个成员变量:name、age、score,
*  要求可以通过 new Student("张三", 22, 95) 的方式创建对象,
*  并可以通过set和get方法访问成员变量
*/
public class Test7
{
public static void main(String[] args)
{
//建立张三学生对象
Student s = new Student("张三",22,95);
System.out.println("更改前信息:");
//打印张三信息
System.out.println("姓名="+s.getName());
System.out.println("年龄 = "+s.getAge());
System.out.println("分数 = "+s.getScore());
//修改为李四信息
s.setName("李四");
s.setAge(28);
s.setScore(59);
System.out.println("更改后信息:");
//打印李四信息
System.out.println("姓名="+s.getName());
System.out.println("年龄 = "+s.getAge());
System.out.println("分数 = "+s.getScore());
}
}
class Student
{
private String name;
private int age;
private int score;
//Student构造函数
Student(String name,int age,int score)
{
this.name = name;
this.age = age;
this.score = score;
}
//获取姓名
public String getName() {
return name;
}
//设置姓名
public void setName(String name) {
this.name = name;
}
//获取年龄
public int getAge() {
return age;
}
//设置年龄
public void setAge(int age) {
this.age = age;
}
//获取分数
public int getScore() {
return score;
}
//设置分数
public void setScore(int score) {
this.score = score;
}
}


package com.itheima;

/*
* 第8题:编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符
* 例如
*原始字符串是"abc",打印得到下列所有组合情况
* "a" "b" "c"
* "ab" "bc" "ca" "ba" "cb" "ac"
* "abc" "acb" "bac" "bca" "cab" "cba"
*
* 思路:用递归思想获取满足条件的字符串
*/
import java.util.ArrayList;
import java.util.Arrays;
public class Test8
{
//创建字符串数组
private String[] array = {"a","b","c"};
public static void main(String[] args)
{
new Test8().execute();
}
public void execute()
{
ArrayList<String> list = new ArrayList<String>();
//创建包含字符串数组内容的list集合
list.addAll(Arrays.asList(array));
for (int len = 1; len <= 3; len++)
{
combination(list, "", len);
}
}
//用递归打印出满足条件字符串
public void combination(ArrayList<String> list, String result, int len)
{
for (int i = 0; i < list.size(); i++)
{
String str = list.get(i);
result += str;
if (result.length() == len)
{
System.out.println(result);
}
else
{
ArrayList<String> copylist = (ArrayList<String>) list.clone();
copylist.remove(str);
combination(copylist, result, len);
}
result = result.substring(0, result.length() - 1);
}
}
}


package com.itheima;

/*
* 第9题: 编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,
* 程序计算这一天是星期几,并且计算出是一年中的第几天。
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Test9
{
public static void main(String[] args) throws ParseException, IOException
{
System.out.println("Please input a date as yyyy-MM-dd format");
//获取键盘录入
String input = new BufferedReader(new InputStreamReader(System.in)).readLine();
//用给定的模式和日期符号构造 SimpleDateFormat
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
//把输入字符串解释为日期和时间的表示形式,返回指示的时间
Date date = format.parse(input);
//定义一个日历对象c
Calendar c = Calendar.getInstance();
// 将日历字段设置为给定值
c.setTime(date);
System.out.println("Your input date is :" + date.toString());
System.out.println("it's " + c.get(Calendar.DAY_OF_YEAR) + " th day in this year");
}
}


package com.itheima;

/*
* 10、 编写HTML注册表单,需要字段: 用户名、密码、确认密码,、性别(单选)、 兴趣爱好(多选)、
* 城市(下拉列表)、 个人简介(文本域),使用JavaScript验证这个表单,要求:
* 1、 用户名:字母数字或下划线10位以内,只能以字母开头
* 2、密码:6-16位任意字符
* 3、确认密码:和密码保持一致.
* 4、其他项为必填
*
*/
public class Test10 {

public static void main(String[] args)
{
// TODO Auto-generated method stub
System.out.println("表单代码在下面注释中"
+ "另外面有个HTML注册表单.html文件");

}

}

<html>
<head>
<title>HTML注册表单</title>
</head>
<body>
<form action="" method="post" onsubmit="return sub()" name=form>
用户名:<input type="text" name="username" value="" /><br>
密码  <input type="password" name="password" value="" /><br>
确认密码:<input type="password" name="repassword" value="" /><br>
性别:<input type="radio" name="sex" value="0" checked=”default” />男
<input type="radio" name="sex" value="1" />女<br>
城市: <select name="city">
<option value="0">郑州</option>
<option value="1">上海</option>
<option value="2">天津</option>
<option value="3">深圳</option>
</select><br>
兴趣爱好:<input type="checkbox" name="read" value="0" />阅读
<input type="checkbox" name="travel" value="1" />旅游
<input type="checkbox" name="Internet" value="2" />上网
个人简介: <textarea rows="5" cols="30" name="readme"></textarea> <br>
<input type="submit" value="提交"/>
</form>
</body>
</html>

<script type="text/javascript">

function sub (){

if(!(/^[a-zA-Z_]{1}[a-zA-Z_0-9]*$/.test(form.username.value))){

alert("用户名必须是字母数字或下划线, 不能以数字开头!");

return false;

}else if(!(/[a-zA-Z_0-9]{6,16}/.test(form.password.value))){

alert("密码 6-16位字母数字下划线!");

return false;

}else if(form.repassword.value != form.password.value){

alert("两次输入密码应一致!");

return false;

}else if(form.sex[0].checked==false && form.sex[1].checked==false){

alert("性别不能为空!");

return false;

}else if(form.city. checked == false){

alert("城市不能为空!");

return false;

}

else if(form.read.checked == false && form.travel.checked == false && form.Internet.checked == false){

alert("兴趣爱好不能为空!");

return false;

}

else if(form. readme. checked == false){

alert("个人简介不能为空!");

return false;

}

else{

return true;

}

}

</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: