第 3 单元:基本语言元素练习(10 道题)
第 3 单元:基本语言元素练习(10 道题)
#practice #abap #abap-syntax
相关概念
📌关键模式(点击展开)
| 关键词 | 答案 |
|---|---|
| 数值类型? | I, F, P, DECFLOAT16, DECFLOAT34 |
| N 类型是数值类型吗? | 不是 — 仅包含数字的字符串 |
| 循环计数器? | sy-index |
| MOVE-CORRESPONDING? | 复制同名字段 |
第 1 题 - 数值类型 [recall]
ABAP 标准类型中哪些是数值类型?类型 N 是数值类型吗?
📌显示答案
数值类型:I, F, P, DECFLOAT16, DECFLOAT34。类型 N 不是数值类型 — 它是一种字符串类型,只允许包含数字字符,但不能用于算术运算。
第 2 题 - 类型定义 [recall]
使用哪个 ABAP 关键字来定义局部类型?
📌显示答案
TYPES 语句。示例:
TYPES: gty_price TYPE p LENGTH 8 DECIMALS 2.第 3 题 - 循环计数器 [recall]
DO 和 WHILE 循环的循环计数器在哪个系统字段中?
📌显示答案
DO 和 WHILE 循环都使用 sy-index。
第 4 题 - 完整类型与不完整类型 [recall]
哪些 ABAP 标准类型是”完整的”(固定长度),哪些是”不完整的”(需要指定长度)?
📌显示答案
完整类型(固定长度):D, T, I, F, STRING, XSTRING, DECFLOAT16, DECFLOAT34。不完整类型(需指定长度):C, N, X, P。
第 5 题 - 常量 [recall]
如何在 ABAP 中定义常量?
📌显示答案
使用
CONSTANTS 语句并配合 VALUE 附加项:CONSTANTS gc_pi TYPE p LENGTH 8 DECIMALS 5 VALUE '3.14159'.第 6 题 - MOVE-CORRESPONDING [application]
你有两个结构:
gs_carrier(字段:carrid, carrname, currcode, url)和gs_flight(字段:carrid, connid, fldate)。执行MOVE-CORRESPONDING gs_carrier TO gs_flight后,哪些字段被复制了?
📌显示答案
只有 carrid 被复制 — 它是两个结构中唯一名称相同的字段。MOVE-CORRESPONDING 只复制源结构和目标结构中名称完全相同的字段。
第 7 题 - 链式语句 [application]
将以下语句转换为链式语句:
WRITE 'Hello'. WRITE gv_name. WRITE '!'.
📌显示答案
WRITE: 'Hello', gv_name, '!'.第 8 题 - 类型转换 [application]
将 C 类型值 ‘42’ 赋值给 I 类型变量时会发生什么?
📌显示答案
ABAP 执行自动类型转换:字符串 ‘42’ 被转换为整数 42。如果 C 类型中包含非数字字符,则会发生运行时错误。
第 9 题 - CASE 与 IF [analysis]
在什么情况下你会使用 CASE 而不是 IF?它们在结构上有什么区别?
📌显示答案
当需要检查单个变量的多个离散值时使用 CASE。CASE 使用 WHEN 子句来匹配每个值。IF/ELSEIF 更适合复杂条件(范围判断、多变量、AND/OR 逻辑)。对于基于值的分支,CASE 更简洁、更易读。
第 10 题 - 调试 [application]
你想调试一个程序但不能修改源代码。如何启动调试器?
📌显示答案
在启动程序之前,在 SAP GUI 命令字段中输入
/h。这会在不做任何代码修改的情况下激活调试模式。另外,如果你有显示权限,可以在编辑器中设置会话断点。📌模式总结(点击展开)
| 关键词 | 答案 |
|---|---|
| 数值类型 | I, F, P, DECFLOAT16, DECFLOAT34 |
| N 类型 | 不是数值类型,是包含数字的字符串 |
| 局部类型关键字 | TYPES |
| 循环计数器 | sy-index |
| MOVE-CORRESPONDING | 仅复制同名字段 |
| 链式语句 | 冒号 + 逗号语法 |
| 无需代码启动调试 | 在命令字段中输入 /h |