導航:首頁 > 編程語言 > 50道java基礎編程練習題

50道java基礎編程練習題

發布時間:2022-08-13 00:03:19

1. java編程

/*
1000道題目,每組10道,共100組,前50組一個規則,後50組一個規則,隨機抽取,抽完1000題!
*/
importjava.util.HashSet;
importjava.util.TreeMap;
publicclassPaper{
staticString[]arr[]={newString[550],newString[300],newString[100],newString[50]}
,srr={"_易:","較易:","_難:","困難:"};
publicstaticvoidmain(String[]args){
TreeMap<String,HashSet<String>>tm=newTreeMap<String,HashSet<String>>();
for(inti=0;i<arr.length;i++)//題庫!
for(intj=0;j<arr[i].length;j++)
arr[i][j]=srr[i]+""+(j+1)+" ";
Stringkey="";
for(inti=1;i<=100;i++){//隨機抽題目!
key=i<10?"第00"+i:i<100?"第0"+i:"第"+i;
HashSet<String>hs=newHashSet<String>();
if(i<=50){//前50組規則!
for(intx=0;x<arr.length;x++){
if(x<=0&&hs.size()<6){
sect(6,arr[x].length,x,hs);
}elseif(x==1&&hs.size()<8){
sect(8,arr[x].length,x,hs);
}elseif(x==2&&hs.size()<9){
sect(9,arr[x].length,x,hs);
}else{
sect(10,arr[x].length,x,hs);
}
}
tm.put(key,hs);
}else{//後50組規則!
for(intx=0;x<arr.length;x++){
if(x<=0&&hs.size()<5){
sect(5,arr[x].length,x,hs);
}elseif(x==1&&hs.size()<9){
sect(9,arr[x].length,x,hs);
}elseif(x==2&&hs.size()<10){
sect(10,arr[x].length,x,hs);
}
}
tm.put(key,hs);
}
}
for(Strings:tm.keySet()){//抽提完成查看!
System.out.println(s);
for(Strings1:tm.get(s)){
System.out.print(s1);
}
System.out.println();
System.out.println();
}
}
privatestaticvoidsect(intsize,intlength,intx,HashSet<String>hs){
for(;hs.size()<size;){
intp=(int)(Math.random()*length);
if(arr[x][p]!=null){
hs.add(arr[x][p]);
arr[x][p]=null;
}
}
}
}

2. java編程基礎練習題

這道題的答案是C。

double[] num1; //定義一個double類型的數組num1
double num3=2.0; //定義一個double類型的變數並賦值為2.0
int num2=5; //定義一個int類型的冰涼num2,並賦值為5
num1=new double[num2+1];
//給double類型的數組num1賦值,並初始化為5+1個大小, num2=5,所以是5+1
num1[num2]=num3;
//上面這句翻譯過來就是:數組num1[5]=2.0 。 由於數組下標從0開始,所以下標為5的元素是最後一個元素。 所以答案是C

3. 要JAVA基礎的一些練習題與參考答案

