C++ NOIP2019 普及组初赛程序解析
需积分: 10 99 浏览量
更新于2024-08-05
收藏 18KB DOCX 举报
这篇资源主要包含了两道C++编程题目,是NOIP2019普及组初赛的阅读程序,没有提供答案。第一道题目涉及字符串处理,包括字符转换和循环遍历。第二道题目是关于数组操作和逻辑判断,与路径选择和计数有关。
1. **字符串处理题目解析**:
- 这段代码首先定义了一个字符数组`st[100]`用于存储输入的字符串,并通过`scanf("%s", st)`读取字符串。
- 然后用`strlen(st)`获取字符串长度`n`,并遍历字符串,从第二个字符开始(索引为1)检查每个字符。
- 如果当前索引`i`能被字符串长度`n`整除,表明该位置是每`n`个字符的起点,将该位置的字符转换:如果原字符是小写字母(ASCII值大于等于'a'),则将其转换为大写(减去'a'的ASCII值,加上'A'的ASCII值)。
- 最后,通过`printf("%s", st)`打印处理后的字符串。
- **判断题解析**:
- 第1题:错误。输入的字符串可以包含其他字符,不只是大小写字母。
- 第2题:正确。若`i=0`,访问`st[-1]`会导致数组越界错误。
- 第3题:错误。修改后,某些字符可能不会被处理,因此结果会改变。
- 第4题:错误。输入全大写字母,输出会将每`n`个字符首字母转换为大写,因此结果会有所不同。
- **选择题解析**:
- 第5题:若输入长度为18,最多有6个字符不同(每3个连续字符的第一个转换为大写)。
- 第6题:题目未提供具体选项,但根据逻辑,输入长度为36时,最多有36个字符不同,因为每对 `(x, y)` 会影响两个位置。
2. **数组操作题目解析**:
- 此题初始化两个长度为100的数组`a[]`和`b[]`,并设所有元素为0。
- 接着,读取两个整数`n`和`m`,并根据`m`次输入更新数组`a[]`和`b[]`。
- 当遇到满足条件`a[x] < y && b[y] < x`的情况,更新`a[x]`和`b[y]`的值,并清零之前记录的对应项。
- 最后,统计数组`a[]`中值为0的个数`ans`。
这个题目可能是关于寻找某种路径或者建立某种关联,但是由于题目不完整,无法给出确切的解题过程和答案。完整的解题需要考虑完整的输入数据和题目描述。
1242 浏览量
2947 浏览量
1306 浏览量
2024-06-07 上传
2024-06-07 上传
2021-11-08 上传
921 浏览量
395 浏览量
192 浏览量
宝祺祺吖
- 粉丝: 57
- 资源: 3
最新资源
- ActionScript 3.0 Cookbook 中文版.pdf
- iBATIS in Action
- crc_explain 关于crc校验说明
- 软硬件开发人员的简历的模板
- 全国计算机等级考试网络三级详细资源
- S3C2410A_manual_r10.pdf
- 计算机操作系统(汤子瀛)习题答案
- 《实战C#.NET编程-Spring.NET & NHibernate从入门到精通》pdf部分
- GCC 入门剖析以及嵌入式汇编
- PMP项目管理师英文选择题试题一
- .NET中对文件的操作
- 使用pager-taglib实现分页显示的详细步骤
- CSAI信息系统项目管理师考试辅导模拟试题二(有答案)
- Apchche+php+Mysql+jsp+tomcat.WEB环境设置指南
- jmail 4.3使用方法PDF文档
- GDB Quick Reference Card