给出以下定义:char a[]=″abc″;char b[]={′a′,′b′,′c′};则正确的叙述是()A、数组a和数组b等价B、数组a和数组b的长度相同C、数组a的长度大于数组b的长度D、数组a的长度小于数组b的长度

题目

给出以下定义:char a[]=″abc″;char b[]={′a′,′b′,′c′};则正确的叙述是()

  • A、数组a和数组b等价
  • B、数组a和数组b的长度相同
  • C、数组a的长度大于数组b的长度
  • D、数组a的长度小于数组b的长度
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

已有定义:char a[]="xyz",b[]={′x′,′y′,′z′};,以下叙述中正确的是( )。A)数组a和b的长度相同 B)a数组长度小于b数组长度C)a数组长度大于b数组长度 D)上述说法都不对


正确答案:C
数组a占4个字节,数组b占3个字节。所以数组a长度大于b长度。

第2题:

对两个数组a和b进行下列初始化: char m[]="1234567"; char n[]={'1','2','3','4','5','6','7'}; 则下列叙述正确的是( )。

A.数组m与数组n完全相同

B.数组m与数组n长度相同

C.数组m比数组n长1

D.数组m与数组n中都存放字符串


正确答案:C
解析: 本题考查字符数组和字符串赋值给数组的一些区别。语句“char m[]="1234567";”定义了一个字符型数组并进行了初始化,C语言规定,在字符串的末尾自动加上串结束标记'\0',因此数组m的长度是8;而数组n是按照字符方式对数组进行初始化,系统不会自动加上串结束标记'\0',因此数组n的长度是7。

第3题:

设有如下定义charx[]={“abcdefg”};chary[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};则正确的叙述为()

A、数组x和y等价

B、数组x和y的长度相同

C、数组x的长度大于数组y的长度

D、数组x的长度小于数组y的长度


参考答案:C

第4题:

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

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

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

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

D.上述说法都不对


正确答案:C
解析:a数组是字符串,系统会自动地给它加一个结束标志符'\0',因此a的长度就变为4了,所以a数组比b数组长。

第5题:

假定一个字符数组的定义为“char a[]="12345";",则该字符数组的长度为_____


参考答案6

第6题:

已有定义: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。

第7题:

若有以下语句,则正确的描述是

char a[]="toyou";

char b[]={′t′,′o′,′y′,′o′,′u′};

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

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

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

D.a数组等价于b数组


正确答案:C

第8题:

若有语句:taticcharx[]=”12345″;staticchary[]={‘1′,’2′,’3′,’4′,’5’};则下面那一个是正确的描述。()

A.x数组和y数组的长度相同

B.x数组长度大于y数组长度

C.x数组长度小于y数组长度

D.x数组等价于y数组


参考答案:B

第9题:

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

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

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

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

D.以述说法都不对


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

第10题:

若有C语言语句“char r1[]="abcd",r2[]={'a','b','c','d'}”,则下列说法正确的是______。

A.数组r1和数组r2存放相同的字符串

B.数组r1和数组r2的长度相同

C.数组r1的长度小于数组r2的长度

D.数组r1的长度大于数组r2的长度


正确答案:D
解析:其实这道题所考查的知识点是大多数人在编写程序时常犯的一个错误。很多人觉得r1和r2只是赋值形式不同,其结果一致。这种想法是错误的,r1的初值是一个字符串,所以系统会自动为其加上一个字符串结束符'\0',因此r1的长度为5,而r2的长度为4。注意,这里比较的是数组r1和r2的大小(长度),而不是存储在其中的字符串的有效长度。由于r2没有结束字符'\0',因此strlen(r2)输出不定,不是预期的4,一般输出的是8,依具体机器而定。利用sizeof运算符可以计算出r1、r2的长度,sizeof(r1)输出的是5,sizeof(r2)则输出4,表示r1、r2分别占5、4个字节的内存空间。

更多相关问题