问题
单项选择题
有以下程序:
#include<stdio.h>
#include<string.h>
main()
char p[]='a', 'b', 'c', q[10]='a', 'b', 'c';
printf("%d%d\n ", strlen(p), strlen(q) );
以下叙述中正确的是( )。
A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3
C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3
D) 由于p和q数组中都没有字符串结束符,故长度都不能确定
答案
参考答案:B
解析: p数组内有3个元素,没有字符串结束标志,所以长度不确定,q字符数组只对部分元素赋值,其余元素则自动赋值为0,所以长度为3。