有以下程序 #include <stdio.h> #include <string.h> main() { char str[12] = { ’s’,’t’ , ’r’ , ’i’ , ’n’ , ’g’} ; printf("%d\n",

admin2021-06-15  19

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

选项 A、6
B、7
C、11
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/xNtp777K
0

最新回复(0)