【C++]两个题不会
第一题:若有定义“floata[m][n];",且a[1][1]的地址为x,每个float元素占用4个字节,则a[i][j]的地址为()A.x+4*(i-1)*n+4*(...
第一题:若有定义“float a[m][n];",且a[1][1]的地址为x,每个float元素占用4个字节,则a[i][j]的地址为( )
A.x+4*(i-1)*n+4*(j-1)
B.x+(i-1)*n+(j-1)
C.x+4*(i-1)*j+(j-1)
D.x+4*i*j+4*j
答案是A
第二题:以下程序的输出结果是( )
cout<<strlen("china\012\1\0\\");
A.11 B,7 C,9 D.8
答案是B
求大神给个过程,本人新手 展开
A.x+4*(i-1)*n+4*(j-1)
B.x+(i-1)*n+(j-1)
C.x+4*(i-1)*j+(j-1)
D.x+4*i*j+4*j
答案是A
第二题:以下程序的输出结果是( )
cout<<strlen("china\012\1\0\\");
A.11 B,7 C,9 D.8
答案是B
求大神给个过程,本人新手 展开
2个回答
展开全部
第一题:首先求a[0][0]的地址,假设a[0][0]的地址为y,那么一行有n个元素,到a[1][1]就需要加n*4+4=x,就得到了a[0][0]的地址为x-n*4-4
接着就可以求任意位置的地址了,为a[0][0]+i*n*4+j*4=x-n*4-4+i*n*4+j*4,也接是A选项
第二题,这里需要知道一点,字符串需要'\0'结束,这个字符串中'\012'是一个转义字符,字符串长度函数strlen统计到'\0'为止,不包含'\0',所以统计的长度为7
接着就可以求任意位置的地址了,为a[0][0]+i*n*4+j*4=x-n*4-4+i*n*4+j*4,也接是A选项
第二题,这里需要知道一点,字符串需要'\0'结束,这个字符串中'\012'是一个转义字符,字符串长度函数strlen统计到'\0'为止,不包含'\0',所以统计的长度为7
展开全部
一。1.首先看纵向a[i][j]和a[1][1]差了有i-1行,每行有n个元素,所以1行的地址相差4*n,i-1行就是4*(i-1)*n。
2.看横向差了j-1个元素,每个元素4个字节,就是4*(j-1),所以总共相差4*(i-1)*n+4*(j-1)
二.strlen遇到'\0'就结束,‘\0’不算入长度,c h i n a \012 \1 有七个元素,注意\012 是一个元素,\1也是一个元素,所以\0之前有七个
2.看横向差了j-1个元素,每个元素4个字节,就是4*(j-1),所以总共相差4*(i-1)*n+4*(j-1)
二.strlen遇到'\0'就结束,‘\0’不算入长度,c h i n a \012 \1 有七个元素,注意\012 是一个元素,\1也是一个元素,所以\0之前有七个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询