鴻蒙應(yīng)用開(kāi)發(fā)案例實(shí)戰(zhàn)(ArkTS版)試卷及答案 共4套_第1頁(yè)
鴻蒙應(yīng)用開(kāi)發(fā)案例實(shí)戰(zhàn)(ArkTS版)試卷及答案 共4套_第2頁(yè)
鴻蒙應(yīng)用開(kāi)發(fā)案例實(shí)戰(zhàn)(ArkTS版)試卷及答案 共4套_第3頁(yè)
鴻蒙應(yīng)用開(kāi)發(fā)案例實(shí)戰(zhàn)(ArkTS版)試卷及答案 共4套_第4頁(yè)
鴻蒙應(yīng)用開(kāi)發(fā)案例實(shí)戰(zhàn)(ArkTS版)試卷及答案 共4套_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

裝訂線內(nèi)不準(zhǔn)作答│裝訂線內(nèi)不準(zhǔn)作答│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │HarmonyOS鴻蒙應(yīng)用開(kāi)發(fā)期末測(cè)試卷(一)裝訂線內(nèi)不準(zhǔn)作答│裝訂線內(nèi)不準(zhǔn)作答│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │期末測(cè)試卷(一)共15頁(yè),第1頁(yè)期末測(cè)試卷(一)共15頁(yè),第1頁(yè)HarmonyOS鴻蒙應(yīng)用開(kāi)發(fā)期末測(cè)試卷(一)裝訂線內(nèi)不準(zhǔn)作答│裝訂線內(nèi)不準(zhǔn)作答│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │期末測(cè)試卷(一)共15頁(yè),第1頁(yè)HarmonyOS鴻蒙應(yīng)用開(kāi)發(fā)期末測(cè)試卷(一)考試時(shí)間:120分鐘共計(jì)43道題,40小題,3大題(主觀題),滿分100分題號(hào)一二三四總分核分人復(fù)查人滿分40201030100得分評(píng)閱人考生姓名:_______________學(xué)號(hào):_______________專業(yè)班名:_______________一、單選題(本題共20小題,滿分40分)1.下列屬于DevEcoStudio中平板電腦智能設(shè)備代稱的是()A.2in1 B.PhoneC.Tablet D.PC2.下列不屬于ArkTS支持的數(shù)據(jù)類型是()A.boolean B.ESObjectC.any D.string3.ArkTS中用于聲明變量的關(guān)鍵字是A.const B.varC.let D.以上都是4.在ArkTS類型系統(tǒng)中,以下哪項(xiàng)描述完全正確()A.聯(lián)合類型允許多種類型中的一種賦值給變量,運(yùn)行時(shí)可使用typeof或instanceof進(jìn)行類型保護(hù)。B.記錄類型主要用于為二維數(shù)組創(chuàng)建可復(fù)用的類型別名,提升代碼可讀性C.別名類型在運(yùn)行時(shí)引入新類型,直接影響字節(jié)碼優(yōu)化性能。D.元組類型專用于定義枚舉值的固定集合,支持狀態(tài)機(jī)表示5.下列關(guān)于函數(shù)的說(shuō)法錯(cuò)誤的是()A.函數(shù)名不能以數(shù)字開(kāi)頭 B.函數(shù)至少需要一個(gè)參數(shù)C.函數(shù)可以沒(méi)有返回值 D.函數(shù)的返回值使用return語(yǔ)句6.下列代碼執(zhí)行后,最終在控制臺(tái)打印的結(jié)果為

functiontest():string{

try{

console.log("A");

thrownewError("Intentionalerror");

return"Tryreturn";

}catch(e){

console.log("B");

return"Catchreturn";

}finally{

console.log("C");

return"Finallyreturn";

}

}

console.log(test());A.A

B

C

FinallyreturnB.A

B

C

CatchreturnC.A

C

FinallyreturnD.A

B

C

Tryreturn7.在面向?qū)ο缶幊讨校韵履捻?xiàng)說(shuō)法?不正確??()A.接口定義了一組方法簽名作為行為契約,但本身不能被直接實(shí)例化為對(duì)象B.對(duì)象是類的具體實(shí)例,包含實(shí)際的狀態(tài)(屬性)和行為實(shí)現(xiàn)(方法),可直接用于業(yè)務(wù)邏輯執(zhí)行?C.一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,但該類的對(duì)象必須同時(shí)滿足所有接口的規(guī)范要求?D.接口可以通過(guò)繼承機(jī)制擴(kuò)展其他接口,形成新的行為契約,且子接口可被直接實(shí)例化?8.下面代碼執(zhí)行后,可能正確的順序是()

console.log('1');

asyncfunctionmain(){

console.log('2');

awaittask();

console.log('4');

}

asyncfunctiontask(){

console.log('3');

}

main();

newPromise<void>((resolve:Function)=>{

console.log('5');

resolve();

}).then(()=>console.log('6'));

