白卡纸和单铜纸:求救,帮帮忙!!!

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 06:00:20
?(41)有以下程序
?? #include
?? 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[]没有字符的结束符,因为字符串结束时应该有"\0"但是这个没有.所以不确定.而q[10]就是一个字符的数组,每个元素占一个字节,而strlen这个函数就测到空为止.