一、問答題
1、Java語言的數據類型有哪些?8
答:有byte(位元組型)、char(字元型)、boolean(布爾型)、short(短整型)、int(整型)、long(長整型)、
浮點型:float(單精度)、double(雙精度)。
2、寫出算術運算符、關系運算符、邏輯運算符各自包含的運算符,寫出條件運算符的形式,並簡述其執行過程。10
答:
算術運算符:++、--、+、-、*、/、%
關系運算符:!=、>=、<=、>、<、==
邏輯運算符:!(邏輯非)、&&(邏輯與)、||(邏輯或)
條件運算符的形式:表達式1?表達式2:表達式3;3、數組有怎樣的特徵?寫出一維數組兩種初始化的語法格式(可使用具體的實例)。10
答:數組特徵:數組有若干個元素;
各元素有相同的數據類型;
按一定的順序排列;
一維數組兩種初始化的語法格式:
int a[]=new int[2];
a[0]=1;
a[1]=2;
或int a[];
a[]=new int[2];
a[0]=1;
a[1]=2;int a[]={1,2};
4、比較順序表、棧、隊列的異同點,分別寫出冒泡法排序的主要特點。12
答:都運用數組的知識,都運用了方法調用;
棧的特點是:
冒泡法排序的主要特點:
經過多輪循環,每一輪循環從最後一個元素依次與前面的元素比較大小,最終找到的最小元素排在第一位,第一輪循環終止;再依次進行下一輪循環。
二、編程題
1、規定一個工人工作時間一月160小時,每小時工資5元,加班的話,每小時增加4元,請編程計算此工人一個月的工資,工作時間由鍵盤輸入。15
import jaimport java.io.*;
pubic class Qgrgz
{
public static void main(String[] args)throws IOException
{int x,result;<br> InputStreamReader ir;<br> BufferedReader in;<br> ir=new InputStreamReader(System.in);<br> in=new BufferedReader(ir);<br> System.out.println("Shurugongrengongzuoshijian:");<br> String s=in.readLine();<br> x=Integer.parseInt(s);<br> if(0<x&&x<=160)<br> result=x*5;<br> else<br> result=(160*5+(x-160)*9);<br> System.out.println("gongrenyuegongziwei:"+result);<br> }
}2、編程求解1—100中是7的倍數的數值的和。15
public class Qh
{
public static void main(String[] args)
{
int sum=0;
int i=1;
while(i<100)
{
if(i%7==0)
sum +=i;
i++;
}
System.out.println("sum="+sum);
}
}

3、輸入3名學生4門課程的成績,分別統計每個學生4門課程的平均成績。15
import java.io.*;
public class Pjf
{
public static void main(String[] args)throws IOException
{
InputStreamReader ir;
BufferedReader in;
ir=new InputStreamReader(System.in);
in=new BufferedReader(ir);
for(int i=1;i<=3;i++)
{
double v=0,sum=0;
for(int j=1;j<=4;j++)
{
System.out.print("請輸入第"+i+"個學生第"+j+"科成績:");
String a=in.readLine();
int x=Integer.parseInt(a);
sum=sum+x;
}
v=sum/4;
System.out.println("總分是:"+sum);
System.out.println("平均分是:"+v);
}
}
}

