1、 2025年中职鸿蒙应用开发(鸿蒙开发基础)试题及答案 (考试时间:90分钟 满分100分) 班级______ 姓名______ 第I卷(选择题 共40分) 答题要求:以下每题都有四个选项,其中只有一个是正确的,请将正确选项的字母填在括号内。(总共8题,每题5分) 1. 鸿蒙应用开发中,以下哪种布局方式能让子组件按水平方向排列?( ) A. LinearLayout B. RelativeLayout C. HorizontalLayout D. VerticalLayout 2. 在鸿蒙应用中,用于设置文本字体大小的属性是( )。 A.
2、textColor B. fontSize C. textStyle D. fontWeight 3. 以下哪个是鸿蒙应用开发中常用的事件处理方法?( ) A. onClick B. onLoad C. onReady D. onShow 4. 鸿蒙应用开发中,要创建一个新的页面,通常需要在哪个文件中进行相关配置?( ) A. entry/src/main/ets/pages.json B. entry/src/main/ets/module.json C. entry/src/main/ets/app.json D. entry/src/main/ets/con
3、fig.json 5. 当需要在鸿蒙应用中引入外部样式文件时,应将样式文件放在( )目录下。 A. entry/src/main/res/styles B. entry/src/main/ets/styles C. entry/src/main/res/values D. entry/src/main/ets/values 6. 鸿蒙应用开发中,若要获取用户输入的文本内容,可使用以下哪种组件?( ) A. Button B. TextField C. Image D. ProgressBar 7. 在鸿蒙应用中,要实现页面跳转,可使用( )方法。 A. navig
4、ateTo B. push C. replace D.以上都是 8. 以下哪种数据类型不是鸿蒙应用开发中常用的数据类型?( ) A. String B. Number C. Boolean D. ArrayBuffer 第II卷(非选择题 共60分) 9. 简答题:简述鸿蒙应用开发中,页面生命周期的主要阶段及作用。(10分) 10. 简答题:在鸿蒙应用中,如何设置一个按钮的点击事件,并在点击后执行特定的操作?(10分) 11. 编程题:请编写一段鸿蒙应用代码,实现一个简单的计算器界面,包含加、减、乘、除四个运算按钮,点击按钮后在文本框中显示相应的计算结果。(2
5、0分) 12. 材料分析题:材料:在鸿蒙应用开发中,经常会遇到数据传递的需求。例如,从一个页面传递数据到另一个页面。问题:请简述在鸿蒙应用中,有哪些方式可以实现页面间的数据传递,并举例说明。(15分) 13. 综合应用题:请设计一个鸿蒙应用,包含登录页面和主页面。登录页面有用户名和密码输入框以及登录按钮,主页面显示欢迎用户的文本。当用户在登录页面输入正确的用户名(admin)和密码(123456)后点击登录按钮,跳转到主页面并显示欢迎信息。请写出实现该应用的主要代码。(5分) 答案:1. C 2. B 3. A 4. A 5. B 6. B 7. D 8. D 9.
6、鸿蒙应用页面生命周期主要阶段包括onStart、onStop、onDestroy等。onStart阶段用于页面初始化,加载数据等;onStop阶段当页面不可见时调用,可进行资源释放等操作;onDestroy阶段在页面销毁时执行,如清理内存等。 10. 首先在布局文件中添加按钮组件,然后在逻辑文件中通过@Entry装饰器的类中,使用@Subscribe装饰器修饰一个方法,在该方法中编写按钮点击后执行的操作。例如:@Subscribe onClick() { // 执行的操作 }。 11. 示例代码: import prompt from '@system.prompt'; @Entry
7、 @Component struct Calculator { @State result: string = '0'; @State num1: string = '0'; @State operator: string = ''; build() { Column() { Text(this.result).fontSize(30); Row() { Button('+').onClick(() => { this.operator = '+'; this.num1 = this.result; this.r
8、esult = '0'; }); Button('-').onClick(() => { this.operator = '-'; this.num1 = this.result; this.result = '0'; }); Button('').onClick(() => { this.operator = ''; this.num1 = this.result; this.result = '0'; }); Button('/').onClick(() => { this.operator = '/'; this.num1 = thi
9、s.result; this.result = '0'; }); } Button('=').onClick(() => { let num2 = parseFloat(this.result); if (this.operator === '+') { this.result = (parseFloat(this.num1) + num2).toString(); } else if (this.operator === '-') { this.result = (p
10、arseFloat(this.num1) - num2).toString(); } else if (this.operator === '') { this.result = (parseFloat(this.num1) num2).toString(); } else if (this.operator === '/') { this.result = (parseFloat(this.num1) / num2).toString(); } }); } }
11、} // 以上代码实现了一个简单计算器界面,点击运算按钮记录操作符和第一个数字,点击等号进行计算并显示结果。 12. 实现页面间数据传递的方式有:通过路由参数传递,例如在路由跳转时带上参数,如 navigateTo({ uri: 'pages/detail/detail', params: { data: '传递的数据' } }); 在目标页面通过@BindingParam获取参数。还可以通过全局变量传递,定义一个全局变量,在不同页面访问和修改该变量来传递数据。 13. 登录页面代码: import prompt from '@system.prompt'; @Entry @Com
12、ponent struct Login { @State username: string = ''; @State password: string = ''; build() { Column() { TextField(this.username).placeholder('用户名').margin({ top: 20 }); TextField(this.password).placeholder('密码').secure(true).margin({ top: 20 }); Button('登录').onClic
13、k(() => { if (this.username === 'admin' && this.password === '123456') { router.push({ uri: 'pages/main/main' }); } else { prompt.showToast({ message: '用户名或密码错误' }); } }).margin({ top: 20 }); } } } 主页面代码: @Entry @Component struct Main { build() { Column() { Text('欢迎您').fontSize(30).margin({ top: 50 }); } } } // 登录页面通过判断用户名和密码是否正确,正确则跳转到主页面,主页面显示欢迎信息。






