版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、浙江大學(xué)城市學(xué)院實驗報告課程名稱 面向?qū)ο蟪绦蛟O(shè)計實驗項目名稱 Java語言基礎(chǔ)實驗學(xué)生姓名 專業(yè)班級 學(xué)號 .實驗?zāi)康暮鸵?. 掌握J(rèn)ava語言的基本數(shù)據(jù)類型、字符串、數(shù)組2. 掌握J(rèn)ava語言的運(yùn)算符、表達(dá)式、語句3. 能夠編寫Java應(yīng)用程序.實驗內(nèi)容1. 局部變量與final變量實驗2. 基本數(shù)據(jù)類型與轉(zhuǎn)換實驗3. 算術(shù)運(yùn)算的精度問題實驗4. 移位運(yùn)算實驗5. 運(yùn)算賦值實驗6. 短路邏輯運(yùn)算實驗7. 編程實驗:輸出 Unicode特定區(qū)間的字符。8.編程實驗:分析輸入的數(shù)字三.實驗結(jié)果與分析(可將程序運(yùn)行結(jié)果截屏,也可分析運(yùn)行結(jié)果)1. 局部變量與final變量實驗。編寫以下程序,并
2、回答問題。public class Localvariable In itExample public static void main( Stri ng args) int a ;System.out.pri nt(a);final int b = 100;b+;System.out.pri nt(b);(1) 程序的錯誤1、System.out.print(a);出錯,局部變量 a沒有進(jìn)行過初始化或賦值2、 b+;出錯,不能對終態(tài)局部變量b賦值。它必須為空白,并且不使用復(fù)合賦值(2) 改正方式public class LocalVariable In itExample public st
3、atic void main(String args) int a=10 ;System.out.pri nt(a);final int b = 100;System.out.pri nt(b);2.基本數(shù)據(jù)類型與轉(zhuǎn)換實驗。編寫以下程序,分析代碼的輸出結(jié)果,并回答問題。class Test2public static void main(String args)System.out.println(”第1段測試代碼輸出”);System.out.pri ntln (byte)255);System.out.pri ntln (short)65535);System.out.pri ntln (
4、byte)-129);System.out.pri ntl n( (byte)129);System.out.pri ntl n( (byte)128);System.out.println(”第2段測試代碼輸出”);int i = 123456789;float f = i;System.out.pri ntl n(f);longj = 123456789123456789L;double d = j;System.out.pri ntl n( d);System.out.println(”第3段測試代碼輸出”);System.out.pri ntln(077);System.out.pri
5、 ntln( 0x77);System.out.pri ntl n( 77);請分析并回答以下問題:(1)分析第1段代碼,說明在什么情況下,int類型的數(shù)字轉(zhuǎn)換為 byte或者short類型, 會出現(xiàn)符號變化,即正數(shù)變負(fù)數(shù),負(fù)數(shù)變正數(shù)?為何輸出會不同?答:在強(qiáng)制類型轉(zhuǎn)換時,如果數(shù)值超過目標(biāo)類型的取值范圍,那么某些數(shù)據(jù)位會被強(qiáng)行截斷(即數(shù)據(jù)截斷),從而導(dǎo)致數(shù)據(jù)丟失,甚至符號丟失。例如:byte的取值范圍是-2727-1, int類型的255不在這個范圍內(nèi),強(qiáng)制轉(zhuǎn)換的結(jié)果是-1。(2) 分析第2段代碼,說明整數(shù)類型向浮點(diǎn)型轉(zhuǎn)型是否可能出現(xiàn)精度損失,是否需要強(qiáng) 制轉(zhuǎn)換。答:整數(shù)類型向浮點(diǎn)型轉(zhuǎn)型可能會
6、出現(xiàn)精度損失,不需要強(qiáng)制轉(zhuǎn)換,可以自動類型轉(zhuǎn)換。 分析第3段代碼,說明整數(shù)的八進(jìn)制、十六機(jī)制、十進(jìn)制的書寫格式(即字面值格 式)都是什么?答:八進(jìn)制:首字母為 0,包括0到7之間的字符所組成的字符序列;十六進(jìn)制:以0x (或者0X)開始,包括0到9、以及A到F十六個符號組成的字 符序列;十進(jìn)制:由0到9十個字符組成的字符序列,一般首字符不可為0。3. 算術(shù)運(yùn)算的精度問題實驗。編寫以下程序,并回答問題。class Test3public static void main( Stri ng args)short a = 10;a = a + 2;byte b = 1; b = b + 1;shor
7、t a = 10; byte b = 5;a = a + b;char c = 'a'c = c+1;(1)程序的錯誤1、 類型不匹配:不能從 int轉(zhuǎn)換為short,不能從int轉(zhuǎn)換為byte,不能從int轉(zhuǎn)換為char2、局部變量 a、b重復(fù)(2) 改正方式class Test3 public static void main(String args) short a = 10;a = (short)(a + 2);byte b = 1; b = (byte)(b + 1);short d = 10;byte e = 5;d = (short)(d + e);char c
8、= 'a' c = (char)(c+1);4. 移位運(yùn)算實驗。編寫以下程序,分析代碼的輸出結(jié)果,并回答問題。class Test4public static void main(String args)System.out.println(”第1段測試代碼輸出”);System.out.pri ntln (1>>32);System.out.pri ntln (1L>>32);System.out.println(”第2段測試代碼輸出”);System.out.pri ntln( 10>>5);System.out.pri ntln (-1
9、0>>5);System.out.println(”第3段測試代碼輸出”);System.out.pri ntln (1<<31);System.out.pri ntln (1L<<31);System.out.pri ntln (1L<<63);System.out.println(”第4段測試代碼輸出”);System.out.pri ntln (1<<100);System.out.pri ntln (1L<<100);System.out.println(”第5段測試代碼輸出”);System.out.pri nt
10、l n(7<<2);System.out.pri ntln (7<<1<<1);System.out.println(”第6段測試代碼輸出”);intn = 34; int q=7;System.out.pri ntln(q<<n);q= 7;for(i nt i = 0;i< n; i+)q = q<<1;System.out.pri ntl n(q);System.out.println(”第7段測試代碼輸出”);int m = 2000000000;System.out.pri ntln(m <<1);Syst
11、em.out.pri ntln( m*2);System.out.println(”第8段測試代碼輸出”);System.out.pri ntln (-2>>1);System.out.pri ntln (-2>>>1);請分析并回答以下問題:(1)分析第1段代碼,為何輸出會不同?答:int類型為32為,所以右移32位還是其本身,long類型為64為,所以右移32位, 低位被舍棄,高位補(bǔ) 0,最終結(jié)果為0。(1)分析第2段代碼,正整數(shù)右移的最小值是什么?負(fù)整數(shù)右移的最大值是什么? 答:正整數(shù)右移的最小值是0,負(fù)整數(shù)右移的最大值是 -1。(2) 分析第3段代碼,三個
12、語句輸出為何不同?答:int類型右移31位,符號位就是1。符號位1代表為負(fù)數(shù),long類型右移31位, 只能說明擴(kuò)大了 2的31次方,long類型右移63位,符號位就是1,符號位1代表為負(fù)數(shù)(3) 分析第4段代碼,兩個語句輸出為何不同?答:int類型左移100位,和右移4位一樣,100除以32的余數(shù)。long類型左移100位,和 右移36位一樣,100除以64的余數(shù)。(4) 分析第5段代碼,兩個移位運(yùn)算是否等價?答:等價。(5) 分析第6段代碼,q<<n與將q不斷左移1位(共移動n位)是否相同?什么條件 下相同?答:不相同,在n=2的情況下相同。(6) 分析第7段代碼,左移1位與乘
13、2是否等價?左移1位是否一定值翻倍?答:等價。如果不是移到最高位,符號位上,則不一定翻倍。 分析第8段代碼,“-1>>1 ”和“ -1>>>1 ”有何差別? 答:“ -1>>1 ” 結(jié)果是-1,“ -1>>>1 ” 結(jié)果是 2147483647。5. 運(yùn)算賦值實驗。編寫以下程序,并回答問題。class Test5public static void main(String args) byte a = 10;a = a >> 1; /是否出錯?a >>= 1; /是否出錯?char c = 'a'
14、;c = c + 1;/是否出錯?c += 1; /是否出錯?(1)程序的錯誤類型不匹配:不能從 int轉(zhuǎn)換為byte ,不能從int轉(zhuǎn)換為char。(2)改正方式public class Test5 public static voidmain( Stri ng args) byte a = 10;a =( byte )( a >> 1);/ 是否岀錯?a >>= 1;/是否出錯?char c ='a'c =( char )( c + 1);/ 是否岀錯?c += 1;/ 是否出錯?(3) 運(yùn)算賦值的特點(diǎn)。運(yùn)算賦值時無需強(qiáng)制轉(zhuǎn)換。6. 短路邏輯運(yùn)算實驗
15、。編寫以下程序,并回答問題。class test6public static void main(String args) int x = 1, z = 2;System.out.println("第1段測試代碼輸出"); if(false&&(x = (z = 1)System.out.pri ntl n( x);elseSystem.out.pri ntl n( z);z = 2; x =1;System.out.println("第2段測試代碼輸出");if(true&&(x = (z = 1)&&f
16、alse)System.out.pri ntl n( x);elseSystem.out.pri ntl n( z);x=0; z = 2;System.out.println("第3段測試代碼輸出");if(true|(x = (z = 1)System.out.pri ntl n( z);x=0; z = 2;System.out.println("第4段測試代碼輸出");if(false|(x = (z =1)|true)System.out.pri ntl n( z);請分析并回答以下問題:(1)第1段代碼的輸出結(jié)果是什么,為何?答:結(jié)果是2。沒
17、有計算(x = (z = 1),z仍等于2,輸出z的值,即輸出2。(2) 第2段代碼的輸出結(jié)果是什么,為何?答:結(jié)果是1。計算了(x = (z = 1) , z被賦值為1,輸出z的值,即輸出1。(3) 第3段代碼的輸出結(jié)果是什么,為何?答:結(jié)果是2。沒有計算(x = (z = 1),z仍等于2,輸出z的值,即輸出2。(4) 第4段代碼的輸出結(jié)果是什么,為何?答:結(jié)果是1。計算了 (x = (z = 1),z被賦值為1,輸出z的值,即輸出2。7. 編程實驗:輸出Unicode特定區(qū)間的字符。功能要求:屏幕輸出所有大寫英文字母、 小寫字母)、某兩個漢字字符之間的所有Uni code字符。程序:pu
18、blic class test7 public static void main( Stri ng args) char i;for (i= 'a'i<= 'z'i+)System.out.pri ntl n(i);for (i= 'A'i<='Z'i+)System.out.pri ntl n(i);for (i='啊'i<='阿'i+)System.out.pri ntl n(i);程序運(yùn)行截圖是:8. 編程實驗:分析輸入的數(shù)字。功能要求:輸入若干個數(shù)字,依次判斷這些數(shù)字是否是
19、奇數(shù)、平方數(shù)、素數(shù),并輸出判斷信息。設(shè)計要求:需要設(shè)計靜態(tài)方法isOdd(int n)來判斷參數(shù)n是否是奇數(shù);相似地,還需要設(shè)計靜態(tài)方法isSquareNumber(int n)和isPrime(int n),來分別用于判斷參數(shù) n是否是平方數(shù)、素數(shù)。程序:import java.util.*;public class test8 public static void main( Stri ng args) Scanner sca nner=new Scann er(System."請輸入若干數(shù)字System. out .println(in );(以英文字符結(jié)束);10 / 9while (sca nn er.hasNextI nt() intn=sca nn er .n ext In t();if (isOdd (n)staticboolea nisOdd( int n)if(n %2=0)returnfalse ;elsereturntrue ;staticboolea nisSquareNumber(intj;for(j=1;j< n/2;j+)if (j*j
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年國家電投資產(chǎn)管理公司招聘筆試參考題庫含答案解析
- 2025年中國融通集團(tuán)融通文教招聘筆試參考題庫含答案解析
- 2025年貴州宇科能源有限公司招聘筆試參考題庫含答案解析
- 2025年駐省國信集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年聯(lián)通數(shù)字科技有限公司招聘筆試參考題庫含答案解析
- 小企業(yè)稅務(wù)管理實踐
- 獎學(xué)金 通知函
- 《關(guān)于中國漁業(yè)船舶》課件
- 二零二五年度智能化辦公空間改造合同9篇
- 二零二五年度物業(yè)管理公司門禁系統(tǒng)采購及安裝合同2篇
- 2023迎春幫困活動總結(jié)
- 工程全過程造價咨詢服務(wù)方案(技術(shù)方案)
- 慶鈴國五新車型概況課件
- 缺血性腦卒中靜脈溶栓護(hù)理
- GB/T 7025.1-2023電梯主參數(shù)及轎廂、井道、機(jī)房的型式與尺寸第1部分:Ⅰ、Ⅱ、Ⅲ、Ⅵ類電梯
- 建設(shè)工程總承包計價規(guī)范
- 設(shè)計開發(fā)(更改)評審記錄
- 2023年消費(fèi)者咨詢業(yè)務(wù)試題及答案
- 常用樂高零件清單36364
- 新譽(yù)杯(行車調(diào)度員)理論考試復(fù)習(xí)題庫(含答案)
- 恩華藥業(yè)管理診斷報告書
評論
0/150
提交評論