4、運用方法調用求一維數組中的最大元素及下標,在main方法中輸入數組元素。15
import java.io.*;
public class Qszzdys
{ int a[]=new int[10];
public static void main(String[] args)throws IOException
{
int i;
Qszzdys b=new Qszzdys();
InputStreamReader ir;
BufferedReader in;
ir=new InputStreamReader(System.in);
in=new BufferedReader(ir);
for(i=0;i<10;i++)
{
System.out.println("請輸入a["+i+"]:");
String s=in.readLine();
b.a[i]=Integer.parseInt(s);
}
b.d();
}
void d()
{
int max,x=0;
max=a[0];
for(int j=1;j<10;j++)
if(a[j]>max)
{
max=a[j];
x=j;
}
System.out.println("最大值是:"+max+";下標是:"+x);
}
}
5、運用選擇法對23,45,34,78,99,12,50,0這組數進行升序排列。(選做題,做了加分,沒做不減分)15
public class Paixu
{
int [] a;
int len;
void f(int maxSize)
{
a=new int[maxSize];
len=0;
}

void b(int value)
{
a[len]=value;
len++;
}

void display()
{
for(int i=0;i<len;i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
}

void ff();
{
int out,in,min;
for(out=0;out<len-1;out++)
{
min=out;
for(in=out+1;in<len;in++)
if(a[in]<a[min])
min=in;
swap(out,min);
}
}

void swap(int one,int two)
{
int temp=a[one];
a[one]=a[two];
a[two]=temp;
}
public static void main(String[] args)
{
Paixu paixu=new Paixu();
int maxSize=100;
paixu.f(maxSize);
paixu.b(23);
paixu.b(45);
paixu.b(34);
paixu.b(78);
paixu.b(99);
paixu.b(12);
paixu.b(50);
paixu.b(0);
System.out.println("排序前:");
paixu.display();
paixu.ff();
System.out.println("排序後:");
paixu.display();
}
}

4. 跪求50道java基礎編程題目(含答案)。

樓主 我真懷疑你的人品,你要知道你現在是在求別人,感覺好像別人在求你一樣,不是我說你你提出這樣沒水準的問題真的很蛋疼很蛋疼,網路知道有你這樣的人真是一大禍害

5. 求Java基礎,練習題。

選擇題 (25道)

1. 下列選項中,不屬於Java語言特點的一項是( C )。

A:分布式 B:安全性 C:編譯執行 D:面向對象

2. Java語言的特點與 C/C+ +語言的比較中說法錯誤的是:( D )

A:簡單性Java繼承了 C/C+ +的語法 ,丟棄了其中不常用又容易引起混淆的功能。

B:Java是一種純面向對象的語言 ,具有封裝、繼承 ( Inheritance)和多態( Polymorphism)的特點。

C:Java應用程序可憑借URL打開並訪問網路上的對象。

D:解釋型Java寫成的源代碼需要被編譯成高階的位元組碼 ,它們與機器架構有關。

3. 閱讀下列代碼,選出該代碼段正確的文件名( C )。

class A{

void method1(){

System.out.println("Method1 in class A");

}

}

public class B{

void method2(){

System.out.println("Method2 in class B");

}

public static void main(String[] args){

System.out.println("main() in class B");

}

}

A: A.java B:A.class C: B.java D: B.class

4. 如果一個類的文件名為Student.java,但是類的代碼為:

public class Student {

public static void main(String[] args) {

System.out.println(8>>2);

}}

那麼下列說法正確的是:( B )

A:程序運行結果為8; B:程序運行結果為2;

C:程序運行結果為0; D:程序編譯錯誤,不能運行;

5. 符合對象和類的關系的是( D )。

A:教師和學生 B:書和房子

C:狗和貓 D:飛機和交通工具

6. 關於垃圾回收機制描述不正確的是( B )

A:垃圾回收機制不須通過程序員調用相應方法,也能自動啟動。

B:java程序員用System.gc()方法一定能進行垃圾回收;

C:垃圾回收機制屬於jvm自動操作,java程序員可以不進行垃圾回收操作。

D:垃圾回收機制並不是由操作系統自動執行。

7. 編譯下面源程序會得到哪些文件( D )?

class A1{

}

class A2 exdends A1{

}

public class B{

public static void main(String[] args){

}

}

A: 只有B.class文件 B:只有A1.class和A2.class文件

C: 編譯不成功 D:A1.class、A2.class和B.class文件

8. 下列關於基本數據類型的說法中,不正確的一項是( D )。

(A)boolean類型變數的值只能取真或假

(B)float是帶符號的32位浮點數

(C)double是帶符號的64位浮點數

(D)char是8位Unicode字元

9. 下列(D )是合法的標識符?

A:12class B:void C:-5 D:_blank

10. 在編寫Java程序時,如果不為類的成員變數定義初始值,Java會給出它們的默認值,下列說法中不正確的一個是( D )。

A:byte的默認值是0 B:boolean的默認值是false

C: char類型的默認值是』\0』 D: long類型的默認值是0.0L

11. 下列程序執行的結果是:( B )

public class News {

public static void main(String[] args) {

System.out.println(1+2+ "aa"+3);

}}

A: "12aa3" B: "3aa3 " C: "12aa" D: "aa3"

12. 表達式(12==0) && (1/0 < 1)的值為( B )。

A: true B: false C: 0 D: 運行時拋出異常

13. 下列循環體執行的次數是( C )。

int y=2, x=4;

while(--x != x/y){ }

A : 1 B: 2 C : 3 D : 4

14. 已知如下代碼:

switch(m){

case 0: System.out.println("Condition 0");

case 1: System.out.println("Condition 1");

case 2: System.out.println("Condition 2");

case 3: System.out.println("Condition 3");break;

default:System.out.println("Other Condition");

}

當m的值為( D )時,輸出「Condition 3」

(A)2 (B)0、1 (C)0、1、2 (D)0、1、2、3

15. 下列語句輸出的結果是:( C )

public class X3 {

public static void main(String[] args) {

for(int i=0; i<10; i++){

if(i==5) break;

System.out.print(i);

}

}

}

A:編譯錯誤; B:1234;C:01234;D:12345;

16. 下列語句輸出的結果是:( D )

public class Lx1 {

public static void main(String[] args) {

for(int i=0;i<5;i++){

switch(i){

case 0:System.out.print("B");

case 1:System.out.print("e");break;

case 2:System.out.print("g");

case 3:System.out.print("!");break;

case 4:System.out.print("!");break;

default:System.out.print("!");

}

}

}

}

A:Beg!!! B:Beeg! C:Beg! D:Beeg!!!

17. 下面foreach循環的程序輸出結果是( D )。

public class Lx1{

public static void main(String[] args) {

String s1[]={"歡迎您","3","G","同","學",};

Arrays.sort(s1);

for(String s0:s1)

System.out.print (s0);

}

}

A:歡迎您3G同學 B:3G歡迎您同學 C:同學歡迎您3G D:3G同學歡迎您

18. 閱讀以下程序,選擇正確的運行結果:( B )

public class Lx1 {

public static void main(String[] args) {

byte d[]="YOUIHE你我他".getBytes();

String s=new String(d,6,2);

System.out.println(s);

}

}

A:HE; B:你; C:我; D:他

19. 設有下列數組定義語句:

int a[][]= {{1, 2}, {3}};

則對此語句的敘述正確的是( D )。

A: 定義了一個名為a的一維數組 B: a數組 a[1][1]為0

C: a數組元素的下標為1~3 D: 數組中每個元素的類型都是整數

20. 下列程序輸出的結果是:( B )

public class Lx1 {

public static void main(String[] args) {

String a[][] ={{"","","",""},{""},{"",""}};

System.out.println(a[2].length);

}

}

A:1 B:2 C:3 D:4

21. 關於以下程序的說明,正確的是( C )

1. class StaticStuff

2. {

3. static int x=10;

4. static { x+=5;}

5. public static void main(String args[ ])

6. {

7. System.out.println(「x=」 + x);

8. }

9. static { x/=3;}

10. }

A、4行與9行不能通過編譯,因為缺少方法名和返回類型

B、9行不能通過編譯,因為只能有一個靜態初始化器

C、編譯通過,執行結果為:x=5

D、編譯通過,執行結果為:x=3

22. 給出下面代碼,關於該程序以下哪個說法是正確的?( C )

public class Person{

static int arr[] = new int[5];

public static void main(String a[]) {

for(int i=0;i
System.out.print(arr[0]);

}

}

A、編譯時將產生錯誤 B、編譯時正確,運行時將產生錯誤 C、輸出零 D、輸出空

23. 下面程序中類ClassDemo中定義了一個靜態變數sum,分析程序段的輸出結果。( C )

class ClassDemo {

public static int sum=1;

public ClassDemo() {

sum = sum + 5;}

}

public class ClassDemoTest{

public static void main(String args[]) {

ClassDemo demo1=new ClassDemo();

ClassDemo demo2=new ClassDemo();

System.out.println(demo1.sum);}

}

A: 0 B: 6 C: 11 D: 2

24. 下面關於方法的說法,不正確的是( C )。

A: Java中的構造方法名必須和類名相同

B: 方法體是對方法的實現,包括變數聲明和合法語句

C: 如果一個類定義了構造方法,也可以用該類的默認構造方法

D: 類的私有方法不能被其他類直接訪問

25. 在Java中下列說法正確的是( C )

A) 一個子類可以有多個父類,一個父類也可以有多個子類

B) 一個子類可以有多個父類,但一個父類只可以有一個子類

