Java编程面试题大全(五)

2014-11-23 23:41:59 · 作者: · 浏览: 43
println(“这不是一个回文数”);}
}
}
//这个更好,不限位数
import java.util.*;
public class lianxi25a {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
boolean is =true;
System.out.print(“请输入一个正整数:”);
long a = s.nextLong();
String ss = Long.toString(a);
char[] ch = ss.toCharArray();
int j=ch.length;
for(int i=0; i if(ch[i]!=ch[j-i-1]){is=false;}
}
if(is==true){System.out.println(“这是一个回文数”);}
else {System.out.println(“这不是一个回文数”);}
}
}
【程序26】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
import java.util.*;
public class lianxi26 {
public static void main(String[] args) {
getChar tw = new getChar();
System.out.println(“请输入星期的第一个大写字母:”);
char ch = tw.getChar();
switch(ch) {
case ‘M’:
System.out.println(“Monday”);
break;
case ‘W’:
System.out.println(“Wednesday”);
break;
case ‘F’:
System.out.println(“Friday”);
break;
case ‘T’: {
System.out.println(“请输入星期的第二个字母:”);
char ch2 = tw.getChar();
if(ch2 == ‘U’) {System.out.println(“Tuesday”); }
else if(ch2 == ‘H’) {System.out.println(“Thursday”); }
else {System.out.println(“无此写法!”);
}
};
break;
case ‘S’: {
System.out.println(“请输入星期的第二个字母:”);
char ch2 = tw.getChar();
if(ch2 == ‘U’) {System.out.println(“Sunday”); }
else if(ch2 == ‘A’) {System.out.println(“Saturday”); }
else {System.out.println(“无此写法!”);
}
};
break;
default:System.out.println(“无此写法!”);
}
}
}


class getChar{
public char getChar() {
Scanner s = new Scanner(System.in);
String str = s.nextLine();
char ch = str.charAt(0);
if(ch<’A’ || ch>’Z') {
System.out.println(“输入错误,请重新输入”);
ch=getChar();
}
return ch;
}
}
【程序27】
题目:求100之内的素数
//使用除sqrt(n)的方法求出的素数不包括2和3
public class lianxi27 {
public static void main(String[] args) {
boolean b =false;
System.out.print(2 + ” “);
System.out.print(3 + ” “);
for(int i=3; i<100; i+=2) {
for(int j=2; j<=Math.sqrt(i); j++) {
if(i % j == 0) {b = false;
break;
} else{b = true;}
}
if(b == true) {System.out.print(i + ” “);}
}
}
}
//该程序使用除1位素数得2位方法,运行效率高通用性差。
public class lianxi27a {

public static void main(String[] args) {
int[] a = new int[]{2, 3, 5, 7};
for(int j=0; j<4; j++)System.out.print(a[j] + ” “);
boolean b =false;
for(int i=11; i<100; i+=2) {
for(int j=0; j<4; j++) {
if(i % a[j] == 0) {b = false;
break;
} else{b = true;}
}
if(b == true) {System.out.print(i + ” “);}
}
}
}
【程序28】
题目:对10个数进行排序
import java.util.*;
public class lianxi28 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int[] a = new int[10];
System.out.println(“请输入10个整数:”);
for(int i=0; i<10; i++) {
a[i] = s.nextInt();
}
for(int i=0; i<10; i++) {
for(int j=i+1; j<10; j++) {
if(a[i] > a[j]) {
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
for(int i=0; i<10; i++) {
System.out.print(a[i] + ” “);
}
}
}
【程序29】
题目:求一个3*3矩阵对角线元素之和
import java.util.*;
public class lianxi29 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int[][] a = new int[3][3];
System.out.println(“请输入9个整数:”);
for(int i=0; i<3; i++) {
for(int j=0; j<3; j++) {
a[i][j] = s.nextInt();
}
}
System.out.println(“输入的3 * 3 矩阵是:”);
for(int i=0; i<3; i++) {
for(int j=0; j<3; j++) {
System.out.print(a[i][j] + ” “);
}
System.out.println();
}
int sum = 0;
for(int i=0; i<3; i++) {
for(int j=0; j<3; j++) {
if(i == j) {
sum += a[i][j];
}
}
}
System.out.println(“对角线之和是:” + sum);
}
}
【程序30】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
//此程序不好,没有使用折半查找插入
import java.util.*;
public class lianxi30 {
public static void main(String[] args) {
int[] a = new int[]{1, 2, 6, 14, 25, 36, 37,55};
int[] b = new int[a.length+1];
int t1 =0, t2 = 0;
int i =0;
Scanner s= new Scanner(System.in);
System.out.print(“请输入一个整数:”);
int num = s.nextInt();
if(num >= a[a.length-1]) {
b[b.length-1] = num;
for(i=0; i b[i] = a[i];
}
} else {
for(i=0; i if(num >= a[i]) {
b[