niusouti.com

有以下程序includemain(){charp[]={'a','b','c'},q[10]={'a','b','c'};printf("%d%d\有以下程序 #include<string.h> main() { charp[]={'a','b','c'},q[10]={'a','b','c'}; printf("%d%d\n",strlen(p),strlen(q));} 以下叙述中正确的是A.在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B.由于p数组中没有字符串结束符,长度

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

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


相似考题
更多“有以下程序#include<string.h>main(){charp[]={'a','b','c'},q[10]={'a','b','c'};printf("%d%d\ ”相关问题
  • 第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题:

    有以下程序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。

  • 第3题:

    有以下程序: include main() { char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde"

    有以下程序: #include <string.h> main() { char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde"; strcat(p,r); strcpy(p+strlen(q),q); printf("%d\n",strlen(p)); } 程序运行后的输出结果是( )。

    A.9

    B.6

    C.11

    D.7


    正确答案:B
    解析:本题首先定义了3个字符数组p、q、r并分别被初始化。数组p指定的大小为20,初始化列表为{'a','b','c','d'},即只指定了前4个元素的内容,根据C语言的规定,初始化列表不足时,其余元素均自动初始化为0。然后通过strcat()函数,将字符串,连接到字符串p之后,即执行后p中的内容为"abcdabcde"。因为“strlen(q)”表示求字符串q的长度,很明显为3,所以语句“strcpy(p+strlen(q),q);”的作用就是:将字符串q拷贝到数组p的第3个元素位置处。注意,strcpy函数拷贝字符串会将其结束标志位一起拷贝,故拷贝完后p中的内容为”ababc\0de",但通过strlen函数取p的长度碰到'\0\即停止,故p中字符串的长度是6,应该选择B。

  • 第4题:

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

    有以下程序:#include <stdio.h>main( ){ char P[] = {'a','b','c'} ,q[]: "abc"; printf( "% d % d \ n", sizeof(p), sizeof(q) );}程序运行后的输出结果是( )。

    A.44

    B.33

    C.34

    D.43


    正确答案:C
    解析:sizeof运算符是计算变量或数组所分配到的内存空间的大小,p[]={'a','b','c'}使数组的长度等于字符的个数3;q[]="abc"使数组的长度等于字符个数加上1个串结束符,'\0',共4个字符,其中,'\0',占用一个存储空间。故本题的输出结果是34。

  • 第5题:

    有以下程序: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。