#Java學習#習題一

判斷題

1-1.java語言中不用區分字母的大寫小寫。

F
Java語言嚴格區分大小寫

1-2.Java語言中,變量名可以用漢字表示。

T

1-3.字節碼文件是與平臺無關的二進制碼,執行時由解釋器解釋成本地機器碼。

T

1-4.Java的字符類型採用的是ASCII編碼。

F
Java的字符類型採用的是Unicode編碼方案

1-5.Java的各種數據類型佔用固定長度,與具體的軟硬件平臺環境無關

T
Java 運行在Java虛擬機中,相當Java自己電腦。類型長度只與Java虛擬機有關,屏蔽了各底層平臺的不同

單選題

2-1.下列不可作爲java語言標識符的是()。

A.a2
B.$2
C._2
D.22

D,必須以字母或_或$開頭

2-2.編譯Java源程序文件將產生相應的字節碼文件,這些字節碼文件的擴展名爲( )。

A…byte
B…class
C…html
D…exe

B

2-3.在Java中,負責對字節代碼解釋執行的是( )。

A.應用服務器
B.虛擬機
C.垃圾回收器
D.編譯器

B

2-4.下面哪單詞是Java語言的關鍵字( )

A.Float
B.this
C.string
D.unsigned

B
abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for if goto implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while
保留字const,goto

2-5.下面的方法,當輸入爲2的時候返回值是多少?( )

public int getValue(int i) {
         int result = 0;
         switch (i) { 
            case 1: 
                result = result + i; 
            case 2: 
                result = result + i  * 2; 
            case 3: 
                result = result + i  * 3; 
        } 
        return result; 
 } 

A.0
B.2
C.4
D.10

D,注意:沒有break,case只是一個入口,會從case2一直執行下去

2-6.在JAVA中,給定代碼片段如下所示,則編譯運行後,輸出結果是()。

for (int i = 0; i < 10; i++) {
    if (i == 10 - i) {
        break;
    }

    if (i % 3 != 0) {
        continue;
    }
    System.out.print(i + " ");
}

A.0
B.0 3
C.0 3 6
D.0 3 6 9

B

函數題

是否偶數

本題要求實現一個函數,判盤輸入的整數是否是偶數,如果是偶數,返回true,否則返回false。

函數接口定義:
public static boolean isOdd(int data)

說明:其中 data是用戶傳入的參數。 data 的值不超過int的範圍。函數須返回true 或者false

裁判測試程序樣例:

import java.util.Scanner;
public class Main {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int data=in.nextInt();
		System.out.println(isOdd(data));
	}
	
	/* 請在這裏給出isOdd(i)函數 */
	
}

輸入樣例:
8
輸出樣例:
true

代碼實現

public static boolean isOdd(int data){
		if(data % 2 == 0)
			return true;
		else
			return false;
	}

編程題

編程題:判斷閏年-hebust

根據輸入的正整數y所代表的年份,計算輸出該年份是否爲閏年 閏年的判斷標準:

  • 能夠被4整除且不能被100整除的年份
  • 或者能夠被400整除的年份

輸入格式:
輸入n取值範圍是 【1…3000】

輸出格式:
是閏年,輸出 yes
非閏年,輸出 no

輸入樣例:
在這裏給出一組輸入。例如:
100

輸出樣例:
在這裏給出相應的輸出。例如:
no

編譯程序

import java.util.Scanner;
public class Main {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int y = in.nextInt();
		if(((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0)){
			System.out.println("yes");
		}
		else
			System.out.println("no");
	}
	
}

求一個三位正整數各位數字之和

求一個三位正整數各位數字之和

輸入格式:
輸入一個三位的正整數

輸出格式:
輸出百十個位上各位數字的和

輸入樣例:
678

輸出樣例:
21

編譯程序

import java.util.Scanner;
public class Main {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int n = in.nextInt();
		int a, b, c, sum = 0;
		a = n / 100;
		b = (n % 100) / 10;
		c = n % 10;
		sum = a + b + c;
		System.out.print(sum);
	}
	
}

JAVA-水仙花數

水仙花數是指一個N位正整數(7≥N≥3),它的每個位上的數字的N次冪之和等於它本身。例如:153=13+53+33。 要求編寫程序,計算所有N位水仙花數。

輸入格式:
輸入一個正整數N(3≤N≤7)。

輸出格式:
按遞增順序輸出所有N位水仙花數,每個數字佔一行。

輸入樣例:
在這裏給出一組輸入。例如:
3

輸出樣例:
在這裏給出相應的輸出。例如:
153
370
371
407

編譯程序

import java.util.Scanner;
public class Main {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int n = in.nextInt();
		int min = 1, max = 1;
		int i, j;
		for(i = 1; i < n; i++)
			min *= 10;
		max = min * 10;
		for(j = min; j < max; j++)
		{
			int num, m, k = 1, sum = 0;
			m = j / 10;
			num = j % 10;
			for(i = 1; i <= n; i++)
				k *= num;
			sum += k;
			k = 1;
			while(m != 0)
			{
				num = m % 10;
				for(i = 1; i <= n; i++)
					k *= num;
				sum += k;
				k = 1;
				m /= 10;
			}
			if(sum == j)
				System.out.println(+j);
		}
		
	}
}

統計正數和負數的個數然後計算這些數的平均值

編寫程序,輸入未指定個數的整數,判斷讀入的正數有多少個,讀入的負數有多少個,然後計算這些輸入值得總和及平均值(不對0計數)。當輸入爲0時,表明程序結束。將平均值以double型數據顯示。

輸入格式:
輸入在一行中給出一系列整數,其間以空格分隔。當讀到0時,表示輸入結束,該數字不要處

輸出格式:
在第一行中輸出正整數的個數; 在第二行中輸出負整數的個數; 在第三行中輸出這些輸入值的總和(不對0計數); 在第四行中輸出這些輸入值的平均值(double型數據)。

輸入樣例:
1 2 -1 3 0

輸出樣例:
3
1
5
1.25

編譯程序

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		int positiveNum = 0; 
		int	negativeNum = 0;  
		int sum = 0;  
		while (true) {
			int x = input.nextInt();
			if (x == 0)     
				break;
			
			if (x > 0) 
				positiveNum++;	
			else 
				negativeNum++;
			sum += x;
		}
		
		if (positiveNum + negativeNum != 0) {	
			System.out.println(positiveNum);
			System.out.println(negativeNum);
			System.out.println(sum);
			
			double average = 0.0;
			average = 1.0 * sum / (positiveNum + negativeNum);
			System.out.println(average);
		}
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章