❶ 5道簡單的java編程題(高分懸賞)
很詳細的幫你寫下,呵呵,所以要給分哦!
1、
(1)源程序如下:
public class One {
public static void main(String[] args) {
String name = "張三";
int age = 23;
char sex = '男';
String myclass = "某某專業2班";
System.out.println("姓名:" + name);
System.out.println("姓名:" + age);
System.out.println("姓名:" + sex);
System.out.println("姓名:" + myclass);
}
}
(2)
編寫完程序的後綴名是.java,如本題,文件名就是One.java。
開始\運行\cmd,進入「命令提示符窗口」,然後用javac編譯器編譯.java文件,語句:javac One.java。
(3)
編譯成功後,生成的文件名後綴是.class,叫做位元組碼文件。再用java解釋器來運行改程序,語句:java One
2、編寫程序,輸出1到100間的所有偶數
(1)for語句
public class Two1 {
public static void main(String[] args) {
for(int i=2;i<=100;i+=2)
System.out.println(i);
}
}
(2)while語句
public class Two2 {
public static void main(String[] args) {
int i = 2;
while (i <= 100) {
System.out.println(i);
i += 2;
}
}
}
(3)do…while語句
public class Two3 {
public static void main(String[] args) {
int i = 2;
do {
System.out.println(i);
i += 2;
}while(i<=100);
}
}
3、編寫程序,從10個數當中找出最大值。
(1)for循環
import java.util.*;
public class Three1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number;
int max = 0;
for (int i = 0; i < 10; i++) {
System.out.print("輸入第" + (i + 1) + "個數:");
number = input.nextInt();
if (max < number)
max = number;
}
System.out.println("最大值:" + max);
}
}
(2)while語句
import java.util.*;
public class Three2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number;
int max = 0;
int i = 0;
while (i < 10) {
System.out.print("輸入第" + (i + 1) + "個數:");
number = input.nextInt();
if (max < number)
max = number;
i++;
}
System.out.println("最大值:" + max);
}
}
(3)do…while語句
import java.util.*;
public class Three3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number;
int max = 0;
int i = 0;
do {
System.out.print("輸入第" + (i + 1) + "個數:");
number = input.nextInt();
if (max < number)
max = number;
i++;
}while(i<10);
System.out.println("最大值:" + max);
}
}
4、編寫程序,計算從1到100之間的奇數之和。
(1)for循環
public class Four1 {
public static void main(String[] args) {
int sum=0;
for(int i = 1;i<=100;i+=2){
sum+=i;
}
System.out.println("1~100間奇數和:" + sum);
}
}
(2)while語句
public class Four2 {
public static void main(String[] args) {
int sum = 0;
int i = 1;
while (i <= 100) {
sum += i;
i += 2;
}
System.out.println("1~100間奇數和:" + sum);
}
}
(3)do…while語句
public class Four3 {
public static void main(String[] args) {
int sum = 0;
int i = 1;
do {
sum += i;
i += 2;
} while (i <= 100);
System.out.println("1~100間奇數和:" + sum);
}
}
5、
(1)什麼是類的繼承?什麼是父類?什麼是子類?舉例說明。
繼承:是面向對象軟體技術當中的一個概念。如果一個類A繼承自另一個類B,就把這個A稱為"B的子類",而把B稱為"A的父類"。繼承可以使得子類具有父類的各種屬性和方法,而不需要再次編寫相同的代碼。在令子類繼承父類的同時,可以重新定義某些屬性,並重寫某些方法,即覆蓋父類的原有屬性和方法,使其獲得與父類不同的功能。另外,為子類追加新的屬性和方法也是常見的做法。繼承需要關鍵字extends。舉例:
class A{}
class B extends A{}
//成員我就不寫了,本例中,A是父類,B是子類。
(2)編寫一個繼承的程序。
class Person {
public String name;
public int age;
public char sex;
public Person(String n, int a, char s) {
name = n;
age = a;
sex = s;
}
public void output1() {
System.out.println("姓名:" + name + "\n年齡:" + age + "\n性別:" + sex);
}
}
class StudentPerson extends Person {
String school, department, subject, myclass;
public StudentPerson(String sc, String d, String su, String m, String n,
int a, char s) {
super(n, a, s);
school = sc;
department = d;
subject = su;
myclass = m;
}
public void output2() {
super.output1();
System.out.println("學校:" + school + "\n系別:" + department + "\n專業:"
+ subject + "\n班級:" + myclass);
}
}
public class Five2 {
public static void main(String[] args) {
StudentPerson StudentPersonDemo = new StudentPerson("某某大學", "某某系別",
" 某專業", "某某班級", " 張三", 23, '男');
StudentPersonDemo.output2();
}
}
❷ JAVA考試題
1、請問 」2」 、』2』、2之間有什麼不同?並回答下面程序的輸出結果是什麼? (提示:『2』的ASCII碼值是50 )(8分)
答:"2"是字元串,'2'算字元。2是數字。
class test
{
public static void main(String[] args)
{
int a=2;
int b='2';
System.out.println (a+a);
System.out.println (a+b);
}
} 輸出結果為:4
52
2、你認為java、C、C++他們之間有沒有聯系和區別?和C、C++相比,java有哪些優點?(10分)
答:java是以c及c++為基礎的。許多地方沿用了它們的思想。但最主要的,java是完全面向對象的編程,而c是面向過程,c+則不完全是面向對象。java相對說來,編程更方便,安全,結構,模塊化強,易於移植,跨平台性好等。
3、下面兩段代碼具有多處錯誤,請找出你認為錯誤的地方,作上標記,並說明為何出錯。如果你認為該行沒有錯誤,請打上√ (12分)
i)public int search (int 錯[10] number) 1、 引用時只能是類型不能帶值{
number錯 = new int[10]; 2、 數組沒有下標
for (int i=0;i<number.length;i++) 3、對
{
number[i]=number[i-1]+number[i+1]錯; 4、數組在i+1在i=number.length-1是超界
return number; 5、對
}
}
ii)
class MyclassOne
{
public final int A=365;
public int b;
private float c;
private void myMethodOne(int a)
{
b=a;
}
public float myMethodTwo()
{
return 36;
}
}
class MyClassMain
{
public static void main(String[] args)
{
MyClassOne w1=new MyClassOne();
w1.A=12; 6、錯誤,試圖給final型再次賦值
w1.b=12; 7、對Myclassone中b賦值
w1.c=12; 8、對myclassone float c賦值
w1.myMethodOne(12); 9、調用myclassone的mymethodone形參為int的方法,
w1.myMethodOne(); 10、調用myclassone的mymethodone無形參的方法System.out.println(w1.myMethodTwo(12)); 11、輸出myclassone的mymethodtwo(12)值
w1.c=w1.myMethodTwo(); 12讓c引用mymethodtwo方法
}
}
請簡要說明下面程序的功能
1) public class Sum ( 5分 )
{ public static void main( String args[ ])
{ double sum = 0.0 ;
for ( int i = 1 ; i <= 100 ; i + + )
sum += 1.0/(double) i ;
System.out.println( "sum="+sum );
}
} 功能為 求出1/1+1/2+1/3+1/4….+1/100的和
程序設計:(10分)
編寫一個java程序。要求該程序能夠具有以下功能:
定義一個坐標類coord。坐標類coord必須滿足如下要求:
a)coord類含有兩部分數據:橫坐標x和縱坐標y。x和y的類型都是int類型。
b)coord類的方法有:
coord( ) : 構造函數,將橫坐標和縱坐標的值都賦值為0
coord( int x , int y ) : 構造函數,形參 x 為橫坐標的初值,y為縱坐標的初值。
coord coordAdd(int x, int y) : 將當前坐標對象與形參的值相加,所得的結果仍是一個坐標,返回給此方法的調用者。
(提示:可以將兩個坐標相加定義為橫坐標和橫坐標相加,縱坐標和縱坐標相加。例如(1,2)+(3,4)=((1+3),(2+4))=(4,6))
public class Coord {
int x=100;
int y=200;
public Coord(){
this.x=0;this.y=0;
}
public Coord(int x,int y) {
x=this.x;y=this.y;
}
void coordAdd(int x,int y){
this.x+=x;
this.y+=y;
}
public static void main (String[] args) {
}
}
程序設計:(10分)
請編寫一個java程序,利用該程序計算並輸出 1+2+3+……+100的值
Sum.java
public class Sum {
public Sum() {
int sum=0;
for(int i=1;i<=100;i++)
sum+=i;
System.out.println("1+2+3+...100="+sum);
}
public static void main (String[] args) {
new Sum();
}
}
OK??
❸ 五道java語言描述的數據結構編程題,請求給予詳細解答
第一題:
//使用集合提供的工具方法
public static List<Integer> merge(List<Integer> a, List<Integer> b) {
//a,b not null
//全部放到一個set裡面,使得元素合並
Set<Integer> set = new HashSet<Integer>(a);
set.addAll(b);
//將set裡面的元素放到列表再轉為數組
Integer[] array = new ArrayList<Integer>(set).toArray(new Integer[1]);
//升序排序
Arrays.sort(array);
//將排序後的數組轉為list
return Arrays.asList(array);
}
//自己寫的演算法, a為升序列表,b為降序列表
public static List<Integer> merge2(List<Integer> a, List<Integer> b) {
//a,b not null
int aSize = a.size();
int bSize = b.size();
List<Integer> result = new ArrayList<Integer>();
int aIndex = 0;// 升序列表從首位開始
int bIndex = bSize - 1;// 降序列表從末尾開始
int aEl;
int bEl;
// 循環終止條件為: a 或者 b 列表遍歷完
while (aIndex < aSize && bIndex >= 0) {
aEl = a.get(aIndex);
bEl = b.get(bIndex);
if (aEl < bEl) {
result.add(aEl);
aIndex++;
} else {
result.add(bEl);
bIndex--;
}
}
// 將某個未遍歷完的列表中的元素添加到結果(包括了任意一個列表為空列表的情況)
if (aIndex < aSize) {
for (int i = aIndex; i < aSize; i++) {
result.add(a.get(i));
}
}
else if (bIndex > 0) {
for (int i = bIndex; i >= 0; i--) {
result.add(b.get(i));
}
}
return result;
}