NOIP 普及组初赛 · NOIP 2016 普及组初赛试题 第 26 题

阅读程序 · 答案 = · 考点:输入输出、位运算、分支结构、循环结构、字符串(string)

← 整套速查表 NOIP 普及组初赛 全部真题

题目

阅读程序写结果:

#include <iostream>
using namespace std;
int main()
{
	int i, length1, length2;
	string s1, s2;
	s1 = "I have a dream.";
	s2 = "I Have A Dream.";
	length1 = s1.size();
	length2 = s2.size();
	for (i = 0; i < length1; i++)
		if (s1[i] >= 'a' && s1[i] <= 'z')
			s1[i] -= 'a' - 'A';
	for (i = 0; i < length2; i++)
		if (s2[i] >= 'a' && s2[i] <= 'z')
			s2[i] -= 'a' - 'A';
	if (s1 == s2)
		cout << "=" << endl;
	else if (s1 > s2)
		cout << ">" << endl;
	else
		cout << "<" << endl;
	return 0;
}

输出:_________

答案:=

考点

输入输出位运算 讲解 →位运算 真题汇总 →分支结构循环结构字符串(string)

解题思维

看到 s1[i]-='a'-'A' → 小写转大写

常见错误

易错:以为 s2 没变;误算 ASCII 差值;忽略空格与句点。

详细解析(节选)

考点:字符串大小写转换|ASCII 码运算

程序在做什么

程序初始化两个字符串 s1 和 s2,分别遍历并尝试将其中所有小写字母转换为大写,最后比较两者输出结果。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断