对两个数组a和b进行如下初始化: char a[] = “ABCDEF”; char b[] = {‘A’,‘B’,‘C’,‘D’,‘E’,‘F

作者&投稿:严媛 (若有异议请与网页底部的电邮联系)
对两个数组a和b进行如下初始化 char a[]="Goodbye"; char b[]={'G','o','o','d','b','y',~

D a数组存的是字符串 结尾有一个/0所以比b数组长一个字节

a数组这样赋值会在结尾多一个结束符'\0'
b数组没有结束符,即'\0'
所以A和B都不对
因为b没有结束符,所以不能叫字符串,所以C也不对

答案是D,a数组比b数组长度长

原因:a数组的长度是6,b数组的长度是7。

在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串总是以'\0'作为串的结束符。


扩展资料:

初始化器在C/C99/C++中,初始化器是声明器的可选部分,它由一个'='以及其后的一个表达式(或含有多个以','隔开的带圆括号表达式的单一列表)所组成。

详细说明:

把一个字符串赋值给数组:u4 str1[]={"cxknmsl"};

实际上数组str1在内存中的实际存放情况为: c x k n m s l '\0' 

这后面的'\0'是由C编译系统自动加上的。所以在用字符串赋初值时一般无须指定数组的长度, 而由系统自行处理。 

把字符数组str1中的字符串拷贝到字符数组str2中,串结束标志'\0'也一同拷贝。



楼主首先要明白的是什么是长度。数组元素的个数称之为数组的长度。
现在再看看问题 第一个是 字符串,第二个是字符数组 ,字符串以'\0'为结束符号,字符数组不用。
那就很明白了。B 对。
要说明的是,虽然他们长度相同,不过占的内存字节数是不一样的,第一个占7个字节(后面的'\0'占一个。)第二个占6个字节。

"ABCDEF”;是字符串,字符串默认是有字符串结束符的。
所以选d

要不这样理解吧
首先a作为字符串长度为6;
作为字符数组有7个元素,包含\0,a数组的长度为7;
b是字符数组有6个元素,不是字符串,b数组的长度为6;
选D

#include<stdio>
void main()
{
int m,n;
char a[]="ABCDEF";
char b[]={'A','B','C','D','E','F'};
m=sizeof(a);
n=sizeof(b);
printf("a 所占字节数 %d,b 所占字节数 %d\n",m,n);
}
所以选D


有两个一维数组a和b(元素不超过一百个)中的元素已经按升序排列,用c...
c[k++] = a[i++];} else { c[k++] = b[j++];} } while(i < la){ c[k++] = a[i++];} while(j < lb){ c[k++] = b[j++];} } void main(){ int a[] = {1, 2, 2, 3, 4, 5};int b[] = {2, 3, 5, 5, 7};int la = 6;int lb = 5;int lc...

如何将两个数组的元素建立起对应关系
(1) 第一种方法:就是打乱a的顺序的时候 ,也打乱b的顺序,使用相同的方法,也就是a和b的一起变化 这样两者还是以下标对应的。(2) 使用结构体数组,将b修改为结构体数组,其成员有两个:value也就是b元素原来的值,index对应的a中数组元素的下标。这样当我们打乱a数组的元素的时候,修改b中对应...

用C#比较大小为10的两个数组a和b,看是否有相同的数
\/\/遍历数组元素来判断,使用List<T>或ArrayList辅助 int[] array1 = new int[] { 7, 4, 7, 1, 4, 1, 5, 2, 5 };ArrayList list1 = new ArrayList(); \/\/储存去重后剩余的元素 ArrayList list2 = new ArrayList(); \/\/储存重复的元素 for (int i = 0; i < array1.Length; i+...

有两个数组a,b,大小都为n,数组元素的值任意,无序; 要求:通过交换a,b...
编写一个比较器,该比较器类从ICompare继承,实现compare()函数,然后直接调用sort方法就可以了,将这个比较器的实例作为sort的参数传入。

...放入到a与b变量中去如果a》=b就将a与b进行交换,否则不交换,目的就...
int temp=b;b=a;a=temp;} System.out.println(a);} 第二种:使用加减法进行交换,这种方法你可以自己证明下 public static void main(String[] args){ int a= 2;int b=3;if(a>=b){ a=a+b;b=a-b;a=a-b;} System.out.println(a);} 第三种,使用异或运算 public static void ...

