GESP2024年3月认证C++三级( 第三部分编程题(1、字母求和)

张开发
2026/6/27 4:55:39 15 分钟阅读
GESP2024年3月认证C++三级( 第三部分编程题(1、字母求和)
第三部分 编程题第一题《字母求和》一、 故事开始神秘密码森林小杨同学发明了一种神奇密码在森林里每个字母都代表一个数字1、 小写字母好精灵小写字母代表它在字母表中的位置a 1 b 2 c 3 ... z 262、 大写字母火焰精灵大写字母代表它自己的 ASCII 编码的负数A -65 B -66 C -673、 任务给你一个字符串求所有字母代表数字的总和4、 例子输入3 aAc意思是字符串长度是3内容是a A c5、分别计算 aa 1 AASCIIA 65所以A -65 cc 3总和1 (-65) 3 -616、✅ 输出-61二、 解题思路我们要一个一个检查字符串里的字母。1、就像机器人巡逻队 第一步读取输入int n; string s; cin n s; 第二步准备答案盒子int sum 0; 第三步逐个检查字母for(int i0;in;i)2、 判断字母类型1 如果是小写字母if(s[i]a s[i]z)2怎么算位置s[i]-a13为什么例如c-a1 99-971 33、 如果是大写字母else加上负值等于直接减去它的 ASCII 值sum - s[i];三、 参考程序#includeiostream #includestring using namespace std; int main() { int n; string s; cin n; cin s; int sum 0; for(int i 0; i n; i) { if(s[i] a s[i] z) { sum s[i] - a 1; } else if(s[i] A s[i] Z) { sum - s[i]; } } cout sum endl; return 0; }四、 程序运行演示输入4 abCZ计算过程a 1 b 2 C -67 Z -90总和12-67-90-154输出-154五、本题用到的知识1、✅ 字符判断a~z A~Z2、✅ ASCII编码字符本质上是数字A 653、✅ for循环遍历字符串for(...)4、✅ 累加思想一个一个加进 sum。 更快速的写法进阶大写小写直接使用函数判断if(islower(s[i])) ... if(isupper(s[i])) ... 总结本题就是要 遍历字符串 判断大小写 转成数字 累加输出

更多文章