java基础练习题(含答案共39道)-语言基础篇
生活随笔
收集整理的這篇文章主要介紹了
java基础练习题(含答案共39道)-语言基础篇
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考:
變量的練習:
-
聲明一個變量,一次聲明多個變量。
-
聲明變量直接初始化,先聲明變量,而后再給變量初始化。
-
聲明整型變量g,聲明另一個整型變量h并賦值為h+10,輸出變量h的值。
-
聲明整型變量i,在i本身基礎之上增10,輸出變量i的值。
-
聲明一些正確的和錯誤的變量名。
參考案例:
//變量的演示 public class VarDemo {public static void main(String[] args) {//1)變量的聲明:----相當于在銀行開帳戶int a; //聲明一個整型的變量,名為aint b,c,d; //聲明三個整型的變量,名為b,c,d//int a; //編譯錯誤,變量不能同名//2)變量的初始化:----相當于給帳戶存錢int e = 250; //聲明整型變量e并賦值為250int f; //聲明整型變量ff = 250; //給f賦值為250//3)變量的使用:----使用的是帳戶里面的錢int g = 5;int h = g+10; //取出g的值5,加10后,再賦值給變量hSystem.out.println(h); //輸出變量h的值15System.out.println("h"); //輸出h,雙引號中的原樣輸出g = g+10; //在g本身基礎之上增10System.out.println(g); //輸出g的值15//int i = 3.14; //編譯錯誤,數據類型必須匹配//System.out.println(j); //編譯錯誤,變量j未聲明int j;//System.out.println(j); //編譯錯誤,變量j未初始化//4)變量的命名:int a1,a_5$,_3c,$_b;//int a*b; //編譯錯誤,不能包含*號等特殊符號//int 1a; //編譯錯誤,不能以數字開頭int aa = 5;//System.out.println(aA); //編譯錯誤,嚴格區分大小寫//int class; //編譯錯誤,不能使用關鍵字//int k; //不直觀,不建議//int 年齡; //允許,但不建議//int nianLing; //既不直觀也不專業,必須杜絕int age; //建議"英文的見名知意"int score,myScore,myJavaScore; //建議"小駝峰命名法"} }基本數據類型的練習:int
- 聲明初始化兩個以上整數變量,并且輸出兩個整數變量的除法結果
- 聲明兩個很大的變量,然后相加,輸出運算結果,測試運算溢出現象
參考案例:
//1)int:整型,4個字節,-21個多億到21個多億 int a = 25; //25為整數直接量,默認為int類型 //int b = 10000000000; //編譯錯誤,100億默認為int類型,但超出int范圍了 System.out.println(5/2); //2 System.out.println(2/5); //0 System.out.println(5/2.0); //2.5 int c = 2147483647; //int的最大值 c = c+1; System.out.println(c); //-2147483648(int的最小值),發生溢出了,需要避免基本數據類型的練習:long
- 聲明初始化兩個以上的長整型變量
- 聲明變量存儲幾個較大數據的運算,演示:若有可能溢出建議將L設計在第1個數字后。
參考案例:
//2)long:長整型,8個字節,很大很大很大 long a = 25L; //25L為長整型直接量,默認為long型 //long b = 10000000000; //編譯錯誤,100億默認為int類型,但超出int范圍了 long c = 10000000000L; //100億L為長整型直接量long d = 1000000000*2*10L; System.out.println(d); //200億 long e = 1000000000*3*10L; System.out.println(e); //不是300億 long f = 1000000000L*3*10; //運算若有可能溢出,建議在第1個數字后加L System.out.println(f); //300億基本數據類型的練習:double
- 聲明初始化兩個以上的浮點型變量
- 聲明幾個浮點型變量并將它們做數學操作,演示double運算的舍入誤差問題
參考案例:
//3)double:浮點型,8個字節,很大很大很大 double a = 3.14159; //3.14159為浮點數直接量,默認為double類型 float b = 3.14159F; //3.14159F為float型-----了解即可double c=6.0,d=1.9; System.out.println(c-d); //0.10000000000000009,有可能發生舍入誤差基本數據類型的練習:boolean
- 聲明初始化兩個以上的布爾型變量
參考案例:
//4)boolean:布爾型,1個字節 boolean a = true; //true為布爾型直接量 boolean b = false; //false為布爾型直接量 //boolean c = 25; //編譯錯誤,布爾型只能賦值為true或false基本數據類型的練習:char
- 聲明初始化五個以上的字符型變量
- 聲明字符型變量,演示轉義符
參考案例:
//5)char:字符型,2個字節char c1 = '女'; //字符女char c2 = 'f'; //字符fchar c3 = '6'; //字符6char c4 = '*'; //字符*//char c5 = 女; //編譯錯誤,字符型直接量必須放在單引號中//char c6 = ''; //編譯錯誤,必須有字符//char c7 = '女性'; //編譯錯誤,只能有一個字符char c8 = '\\';System.out.println(c8);基本數據類型的轉換:兩種方式
- 聲明幾個變量,演示自動類型轉換和強制類型轉換的語法
- 聲明一個較大類型的長整型變量,演示強轉可能會發生的溢出問題
- 聲明一個較大精度的浮點型變量,演示強轉可能會發生的丟失精度問題
參考案例:
int a = 5; long b = a; //自動類型轉換 int c = (int)b; //強制類型轉換long d = 5; //自動類型轉換 double e = 5; //自動類型轉換long f = 10000000000L; int g = (int)f; System.out.println(g); //1410065408,強轉有可能發生溢出 double h = 25.987; int i = (int)h; System.out.println(i); //25,強轉有可能丟失精度基本數據類型的轉換:兩點規則
- 聲明兩個byte型變量b1和b2,并賦值為直接量
- 聲明一個byte型變量,并賦值為b1與b2的和
參考案例:
byte b1 = 5; byte b2 = 6; byte b3 = (byte)(b1+b2);System.out.println(2+2); //4 System.out.println(2+'2'); //52,2加上'2'的碼50 System.out.println('2'+'2'); //100,'2'的碼50,加上'2'的碼50運算符的練習:算術
- 輸出幾個整數取模,驗證結果
- 聲明兩個整型變量,演示單獨使用時的自增和自減
- 聲明幾個整型變量,演示被使用時的自增和自減
參考代碼:
System.out.println(5%2); //1,商2余1 System.out.println(8%2); //0,商4余0----整除 System.out.println(2%8); //2,商0余2//單獨用----自增 int a=5,b=5; a++; //相當于a=a+1 ++b; //相當于b=b+1 System.out.println(a); //6 System.out.println(b); //6//單獨用----自減 int a=5,b=5; a--; //相當于a=a-1 --b; //相當于b=b-1 System.out.println(a); //4 System.out.println(b); //4//被使用----自增 int a=5,b=5; int c = a++; //1)將a++的值5賦值給c 2)a自增1變為6 int d = ++b; //1)將++b的值6賦值給d 2)b自增1變為6 System.out.println(a); //6 System.out.println(b); //6 System.out.println(c); //5 System.out.println(d); //6//被使用----自減 int a=5,b=5; int c = a--; //1)將a--的值5賦值給c 2)a自減1變為4 int d = --b; //1)將--b的值4賦值為d 2)b自減1變為4 System.out.println(a); //4 System.out.println(b); //4 System.out.println(c); //5 System.out.println(d); //4運算符的練習:關系
- 聲明幾個變量,演示最基本的>,<,>=,<=,==,!=操作
- 演示關系運算符和算術運算符聯合使用的效果
參考代碼:
int a=5,b=10,c=5; boolean b1 = b>a; System.out.println(b1); //true System.out.println(c<b); //true System.out.println(a>=c); //true System.out.println(b<=a); //false System.out.println(b==c); //false System.out.println(a!=c); //falseSystem.out.println(a+c>10); //false System.out.println(b%2==0); //true System.out.println(c++>5); //false------c自增1變為6 System.out.println(c++>5); //true-------c自增1變為7- 聲明三個整型變量,演示&&和||,演示!
- &&的演示要求:true+false、false+true、true+true、false+false
- ||的演示要求:true+false、false+true、true+true、false+false
- !的演示要求:true、false
- 演示短路&&與短路||
參考代碼:
int a=5,b=10,c=5; //演示&& boolean b1 = b>=a && b<c; System.out.println(b1); //true&&false=false System.out.println(b<=c && b>a); //false&&true=false System.out.println(a==b && c>b); //false&&false=false System.out.println(b!=c && a<b); //true&&true=true //演示|| System.out.println(b>=a || b<c); //true||false=true System.out.println(b<=c || b>a); //false||true=true System.out.println(b!=c || a<b); //true||true=true System.out.println(a==b || c>b); //false||false=false //演示! boolean b2 = !(a<b); System.out.println(b2); //!true=false System.out.println(!(a>b)); //!false=true//演示&&的短路 int a=5,b=10,c=5; boolean b3 = a>b && c++>2; System.out.println(b3); //false System.out.println(c); //5,發生短路了//演示||的短路 boolean b4 = a<b || c++>2; System.out.println(b4); //true System.out.println(c); //5,發生短路了- 聲明一個整型變量,演示擴展賦值+=、-=、*=、/=、%=的效果
- 聲明short型變量s,演示簡單賦值運算的自增10,演示擴展賦值運算的自增10
參考代碼:
int a = 5; a += 10; //相當于a=(int)(a+10) System.out.println(a); //15 a *= 2; //相當于a=(int)(a*2) System.out.println(a); //30 a /= 6; //相當于a=(int)(a/6) System.out.println(a); //5short s = 5; //s = s+10; //編譯錯誤,需強轉,改為: s=(short)(s+10); s += 10; //相當于s=(short)(s+10)- 聲明整型變量age和字符串型變量name,輸出字符串連接的結果
- 輸出幾個數據的拼接,演示字符串連接的同化作用
參考代碼:
//演示字符串連接 int age = 38; System.out.println("age="); //age= System.out.println(age); //38 System.out.println("age="+age); //age=38 System.out.println("我的年齡是"+age); //我的年齡是38 System.out.println("我今年"+age+"歲了"); //我今年38歲了String name = "WKJ"; System.out.println("name="+name); //name=WKJ System.out.println("大家好,我叫"+name); //大家好,我叫WKJ System.out.println("大家好,我叫"+name+",今年"+age+"歲了"); //大家好,我叫WKJ,今年38歲了//演示同化作用 System.out.println(10+20+""+30); //3030---------String System.out.println(""+10+20+30); //102030-------String System.out.println(10+20+30+""); //60-----------String- 聲明并初始化整型變量,使用條件運算符實現:若>0則給flag賦值為1,否則賦值為0
- 聲明兩個整型變量,使用條件運算符實現:求這兩個變量的最大值
參考代碼:
int num = 5; int flag = num>0?1:-1; System.out.println(flag); //1int a=8,b=5; int max = a>b?a:b; System.out.println("max="+max);- 偶數的判斷:聲明并初始化一個整型變量,判斷該數是否是偶數
- 滿500打8折:聲明并初始化一個浮點型價格,若滿500則打8折
參考代碼:
//1)偶數的判斷: int num = 6; //帶數(6,5) if(num%2==0){System.out.println(num+"是偶數"); } System.out.println("繼續執行...");//2)滿500打8折 //帶數(600.0,300.0) double price = 300.0; //消費金額 if(price>=500){ //滿500price*=0.8; //打8折 } System.out.println("最終結算金額為:"+price);- 偶數、奇數的判斷:聲明并初始化一個整型變量,判斷該數是偶數還是奇數
- 滿500打8折:聲明并初始化一個浮點型價格,若滿500則打8折,否則打9折
參考代碼:
//if..else結構的演示 public class IfElseDemo {public static void main(String[] args) {//1)偶數、奇數的判斷:int num = 5; //帶數(6,5)if(num%2==0){System.out.println(num+"是偶數");}else{System.out.println(num+"是奇數");}System.out.println("繼續執行...");//2)滿500打8折,不滿500打9折:double price = 300.0; //帶數(600.0,300.0)if(price>=500){ //滿500,打8折price*=0.8;}else{ //不滿500,打9折price*=0.9;}System.out.println("最終結算金額為:"+price);} }參考代碼:
package test; public class Day03 {public static void main(String[] args) {/*int a=8,b=5;int max = a>b?a:b;System.out.println("max="+max);*/int a=8,b=5;int max;if(a>b){max = a;}else{max = b;}System.out.println("max="+max);} }參考代碼:
package test; public class Day03 {public static void main(String[] args) {/*閏年的判斷公式:1)4年一閏,百年不閏,就是:能被4整除,并且,不能被100整除或者2)400年再閏,就是:能被400整除*/int year = 2000; //年份 //帶數(2021,2020,2000)if((year%4==0 && year%100!=0) || year%400==0){System.out.println(year+"是閏年");}else{System.out.println(year+"是平年");}} }參考代碼:
package day04; import java.util.Scanner; //成績等級判斷 public class ScoreLevel {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("請輸入成績:");double score = scan.nextDouble();//帶數(888,-45,95,85,65,45)if(score<0 || score>100){System.out.println("成績不合法");}else if(score>=90){ //合法System.out.println("A-優秀");}else if(score>=80){System.out.println("B-良好");}else if(score>=60){System.out.println("C-中等");}else{System.out.println("D-不及格");}} }參考代碼:
package day04; import java.util.Scanner; //命令解析程序 public class CommandBySwitch {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("請選擇功能: 1.取款 2.存款 3.查詢余額 0.退卡");int command = scan.nextInt();switch(command){case 1:System.out.println("取款操作...");break;case 2:System.out.println("存款操作...");break;case 3:System.out.println("查詢余額操作...");break;case 0:System.out.println("退出成功");break;default:System.out.println("輸入錯誤");}} }參考代碼:
package day04; import java.util.Scanner; //猜數字小游戲 public class Guessing {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int num = (int)(Math.random()*1000+1); //1到1000之內System.out.println(num); //作弊//300(大),200(小),250(對)System.out.println("猜吧!");int guess = scan.nextInt(); //1.while(guess!=num){ //2.if(guess>num){System.out.println("太大了");}else{System.out.println("太小了");}System.out.println("猜吧!");guess = scan.nextInt(); //3.}System.out.println("恭喜你猜對了!");} }參考代碼:
package day04; import java.util.Scanner; //猜數字小游戲 public class Guessing {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int num = (int)(Math.random()*1000+1); //1到1000之內System.out.println(num); //作弊//假設num=250//300(大),200(小),250(對)int guess;do{System.out.println("猜吧!");guess = scan.nextInt(); //1+3if(guess>num){System.out.println("太大了");}else if(guess<num){System.out.println("太小了");}else{System.out.println("恭喜你猜對了");}}while(guess!=num); //2} }參考代碼:
package test; import java.util.Scanner; public class Day04 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("請輸入一個整數:");int num = scan.nextInt();if(num>0){System.out.println("+");}else if(num<0){System.out.println("-");}else{System.out.println("0");}} }參考代碼:
package test; import java.util.Scanner; public class Day04 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("請輸入年份:");int year = scan.nextInt();System.out.println("請輸入月份:");int month = scan.nextInt();int days = 0; //天數switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:days = 31;break;case 4:case 6:case 9:case 11:days = 30;break;case 2:if((year%4==0 && year%100!=0) || year%400==0){days = 29;}else{days = 28;}}System.out.println(year+"年的"+month+"月共"+days+"天");} }參考代碼:
package test; public class Day04 {public static void main(String[] args) {int sum = 0; //和int i = 1;while(i<=100){sum+=i;i++;}System.out.println("sum="+sum);} }參考代碼:
package day05; import java.util.Scanner; //隨機加法運算器 public class Addition {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int score = 0; //得分for(int i=1;i<=10;i++){ //10次 (1)25+36=?int a = (int)(Math.random()*100); //加數a(0到99的隨機數)int b = (int)(Math.random()*100); //加數b(0到99的隨機數)int result = a+b; //存正確答案System.out.println("("+i+")"+a+"+"+b+"=?"); //1)出題System.out.println("算吧!");int answer = scan.nextInt(); //2)答題if(answer==-1){ //3)判題break;}if(answer==result){System.out.println("答對了");score+=10; //答對1題加10分}else{System.out.println("答錯了");}}System.out.println("總分為:"+score);} }參考代碼:
package day05; //九九乘法表 public class MultiTable {public static void main(String[] args) {for(int num=1;num<=9;num++){ //控制行for(int i=1;i<=num;i++){ //控制列System.out.print(i+"*"+num+"="+i*num+"\t");}System.out.println(); //換行}} }- 定義至少兩個數組,設計包含一些元素
參考代碼:
//聲明整型數組arr,包含10個元素,每個元素都是int型,默認值為0 int[] arr = new int[10];- 定義至少三個數組,演示三種元素初始化方式
參考代碼:
//2)數組的初始化:--初始化的是數組中的數據 int[] arr1 = new int[3]; //0,0,0 int[] arr2 = {2,5,8}; //2,5,8 int[] arr3 = new int[]{2,5,8}; //2,5,8 int[] arr4; //arr4 = {2,5,8}; //編譯錯誤,此方式只能聲明同時初始化 arr4 = new int[]{2,5,8}; //正確- 定義數組,輸出數組的長度
- 定義數組并分別給每個元素賦值,輸出最后一個元素的值
- 編寫代碼演示數組操作常見的異常----數組下標越界
參考代碼:
//3)數組的訪問:--訪問的是數組中的數據 int[] arr = new int[3]; System.out.println(arr.length); //3,輸出arr的長度 arr[0] = 100; //給arr中第1個元素賦值為100 arr[1] = 200; //給arr中第2個元素賦值為200 arr[2] = 300; //給arr中第3個元素賦值為300 //arr[3] = 400; //運行時發生ArrayIndexOutOfBoundsException數組下標越界異常 System.out.println(arr[arr.length-1]); //輸出最后一個元素的值- 定義數組,包含10個元素,遍歷數組,給每個元素賦值為0到99之間的隨機數,輸出每個元素的值
參考代碼:
int[] arr = new int[10]; for(int i=0;i<arr.length;i++){ //遍歷arr數組arr[i] = (int)(Math.random()*100); //給每個元素賦值為0到99的隨機數System.out.println(arr[i]); //輸出每個元素的值 }參考代碼:
package test; public class Day05 {public static void main(String[] args) {int sum = 0;for(int i=2;i<=100;i+=2){sum+=i;}System.out.println("sum="+sum);} }參考代碼:
package test; public class Day05 {public static void main(String[] args) {int num = 1; //階乘for(int i=1;i<=8;i++){num*=i;}System.out.println("num="+num);} }參考代碼:
package test; public class Day05 {public static void main(String[] args) {for(int i=1;i<=6;i++){for(int j=1;j<=6-i;j++){ //空格System.out.print(" ");}for(int k=1;k<=2*i-1;k++){System.out.print("*");}System.out.println();}} }參考代碼:
package day06; import java.util.Arrays; //求數組元素的最大值,并將其放在最后一個元素的下一個位置 public class MaxOfArray {public static void main(String[] args) {int[] arr = new int[10];for(int i=0;i<arr.length;i++){arr[i] = (int)(Math.random()*100);System.out.println(arr[i]);}int max = arr[0]; //假設第1個元素為最大值for(int i=1;i<arr.length;i++){ //遍歷剩余元素if(arr[i]>max){ //若剩余元素大于maxmax = arr[i]; //則將max修改為較大的}}System.out.println("最大值為:"+max);arr = Arrays.copyOf(arr,arr.length+1); //擴容arr[arr.length-1] = max; //將最大值max放到最后一個元素上for(int i=0;i<arr.length;i++){System.out.println(arr[i]);}} }參考代碼:
package day06; import java.util.Arrays; //數組的演示 public class ArrayDemo {public static void main(String[] args) {//8)數組的排序:int[] arr = new int[10];for(int i=0;i<arr.length;i++){arr[i] = (int)(Math.random()*100);System.out.println(arr[i]);}Arrays.sort(arr); //對arr進行升序排列System.out.println("數組排序后的數據:");for(int i=0;i<arr.length;i++){System.out.println(arr[i]);}System.out.println("倒序輸出:");for(int i=arr.length-1;i>=0;i--){System.out.println(arr[i]);}} }- 定義say()無參無返回值方法,調用測試
- 定義sayHi()有一個參無返回值方法,調用測試
- 定義sayHello()有兩個參無返回值的方法,調用測試
參考代碼:
package day06; //方法的演示 public class MethodDemo {public static void main(String[] args) {say();sayHi("zhangsan"); //String name="zhangsan"sayHello("zhangsan",25); //String name="zhangsan",int age=25}//無參無返回值public static void say(){System.out.println("大家好,我叫WKJ,今年38歲了");}//有參無返回值public static void sayHi(String name){System.out.println("大家好,我叫"+name+",今年38歲了");}//有參無返回值public static void sayHello(String name,int age){if(age>=35){ //在某種特定條件下,提前結束方法return; //結束方法的執行}System.out.println("大家好,我叫"+name+",今年"+age+"歲了");} }- 定義getNum()無參有返回值方法,演示return的用法,調用測試
- 定義plus()兩個參有返回值方法,調用測試
- 定義testArray()用于生成整型數組填充隨機數并返回數組,調用測試
參考代碼:
package day06; //方法的演示 public class MethodDemo {public static void main(String[] args) {double a = getNum(); //getNum()值就是return后那個數System.out.println(a); //8.88,模擬對返回值的后續操作int b = plus(5,6);System.out.println(b); //11,模擬對返回值的后續操作int m=5,n=6;int c = plus(m,n); //傳遞的是m和n里面的數System.out.println(c); //11,模擬對返回值的后續操作int[] d = testArray();System.out.println("長度為:"+d.length); //10,模擬對返回值的后續操作for(int i=0;i<d.length;i++){ //模擬對返回值的后續操作System.out.println(d[i]);}}//無參有返回值public static double getNum(){//return "abc"; //編譯錯誤,返回值類型不匹配return 8.88; //1)結束方法的執行 2)返回結果給調用方}//有參有返回值public static int plus(int num1,int num2){int num = num1+num2;return num; //返回的是num里面的那個數//return num1+num2; //返回num1與num2的和}//無參有返回值public static int[] testArray(){int[] arr = new int[10];for(int i=0;i<arr.length;i++){arr[i] = (int)(Math.random()*100);}return arr;} }- 根據第一個參數生成指定長度的int數組;
- 根據第二個范圍參數隨機生成0到指定范圍的隨機數,填充到數組元素中,并將該數組返回;
- 測試數組內容。
參考代碼:
package test; public class Day06 {public static void main(String[] args) {int[] arr = generate(5,20);for(int i=0;i<arr.length;i++){System.out.println(arr[i]);}}//生成隨機數組方法public static int[] generate(int len,int max){int[] arr = new int[len];for(int i=0;i<arr.length;i++){arr[i] = (int)(Math.random()*(max+1));}return arr;} }總結
以上是生活随笔為你收集整理的java基础练习题(含答案共39道)-语言基础篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 文件inputstream_j
- 下一篇: C语言编程快速入门黎明,何用C语言模拟键