版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二章習題答案實訓代碼完整程序如下:文件studentinfo.txt的內容如圖1所示,注意在Windows平臺下將studentinfo.txt保存為UTF-8的格式。圖1學生信息在Linux的/usr/local/project目錄下創(chuàng)建文件studentinfo.txt,使用命令“touchstudentinfo.txt”。執(zhí)行命令“vimstudentinfo.txt”對文件進行編輯,按“i”進入編輯模式,輸入圖2-40所示內容,按“Esc”退出編輯狀態(tài),再執(zhí)行命令“:wq”進行保存并退出。在/usr/local/project目錄下創(chuàng)建文件StudentInfo.scala,輸入內容如下:importscala.io._importutil.control.Breaks._objectStudentInfo{vararrInfo:Array[String]=nulldefmain(args:Array[String]){//將/usr/local/project/studentinfo.txt的文件內容讀入到數(shù)組中//一行為一個元素vallines=for(line<-Source.fromFile("/usr/local/project/studentinfo.txt").getLines)yieldlinearrInfo=lines.toArrayvarflag=trueshow()while(flag){print("請輸入選擇序號:")valchoice=StdIn.readLine()breakable{if(!isIntByRegex(choice)){//如果輸入不是數(shù)字,則跳出本次循環(huán)println("請輸入正確的序號")break}choice.toIntmatch{case1=>{varmaleCnt=count("男")println("三個班級共有男生"+maleCnt+"人")}case2=>{varfemalCnt=count("女")println("三個班級共有女生"+femalCnt+"人")}case3=>{print("輸入學號:")valstudentId=StdIn.readLine()varmark=falsebreakable{for(i<-0untilarrInfo.length){varinfo=arrInfo(i)valarr:Array[String]=info.split("\t")if(arr(1)==studentId){mark=trueprintln("班級\t學號\t姓名\t性別\t年齡\t籍貫\t電話")println(info)break//找到了學號,就跳出breakable,終止循環(huán)}}}if(!mark){println("查無此人")}}case4=>{//按班級進行分組print("輸入班級序號:")valclassId=StdIn.readLine()println("班級\t學號\t姓名\t性別\t年齡\t籍貫\t電話")/***將arrInfo數(shù)組使用groupBy函數(shù)按照班級序號進行分組*先將數(shù)組中的每個元素按照"\t"進行分割*提取出分割后的第一個元素(即班級序號)*按照班級序號進行分組,返回一個Map[String,Array[String]]類型*將返回值賦值給mapArr*/valmapArr=arrInfo.groupBy(x=>x.split("\t")(0))for(maparr<-mapArr(classId))println(maparr)}case5=>{flag=falseprintln("再見!")}case_=>println("輸入錯誤,請重新輸入")}}}}//使用正則表達式判斷字符串s是否為數(shù)字defisIntByRegex(s:String)={valpattern="""^(\d+)$""".rsmatch{casepattern(_*)=>truecase_=>false}}//展示功能頁面defshow()={println("**************************************")println("1.統(tǒng)計男生人數(shù)")println("2.統(tǒng)計女生人數(shù)")println("3.輸入學號,打印出學生信息")println("4.輸入班級序號,打印出班級學生信息列表")println("5.退出")println("**************************************")}//根據(jù)指定的信息統(tǒng)計人數(shù)defcount(param:String):Int={varsum=0for(info<-arrInfo;ifinfo.contains(param)){sum+=1}sum}}運行結果如圖2-50所示。圖2-50學生信息查詢程序運行結果課后習題答案填空題(1)Scala運行在__Java虛擬機(JVM)之上,源代碼通過scalac編譯器編譯成Java字節(jié)碼,Scala兼容現(xiàn)有的Java程序。(2)Scala是__純面向對象的__,每個值都是一個對象,包括基本數(shù)據(jù)類型和函數(shù),每個操作都是方法的調用。Scala是一門__函數(shù)式編程__語言,每個函數(shù)都是一個值。(3)REPL是一個交互式解釋器,是Scala提供的一個重要的交互模式的工具,可以即時編譯、運行代碼并返回結果。安裝好Scala后,在命令行下運行__“scala”__就可以啟動它。(4)Scala中沒有基本類型的概念,Scala中沒有原生的數(shù)據(jù)類型,所有的數(shù)據(jù)類型都是____對象_____。(5)Scala使用兩個關鍵字來聲明變量:__val__和__var__2.選擇題(1)下列(C)不屬于Scala數(shù)據(jù)類型。A.IntB.DoubleC.intD.Unit(2)下面的Scala語句能正確執(zhí)行的是(B)。A.vala=2;a=3B.vara=2;a=3C.vara=2;a=“3”D.vala=2;a=“3”(3)以下說法正確的是(A)A.數(shù)組中的元素都屬于同一個數(shù)據(jù)類型B.默認情況下,Scala使用的是可變映射C.List中不可以存放重復對象D.Set中可以有重復對象且Set中元素是有序的(4)關于函數(shù):得到的結果不一致的是(D)。A.sum(1,2,3)B.sum(6)C.sum(2,4)D.sum(1,1,1,2)(5)下列關于元組Tuple的說法錯誤的是(D)。A.元組可以包含不同類型的元素B.元組是不可變的C.訪問元組pair的第一個元素的方式為pair._1D.元組最多只有兩個元素(6)下列List的定義中不正確的是(C)。A.valnumber:List[Int]=1::2::3::NilB.valname:List[String]="Tom"::("Jack"::("Lucy"::Nil))C.vallist:String=List(“a”,“b”,“c”)D.valnumber:List[Int]=List(1,2,3,4,5)(7)下列函數(shù)的定義中不正確的是(B)A.defadd(x:Int,y:Int):Int={x+y}B.defminus(x:Int,y:Int)=>{returnx–y}C.defaddFun(x:Int)(y:Int)=x*yD.valadd=(a:Double,b:Double)=>a+b(8)表達式“for(i<-1to3;j<-1to3;ifi!=j)print((i+j)+"")的”輸出結果是(A)。A.343545B.123456C.246D.1246(9)有如下函數(shù)定義。則fac(5)的輸出結果是(B)。A.14B.15C.0D.5(10)類和單例對象間的差別是(B)。A.單例對象不可以定義方法,而類可以B.單例對象不可以帶參數(shù),而類可以C.單例對象不可以定義私有屬性,而類可以D.單例對象不可以繼承,而類可以3.編程題(1)編寫函數(shù)來測試單詞是否是回文,若是,則打印出該單詞?;匚氖侵?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年縣鄉(xiāng)教師選調進城考試《教育學》題庫300道含答案(綜合題)
- 2026年中級銀行從業(yè)資格之中級銀行業(yè)法律法規(guī)與綜合能力考試題庫500道【綜合卷】
- 2026年土地登記代理人之土地登記相關法律知識考試題庫500道含答案(完整版)
- 2026年初級銀行從業(yè)資格之初級公司信貸考試題庫300道附答案(典型題)
- 2026年土地登記代理人之土地登記相關法律知識考試題庫500道附完整答案(網(wǎng)校專用)
- 2026年教師招聘之中學教師招聘考試題庫及完整答案(有一套)
- 2026年國家電網(wǎng)招聘之金融類考試題庫300道(名師系列)
- 2026年一級建造師之一建礦業(yè)工程實務考試題庫300道及完整答案【有一套】
- 2026年一級注冊建筑師之建筑設計考試題庫500道附參考答案【培優(yōu)a卷】
- 2026年教師招聘之中學教師招聘考試題庫含完整答案【典優(yōu)】
- 美容皮膚科臨床診療指南診療規(guī)范2023版
- 2023中華護理學會團體標準-老年人誤吸的預防
- GB/T 29349-2023法庭科學現(xiàn)場照相、錄像要求
- 人工濕地施工方案【整編】
- 蓋板涵蓋板計算
- 斜拉索無應力索長的計算
- 智慧機場綜合安防系統(tǒng)解決方案
- 2024年高中英語學業(yè)水平測試及答案
- 天塔之光模擬控制PLC課程設計
- 初中日語人教版七年級第一冊單詞表講義
- GB/T 5847-2004尺寸鏈計算方法
評論
0/150
提交評論