console.log('7');A.1235746B.1235467C.1523764D.12345679.關(guān)于Flex組件屬性配置說(shuō)法錯(cuò)誤的是()A.alignItems屬性用于設(shè)置Flex容器中子組件在交叉軸方向上的對(duì)齊方式B.justifyContent屬性用于設(shè)置Flex容器中子組件在主軸方向上的對(duì)齊方式C.wrap屬性用于設(shè)置Flex容器中子組件的換行方式D.direction屬性用于設(shè)置Flex容器中子組件的排列方式,即交叉軸的方向10.加載1000條數(shù)據(jù)時(shí),下列哪種做法可能引發(fā)性能問(wèn)題?()A.使用ForEach綁定數(shù)據(jù)源 B.設(shè)置cachedCount=5C.在ListItem內(nèi)部嵌套3層Column/Row D.啟用懶加載(lazyForEach)11.下列選項(xiàng)中,用于調(diào)用在struct內(nèi)定義的自定義構(gòu)建方法的是()A.@BuilderfunctioncustomBuilder(){}B.@BuildercustomBuilder(){}C.customerBuilder()D.this.customBuilder()12.關(guān)于RelativeContainer相對(duì)布局容器的描述,以下哪項(xiàng)說(shuō)法?不正確??()A.子組件必須設(shè)置唯一ID屬性,否則無(wú)法在布局中正常顯示或被其他組件引用為錨點(diǎn)B.子組件可基于父容器(固定ID為"__container__")或兄弟組件設(shè)置錨點(diǎn),實(shí)現(xiàn)相對(duì)位置布局?C.未設(shè)置ID的子組件仍能在布局中顯示,且可被其他組件作為錨點(diǎn)使用,不影響布局規(guī)則D.出現(xiàn)環(huán)形依賴(如組件A依賴B,B依賴A)時(shí),容器內(nèi)所有子組件均不繪制?13.以下哪種組件嵌套關(guān)系是正確的?()A.Text>Span>ImageSpan B.Span>Text>ContainerSpanC.ImageSpan>Text>Span D.ContainerSpan>Span>Text14.以下哪個(gè)屬性用于設(shè)置組件的絕對(duì)定位?A.position B.alignC.offset D.layout15.對(duì)于需要頻繁變化的漸變色,最佳實(shí)踐是()A.每次重新創(chuàng)建漸變對(duì)象 B.使用狀態(tài)變量管理漸變參數(shù)C.避免使用漸變色 D.使用圖片代替16.Image支持漸進(jìn)式圖片加載的屬性是()A.progressive B.gradualC.interlaced D.ArkUI5.0不支持17.一個(gè)HAP可以()A.只能依賴一個(gè)HAR或HSP B.可以同時(shí)依賴多個(gè)HAR和HSPC.只能依賴HAR D.可以同時(shí)依賴多個(gè)HAR或HSP18.應(yīng)該在哪個(gè)生命周期函數(shù)中釋放組件占用的資源?()A.aboutToDisappear B.onDestroyC.onPageHide D.aboutToRecycle19.自定義組件暴露給父組件的接口應(yīng)該使用()A.@State B.@Prop或@LinkC.@Watch D.@Internal20.執(zhí)行單次定位的方法是()A.fetchLocation B.getLastKnownLocationC.requestSingleUpdate D.getCurrentLocation二、填空題(本題共10小題,滿分20分)1.初始化TTS引擎時(shí),CreateEngineParams對(duì)象的language參數(shù)通常設(shè)置為_(kāi)__________,以指定中文語(yǔ)音合成?。2._____________修飾的變量遵循單向數(shù)據(jù)流?原則,僅允許父組件?向子組件傳遞數(shù)據(jù)。3.通過(guò)__________()方法可獲取棧中指定頁(yè)面的參數(shù)。4.設(shè)置參數(shù)的值為_(kāi)____________可阻斷手勢(shì)事件向子組件冒泡。5.綁定自定義鍵盤(pán)組件需使用_____________屬性,并在Builder函數(shù)中實(shí)現(xiàn)鍵盤(pán)邏輯。6.組件通過(guò)width屬性設(shè)置95,通過(guò)constraintSize設(shè)置最小寬度為60,最大寬度為100,則組件的實(shí)際寬度為_(kāi)____________。7.加載網(wǎng)絡(luò)圖片,URL包含中文,則需要使用_______________()方法將其進(jìn)行轉(zhuǎn)碼。8.完全自定義彈窗內(nèi)容時(shí),應(yīng)通過(guò)_______________裝飾器定義彈窗結(jié)構(gòu)。9.根據(jù)授權(quán)方式的不同,權(quán)限類型可以被分為system_grant和_____________。10.ohpm通過(guò)_______________命令可卸載三方庫(kù)。三、判斷題(本題共10小題,滿分10分)1.ImageAnimator組件將iterations屬性設(shè)置為0表示無(wú)限循環(huán)播放。2.ArkTS中可以使用any類型來(lái)表示任意類型。3.異步錯(cuò)誤需在Promise.catch或async函數(shù)中捕獲4.if/else條件渲染比顯示/隱藏更適合性能優(yōu)化。5.Button組件只能顯示文字不能顯示圖標(biāo)。6.箭頭函數(shù)沒(méi)有自己的this綁定7.類的字段不必須顯式聲明類8.語(yǔ)音播報(bào)功能需要申請(qǐng)ohos.permission.MICROPHONE權(quán)限。9.新創(chuàng)建的Promise對(duì)象默認(rèn)出于fulfilled狀態(tài)。10.在列表項(xiàng)(List)內(nèi)部實(shí)現(xiàn)圖文左右對(duì)齊布局時(shí),推薦使用Stack。四、編程題(本題共3小題,滿分30分)1.利用循環(huán)渲染,將組件放入List容器中。效果如圖所示:(10分)

2.完成圖片縮放功能,要求單指雙擊完成圖片的縮放功能。按手指點(diǎn)擊的位置為中心進(jìn)行放大??s小則只需要在圖片任意位置雙擊即可。效果如視頻和圖片所示。(10分)

下面是圖片資源:scene.jpg

3.利用Navigation組件完成主頁(yè)搭建,效果如圖所示:(10分)

期末測(cè)試卷(一)參考答案一、單選題(本題共20小題,滿分40分)1.C2.C3.C4.A5.B6.A7.D8.A9.D10.C11.D12.C13.A14.A15.B16.D17.B18.A19.B20.D二、填空題(本題共10小題,滿分20分)1.zh-CN2.@Prop3.getParamByIndex;getParamByName4.GestureMask.IgnoreInternal5.customKeyboard6.957.encodeURI8.@CustomDialog9.user_grant10.uninstall三、判斷題(本題共10小題,滿分10分)1.×2.×3.√4.√5.×6.√7.√8.×9.√10.×四、編程題(本題共3小題,滿分30分)1.//JobCareerList.ets

