📌  相关文章
📜  门| Sudo GATE 2020 Mock I(2019 年 12 月 27 日)|第 62 题

📅  最后修改于: 2021-09-24 06:40:23             🧑  作者: Mango

考虑以下 C 程序:

#include 
#include 
  
void geek1(char *s1, char *s2) {
    char *temp;
    temp = s1;
    s1 = s2;
    s2 = temp;
}
void geek2(char **s1, char **s2) {
    char *temp;
    temp = *s1;
    *s1 = *s2;
    *s2 = temp;
}
int main() {
    char *str1 = "for geek", *str2 = "by geek";
    geek1(str1, str2);
    printf("%s %s", str1, str2);
    geek2(&str1, &str2);
    printf(" %d", (int) strlen(str1));
    return 0;
}

最后 printf 将打印 _______________ 。
(一) 2
(乙) 7
(三) 3
(D)这些都不是答案:(乙)
说明:第一个函数geek1 不会交换字符串,所以第一个打印是 geek by geek。
现在,函数geek2 将交换字符串,而 strlen(str1) 将返回字符串“by geek”的长度,即7

选项(B)是正确的。
这个问题的测验