c++ 编写一个程序,要求输入两个数a和b,计算出a和b的和,差,积,并输出...
int main(void){int a, b;printf("请输入第一个整数\\n");scanf("%d", &a);printf("请输入第二个整数(注意!这个数不能为零)\\n");scanf("%d", &b);while (b==0){printf("你输入了零!请重新输入!\\n");scanf("%d", &b);if (b!=0) break;}printf("%d+%d=%d\\n", a...

计算两个数之间所有自然数的和,适用循环结构
计算两个数之间所有自然数的和,适用循环结构的回答如下:假设我们要计算的两个数是a和b,其中a < b。初始化一个变量sum为0,用来存储自然数的和。使用循环结构,从a开始循环到b,每次循环将当前的数字加到sum中。循环结束后,sum就是a和b之间所有自然数的和。具体步骤如下:初始化sum为0。当a <...

数组a和数组b分别放入an+1和bn+1个由小到大的有序数,把这两个数组的数...
include<stdio.h> void main(){ int a[10]={1,2,5,8,9,10},an=5;int b[10]={1,3,4,8,12,18},bn=5;int i,j,k,c[20],max=9999;a[an+1]=b[bn+1]=max;i=j=k=0;while((a[i]!=max)||(b[j]!=max))if(a[i]<b[j]){c[k]=a[i];k++;i++;} else{c[...

c语言输入两个两位数的整数a、b,将a、b合并形成一个整数放在c中。
int num2_1=num2%10;\/*用来保存第二个数num2个位上的数*\/ int result;\/*保存合并后的结果*\/ result=num1_10*1000+num2_1*100+num1_1*10+num2_10;return result;}\/*返回两数合并后的结果,由result返回其值*\/ void main(){ int num1,num2;printf("请输入两个数(中间用逗号隔开):...

已知两个自然数a和b(a>b),已知a和b除以13的余数分别是5和9,求a+b...
同余运算与加、减、乘运算可以交换次序,因此 a+b 除以13的余数=5+9除以13的余数,也就是 1 ,a-b 除以13的余数=5-9除以13的余数,也就是 9 ,ab 除以13的余数=5*9除以13的余数,也就是 6 ,a^2-b^2除以13的余数=(a+b)*(a-b)除以13的余数=1*9除以13的余数,也就是 9 。5...

玄武区19184792751: C语言程序设计的题目10.对两个数组a和b进行如下初始化char a[]=“ABCDEF”; char b[]={ 'A','B','C','D','E','F'};则以下叙述正确的是 .... -
卞茜慢肝:[答案] A错,因为a数组初始化时用了双引号,所以a中保存了一个字符串,即a数组中有7个元素,除了这些字母之外,还有一个'\0' B错,参考A C错,a数组初始化时用双引号,所以a中保存了一个字符串,b数组中将保存了6个字符. D对,参考A

玄武区19184792751: 对两个数组a和b进行如下初始化 char a[]="Goodbye"; char b[]={'G','o','o','d','b','y', -
卞茜慢肝: D a数组存的是字符串 结尾有一个/0所以比b数组长一个字节

玄武区19184792751: 对两个数组a和b进行如下初始化: char a[ ]="you"; char b[ ]={'y','o','u'};则下列叙述正确的是( -
卞茜慢肝: a数组存放的是字符串系统自动在最后加'\0'结束符,所以比b长

玄武区19184792751: 对数组A 和 B 进行如下初始化 -
卞茜慢肝: A 原因是:字符串A的后面系统会自动加上'\0',所以长度会变成7 B的长度是6

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网