@Entry

@Component

structJobCareerList{

data:Array<CareerData>=[]

aboutToAppear():void{

this.data.push(

{position:'Java開(kāi)發(fā)工程師',duration:'2012-06——2014-02',companyName:'阿里巴巴',salary:8000},

{position:'Android開(kāi)發(fā)工程師',duration:'2014-03——2018-02',companyName:'蘑菇街',salary:13000},

{position:'前端開(kāi)發(fā)工程師',duration:'2018-03——2020-06',companyName:'恒生電子',salary:18000},

{position:'后端架構(gòu)師',duration:'2020-07——2022-10',companyName:'支付寶',salary:23000},

{position:'首席技術(shù)官',duration:'2022-11——至今',companyName:'字節(jié)跳動(dòng)',salary:30000},

)

}

@BuilderbuildTitleInfo(title:string,info:string){

Row(){

Text(title).fontWeight(800)

Text(info).fontColor(Color.Blue)

}.justifyContent(FlexAlign.SpaceBetween)

.width('100%')

}

build(){

List(){

ForEach(this.data,(vo:CareerData,i)=>{

ListItem(){

Column({space:10}){

this.buildTitleInfo('職位',vo.position)

this.buildTitleInfo('工作時(shí)間',vo.duration)

this.buildTitleInfo('公司',panyName)

this.buildTitleInfo('薪資','¥'+vo.salary)

}

}

.padding(10)

})

}.divider({

strokeWidth:1,

color:Color.Gray

})

}

}

interfaceCareerData{

position:string

duration:string

companyName:string

salary:number

}

2.//ScaleImage.ets

@Entry

@Component

structScaleImage{

@Statex:number=1

@Statey:number=1

@StatecenterX:number=0

@StatecenterY:number=0

build(){

Column(){

Image($r('app.media.scene'))

.scale({

x:this.x,

y:this.y,

centerX:this.centerX,

centerY:this.centerY

})

.gesture(TapGesture({count:2}).onAction((event)=>{

this.centerX=event.fingerList[0].localX

this.centerY=event.fingerList[0].localY

if(this.x==1){

this.x=2

this.y=2

}else{

this.x=1

this.y=1

}

}))

}.width('100%').height('100%')

}

}

3.//Main.ets

@Entry

@Component

structMain{

@Provide("pageStack")pageStack:NavPathStack=newNavPathStack()

@StatecurrentIndex:number=0

@BuilderPageMap(){

if(this.currentIndex===0){

IndexMainPage()

}elseif(this.currentIndex===1){

IndexSharePage()

}else{

IndexMinePage()

}

}

build(){

Navigation(this.pageStack){

this.PageMap()

}

.mode(NavigationMode.Stack)//顯示模式:?jiǎn)螜谀J?/p>

.toolbarConfiguration([

{value:'首頁(yè)',icon:<spanclass=""style="text-wrap-mode:nowrap;"color:#6c71c4;"="">'app.media.msg_type_1'),action:()=>{

this.currentIndex=0

}},

{value:'分享',icon:">r('app.media.msg_type_1'),action:()=>{

this.currentIndex=0

}},

{value:'分享',icon:r('app.media.msg_type_2'),action:()=>{

this.currentIndex=1

}},

{value:'我的',icon:$r('app.media.msg_type_3'),action:()=>{

this.currentIndex=2

}}

])//底部工具欄

}

}

@Preview//為了能在IndexWeatherPage.ets頁(yè)面單獨(dú)查看預(yù)覽效果

@Component

exportstructIndexMainPage{

build(){

Column(){

Text('首頁(yè)').fontSize(30)

}.justifyContent(FlexAlign.Center).height('100%')

}

}

@Preview//為了能在IndexNewsPage.ets頁(yè)面單獨(dú)查看預(yù)覽效果

@Component

exportstructIndexSharePage{

build(){

Column(){

Text('分享').fontSize(30)

}.justifyContent(FlexAlign.Center).height('100%')

}

}

@Preview//為了能在IndexPersonalPage.ets頁(yè)面單獨(dú)查看預(yù)覽效果

@Component

exportstructIndexMinePage{

build(){

Column(){

Text('我的').fontSize(30)

}.justifyContent(FlexAlign.Center).height('100%')

}

}

