更多“已有定义:.char a[]="xyz",b[]={'x','y','z');,以下叙述中正确的是A.数组a和b的长度相同B.n数组 ”相关问题
  • 第1题:

    已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是 ______。

    A.数组a和b的长度相同

    B.a数组长度小于b数组长度

    C.a数组长度大于b数组长度

    D.上述说法都不对


    正确答案:C
    解析:C语言规定'\0'为字符串结束标志。所以“char a[]="xyz"”的数组长度为4,而“b[]={'x','y','z'};”的数组长度为l数组长度与strlen函数所求的长度不同,本题是指数组占内存空间的大小。

  • 第2题:

    已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是( )。

    A.数组a和b的长度相同

    B.a数组长度小于b数组长度

    C.a数组长度大于b数组长度

    D.以述说法都不对


    正确答案:C
    解析:对字符型一维数组在定义时初始化,既可以使用初始化列表,也可以使用字符串常量。不过由于字符串常量会自动在结尾添加'\0',字符做结束标志,所以用字符串常量的初始化列表项个数是字符串的长度加1。因此题目中的chara[]="xyz";等价于chara[]={'x','y','z','\0');,所以a数组长度大于b数组长度,应该选C。

  • 第3题:

    已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是

    A.数组a和b的长度相同

    B.a数组长度小于b数组长度

    C.a数组长度大于b数组长度

    D.上述说法都不对


    正确答案:C
    解析:a数组存放的是字符串,系统会自动在字符串的最后加上一个“\0”,所以a数组的长度为4,而b数组的长度为3,故a数组长度大于b数组长度。

  • 第4题:

    已有定义:chara[]="xyz",b[]:{'x','y','z'};以下叙述中正确的是( )。

    A.数组a和b的长度相同

    B.a数组长度小于b数组长度

    C.a数组长度大于b数组长度

    D.上述说法都不对


    正确答案:C
    解析:数组长度是指数组占内存空间的大小,即字节数,它与sfflen函数所求的长度不同。对于chara[]="xyz",系统自动为其增加一个串结束符,'\0',所以a数组的长度为4;对于b[]={'x','y','z'},系统不会为其增加串结束符'\0',因此数组长度为3,故a数组长度大于b数组长度。

  • 第5题:

    已有定义:char a[]="xyz",b[]={'x','y','z'};,下列叙述中正确的是( )。

    A.数组a和b的长度相同

    B.a数组长度小于b数组长度

    C.a数组长度大于b数组长度

    D.上述三种说法都不对


    正确答案:A
    解析:字符数组a[]中用字符串常量“xyz”进行初始化,字符数组a[]的长度为字符的个数,所以其值为3,并不包括字符串结束标记'\0';字符串数组b[]用3个字符 'x'、'y'、'z'来初始化,所以其字符串的长度等于3。