数据结构牛客

24/4/16

1.

数组作为函数参数传递的是数组的首地址

2.

设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为(     )。

由于是对称矩阵,因此压缩存储可以认为只要存储下三角矩阵。

(1,1)                                                   1

(2,1) (2,2)                                           2

(3,1) (3,2) (3,3)                                  3

(4,1) (4,2) (4,3) (4,4)                          4

(5,1) (5,2) (5,3) (5,4) (5,5)                  5 

(6,1) (6,2) (6,3) (6,4) (6,5) (6,6)          6

(7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7) 7 

(8,1) (8,2) (8,3) (8,4) (8,5) 5

1+2+3+4+5+6+7+5=33

3.

以下正确定义一维数组的选项是(   )

A.  int a[5] = {0, 1, 2, 3, 4, 5};    B.  char a[] = {0, 1, 2, 3, 4, 5};

C.  char a = {'A', 'B', 'C'};           D.  int a[5] = "0123";

【A选择:】数组越界。所以错误。 【B选择:】声明char类型,传入了数值数组,而数值会以char类型的ASCII编码写入。所以正确。【C选择:】 数组声没明显不符合规范,左侧声明名后应加上[]。所以错误。 【D选择】:这种声名只能用字符型char等。所以错误。

4.

循环队列SQ的存储空间是数组d[m],队头、队尾指针分别是front和rear,则执行出队后其头指针front值是()

循环队列:m为数组容量

进队:队尾指针(rear+1)%m        出队:对头指针(front+1)%m

24/5/16        数组

1.数组与列表的区别

前者长度固定,后者长度不变

2.假设要存储一个数据集,数据维持有序,对其的操作只有插入、删除和顺序遍历,综合存储效率和运行速度,下列哪种数据结构是最适合的是?

链表

数组插入、删除需要移动数组元素,平均移动n/2 哈希表难以实现顺序遍历 队列插入删除效率低下

3.

合法的数组说明语句是(  )

A . int a[] = "string";        B . int a[5] = {0.1, 2, 3, 4};       

C . char a = "string ";        D . char a[] = {0, 1, 2, 3, 4, 5};

D中的是字符,并不是阿拉伯数字

4.声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()

A . (int *p[10])(int*)        B . int [10]*p(int *)

C . int (*(*p)[10])(int *)        D . int ((int *)[10])*p        E . 以上选项都不正确

C.   首先题目说要声明一个数组指针,  一般我们想到的数组指针是 随便来一个 int(*p)[10],    然后又说每个元素是一个函数指针,那么我们随便来一个 函数指针  int (*pf)(int *) . 然后把(*p)[10]作为一个整体替代 pf     即   int(*(*p)[10]))(int *);    分析: 判断一个复杂式子看最高优先级的,*p是一个指针,然后(*p)外面是[],所以是数组指针,(*p)[10])描述完毕,然后再看外面int(*)(int *)很明显,这是一个函数指针,所以这个数组中每个元素是函数指针

  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值