HarmonyOS鴻蒙應(yīng)用開(kāi)發(fā)期末測(cè)試卷(二)考試時(shí)間:120分鐘共計(jì)43道題,40小題,3大題(主觀題),滿分100分題號(hào)一二三四總分核分人復(fù)查人滿分40201030100得分評(píng)閱人考生姓名:_______________學(xué)號(hào):_______________專業(yè)班名:_______________一、選擇題(20題,共40分)1.ArkTS是什么類型的語(yǔ)言?()A.編譯型語(yǔ)言B.解釋型語(yǔ)言C.腳本語(yǔ)言D.標(biāo)記語(yǔ)言2.ArkUI是鴻蒙應(yīng)用開(kāi)發(fā)中的什么?()A.編程語(yǔ)言B.UI框架C.數(shù)據(jù)庫(kù)D.網(wǎng)絡(luò)庫(kù)3.以下哪個(gè)不是ArkUI的布局方式?()A.ColumnB.RowC.GridD.StackOverflow4.在ArkTS中,用于聲明組件的關(guān)鍵字是?()A.componentB.structC.classD.function5.ArkUI中的@Builder裝飾器用于什么?()A.定義函數(shù)B.定義組件C.定義構(gòu)建函數(shù)D.定義狀態(tài)變量6.以下哪個(gè)是ArkTS中的狀態(tài)管理裝飾器?()A.@StateB.@FunctionC.@ComponentD.@Layout7.在ArkUI中,用于實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的組件是?()A.ButtonB.NavigatorC.LinkD.Router8.ArkTS支持哪種編程范式?()A.面向過(guò)程B.面向?qū)ο驝.函數(shù)式D.以上都是9.以下哪個(gè)不是ArkUI的組件分類?()A.基礎(chǔ)組件B.容器組件C.媒體組件D.網(wǎng)絡(luò)組件10.在ArkTS中,用于導(dǎo)出模塊的關(guān)鍵字是?()A.exportB.importC.moduleD.package11.ArkUI中的@Entry裝飾器表示什么?()A.入口函數(shù)B.入口組件C.導(dǎo)出組件D.導(dǎo)入組件12.以下哪個(gè)方法用于在ArkTS中設(shè)置組件的樣式?()A.setStyle()B.style()C..屬性名D.setAttribute()13.ArkUI中的List組件用于展示什么?()A.單個(gè)數(shù)據(jù)B.列表數(shù)據(jù)C.圖片D.文本14.在ArkTS中,異步操作通常使用什么?()A.回調(diào)函數(shù)B.PromiseC.async/awaitD.以上都是15.以下哪個(gè)不是ArkUI的事件類型?()A.onClickB.onTouchC.onScrollD.onDatabaseChange16.ArkTS中的@Prop裝飾器用于什么?()A.父子組件單向數(shù)據(jù)傳遞B.父子組件雙向數(shù)據(jù)傳遞C.兄弟組件數(shù)據(jù)傳遞D.跨組件數(shù)據(jù)傳遞17.在ArkUI中,用于顯示圖片的組件是?()A.ImageB.PictureC.PhotoD.Img18.ArkTS的類型系統(tǒng)是?()A.動(dòng)態(tài)類型B.靜態(tài)類型C.弱類型D.無(wú)類型19.以下哪個(gè)是ArkUI中的動(dòng)畫(huà)組件?()A.AnimationB.AnimatorC.MotionD.Transition20.在ArkTS中,用于導(dǎo)入模塊的關(guān)鍵字是?()A.exportB.importC.includeD.require二、填空題(10題,共20分)1.ArkTS是基于______語(yǔ)言擴(kuò)展而來(lái)。2.ArkUI采用______的UI開(kāi)發(fā)范式。3.在ArkTS中,使用______關(guān)鍵字定義函數(shù)。4.ArkUI中的______組件用于實(shí)現(xiàn)網(wǎng)格布局。5.@Link裝飾器用于實(shí)現(xiàn)______組件之間的數(shù)據(jù)雙向綁定。6.ArkUI中的______組件用于顯示文本。7.在ArkTS中,使用______關(guān)鍵字創(chuàng)建類的實(shí)例。8.ArkUI的______組件可以包含多個(gè)子組件,并按順序垂直排列。9.@BuilderParam裝飾器用于傳遞______。10.ArkTS中,______用于處理異步操作的結(jié)果。三、判斷題(10題,共10分)1.ArkTS是鴻蒙系統(tǒng)專用的編程語(yǔ)言。2.ArkUI只能用于手機(jī)應(yīng)用開(kāi)發(fā)。3.在ArkTS中,狀態(tài)變量的變化會(huì)自動(dòng)觸發(fā)UI更新。4.ArkUI不支持自定義組件。5.ArkTS是一種動(dòng)態(tài)類型語(yǔ)言。6.@State裝飾的變量只能在當(dāng)前組件內(nèi)部使用。7.ArkUI中的布局可以嵌套使用。8.ArkTS不支持面向?qū)ο缶幊獭?.在ArkUI中,所有組件都有onClick事件。10.ArkTS代碼可以直接運(yùn)行在JavaScript引擎上。四、編程題(3題,共30分)1.編寫(xiě)一個(gè)簡(jiǎn)單的ArkTS組件,實(shí)現(xiàn)一個(gè)顯示"Hello,HarmonyOS!"文本的頁(yè)面。2.編寫(xiě)一個(gè)使用@State裝飾器的ArkTS組件,實(shí)現(xiàn)一個(gè)點(diǎn)擊按鈕切換文本顯示內(nèi)容的功能。3.編寫(xiě)一個(gè)使用Column和Row布局的ArkTS組件,實(shí)現(xiàn)一個(gè)包含用戶名和密碼輸入框以及登錄按鈕的簡(jiǎn)單登錄界面。答案:鴻蒙應(yīng)用開(kāi)發(fā)基礎(chǔ)期末測(cè)試卷(二)答案一、選擇題(20題)1.A2.B3.D4.B5.C6.A7.B8.D9.D10.A11.B12.C13.B14.D15.D16.A17.A18.B19.B20.B二、填空題(10題)1.TypeScript2.聲明式3.function4.Grid5.父子6.Text7.new8.Column9.構(gòu)建函數(shù)10.Promise三、判斷題(10題)1.對(duì)2.錯(cuò)3.對(duì)4.錯(cuò)5.錯(cuò)6.對(duì)7.對(duì)8.錯(cuò)9.錯(cuò)10.錯(cuò)四、編程題(3題)1.@Entry@ComponentstructHelloWorld{build(){Column(){Text('Hello,HarmonyOS!').fontSize(30).fontWeight(FontWeight.Bold)}.width('100%').height('100%').justifyContent(FlexAlign.Center)}}2.@Entry@ComponentstructToggleText{@Statetext:string='初始文本'build(){Column(){Text(this.text).fontSize(20).margin(20)Button('切換文本').onClick(()=>{this.text=this.text==='初始文本'?'切換后的文本':'初始文本'})}.width('100%').height('100%').justifyContent(FlexAlign.Center)}}3.@Entry@ComponentstructLoginPage{@Stateusername:string=''@Statepassword:string=''build(){Column(){Text('登錄').fontSize(30).fontWeight(FontWeight.Bold).margin({bottom:30})Row(){Text('用戶名:').fontSize(16).width(80)TextInput({placeholder:'請(qǐng)輸入用戶名'}).width(200).onChange((value)=>{this.username=value})}.margin({bottom:20})Row(){Text('密碼:').fontSize(16).width(80)TextInput({placeholder:'請(qǐng)輸入密碼'}).width(200).type(InputType.Password).onChange((value)=>{this.password=value})}.margin({bottom:30})Button('登錄').width(280).onClick(()=>{//登錄邏輯console.log(`用戶名:${this.username},密碼:${this.password}`)})}.width('100%').height('100%').padding(20).justifyContent(FlexAlign.Center)}}HarmonyOS鴻蒙應(yīng)用開(kāi)發(fā)期末測(cè)試卷(三)考試時(shí)間:120分鐘共計(jì)43道題,40小題,3大題(主觀題),滿分100分題號(hào)一二三四總分核分人復(fù)查人滿分40201030100得分評(píng)閱人考生姓名:_______________學(xué)號(hào):_______________專業(yè)班名:_______________一、單選題(本題共20小題,滿分40分)1.在鴻蒙項(xiàng)目的目錄結(jié)構(gòu)中,用于存放構(gòu)建配置文件的目錄是()A..idea B.AppScopeC.entry D..hvigor2.下列選項(xiàng)中,用于檢測(cè)數(shù)據(jù)類型的運(yùn)算符是()A.typeof B.instanceofC.== D.===3.使用console.log()輸出信息時(shí),參數(shù)之間使用的分隔符號(hào)是()A.空格 B.逗號(hào)C.分號(hào) D.冒號(hào)4.關(guān)于泛型,下列描述錯(cuò)誤的是()A.泛型允許開(kāi)發(fā)者在定義時(shí)不指定具體類型 B.泛型只能用于函數(shù)C.泛型可以提高代碼的靈活性和可復(fù)用性 D.泛型可以用于接口、類和函數(shù)5.在ArkTS中,可以將變量、函數(shù)、類等導(dǎo)出的關(guān)鍵字是()A.import B.exportC.require D.module6.下列選項(xiàng)中,不屬于Array對(duì)象用于添加或刪除元素的方法的是()A.push() B.pop()C.shift() D.toString()7.如果一個(gè)接口繼承了另一個(gè)接口,那么它會(huì)自動(dòng)包含的有()A.僅屬性 B.僅方法C.屬性和方法 D.不包含任何屬性和方法8.若有數(shù)組arr=[1,2,3],執(zhí)行arr.push(4)后,arr.length的值為()A.3 B.4C.5 D.69.在ArkUI中,用于實(shí)現(xiàn)組件多態(tài)樣式的方法是()A.style() B.css()C.class() D.stateStyles()10.在ArkUI中,循環(huán)渲染語(yǔ)句主要使用的函數(shù)是()A.ForEach() B.If()C.List() D.Map()11.為了使用路由表來(lái)管理子頁(yè)跳轉(zhuǎn),需要添加routerMap配置項(xiàng)的配置文件是()A.app.json5 B.build-profile.json5C.module.json5 D.main_pages.json12.下列選項(xiàng)中,用于回退到指定名稱的子頁(yè),并且該子頁(yè)是由棧底開(kāi)始的第一個(gè)符合指定名稱的子頁(yè),應(yīng)使用的方法是()A.pushPathByName() B.replacePathByName()C.pop() D.popToName()13.下列選項(xiàng)中,用于根據(jù)對(duì)象中的某個(gè)屬性的變化來(lái)重新渲染UI的裝飾器是()A.@Track B.@StateC.@Prop D.@Link14.在頁(yè)面每次顯示時(shí)會(huì)觸發(fā)的方法是()A.aboutToAppear() B.onPageShow()C.onPageHide() D.aboutToDisappear()15.下列選項(xiàng)中,用于監(jiān)聽(tīng)狀態(tài)變量的變化,并在變化時(shí)執(zhí)行特定操作的裝飾器是()A.@Track B.@WatchC.@Prop D.@State16.使用transition屬性為組件出現(xiàn)或消失添加動(dòng)畫(huà)效果時(shí),用于設(shè)置組件轉(zhuǎn)場(chǎng)時(shí)的不透明度效果的TransitionEffect類的靜態(tài)方法是()A.scale() B.opacity()C.rotate() D.translate()17.使用ImageAnimator組件實(shí)現(xiàn)圖像幀動(dòng)畫(huà)時(shí),用于設(shè)置動(dòng)畫(huà)播放狀態(tài)的屬性是()A.state B.statusC.playState D.animationStatus18.下列選項(xiàng)中,用來(lái)聲明應(yīng)用所需權(quán)限的配置文件是()A.module.json5 B.manifest.xmlC.package.json D.build.gradle19.下列選項(xiàng)中,ArkTS單行注釋的開(kāi)始是()A.隨機(jī)字符組合 B.反寫(xiě)域名的形式C.簡(jiǎn)單英文單詞 D.數(shù)字序列20.在ArkTS中,使用let關(guān)鍵字聲明的變量的作用域是()A.全局作用域 B.塊級(jí)作用域C.函數(shù)作用域 D.文件作用域二、填空題(本題共10小題,滿分20分)1.DevEcoStudio中的___________表示預(yù)覽器,用于預(yù)覽當(dāng)前打開(kāi)的頁(yè)面。2.在ArkTS中,開(kāi)發(fā)者可以通過(guò)___________語(yǔ)句輸出調(diào)試信息到日志面板中。3.將字符串"3.14"轉(zhuǎn)換為浮點(diǎn)數(shù)應(yīng)使用的內(nèi)置函數(shù)是___________。4.如果希望接口中的某些屬性或方法不是強(qiáng)制性的,可以在它們后面加上___________符號(hào)。5.若要將Grid組件分為兩列,每列各占父組件寬度的一半,應(yīng)將columnsTemplate屬性設(shè)置為_(kāi)__________。6.Image組件的objectFit屬性的取值___________表示在保持寬高比的情況下進(jìn)行縮小或者放大,使得圖像完全顯示在顯示邊界內(nèi)。7.為了簡(jiǎn)化重復(fù)的UI結(jié)構(gòu)編寫(xiě),可以使用___________裝飾器來(lái)封裝并復(fù)用該結(jié)構(gòu)。8.在攔截器的回調(diào)函數(shù)中,___________參數(shù)表示頁(yè)面跳轉(zhuǎn)之前的棧頂頁(yè)面信息,而___________參數(shù)則表示頁(yè)面跳轉(zhuǎn)之后的棧頂頁(yè)面信息。9.在實(shí)現(xiàn)基于命名路由方式的跳轉(zhuǎn)時(shí),需要在@Entry裝飾器中添加___________屬性以定義命名路由。10.使用___________裝飾器裝飾的變量必須由父組件提供值。三、判斷題(本題共10小題,滿分10分)1.ArkTS是在Java基本語(yǔ)法風(fēng)格基礎(chǔ)上進(jìn)行擴(kuò)展的一種編程語(yǔ)言。2.在ArkTS中,a=b=c=5;這樣的多重賦值語(yǔ)句是可用的。3.switch語(yǔ)句中的每個(gè)case后面不需要加break語(yǔ)句,因?yàn)槌绦驎?huì)自動(dòng)跳出當(dāng)前case。4.子類可以通過(guò)instanceof運(yùn)算符判斷某個(gè)對(duì)象是否為特定類或其父類的實(shí)例。5.promptAction對(duì)象的showDialog()方法執(zhí)行后會(huì)立即阻塞后續(xù)代碼的執(zhí)行。6.在Flex布局中,通過(guò)value參數(shù)的alignItems屬性可以設(shè)置子組件在交叉軸上的對(duì)齊方式。7.在struct內(nèi)使用@Styles裝飾器定義的方法中的代碼具有比在struct外定義的方法更高的優(yōu)先級(jí)。8.使用router.back()方法時(shí),如果不傳遞任何參數(shù),則默認(rèn)返回到首頁(yè)。9.在配置了路由表之后,不需要再為Navigation組件設(shè)置navDestination屬性即可完成頁(yè)面跳轉(zhuǎn)。10.在UIAbility中,onStart()方法是在應(yīng)用啟動(dòng)時(shí)調(diào)用的。四、編程題(本題共3小題,滿分30分)1.請(qǐng)完成下圖所示的登錄界面,涉及到的素材在下方附件中,如有需要自行下載。(10分)

2.根據(jù)圖示編寫(xiě)相關(guān)代碼,共5張照片,所需附件在壓縮包中。(10分)

3.編寫(xiě)代碼,效果如下圖所示。(10分)

HarmonyOS鴻蒙應(yīng)用開(kāi)發(fā)期末測(cè)試卷(三)參考答案一、單選題(本題共20小題,滿分40分)1.D解析:.hvigor目錄用于存放構(gòu)建配置文件。2.A解析:typeof是用于檢測(cè)數(shù)據(jù)類型的運(yùn)算符,它返回一個(gè)描述數(shù)據(jù)類型的字符串。3.B解析:多個(gè)參數(shù)在console.log()中需要用逗號(hào)分隔。4.B解析:泛型不僅限于函數(shù),還可以用于類和接口,并且它提高了代碼的靈活性和可復(fù)用性。5.B解析:export關(guān)鍵字用于導(dǎo)出模塊中的內(nèi)容。6.D解析:toString()是將數(shù)組轉(zhuǎn)換為字符串的方法,并非用于添加或刪除元素。7.C解析:子接口會(huì)自動(dòng)包含父接口中聲明的屬性和方法。8.B解析:push()方法在數(shù)組末尾添加一個(gè)元素,并增加數(shù)組長(zhǎng)度。9.D解析:stateStyles()方法用于實(shí)現(xiàn)組件多態(tài)樣式。10.A解析:ArkUI中用于循環(huán)渲染的主要函數(shù)是ForEach()。11.C解析:需要在module.json5文件中的module配置項(xiàng)中添加routerMap配置項(xiàng)。12.D解析:popToName()方法允許回退到指定名稱的第一個(gè)子頁(yè)。13.A14.B解析:onPageShow()方法在頁(yè)面每次顯示時(shí)觸發(fā)。15.B解析:@Watch裝飾器用于監(jiān)聽(tīng)狀態(tài)變量的變化并觸發(fā)相應(yīng)的回調(diào)函數(shù)。16.B解析:opacity()方法專門(mén)用于設(shè)置組件轉(zhuǎn)場(chǎng)時(shí)的不透明度效果。17.A解析:state屬性用于設(shè)置動(dòng)畫(huà)播放狀態(tài)。18.A19.B解析:Bundlename一般采用反寫(xiě)域名的形式設(shè)置,例如com.example.myapp。20.B解析:let聲明的變量具有塊級(jí)作用域,僅在大括號(hào)內(nèi)有效。二、填空題(本題共10小題,滿分20分)1.Previewer解析:Previewer表示預(yù)覽器,用于預(yù)覽當(dāng)前打開(kāi)的頁(yè)面。2.console.log()3.parseFloat()4.?解析:如果想不強(qiáng)制實(shí)現(xiàn)接口中的某些屬性或方法,可以在其名稱后加上?表示它是可選的。5.'1fr1fr'解析:將columnsTemplate設(shè)置為'1fr1fr'可以使Grid組件分為兩列,每列各占父組件寬度的一半。6.ImageFit.Contain7.@Builder解析:@Builder可用于封裝和復(fù)用UI布局代碼。8.fromto9.routeName10.@Require三、判斷題(本題共10小題,滿分10分)1.×解析:ArkTS是在TypeScript的基礎(chǔ)上進(jìn)行擴(kuò)展的,并非基于Java。2.√解析:在ArkTS中可以從右到左依次進(jìn)行賦值操作。3.×解析:如果不手動(dòng)添加break,程序?qū)⒗^續(xù)執(zhí)行后續(xù)的case代碼,直到遇到break或switch結(jié)束。4.√5.√解析:接口定義了類必須實(shí)現(xiàn)的屬性和方法,但不提供具體的實(shí)現(xiàn),這有助于開(kāi)發(fā)初期明確各個(gè)類的用法和職責(zé)。6.√解析:alignItems屬性用于設(shè)置子組件在交叉軸上的對(duì)齊方式。7.√8.×解析:如果不傳遞參數(shù),默認(rèn)是返回到上一個(gè)頁(yè)面,而非首頁(yè)。9.√解析:一旦配置了路由表,可以直接利用NavPathStack對(duì)象完成頁(yè)面跳轉(zhuǎn),無(wú)須設(shè)置navDestination屬性。10.×解析:UIAbility并沒(méi)有onStart()生命周期方法,而是有onCreate()和onNewWant()等方法。四、編程題(本題共3小題,滿分30分)1.rrr

2.

解析:interfaceGoodsItem{,id:number;,goods_name:string;,goods_img:Resource;,goods_price:number;,goods_count:number;}@Entry@ComponentstructForEachPage{,@Statelist:GoodsItem[]=[{,,id:1,,,goods_name:'雨夜回想',,,goods_img:$r('app.media.yuye'),,,goods_price:49.8,,,goods_count:1,,},{,,id:2,,,goods_name:'星辰躍遷',,,goods_img:$r('app.media.xingchen'),,,goods_price:49.8,,,goods_count:1,,},{,,id:3,,,goods_name:'盛夏光年',,,goods_img:,$r('app.media.shengxia'),,,goods_price:49.8,,,goods_count:1,,},{,,id:4,,,goods_name:'糖豆歷險(xiǎn)記',,,goods_img:$r('app.media.tangdou'),,,goods_price:49.8,,,goods_count:1,,},{,,id:5,,,goods_name:'極限追擊',,,goods_img:$r('app.media.zhuiji'),,,goods_price:49.8,,,goods_count:1,,}];,build(){,,List(){,,,ForEach(this.list,(item:GoodsItem)=>{,,,,ListItem(){,,,,,Row({space:10}){,,,,,,Image(item.goods_img),,,,,,,.borderRadius(8),,,,,,,.width(120),,,,,,,.height(200),,,,,,Column(){,,,,,,,Text(item.goods_name),,,,,,,,.fontWeight(FontWeight.Bold),,,,,,,Text('¥'+item.goods_price.toString()),,,,,,,,.fontColor(Color.Red),,,,,,,,.fontWeight(FontWeight.Bold),,,,,,},,,,,,.padding({top:5,bottom:5}),,,,,,.alignItems(HorizontalAlign.Start),,,,,,.justifyContent(FlexAlign.SpaceBetween),,,,,,.height(200),,,,,,.layoutWeight(1),,,,,},,,,,.width('100%'),,,,},,,}),,},,.width('100%'),,.height('100%'),,.divider({color:'#E7E9E8',strokeWidth:1}),,.padding(10),}}43.

HarmonyOS鴻蒙應(yīng)用開(kāi)發(fā)期末測(cè)試卷(四)考試時(shí)間:120分鐘共計(jì)43道題,40小題,3大題(主觀題),滿分100分題號(hào)一二三四總分核分人復(fù)查人滿分40201030100得分評(píng)閱人考生姓名:_______________學(xué)號(hào):_______________專業(yè)班名:_______________一、單選題(本題共20小題,滿分40分)1.以下哪種數(shù)據(jù)類型不屬于ArkTS的基本數(shù)據(jù)類型?()A.number B.stringC.array D.boolean2.以下不屬于ArkTS控制語(yǔ)句的是()。A.if-else語(yǔ)句 B.for語(yǔ)句C.switch語(yǔ)句 D.import語(yǔ)句3.在ArkTS中,用于定義函數(shù)的關(guān)鍵字是()。A.function B.defC.fun D.method4.以下關(guān)于封裝的描述錯(cuò)誤的是()。A.封裝可以隱藏對(duì)象的內(nèi)部實(shí)現(xiàn)細(xì)節(jié) B.封裝可以保護(hù)對(duì)象的數(shù)據(jù)C.封裝可以提高代碼的可維護(hù)性 D.封裝會(huì)降低代碼的安全性5.空值合并操作符(??)的運(yùn)算規(guī)則是()。A.只要有一個(gè)操作數(shù)為真就返回真B.只有兩個(gè)操作數(shù)都為真才返回真C.當(dāng)左側(cè)操作數(shù)為null或undefined時(shí)返回右側(cè)操作數(shù)D.當(dāng)左側(cè)操作數(shù)不為null或undefined時(shí)返回右側(cè)操作數(shù)6.在ArkTS中,實(shí)現(xiàn)異步操作的關(guān)鍵字是()。A.async/await B.sync/awaitC.async/sync D.wait/async7.在模塊導(dǎo)入導(dǎo)出中,使用()關(guān)鍵字實(shí)現(xiàn)模塊導(dǎo)入。A.export B.importC.module D.require8.自適應(yīng)屏幕的像素單位在ArkUI中主要用于()。A.固定界面元素大小 B.確保界面在不同屏幕適配C.增加代碼量 D.降低開(kāi)發(fā)效率9.顏色漸變屬性中,線性漸變的關(guān)鍵字是()A.linearGradient B.radialGradientC.swipeGradient D.repeatingLinearGradient10.下列哪個(gè)不是ArkUI的容器組件?()A.Column B.RowC.Stack D.Video11.下列哪個(gè)不是組件的常見(jiàn)屬性()。A.尺寸屬性 B.邊框?qū)傩訡.背景屬性 D.數(shù)據(jù)庫(kù)屬性12.彈性布局(FlexLayout)中,用于控制子組件在主軸方向上排列方式的屬性是()。A.justifyContent B.alignItemsC.flexDirection D.flexWrap13.層疊布局(Stack)的特點(diǎn)是()。A.組件水平排列 B.組件垂直排列C.組件堆疊顯示 D.組件按網(wǎng)格排列14.在HarmonyOS中,自定義組件的生命周期不包括()。A.aboutToAppear B.aboutToDisappearC.onPageShow D.onInit15.在HarmonyOS中,用于頁(yè)面跳轉(zhuǎn)的組件是()。A.Navigation B.RouterC.Link D.Jump16.在ArkTS中,用于定義常量的關(guān)鍵字是()。A.let B.varC.const D.final17.以下關(guān)于多態(tài)的描述正確的是()。A.多態(tài)是指同一個(gè)操作作用于不同的對(duì)象,可以有不同的解釋和不同的執(zhí)行結(jié)果B.多態(tài)只存在于面向過(guò)程編程中C.多態(tài)會(huì)增加代碼的復(fù)雜度D.多態(tài)與繼承無(wú)關(guān)18.在ArkUI中,用于顯示文本的組件是()。A.Text B.LabelC.TextView D.Span19.在面向?qū)ο缶幊讨?,子類繼承父類的關(guān)鍵字是()。A.implements B.extendsC.inherits D.derives20.在ArkTS中,用于處理Promise的then方法屬于()。A.同步編程 B.異步編程C.函數(shù)式編程 D.面向?qū)ο缶幊潭?、填空題(本題共10小題,滿分20分)1.HarmonyOS主打“1+8+N”的全場(chǎng)景設(shè)備,其中“1”指_____________,“8”指平板電腦、PC、眼鏡、智慧屏、AI音箱、耳機(jī)、手表、車機(jī),“N”指______________。2.在HarmonyOS中,用于運(yùn)行和調(diào)試應(yīng)用的虛擬設(shè)備稱為_(kāi)_____。3.數(shù)組的長(zhǎng)度可以通過(guò)訪問(wèn)其______屬性獲取。4.在ArkTS中,用于定義類成員的訪問(wèn)修飾符有______。5.抽象類是一種不能被______的類。6.影響屏幕顯示的關(guān)鍵因素有分辨率、像素密度和______。7.ArkUI中用于水平排列組件的布局是______。8.背景屬性中,設(shè)置背景顏色使用______屬性。9.在ArkTS中,用于處理可能為null值的操作符是______。10.在HarmonyOS中,應(yīng)用資源存放在______目錄下。三、判斷題(本題共10小題,滿分10分)1.HarmonyOS支持應(yīng)用開(kāi)發(fā)過(guò)程中多終端的業(yè)務(wù)邏輯和界面邏輯復(fù)用,能夠?qū)崿F(xiàn)一次開(kāi)發(fā)、多端部署,提升了跨設(shè)備應(yīng)用的開(kāi)發(fā)效率。2.DevEcoStudio不支持代碼的實(shí)時(shí)預(yù)覽功能。3.在ArkTS中,變量一旦定義就不能再改變其數(shù)據(jù)類型。4.在ArkTS中,const聲明的變量可以重新賦值。

