试题与答案

有以下程序:#include main() { charp[]={''a'',''

题型:单项选择题

题目:

有以下程序:#include main() { charp[]={''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

解析:strlen 是计算以“\0”结束的字符串的长度的函数,函数的值为字符串中实际长度,不包括“\0”。 题中“q[10]={'a','b','c'}”虽然给出了数组大小,即数组实际分配的存储空间,但此字符串只占用前 3 个存 储单元,其余存储单元系统自动加上“\0”,故数组 q 的长度为 3;由于 p 数组中没有字符串结束符,故字 符串的长度不能确定。

试题推荐
微信公众账号搜索答案