若有以下定义和语句:  #include<stdio.h>  char s1[10]="abcd!",*s2="\n123\\";  printf("%d%d\n",strlen(s1),strlen(s2));  程序的运行结果是( )

admin2022-10-24  27

问题 若有以下定义和语句:
 #include<stdio.h>
 char s1[10]="abcd!",*s2="\n123\\";
 printf("%d%d\n",strlen(s1),strlen(s2));
 程序的运行结果是(          )。

选项 A、10 7
B、10 5
C、5 5
D、5 8

答案C

解析 strlen函数返回字符串的长度。求字符串长度时,遇到结束标识“\0”为止,但是长度不包括结束标识。字符数组s1的后5个元素没有赋值,都为“\0”,即“abcd!”后为“\0”,所以“strlen(s1)”的值为5。字符指针s2所指向的字符串中,“\n”为转义字符,代表换行符,是1个字符,“\\”也为转义字符,代表“\”,也是1个字符,其后为字符串结束标识“\0”,所以“strlen(s2)”的值也为5。故本题答案为C选项。
转载请注明原文地址:https://kaotiyun.com/show/yJkp777K
0

相关试题推荐
最新回复(0)