程序填空题:大小写字母转换
大小写字母转换。以下程序段A和B的功能都是:将字符串中的小写字母全部转换成大写字母,大写字母全部转换成小写字母,其他字符不变。
```c++
/* 程序段A */
int k;
char str1[81];
k = 0;
while (str1[k] != '\0') {
if (str1[k] >= 'a' && str1[k] <= 'z'){
@@[str1[k] = str1[k]-'a'+'A';](1)
}
else if (str1[k] >= 'A' && str1[k] <= 'Z'){
@@[str1[k] = str1[k]-'A'+'a';](1)
}
k++;
}
```
```c++
/* 程序段B */
int k;
char str1[81], str2[81];
k = 0;
while (str1[k]!='\0') {
if (str1[k]>='a' && str1[k]<='z'){
@@[str2[k] = str1[k]-'a'+'A';](1)
}
else if (str1[k]>='A' && str1[k]<='Z'){
@@[str2[k] = str1[k]-'A'+'a';](1)
}
else{
@@[str2[k] = str1[k];](1)
}
k++;
}
@@[str2[k] = '\0';](1)
```
答案:
第1空:str1[k] = str1[k]-'a'+'A';
第2空:str1[k] = str1[k]-'A'+'a';
第3空:str2[k] = str1[k]-'a'+'A';
第4空:str2[k] = str1[k]-'A'+'a';
第5空:str2[k] = str1[k];
第6空:str2[k] = '\0';
```c++
/* 程序段A */
int k;
char str1[81];
k = 0;
while (str1[k] != '\0') {
if (str1[k] >= 'a' && str1[k] <= 'z'){
@@[str1[k] = str1[k]-'a'+'A';](1)
}
else if (str1[k] >= 'A' && str1[k] <= 'Z'){
@@[str1[k] = str1[k]-'A'+'a';](1)
}
k++;
}
```
```c++
/* 程序段B */
int k;
char str1[81], str2[81];
k = 0;
while (str1[k]!='\0') {
if (str1[k]>='a' && str1[k]<='z'){
@@[str2[k] = str1[k]-'a'+'A';](1)
}
else if (str1[k]>='A' && str1[k]<='Z'){
@@[str2[k] = str1[k]-'A'+'a';](1)
}
else{
@@[str2[k] = str1[k];](1)
}
k++;
}
@@[str2[k] = '\0';](1)
```
答案:
第1空:str1[k] = str1[k]-'a'+'A';
第2空:str1[k] = str1[k]-'A'+'a';
第3空:str2[k] = str1[k]-'a'+'A';
第4空:str2[k] = str1[k]-'A'+'a';
第5空:str2[k] = str1[k];
第6空:str2[k] = '\0';