16个回答

计算机考试中,题目文本是“Hello World”,我写成了“HеΙΙο WοrΙd”,凭什么判错?

稻本dopon
228个点赞 👍

{ 2025-08-04 文末有补充 }


好奇测试了一下,你这俩字符串不仅字母不全一样,长度也不同啊。

这是有意调侃阅卷机器人了。


长度和16进制码编号:

 len = 11
 48 65 6C 6C 6F 20 57 6F 72 6C 64

 len = 17
 48 D0 B5 CE 99 CE 99 CE BF 20 57
 CE BF 72 CE 99 64

Fortran测试代码:

character*100 a,b

a='Hello World'
b='HеΙΙο WοrΙd'

ka=len_trim(a)
kb=len_trim(b)

write(*,'(/1xai0)') 'len = ',ka
write(*,'(11z3.2)') (ichar(a(i:i)),i=1,ka)

write(*,'(/1xai0)') 'len = ',kb
write(*,'(11z3.2)') (ichar(b(i:i)),i=1,kb)

end




2025-08-04 补充

字符串a是ASCII编码,逐字节对应ASCII字符:

48 → H ,

65 → e ,

6C → l ,

6C → l ,

6F → o ,

20 → 空格,

57 → W ,

6F → o ,

72 → r ,

6C → l ,

64 → d

a是标准ASCII字符串,长度11,内容为 Hello World 。


字符串b是UTF-8解码,多字节序列对应Unicode字符

48 → H ,

D0 B5 → 西里尔字母 е (U+0435),

CE 99 → 希腊字母 Ι (U+0399),

CE 99 → 希腊字母 Ι (U+0399),

CE BF → 希腊字母 ο (U+03BF),

20 → 空格,

57 → W ,

CE BF → ο,

72 → r ,

CE 99 → Ι,

64 → d

实际字符序列: HеΙΙο WοrΙd (包含希腊字母和西里尔字母)


如果自动阅卷不区分编码格式,一定会判定a和b的长度不同,内容不同。

还没有人送礼物,鼓励一下作者吧
Simon
自由评论 (0)
分享
Copyright © 2022 GreatFire.org