有以下程序: #include main() { char str[12]={’s’,’t’,’r’,’I’,’n’,’g’}; printf("%d\n",strlen(str)); } 程序运行后

admin2016-04-07  20

问题 有以下程序:
    #include
    main()
    {
    char str[12]={’s’,’t’,’r’,’I’,’n’,’g’};
    printf("%d\n",strlen(str));
    }
    程序运行后的输出结果是(    )。

选项 A、6
B、7
C、1 1
D、12

答案A

解析 数组初始化时,如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,而只依次给前面的几个数组元素赋予初值,那么C语言将自动对余下的元素赋初值,如果为字符数组,自动赋值“\0”,即str[12]={’s’,’t’,’r’,’i’,’n’,’g’,’\0’,’\0’,’\0’,’\0’,’\0’,’\0’}。strlen函数求字符串长度,统计长度时以“\0”结束,即统计到长度为6时结束,strlen函数返回值为6,故A选项正确。
转载请注明原文地址:https://kaotiyun.com/show/skDp777K
0

最新回复(0)