📅  最后修改于: 2023-12-03 15:26:04.211000             🧑  作者: Mango
若有一字符串str
= 'CSEstack', 则执行以下程序段
int i,j;
char temp;
for(i=0, j=strlen(str)-1; i<j; i++,j--)
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
之后,str
的值为______。
(A)CSEstkcatS
(B)catSstackCSE
(C)ketascSSEC
(D)kcatsESC
此程序段的作用是将字符串 str
倒序。程序中的 strlen(str)
会返回字符串 str
的长度。strlen(str)-1
即为字符串最后一个字符所在的下标。
程序使用两个变量 i
和 j
分别记录字符串 str
的第一个字符和最后一个字符,通过 i
和 j
的递增与递减,依次交换字符串 str
中的字符,从而实现字符串反转。在交换字符的过程中,中间变量 temp
被用于暂时存储待交换的字符。
因此,执行完该程序段后,字符串 str
的值为 kcatsESC
。因此,答案为选项 (D)。
# UGC NET CS 2017 年 1 月至 2 日
## 问题 21
### 题目描述:
若有一字符串`str` = 'CSEstack', 则执行以下程序段
int i,j; char temp; for(i=0, j=strlen(str)-1; i<j; i++,j--) { temp = str[i]; str[i] = str[j]; str[j] = temp; }
之后,`str`的值为______。
(A)`CSEstkcatS`
(B)`catSstackCSE`
(C)`ketascSSEC`
(D)`kcatsESC`
### 答案解析:
此程序段的作用是将字符串 `str` 倒序。程序中的 `strlen(str)` 会返回字符串 `str` 的长度。`strlen(str)-1` 即为字符串最后一个字符所在的下标。
程序使用两个变量 `i` 和 `j` 分别记录字符串 `str` 的第一个字符和最后一个字符,通过 `i` 和 `j` 的递增与递减,依次交换字符串 `str` 中的字符,从而实现字符串反转。在交换字符的过程中,中间变量 `temp` 被用于暂时存储待交换的字符。
因此,执行完该程序段后,字符串 `str` 的值为 `kcatsESC`。因此,答案为选项 (D)。