itgle.com

有以下程序:以下叙述中正确的是( )。A.在给P和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B.由于P数组中没有字符串结束符,长度不能确定;但q数组中字符长度为3C.由于q数组中没有字符串结束符,长度不能确定;但P数组中字符长度为3D.由于P和q数组中没有字符串结束符,故长度都不能确定

题目

有以下程序:以下叙述中正确的是( )。

A.在给P和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3

B.由于P数组中没有字符串结束符,长度不能确定;但q数组中字符长度为3

C.由于q数组中没有字符串结束符,长度不能确定;但P数组中字符长度为3

D.由于P和q数组中没有字符串结束符,故长度都不能确定


相似考题
参考答案和解析
正确答案:B
本题考查的是库函数的调用。Stden
更多“ 有以下程序:以下叙述中正确的是( )。A.在给P和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B.由于P数组中没有字符串结束符,长度不能确定;但q数组中字符长度为3C.由于q数组中没有字符串结束”相关问题
  • 第1题:

    有以下程序includemain(){char p[]={'a','b','c'},q[10]={'a','b','c'}; printf("%d%

    有以下程序 #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数组中都没有字符串结束符,故长度都不能确定


    正确答案:A
    解析:在给p和q数组赋初值时,系统会自动添加字符串结束符,从题目中可以看出数组p和q都有3个字符,所以长度均为3。

  • 第2题:

    有以下程序:include main(){charp[]={'a','b','c'},q[10]={'a','b','c'};printf("%d

    有以下程序: #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
    解析:使用初始化列表对字符数组赋初值,系统不会自动为其添加字符串结束符,使用字符串初始化时才会自动添加,所以选项A是错的。数组长度在未指定的情况下由初始化列表项中数据的个数决定,若已指定且初始化项数不足时,多出部分会自动初始化为0,0等价于宁符串结束符'\0'。所以选项B是正确的,C和D都是错误的。本题应该选B。

  • 第3题:

    有以下程序段,叙述中正确的是()。 char p[]={'a', 'b', 'c'}, q[10]={'a', 'b', 'c'}; printf("%d %dn", strlen(p), strlen(q));

    A.p中没有字符串结束符,长度不能确定;但q中有,长度为3。

    B.在给p和q置初值时,系统会添加串结束符,故输出的长度都为3。

    C.q中没有字符串结束符,长度不能确定;但p中有,长度为3。

    D.p和q数组中都没有字符串结束符,故长度都不能确定。


    C

  • 第4题:

    有以下程序includemain(){char p[]={'a','b','c',},q[10]={'a','b','c'}; printf("%d

    有以下程序 #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数组中都没有字符串结束符,故长度都不能确定


    正确答案:A
    解析:在给p和q数组赋初值时,系统会自动添加字符串结束符,从题目中可以看出数组p和q都有3个字符,所以长度均为3。

  • 第5题:

    有以下程序: include include main( ) {char p[] = {'a','b','c'] ,q[10

    有以下程序: #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数组中没有字符串结束符,故长度都不能确定


    正确答案:B
    解析:strlen函数用于计算以,'\0'结束的字符串的长度,函数值为字符串的实际长度,长度中不包括,'\0'。q数组定义的数组大小为10,而初始化时字符串只占用了前3个存储单元,其余存储单元系统自动加'\0',故数组q的长度为3;而p数组定义时没有指定大小,其大小根据初始化所赋值确定为3,没有字符串结束符,故字符串的长度不能确定。