
最近有很多小伙伴都升大二了,相信大家大一都學的C語言和資料結構,大二現在突然開始Java難免有些不習慣,這不,我給大家總結一些題來幫大家更好的學習,
第1題:
選擇題:
switch(){}結構中,括號中可使用的資料型別不能是( ), 多選
A.long
B.int
C.short
D.float
決議:我們常用的都是int型別的,但是對于long、short、float型別是否能使用并不知道,實踐出真知,我們一起到編譯器中看看吧,
我們定義四個變數分別是a,b,c,d,e,f代表6種不同的資料型別,再使用switch分別將a,b,c,d,e,f帶入,發現只有int型別的a和short型別的b是可以的,其余都被劃上了紅線線,這就說明只有int,short型別可以,所以這道題選B,C

第2題:
編程題:請撰寫程式數一下 1到 100 的所有整數中出現多少個數字9,
補充:9的倍數即可,像9、99、18,這樣的數都算數字9.
思路分析:
9的倍數,我們可以用“ % ”取余的方式來計算,%的意思就是一個數除了它,還剩多少,
舉一個例子: 10%9; 這里意思是10除以9得1,最后還剩了一個1,而這個1就是取余的結果,
知道了取余是什么意思,接下來就可以寫代碼啦,一起來看看吧,代碼中注釋也是很詳細的哦,
//計算1到 100 的所有整數中出現多少個數字9,
//定義計數器count,記錄9出現的次數
int count=0;
for (int j = 1 ; j <=100 ; j++) {
//別忘了判斷相等用兩個等于號哦
if(j%9==0){
//如果出現就了就列印出來方便查看
System.out.print (j);
//為了方便觀察我們讓這些數字都在同一行,并且一個空格隔開
System.out.print (" ");
//出現了9就讓計數器count加一;
count++;
}
}
//換行
System.out.println ();
//回圈結束,列印count的值
System.out.print ("count的值是:");
System.out.println (count);
}
程式執行結果:

第3題:
編程題:輸出 1000 - 2000 之間所有的閏年
補充:年份是4的倍數,且不是100的倍數的,為閏年,或者能夠被400整除的也是閏年,
思路分析:
關于倍數相信大家從第二道題已經有想法了,誰是誰的整數倍不就是取余嘛,那我們利用取余和邏輯判斷的知識來輸出1000-2000之間的閏年,
在這里再給大家補充一些邏輯關系運算子,
&& :前后都為真,結果才為真
|| :只要一個為真,結果就為真,
代碼實作:
/**
* 輸出 1000 - 2000 之間所有的閏年
*/
for (int i = 1000 ; i <= 2000 ; i++) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
System.out.print (i);
System.out.print (" ");
}
}
}
程式執行結果:
后面還有很多,我這里放一部分,

第4題:
編程題:判斷一個數是否是素數
題目來源牛客網:
鏈接:素數判斷
補充:
質數又稱素數,一個大于1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數(規定1既不是質數也不是合數),
思路分析:
將一個數從2開始試除,除到這個數但不包括它自己,在程序中如果取余等于0了那么直接回傳false,因為它可以整個這個數,回圈結束之后,回傳true,
代碼實作:
class Solution{
public static Boolean isPrime(int num){
if(num==2 ||num==3) {
return true;
}
for (int i = 2 ; i <num ; i++) {
if(num%i==0){
return false;
}
}
return true;
}
public static void main (String[] args) {
Scanner scanner=new Scanner (System.in);
int num=scanner.nextInt ();
System.out.println (isPrime (num));
}
第5題:
編程題:求斐波那契數列的第 N 項
鏈接:https://www.nowcoder.com/questionTerminal/d143f3c5c54742768cb5406feed5641
來源:牛客網
形如1, 1, 2, 3, 5, 8, 13, 21, 34, 55的數列,后一位是前面兩位相加(斐波那契數列),寫出函式要求找到第 N 位是多少,如:fib(3) => 3 , fib(5) => 8,
思路分析:斐波那契數列的第n項公式是F(n)=F(n-1)+F(n-2);因此我們可以用遞回來做,
代碼實作:
/**
* 斐波那契數列
* @param num
* @return
*/
public static int fibnona(int num){
if(num==1 || num==2){
return 1;
}
return fibnona (num-1)+fibnona (num-2);
}
第6題:
編程題:按順序列印一個數字的每一位(例如 1234 列印出 1 2 3 4)
思路分析:
對于一個一位數,也就是小于等于9的數字,我們可以直接列印它本身,對于大于1位數的數字,可以先除10在遞回,遞回到這個數小于等于9,這時候回傳,在列印它對10取余的結果,
代碼實作:
public static void printNum(int num){
if(num<=9){
System.out.println (num);
return;
}
printNum (num/10);
System.out.println (num%10);
}
實作結果:
這里傳一個1234.

第7題:
編程題: 求一個陣列的平均值
思路:
將這個陣列的每個元素都加起來,在除以它本身陣列的長度,就是陣列的平均值了,注意平均值需要取double型別,
代碼:
public static double average(int []arr){
int sum=0;
double avg=0;
for (int i = 0 ; i < arr.length ; i++) {
sum+=arr[i];
}
avg=sum/arr.length;
System.out.println (avg);
return avg;
}
效果:
假設陣列是 int []array={1,2,3,4,5};

好了,以上就是這次的題目啦,大家覺得難度或者數量上有什么問題歡迎私信或者評論區留言哦,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/312116.html
標籤:java
上一篇:07-Redis在SpringBoot工程中的綜合應用
下一篇:Java方法(三)