C) 一個子類可以有一個父類,但一個父類可以有多個子類

D) 上述說法都不對

6. java基礎面試題有哪些

下面是10道java基礎面試題,後附答案

1.什麼是 Java 虛擬機?為什麼 Java 被稱作是「平台無關的編程語言」?

Java 虛擬機是一個可以執行 Java 位元組碼的虛擬機進程。Java 源文件被編譯成能被 Java 虛擬機執行的位元組碼文件。

Java 被設計成允許應用程序可以運行在任意的平台,而不需要程序員為每一個平台單獨重寫或者是重新編譯。Java 虛擬機讓這個變為可能,因為它知道底層硬體平台的指令長度和其他特性。

2.「static」關鍵字是什麼意思?Java 中是否可以覆蓋(override)一個 private 或者是static 的方法?

「static」關鍵字表明一個成員變數或者是成員方法可以在沒有所屬的類的實例變數的情況下被訪問。

Java 中 static 方法不能被覆蓋,因為方法覆蓋是基於運行時動態綁定的,而 static 方法是編譯時靜態綁定的。static 方法跟類的任何實例都不相關,所以概念上不適用。

3.JDK 和 JRE 的區別是什麼?

Java 運行時環境(JRE)是將要執行 Java 程序的 Java 虛擬機。它同時也包含了執行 applet 需要的瀏覽器插件。Java 開發工具包 (JDK)是完整的 Java 軟體開發包,包含了 JRE,編譯器和其他的工具(比如:JavaDoc,Java 調試器),可以讓開發者開發、編譯、執行 Java 應用程序。

