有两个字符数组a和b则以下正确的输入语句是
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/16 04:51:23
答案是D.A项,由于a[5]已经超出数组外了,所以*&a[5]不是数组元素.B项,a+2是a[2]的地址,不是数组元素.C项,*(p+5)相当于a[5],已经超出数组范围,不是数组元素.D项,正确,*
只有D一个对的AC超出数组范围B是地址
CA,gets后面只能跟1个变量B,scanf输入字符串时字符串名就是地址,不用再寻址D,把引号去掉就对了
刚为你完成的.希望采纳.#includeintmain(){inta[10],n;printf("输入a[10]数据:\n");for(inti=0;i10)printf("B不是A得子集\n");e
C语言中:%s格式控制串表示输入字符(String),在C语言中字符串是按一个个字符分别存放到数组的每个元素当中.-A选项错误的原因是出现两个%s字符串输入.B是正确的,gets()函数是string
#includeusingnamespacestd;voidmain(){inta[10],b[10],i,sum=0;cout
显然是c嘛!再问:要的是解释过程,吼吼再答:题目中定义的是整型的二维数组,和一维数组是一样的约束,如intX[2],该数组有两个元素:X[0]和X[1],而没有X[2]。所以第二个中括弧中的数字大于等
这里所说的不能加减是指这样:a=p+2;这种形式的,而不是图上那种.举个简单的例子:constinta=2;a是一个常量,你不能改变其值.但是intb=a+2是正确的.指针同样理解.再问:你的意思是不
你可以把二维数组想象成一个矩阵,所以上面的这个数组的意思就是:定义了一个五行四列的矩阵,又下标是从0开始计算的.所以最大的下标元素只能到[4][3]
其实是D以上说法都不对因为b没有结束符\0因此xyz后面的是未知随机的而b的长度是从xyz一直到\0位置如果xyz后面正好是\0那么a和b一样长如果不是\0那么b比a长自然b更不可能比a短再问:您好,
选BAp本身就是数组c的首地址了,再对它取地址没有语法错误,但是也没有实际意义Bp+3是c[3]的地址,*(p+3)就是c[3]Cc[5]数组下标越界Dc也是数组c的首地址,同A
数组a和b的长度不同再问:我知道长度不同。但是选项没有输全。9.已有定义:chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是A)数组a和b的长度相同B)a数组长度小于
C是对的A的那个4已经超出范围了B,没有这种写法D不能用圆括号,只能用方括号
#includevoidmain(){chara,b;intresult;printf("输入两个字符:\n");scanf("%c\n%c",&a,&b);result=a-'0'+b-'0';pr
指针变量pt指向a数组!*pt相当于a[0];*(pt+1)相当于a[1];*(pt+1)[2]相当于*(pt+3);*(pt+3)等价于a[3];显然a[3]不存在!所以选项B非法!
选C.p的类型是int(*)[3],是指针的指针.C选项相当于p[1][1].B选项错,它相当于p[2][1],数组的第一个坐标越界了.
答案是对的.再问:c选项为什么是错的?再答:因为超出范围了最多*(pt+9)如图:看看你*(pt+10)结果是多少?
前面b=a不是指针指向a,数组和指针是有区别的,数组是栈,是不能直接用=来拷贝的,即使a和b都是指针,也不能这样直接等过去,因为那样就会像你所说的那样,两者同时指到同一个位置,不是真正拷贝过去如果是结
[1]是b[1][0]的地址,不是元素b[0][3],3超过界限2b[2][2]第一个2超界限b[1][1]正确b【2】【3】,元素范围b[0][0]-b[1][2]
6个后面有结束符\0也算一个再问:答案是5个再答:它问几个元素,相同的元素算一个,所以是5,问长度的话就是6.