5.類的繼承機(jī)制只能繼承屬性,不能繼承方法。6.形狀裁剪屬性可以讓組件顯示為任意不規(guī)則形狀。7.在ArkUI中,Column布局的子組件默認(rèn)水平居中。8.Stack布局的子組件默認(rèn)按照添加順序從下到上層疊。9.抽象類可以被實(shí)例化。10.在ArkUI中,組件的邊框可以設(shè)置為虛線。四、編程題(本題共2小題,滿分30分)1.使用ArkUI實(shí)現(xiàn)一個(gè)簡(jiǎn)單的字號(hào)字體適老化頁(yè)面,要求:(10分)

(1)頁(yè)面包含一個(gè)文本組件和一個(gè)滑塊組件。

(2)拖動(dòng)滑塊時(shí),文本的字號(hào)和字體發(fā)生變化。

(3)適老化字體要求清晰易讀。2.使用ArkUI編寫(xiě)一個(gè)計(jì)數(shù)器界面,包含顯示數(shù)字的文本和加減按鈕。(10分)3.使用ArkUI實(shí)現(xiàn)一個(gè)模仿美團(tuán)App消息列表的頁(yè)面,效果如下圖所示,要求:(10分)

(1)頁(yè)面包含多個(gè)消息條目,每個(gè)條目顯示消息標(biāo)題、內(nèi)容和時(shí)間。

(2)點(diǎn)擊消息條目時(shí),彈出消息詳情。

(3)使用列表組件(List)展示消息條目。

HarmonyOS鴻蒙應(yīng)用開(kāi)發(fā)期末測(cè)試卷(四)參考答案一、單選題(本題共20小題,滿分40分)1.C2.D3.A4.D5.C6.A7.B8.B9.A10.D11.D12.A13.C14.D15.A16.C17.A18.A19.B20.B二、填空題(本題共10小題,滿分20分)1.智能手機(jī);其他智能設(shè)備2.模擬器3.length4.public,private,protected5.實(shí)例化6.屏幕尺寸7.Row8.backgroundColor9.??10.resources三、判斷題(本題共10小題,滿分10分)1.√2.×3.√4.×5.×6.√7.×8.√9.×10.√四、編程題(本題共2小題,滿分20分)1.@Entry

@Component

structIndex{

@StatefontSize:number=20;

@StatefontStyle:string='normal'

build(){

Column(){

Text('HelloHarmonyOS')

.fontSize(this.fontSize)

.fontWeight(this.f

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論