表のセルA1~C2に値が入力されている。表の値をCSV形式で出力した結果はどれか。ここで,レコード間の区切りは改行コード“CR”を使用するものとする。
| A | B | C | |
|---|---|---|---|
| 1 | 月 | 1月 | 2月 |
| 2 | 売上高 | 500 | 600 |
这道题的解析和你的作答记录。
表のセルA1~C2に値が入力されている。表の値をCSV形式で出力した結果はどれか。ここで,レコード間の区切りは改行コード“CR”を使用するものとする。
| A | B | C | |
|---|---|---|---|
| 1 | 月 | 1月 | 2月 |
| 2 | 売上高 | 500 | 600 |
正解 正确答案是ア。CSV 是 Comma Separated Values 的缩写,正如其名,是一种在项目与项目的分隔处使用逗号的文本格式数据表示方式。把表格转换为 CSV 时的对应关系,可以分两层来考虑。第一,表格的 1 行原样成为 1 条记录(1 行数据)。第二,在这条记录中,从左到右排列的各个单元格的值分别成为一个个字段,字段与字段之间用逗号分隔。而在记录与记录的交界处要放入换行。本题中,题干明确指出该换行使用换行符「CR」。把这条规则套用到图中的表格上。表格是 2 行 3 列,第 1 行是 A1=月、B1=1月、C1=2月,所以第 1 条记录为 月,1月,2月。到这里记录结束,因此放上 CR。第 2 行是 A2=销售额、B2=500、C2=600,所以第 2 条记录为 销售额,500,600,其末尾同样要加上 CR。数值 500 和 600 也与字符串一样照原样排列,不加引号之类的特殊符号。把以上内容连起来就是 月,1月,2月 CR 销售额,500,600 CR,这与ア的内容完全一致。还要注意,表格左端的 1、2 以及上端的 A、B、C 是表示单元格位置的行号和列号,并不是输入到表格中的值,因此不包含在输出结果中。所以正确答案是ア。
分隔符使用逗号这一点作为 CSV 是正确的,但把行和列对调后输出这一点是错误的。イ 为 月,销售额 CR 1月,500 CR 2月,600 CR,这是把表格的 A 列(月、销售额)作为第 1 条记录、B 列(1月、500)作为第 2 条记录、C 列(2月、600)作为第 3 条记录,也就是所谓把纵横转置后的输出。CSV 是把表格的行原样按顺序写成记录的格式,从 2 行 3 列的表格应当得到 2 条含 3 个字段的记录。イ 却成了 3 条含 2 个字段的记录,无法再现原表格的排列,因此错误。
行与列的对应关系(第 1 行为第 1 条记录、第 2 行为第 2 条记录)是正确的,但字段的分隔符使用了斜杠而不是逗号,这一点是错误的。ウ 为 月/1月/2月 CR 销售额/500/600 CR。CSV 即 Comma Separated Values,也就是以逗号分隔,这正是该格式的定义本身,把分隔符换成其他符号就不能称为 CSV。顺便提一下,使用制表符作分隔的格式称为 TSV(Tab Separated Values),与 CSV 相区别。
这是分隔符和排列顺序两方面都错误的选项。エ 为 月/销售额 CR 1月/500 CR 2月/600 CR,既和ウ一样用斜杠而不是逗号分隔项目,又和イ一样把表格的行与列对调后输出。它既不满足 CSV 所要求的逗号分隔,也无法再现原表格 2 行 3 列的结构,因此是双重错误。