有以下程序: #include <stdio.h> #include <string.h> main( ) { char p[] = {’a’,’b’,’c’] ,q[10] = {’a’,’h’,’c’} prinff( "% d % d\n

admin2009-01-15  21

问题 有以下程序: #include <stdio.h> #include <string.h> main( ) {  char p[] = {’a’,’b’,’c’] ,q[10] = {’a’,’h’,’c’}      prinff( "% d % d\n" , strlen (p) , strlen (q) );以下叙述中正确的是(    )。

选项 A、在给p和q数组赋初值时,系统会自动添加字符串结束符,故输出的长度都为3
B、由于P数组中没有字符串结束符,长度不能确定;q数组中字符串长度为3
C、由于q数组中没有字符串结束符,长度不能确定;p数组中字符长度为3
D、由于p和q数组中没有字符串结束符,故长度都不能确定

答案2

解析 strlen函数用于计算以,’\0’结束的字符串的长度,函数值为字符串的实际长度,长度中不包括,’\0’。q数组定义的数组大小为10,而初始化时字符串只占用了前3个存储单元,其余存储单元系统自动加’\0’,故数组q的长度为3;而p数组定义时没有指定大小,其大小根据初始化所赋值确定为3,没有字符串结束符,故字符串的长度不能确定。
转载请注明原文地址:https://jikaoti.com/ti/MkK0FFFM
0

最新回复(0)