1. java 兩道編程小題(趕)
import java.util.Scanner;
public class Rectangle{//長方體類
private double length;//長
private double width;//寬
public Rectangle(double length,double width){
this.setLength(length);
this.setWidth(width);
}
public double calculateArea(){//計算面積
return length*width;
}
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public static void main(String[] args){//測試方法
Scanner sc = new Scanner(System.in);
System.out.print("請輸入土地的長度");
double length = sc.nextDouble();
System.out.print("請輸入土地的寬度");
double width = sc.nextDouble();
Rectangle rec = new Rectangle(length,width);
System.out.println("您土地的面積為:"+rec.calculateArea());
System.out.print("請輸入長方體的長度");
double len = sc.nextDouble();
System.out.print("請輸入長方體的寬度");
double wid = sc.nextDouble();
System.out.print("請輸入長方體的高度");
double hei = sc.nextDouble();
Cuboid cu = new Cuboid(len,wid,hei);
System.out.println("長方體的表面積為:"+cu.calCuboidArea());
System.out.println("長方體的體積為:"+cu.calculateVolume());
}
}
class Cuboid extends Rectangle{//長方體類
private double height;
public Cuboid(double length, double width,double height) {
super(length, width);
this.setHeight(height);
}
public double calculateVolume(){//計算體積
return super.calculateArea()*height;
}
public double calCuboidArea(){//計算表面積
double length = super.getLength();
double width = super.getWidth();
double area = (length*width+length*height+width+height)*2;
return area;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
}
**********************第二題****************************
import java.util.Scanner;
public class ComplexNumber {
protected double realPart;
protected double imaginPart;
public ComplexNumber() {
realPart = 0.0;
imaginPart = 0.0;
}
public ComplexNumber(double r, double i) {
realPart = r;
imaginPart = i;
}
public void setReal(double r) {
realPart = r;
}
public void setImagin(double i) {
imaginPart = i;
}
public double getReal() {
return realPart;
}
public double getImagin() {
return imaginPart;
}
public String toString() { //重寫toString方法,方便測試
return String.valueOf(realPart + " + " + imaginPart + "i");
}
public static ComplexNumber complexAdd(ComplexNumber num1,ComplexNumber num2) {//復數相加
ComplexNumber result = new ComplexNumber();
result.setReal(num1.getReal() + num2.getReal());
result.setImagin(num1.getImagin() + num2.getImagin());
return result;
}
public static ComplexNumber complexMinus(ComplexNumber num1,ComplexNumber num2) {//復數相減num1-num2
ComplexNumber result = new ComplexNumber();
result.setReal(num1.getReal() - num2.getReal());
result.setImagin(num1.getImagin() - num2.getImagin());
return result;
}
public static ComplexNumber complexMulti(ComplexNumber num1,ComplexNumber num2) {//復數相乘
ComplexNumber result = new ComplexNumber();
double realTemp = 0.0;
double imaginTemp = 0.0;
realTemp = num1.getReal() * num2.getReal() - num1.getImagin()* num2.getImagin();
imaginTemp = num1.getReal() * num2.getImagin() + num1.getImagin()* num2.getReal();
result.setReal(realTemp);
result.setImagin(imaginTemp);
return result;
}
public static ComplexNumber complexDiv(ComplexNumber num1,ComplexNumber num2) {//復數相除num1/num2
ComplexNumber result = new ComplexNumber();
double realTemp = 0.0;
double imaginTemp = 0.0;
double div = 0.0;
div = Math.pow(num2.getReal(), 2) + Math.pow(num2.getImagin(), 2);
realTemp = num1.getReal() * num2.getReal() + num1.getImagin()* num2.getImagin();
imaginTemp = num2.getReal() * num1.getImagin() - num1.getReal()* num2.getImagin();
result.setReal(realTemp / div);
result.setImagin(imaginTemp / div);
return result;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("請輸入復數num1的實數部分");
double real1 = sc.nextDouble();
System.out.print("請輸入復數num1的虛數部分");
double imagin1 = sc.nextDouble();
ComplexNumber num1 = new ComplexNumber(real1,imagin1);
System.out.println("實數num1為:"+num1.toString());
System.out.print("請輸入復數num2的實數部分");
double real2 = sc.nextDouble();
System.out.print("請輸入復數num2的虛數部分");
double imagin2 = sc.nextDouble();
ComplexNumber num2 = new ComplexNumber(real2,imagin2);
System.out.println("實數num2為:"+num1);
System.out.println("num1 + num2 = "+ComplexNumber.complexAdd(num1, num2));
System.out.println("num1 - num2 = "+ComplexNumber.complexMinus(num1, num2));
System.out.println("num1 * num2 = "+ComplexNumber.complexMulti(num1, num2));
System.out.println("num1 / num2 = "+ComplexNumber.complexDiv(num1, num2));
}
}
2. JAVA編程題目
從面向對象的角度分析,下列四組事物中,哪一組屬於類—對象模式? (D )
下列哪一個不屬於版面向權對象語言的重要特性 (C )
Java application中的主類需包含main方法,main方法的返回類型是什麼?(D)
在Java中,一個類可同時定義許多同名的方法,這些方法的形式參數個數、類型或順序各不相同,傳回的值也可以不相同。這種面向對象程序的特性稱為( C)。
以下代碼段執行後的輸出結果為(C )
編譯運行以下程序後,關於輸出結果的說明正確的是 (B)
3. 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??
4. Java編程題
第二個:
package test;
import java.util.Arrays;
import java.util.List;
public class TestArray {
public static void main(String[] args) {
Integer arr[] = { 10,7,6,9,8,2};
System.out.println(arrayContains(arr, 1));
System.out.println(arrayContains1(arr, 2));
}
public static boolean arrayContains(Integer[] arr,int targetValue){
List<Integer> list = Arrays.asList(arr);
return list.contains(targetValue);
}
public static int arrayContains1(Integer[] arr,int targetValue){
List<Integer> list = Arrays.asList(arr);
if(!list.contains(targetValue)){
return -1;
}else{
for (int index = 0; index < list.size(); index++) {
Integer val = list.get(index);
if(val==targetValue){
return index;
}
}
}
return -1;
}
}