2、資料型別和運算子作業
技術標籤:大資料——JAVA基礎篇
資料型別和運算子作業
一、填空題
1.Java語言規定識別符號由字母、下劃線、美元符號和數字組成,並且第一個字元不能是 數字 。
2.Java中整型變數有byte、short、int和long四種,不同型別的整數變數在記憶體中分配的位元組數不同,數值範圍也不同。對於int型變數,記憶體分配 4 個位元組。
3.在Java中浮點型變數有float和double兩種,對於float型變數,記憶體分配4個位元組,尾數可精確到7位有效數字,對於double型變數,記憶體分配 8 個位元組。
4.char c=’a’;System.out.println(c+1);執行結果為: 98 。
6.下面的語句是宣告一個變數並賦值:boolean b1=5!=8; b1的值是___true。
7.使用位運算子來實現運算效率最高,所以最有效率的方法算出2乘以8等於多少的語句是 2<<3 。
8.基本資料型別的型別轉換中,要將double型別的常量3.14159賦給為整數型別變數n的語句是_______int n=(int)3.14159_____。
9.八進位制整數012表示十進位制的___10___,十六進位制數0x3C表示十進位制的__50___。
10.一個十進位制整數轉換成八進位制數後是1234,則它轉為十六進位制數後是 0x29C 。
二、選擇題
-
在Java中,以下錯誤的變數名是( D )。(選擇一項)
A constant
B. flag
C. a_b
D. final -
以下選項中屬於合法的Java識別符號的是( CD )。(選擇兩項)
A. public
B. 3num
C. name
D. _age -
在Java中,byte資料型別的取值範圍是( A )。(選擇一項)
A -128 ~ 127
B. -228 ~128
C. -255 ~ 256
D. -255 ~ 255 -
下面的程式碼段中,執行之後i和j的值是( B )。(選擇一項)
int i=1; int j;
j=i++;A 1,1
B. 1,2
C. 2,1 -
下面Java程式碼的執行結果是( A )。(選擇一項)
public class Test {
public static void main(String args[]) {
System.out.println(100 % 3);
System.out.println(100%3.0);
}
}A 1 1.0
B. 1 1
C. 1.0 1.0
D. 33 33.3 -
下面的賦值語句中錯誤的是( A )。(選擇一項)
A float f = 11.1;
B. double d = 5.3E12;
C. double d = 3.14159;
D. double d = 3.14D; -
在Java中,下面( AB )語句能正確通過編譯。(選擇兩項)
A System.out.println(1+1);
B. char i =2+‘2’;
System.out.println(i);
C. String s=“on”+‘one’;
D. int b=255.0; -
以下Java運算子中優先級別最低的兩個選項是( AC )。(選擇二項)
A 賦值運算子=
B. 條件運算子 ?=
C. 邏輯運算子|
D. 算術運算子+ -
有以下方法的定義,請選擇該方法的返回型別( D )。(選擇一項)
method(byte x, double y) {
return (short)x/y*2;
}A byte
B. short
C. int
D. double -
關於以下Java程式中錯誤行的說明正確的是( B )。(選擇一項)
public class Test2 {
public static void main(String[] args) {
short s1=1; //1
s1=s1+1; //2
s1+=1; //3
System.out.println(s1);
}
}A 1行錯誤
B. 2行錯誤
C. 3行錯誤
D. 1行,2行,3行都錯誤
三、判斷題
1.Java中變數名不區分大小寫,number和NuMbEr代表同一個變數。( × )
2.在編譯Java源程式時,計算機根本不會去識別各個變數名的具體含義,因此命名規範對編寫Java程式而言不是必要的,而且有可能會降低編寫Java源程式的效率。( × )
3.Java語言中不同資料型別的長度是固定的,不隨機器硬體不同而改變。( √ )
4.char型別變數可以儲存一個Unicode字元,在記憶體中佔2個位元組,該字元可以是一個漢字。( √ )
5.運算子||和&&既是邏輯運算子,也是位運算子。根據兩側運算元的型別判斷是邏輯運算子還是位運算子。( × )
6.^ 是異或位運算子,運算規則是如果兩個運算元相同,結果是0,否則結果是1。( √ )
7.賦值運算子優先級別低於條件運算子,條件運算子優先級別低於算術運算子。( √ )
8.賦值和條件運算子是運算級別最低的兩種運算子,都具有自右向左的結合性。( T )
9.整型常量的預設型別是int型別,浮點常量的預設型別是float型別。( × )
10.00101010 & 00010111語句的執行結果為00111111( × )
四、簡答題
1.Java是一種強型別語言,說明Java的資料型別分類。
答:Byte、short、int、long、char、float、double、boolean
2.i++和++i的異同之處
答:I++是先賦值後加1,++i是先加1後賦值
3.運算子||和|的異同之處
答:都代表著邏輯或運算,||表示短路或,只要第一個是ture,後面就不做運算,|反之,還是會依次判斷。
4.Java中基本資料型別轉換的規則
答:1、基本資料型別的自動提升;
2、強制型別轉換。
五、編碼題
1.輸入自己的名字,年齡和性別,分別用不同的變數接收,並將輸入的資訊做輸出。
2.輸入圓形半徑,求圓形的周長和圓形的面積,並將結果輸出。
3.銀行利率表如下表所示,請計算存款10000元,活期1年、活期2年,定期1年,定期2年後的本息合計。
結果如下圖所示。(結果四捨五入,不保留小數位。使用Math.round(double d)實現)
4.某個公司採用公用電話傳遞資料,資料是四位的整數,在傳遞過程中是加密的,加密規則如下:每位數字都加上5,然後用和除以10的餘數代替該數字,再將第一位和第四位交換,第二位和第三位交換。結果如圖所示。
六、可選題
1.網上查詢資料,瞭解如下內容
1)ASCII、ISO8859-1、GB2312、GBK、GB18030、BIG5、UNICODE、ANSI等字符集的特點
2)常用進位制(二進位制、八進位制、十六進位制、十進位制)的特點及其轉換
3)原始碼、反碼、補碼含義、作用及其轉換
2.利用”異或”運算的性質,對幾個字元進行加密並輸出密文,然後再解密。加密演算法是:金鑰是字元’8’,明文的每個字元和金鑰進行異或運算,得到密文。金鑰和密文的每個字元再次進行異或運算,重新得到明文。結果如圖所示。
00000000 00000000 00000000 1000
資料型別和運算子作業答案
一、填空題
1.數字
2.4
3.8
4.98
5.&&
6.true
7.2<<3
8.int n=(int)3.14159;
9.10 60
10.29C
二、選擇題
1.D
2.CD
3.A
4.C
5.A
6.A
7.AB
8.AB
9.D
10.B
三、判斷題
1.×
2.×
3.√
4.√
5.×
6.√
7.√
8.√
9.×
10.×
四、簡答題
1、答:基本資料型別:數值型<整數型別:byte、short、int、long,浮點型別:float、double,字元型(char),布林型(boolean);引用資料型別:類(class),介面(interface),陣列
2、答:i++,先進行運算再自增;++i先自增再進行運算
3、答:||左邊的表示式為真時,右邊的表示式不用進行計算了;|需要考慮倆邊的表示式。
4、答:(1)布林型和其它基本資料型別之間不能相互轉換;(2)byte型可以轉換為short、 int、long、float和double; (3)short可轉換為int、long、float和double; (4)char可轉換為int、long、float和double; (5)int可轉換為long、float和double; (6)long可轉換為float和double; (7)float可轉換為double.
五、編碼題
1.輸入自己的名字,年齡和性別,分別用不同的變數接收,並將輸入的資訊做輸出。
import java.util.Scanner;
public class TestPerson {
public static void main(String[] args) {
System.out.println("Please input your name here:");
Scanner input = new Scanner(System.in);
String Name = (String) input.next();
System.out.println("Please input your age here:");
int age = input.nextInt();
System.out.println("Please input your gender here:");
String gender = input.next();
System.out.println("The computer recorded that :");
System.out.println("Your nanme is:" + Name);
System.out.println("Your age is:" + age);
System.out.println("Your gender is:" + gender);
}
}
2.輸入圓形半徑,求圓形的周長和圓形的面積,並將結果輸出。
import java.util.Scanner;
public class TestCircle {
public static void main(String[] args) {
// 定義圓周率
final double PI = 3.14;
Scanner input = new Scanner(System.in);
// 輸入半徑
System.out.println("請輸入圓的半徑:");
// 計算周長和麵積
float r = input.nextFloat();
double c = 2 * PI * r;
double s = PI * r * r;
// 輸出周長和麵積
System.out.println("該圓的半徑為:R=" + r);
System.out.println("該圓的周長為:C=" + 2 + "*" + PI + "*" + r + "=" + c);
System.out.println("該圓的面積為:S=" + PI + "*" + r + "*" + r + "=" + s);
}
}
3.計算存款10000元,活期1年、活期2年,定期1年,定期2年後的本息合計。
public class TestDeposit {
public static void main(String[] args) {
//給出本金並輸出
int money = 10000;
System.out.println("本金:"+money);
//計算活期1年本金並輸出
double result1 = money*(1+0.35/100);
System.out.println("活期1年本金總計:"+Math.round(result1));
//計算定期1年本金並輸出
double result2 = money*(1+1.50/100);
System.out.println("定期1年本金總計:"+Math.round(result2));
//計算活期2年本金並輸出
double result3 = money*(1+0.35/100*2);
System.out.println("活期2年本金總計:"+Math.round(result3));
//計算定期2年本金並輸出
double result4 = money*(1+2.10/100*2);
System.out.println("定期2年本金總計:"+Math.round(result4));
}
}
4.某個公司採用公用電話傳遞資料,資料是四位的整數,在傳遞過程中是加密的,加密規則如下:每位數字都加上5,然後用和除以10的餘數代替該數字,再將第一位和第四位交換,第二位和第三位交換。
public class TestEncryption {
public static void main(String[] args) {
//輸入一個4位整數
Scanner s = new Scanner(System.in);
System.out.print("請輸入一個4位正整數:");
int num = s.nextInt();
//獲取各個位上的數
int bit4 = (num / 1000); // 取千位的數字
int bit3 = (num / 100) % 10; // 取百位的數字
int bit2 = (num / 10) % 10; // 取十位的數字
int bit1 = num % 10; // 取個位的數字
//每位數字加5
bit4 = (bit4+5)%10;
bit3 = (bit3+5)%10;
bit2 = (bit2+5)%10;
bit1 = (bit1+5)%10;
//交換第一位和第四位
int temp;
temp = bit4;
bit4 = bit1;
bit1 = temp;
//交換第二位和第三位
temp = bit2;
bit2 = bit3;
bit3 = temp;
// 輸出加密後數字
//System.out.println("加密後的數字為:"+bit4+bit3+bit2+bit1);
int ennum = bit4*1000+bit3*100+bit2*10+bit1;
System.out.println("加密後的數字為:"+ennum);
}
}
六、可選題
- 利用”異或”運算的性質,對幾個字元進行加密並輸出密文,然後再解密。
public class TestEncryption2 {
public static void main(String args[]) {
//原文
char a1 = '十', a2 = '點', a3 = '進', a4 = '攻';
System.out.println("加密前原文:" + a1 + a2 + a3 + a4);
//加密
char secret = '8';
a1 = (char) (a1 ^ secret);
a2 = (char) (a2 ^ secret);
a3 = (char) (a3 ^ secret);
a4 = (char) (a4 ^ secret);
System.out.println("密文:" + a1 + a2 + a3 + a4);
//解密
a1 = (char) (a1 ^ secret);
a2 = (char) (a2 ^ secret);
a3 = (char) (a3 ^ secret);
a4 = (char) (a4 ^ secret);
System.out.println("解密後原文:" + a1 + a2 + a3 + a4);
}
}