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

admin2019-12-17  30

问题 若有以下定义和语句:
    #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’为止,但是长度不包括结束标识。字符数组sl的后5个元素没有赋值,都为’\0’,即’’abcd!’’后为’\0’,所以strlen(s1)的值为5。字符指针s2所指向的字符串中,\n为转义字符换行符,表示1个字符,\\也为转义字符,代表\,也是1个字符,其后为字符串结束标识’\0’,所以strlen(s2)的值也为5,因此C选项正确。
转载请注明原文地址:https://kaotiyun.com/show/ZBCp777K
0

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