C语言程序:将字符串中的小写字母转换为大写字母
需积分: 24 40 浏览量
更新于2024-07-13
收藏 282KB PPT 举报
"C语言习题,涉及字符串处理、字符编码、逻辑运算、算术运算、数据类型、运算符优先级、循环结构等知识点。"
本文主要探讨的是一个C语言编程习题,要求将字符串中的小写字母转换为大写字母。在C语言中,这种操作可以通过比较字符的ASCII码来实现,因为小写字母和大写字母在ASCII码表中是连续的,两者之间只相差32。
题目给出的代码框架中,有一个while循环用于遍历字符串。在循环中,我们需要判断当前字符是否为小写字母。在ASCII码中,小写字母'a'的码值为97,大写字母'A'的码值为65,它们之间的差值正好是32。因此,如果当前字符是小写字母(即它的ASCII码在'a'和'z'之间),我们可以将字符码减去这个差值,从而将其转换为对应的大写字母。
完整的代码如下:
```c
#include <stdio.h>
int main() {
int i = 0;
char str[80];
scanf("%s", str);
while (str[i]) { // 循环条件为字符串未结束
if (str[i] >= 'a' && str[i] <= 'z') { // 判断字符是否为小写字母
str[i] -= 'a' - 'A'; // 转换为大写字母
}
i++; // 移动到下一个字符
}
printf("%s\n", str);
return 0;
}
```
此外,题目还包含了一些关于C语言基础的复习题目,例如:
1. 自定义标识符只能包含字母、数字和下划线,且不能以数字开头,因此`num(10)`和`class+2`是非法的。
2. `begin`不是C语言的关键字。
3. `\n`, `\t`, `\b`是转义字符,表示换行、制表和退格。
4. `074`不是一个有效的八进制转义字符。
5. 字符串常量需要用双引号包围,`"ABC"`是正确的。
6. 字符`'\n'`占用1个字节。
7. 字符串`"xyz"`在内存中占用4个字节(包括结束符`\0`)。
8. `0L`是合法的长整型常数。
9. char型数据在内存中存放的是ASCII代码值。
10. `(m = a == b) || (n = c == d)`,如果a等于b,m为1,n的值取决于c是否等于d,但至少有一个为1。
11. `b = a % 2`不会使b的值为2,因为5除以2的余数是1。
12. `x=(a=3,b=a--)`后,x为3,a为2,b为3。
13. `(m=a>b)&&(n=a>b)`,由于a和b都为1,所以m和n都是0。
14. `a+=a-a*a`相当于`a = a + (a - a * a)`,当a为3时,a最终变为0。
15. `%`(取模)运算符的优先级最高。
16. `i---i`相当于`i--; --i;`,如果i为3,最后i为1。
17. `a+++b+++c++`会先执行`a++`,然后是`b++`,最后是`c++`,所以结果是8。
18. 表达式`x=1,y=x+3`是不合法的,因为它试图在一个表达式中同时赋值和返回值,正确的写法应该是`x=1; y=x+3;`。
这些题目涵盖了C语言的基本概念,包括数据类型、运算符、控制结构、输入输出以及字符串处理等方面,对于理解和掌握C语言的基础知识非常有帮助。
2022-06-15 上传
109 浏览量
2014-05-23 上传
2012-11-20 上传
2009-12-28 上传
点击了解资源详情
2024-11-06 上传