题库首页 › GESP等级认证(C++) › 题目 25376

模拟 “字符串加密”:规则为 “每个字符 ASCII 码 + 3,若超过 z (122) 则从 a 重新开始”,以下代码中正确的条件判断是:( ) for (int i = 0; i < str.length(); i++) { // 需补充条件: _______________________ else { str[i] += 3; } }

A:if (str[i]> 122) str[i] = str[i] + 3 - 26;
B:if (str[i] > 122) str[i] = str[i] - 26;
C:if (str[i] + 3 > 122) str[i] = str[i] - 26;
D:if (str[i] + 3 > 'z') str[i] = 'a' + (str[i] + 3 - 'z') - 1;

正确答案:D

答案解析

遍历字符串中每个字符,获取其 ASCII 值。加密规则是将当前字符的 ASCII 值加 3。若相加后的值超过 'z' 的 ASCII 值(122),则需进行回绕处理,即从 'a' 开始重新计算。判断条件应基于加 3 后的结果是否超出范围,而非原始值。回绕时,新字符应等于 'a' 加上超出部分的偏移量减 1,或等效地减去 26。操作对象是字符本身,比较可使用数值或字符常量,但逻辑必须一致。

试卷来源:202603 CCF-GESP编程能力等级认证C++三级真题

本卷相关题目

在线做题 同科目题库