4.是否可以在 static 環境中訪問非 static 變數?

static 變數在 Java 中是屬於類的,它在所有的實例中的值是一樣的。當類被 Java 虛擬機載入的時候,會對 static 變數進行初始化。如果你的代碼嘗試不用實例來訪問非 static 的變數,編譯器會報錯,因為這些變數還沒有被創建出來,還沒有跟任何實例關聯上。

5.Java 支持的數據類型有哪些?什麼是自動拆裝箱?

Java 語言支持的 8 中基本數據類型是:

byte

short

int

long

float

double

boolean

char

自動裝箱是 Java 編譯器在基本數據類型和對應的對象包裝類型之間做的一個轉化。比如:把 int 轉化成 Integer,double 轉化成 double,等等。反之就是自動拆箱。

6.Java 支持多繼承么?

不支持,Java 不支持多繼承。每個類都只能繼承一個類,但是可以實現多個介面。

7.Java 中,什麼是構造函數?什麼是構造函數重載?什麼是復制構造函數?

當新對象被創建的時候,構造函數會被調用。每一個類都有構造函數。在程序員沒有給類提供構造函數的情況下,Java 編譯器會為這個類創建一個默認的構造函數。

Java 中構造函數重載和方法重載很相似。可以為一個類創建多個構造函數。每一個構造函數必須有它自己唯一的參數列表。

Java 不支持像 C++中那樣的復制構造函數,這個不同點是因為如果你不自己寫構造函數的情況下,Java 不會創建默認的復制構造函數。

8.Java 中的方法覆蓋(Overriding)和方法重載(Overloading)是什麼意思?

Java 中的方法重載發生在同一個類裡面兩個或者是多個方法的方法名相同但是參數不同的情況。與此相對,方法覆蓋是說子類重新定義了父類的方法。方法覆蓋必須有相同的方法名,參數列表和返回類型。覆蓋者可能不會限制它所覆蓋的方法的訪問。

9.介面和抽象類的區別是什麼?

Java 提供和支持創建抽象類和介面。它們的實現有共同點,不同點在於:

介面中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法。

類可以實現很多個介面,但是只能繼承一個抽象類

類如果要實現一個介面,它必須要實現介面聲明的所有方法。但是,類可以不實現抽象類聲明的所有方法,當然,在這種情況下,類也必須得聲明成是抽象的。

抽象類可以在不提供介面方法實現的情況下實現介面。

Java 介面中聲明的變數默認都是 final 的。抽象類可以包含非 final 的變數。

Java 介面中的成員函數默認是 public 的。抽象類的成員函數可以是 private, protected 或者是 public。

介面是絕對抽象的,不可以被實例化。抽象類也不可以被實例化,但是,如果它包含 main 方法的話是可以被調用的。

10.什麼是值傳遞和引用傳遞?

對象被值傳遞,意味著傳遞了對象的一個副本。因此,就算是改變了對象副本,也不會影響源對象的值。

