博客
关于我
awk杂谈之数组习题
阅读量:365 次
发布时间:2019-03-05

本文共 610 字,大约阅读时间需要 2 分钟。

问题分析

了解AWK语言中的数组操作是解决这个问题的关键。AWK没有真正的二维数组,所以我们只能通过一维数组模拟多维数组。这里使用SUBSEP来构造多维数组的索引。SUBSEP的默认值是"\034",这意味着当我们定义一个数组时,例如Arr[2,79],AWK会将其转换为一个字符串索引"2\03479"。

问题解答

为了让AWK程序输出78,我们需要正确地访问数组元素。以下是详细的解决步骤:

  • 理解AWK数组索引:AWK允许使用逗号分隔的多个数字作为索引,通过SUBSEP分隔符将其转换为字符串索引。例如,Arr[2,79]会被转换为"2\03479"。

  • 选择正确的访问方式

    • 选项Aprint Arr["2\03479"]。直接使用转换后的字符串索引访问数组元素,正确输出78。
    • 选项Bprint Arr[2,79]。打印一维数组的值,输出两个元素的值,而不是单独的78。
    • 选项Cidx=2 SUBSEP 79; print Arr[idx]。通过设置idx为"2\03479"后访问数组元素,正确输出78。
    • 选项Dprint Arr[ 2, 79]。虽然索引格式有空格,但仍然打印一维数组的值,而不是单独的78。
  • 结论:选项A和C是正确的,因为它们直接或间接地使用了正确的索引来访问数组元素。选项B和D错误地打印了数组的多个元素,而不是单独的78。

  • 最终答案

    选项A和C是正确答案,它们能够正确地输出78。

    转载地址:http://cpwwz.baihongyu.com/

    你可能感兴趣的文章
    tomcat加载部署webapps目录下的项目
    查看>>
    ACM/NCPC2016 C Card Hand Sorting(upc 3028)
    查看>>
    方法重写
    查看>>
    Threading Programming Guide(多线程编程指南)
    查看>>
    Java求逆波兰表达式的结果(栈)
    查看>>
    SDWebImage--http图片加载不出来的问题
    查看>>
    Application received signal SIGSEGV
    查看>>
    MySQL删除数据库时的错误(errno: 39)
    查看>>
    关于MySQL连接时出现的错误之一
    查看>>
    Win10 JDK配置环境变量以及为什么需要配置每部分的原因
    查看>>
    ubuntu学习笔记-常用文件、命令以及作用(hosts、vim、ssh)
    查看>>
    SLAM学习笔记-求解视觉SLAM问题
    查看>>
    target加载不出文件的原因之一
    查看>>
    普歌-允异团队-HashMap面试题
    查看>>
    Vue_cli实现抽奖
    查看>>
    还在一个一个手动安装虚拟机吗?Cobbler自动部署装机一键最小化安装打把游戏就好了
    查看>>
    C 语言顺序表查找和折半查找
    查看>>
    Windows下Python安装与使用
    查看>>
    Font Awesome图标库使用
    查看>>
    程序员应该知道的97件事
    查看>>