数组 题目

1.

数组通常具有的两种基本操作是查找和修改 

2.

已知数组D的定义是int D[4][8];,现在需要把这个数组作为实参传递给一个函数进行处理。下列说明汇总可以作为对应的形参变量说明的是()。

int D[4][]
int *s[8]
int(*s)[8]
int D[][8]
C,D

int *s[8]; //定义一个指针数组,该数组中每个元素是一个指针,每个指针指向哪里就需要程序中后续再定义了。 
int (*s)[8]; //定义一个数组指针,该指针指向含8个元素的一维数组(数组中每个元素是int型)。 

区分int *p[n]; 和int (*p)[n]; 就要看运算符的优先级了。 
int *p[n]; 中,运算符[ ]优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组。 
int (*p)[n]; 中( )优先级高,首先说明p是一个指针,指向一个整型的一维数组。


数组作为实参时必须指定列数,否则可能产生歧义,所以D正确
C是数组指针,每个都指向对应的数组的每列


3.

下列说法正确的是(1,2,4)

二维以上的数组其实是一种特殊的广义表
数组一旦建立,结构的元素个数和元素间的关系就不再变化

数组是一种线性结构,因此只能用来存储线性表

数组采用顺序存储方式表示
 
C错在我们需要区分数据的物理结构与逻辑结构。物理结构主要是指存储方式,包含线性存储与链式存储,它是从计算机存储的角度去考虑。逻辑结构指的是数据之间的关系,有线性关系和链式关系等,主要是从人为定义角度去考虑。数组是一种被人们定义为线性关系的表,至于其存储结构,可以用线性存储也可以是链式存储去存储



4.
选项代码中能正确操作数组元素的是()

 
 
int main(){
   int a[N][N]={{0,0},{0,0}};
   for ( int i=0;i<N;i++){
      for ( int j=0;j<N;j++){
        //访问二维数组a的值
        //选项代码
       }
     }
}

 
 
*(*(a+i)+j)=1
*(a[i]+j)=1
数组名当被直接使用时,是一个指向数组首地址的指针。如果数组是多维数组,那么数组名是指向第一行数组的首地址,而不是第一行第一列单个元素的地址,所以*(a+i)与a[i]是一个意思,当直接用a[i]时代表的是该一维数组的首地址,所以*(a[i]+j)是与a[i][j]等效,所以AB选项正确 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值