對象被引用傳遞,意味著傳遞的並不是實際的對象,而是對象的引用。因此,外部對引用對象所做的改變會反映到所有的對象上。

最後祝你面試順利!

7. 求解兩道JAVA作業題!懸賞50,在線等!~

第一題:

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Ex3_1 {

/**
* @param args
*/
public static void main(String[] args) {
char c;
int i=0;
String s="The past is gone and static. Nothing we can do willchange it. " +
"Thefuture is before us and dynamic. Everything we do will affect it.";
System.out.println("請輸入一個字母");
Scanner sc = new Scanner(System.in);
c=sc.next().charAt(0);//輸入單個字元
Pattern p=Pattern.compile(String.valueOf(c));
Matcher m=p.matcher(s);
while(m.find()){
i++;
}
System.out.println("指定字元"+c+"出現的頻率為"+i);
}

}

第二題:
import java.util.Arrays;
public class Ex3_2 {
public static void main(String[] args) {
int[] a = new int[20];
int b=0;
int max=0;
for(int i=0;i<a.length;i++){
a[i]=(int) (Math.random()*99);

}
System.out.println(Arrays.toString(a));
for(int j=0;j<a.length;j++){
for(int k=0;k<j;k++){
if(a[j]>a[k]){
a[k]=a[j];
a[k]=b;
b=a[j];

}
}

}
max=a[0];
Arrays.sort(a);
System.out.println(max);
}
}

8. java編程練習題

1
importjava.util.Scanner;

publicclasstest1{

privatestaticScannerinput=newScanner(System.in);
publicstaticvoidmain(String[]args){
longnum;
do{
System.out.print(" Inputyournum:");
num=input.nextLong();
}while(num<10000||num>99999);
num=num/100;
num*=100;

System.out.println(" Thisisnum:"+num);

}
}
2.
importjava.util.Scanner;

publicclasstest2{

privatestaticScannerinput=newScanner(System.in);
publicstaticvoidmain(String[]args){
longnum;
do{
System.out.print(" Inputyournum:");
num=input.nextLong();
}while(num<0||num>1000);

intsum=0;

while(num>0){
sum+=num%10;
num/=10;
}

System.out.println(" Thisissum:"+sum);

}
}

9. 15道基礎的java選擇題

41.C
A.abstract修飾符可修飾欄位、方法和類。 不可以修飾欄位B.抽象方法的body部分必須用一對大括弧{}包住。C.聲明抽象方法不可寫出大括弧。D.聲明抽象方法,大括弧可有可無。
42D
43.A
A.一個程序里只能有一個類被修飾為Public 錯誤B.源文件名必須和用public修飾的類名相同 正確C.若程序中沒有任何Public類,則文件名可任取 正確D.一個Java程序中,必須有一個被Public修飾的類 怎麼說呢?很難說正確,也很難說錯誤,一個java程序是可以沒有一個被修飾為Public的類
44B
A好像也可以
45D
46A
47A
48C
49B
50A
51D
52C
53A
54B
55.A

閱讀全文

與50道java基礎編程練習題相關的資料

熱點內容
解壓的密碼htm被屏蔽 瀏覽:502
冬天太冷冰箱壓縮機不啟動怎麼辦 瀏覽:82
手機打開vcf需要什麼編譯器 瀏覽:909
加密磁碟後開機很慢 瀏覽:270
長沙智能雲控系統源碼 瀏覽:256
阿里雲伺服器如何設置操作系統 瀏覽:999
超級命令的英文 瀏覽:782
做賬為什麼要用加密狗 瀏覽:586
考研群體怎麼解壓 瀏覽:156
linux修改命令提示符 瀏覽:226
圓圈裡面k圖標是什麼app 瀏覽:60
pdf加空白頁 瀏覽:945
linux伺服器如何看網卡狀態 瀏覽:317
解壓新奇特視頻 瀏覽:707
圖書信息管理系統java 瀏覽:554
各種直線命令詳解 瀏覽:864
程序員淚奔 瀏覽:147
素材怎麼上傳到伺服器 瀏覽:517
android百度離線地圖開發 瀏覽:191
web可視化編程軟體 瀏覽:294