两道C语言的简单题目不懂~求解答~为什么选c,d特别是第十题求详细解题方法。谢啦~
2个回答
展开全部
A a是1行4列的数组,而赋值列表中有5个元素,是放不下的
B 定义二维数组的时候要求列数不能为空,而行数可以由后面的赋值列表决定,若没有赋值列表那么行数也不能为空
C b是2行3列的数组,而赋值列表中有3行(1个{}就是一行的数据),超过数组定义的行数
D 正确,相当于定义了一个1行3列的数组,y[0][0]=0,y[0][1]=0,y[0][2]=0
B 定义二维数组的时候要求列数不能为空,而行数可以由后面的赋值列表决定,若没有赋值列表那么行数也不能为空
C b是2行3列的数组,而赋值列表中有3行(1个{}就是一行的数据),超过数组定义的行数
D 正确,相当于定义了一个1行3列的数组,y[0][0]=0,y[0][1]=0,y[0][2]=0
更多追问追答
追问
谢谢,想请问一下这道题。执行以下程序段后,m的值是 ?
int a[]={2,1,3,5,4};
int m=10,k,*ptr=a; for(k=0;k<5;k++) m+=*(ptr+k);
追答
m+=*(ptr+k);等价于m=m+*(ptr+k);
*(ptr+k)实际上就是ptr指向数组a的第k个单元,即a[k]
k=0 m=m+*(ptr+0)=m+a[0]=10+2=12;
k=1 m=m+*(ptr+1)=m+a[1]=12+1=13;
k=2 m=m+*(ptr+2)=m+a[2]=13+3=16;
k=3 m=m+*(ptr+3)=m+a[3]=16+5=21;
k=4 m=m+*(ptr+4)=m+a[4]=21+4=26;
k=5 退出循环
所以程序的功能就是将m与数组a的所有元素加起来后再赋给m
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询