动态数组题

1:顺序存储结构的主要缺点是不利于插入或删除(A )
A.对
B.错
//数组适合查看更改,链表适合插入删除
2.数组不适合作为二叉树的存储结构( B)
A.对
B.错
3.长度为n的非空顺序表,若在第i个位置插入新得元素X,则i的取值范围是1<=i<=n+1,则要移动的元素个数为( D)
A.i
B.n-i-1
C.n-i
D.n-i+1
4.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度©
A:必定快
B:必定不快
C:在大部分情况下要快
D:取决于表递增还是递减
//主要看所查元素的位置
5.数组定义为“ int a [ 4 ] ; ”,表达式 (D ) 是错误的。
A:*a
B:a [ 0 ]
C:a
D:a++
//a指的是数组首地址,地址是常量,不可以自加
6.对于一维整形数组 a ,以下描述正确的是()
A:int a(10)
B:int n=10,a[n]
C:int n
scanf(“%d”, &n)
int a[n]
D:#define SIZE 10
int a[SIZE]
//定义一个数组使用[]确定其大小,[]中的值须为定制,define宏定义的值也为定值,可以用来定义数组
7.在下面的一维数组定义中,哪一个有语法错误。( c )
A:int a[]={1,2,3};
B:int a[10]={0};
C:int a[];
D:int a[5];
//声明数组得确定大小
8.循环队列SQ的存储空间是数组d[m],队头、队尾指针分别是front和rear,则执行出队后其头指针front值是( D)
A:front=front+1
B:front=(front+1)%(m-1)
C:front=(front-1)%m
D:front=(front+1)%m
//循环队列
进队:队尾指针(rear+1)%m
出队:对头指针(front+1)%m
m为数组容量
9.在C++语言中,下面关于数组的描述错误的是(C)
A:数组的名字就是指向该数组第一个元素的指针
B:长度为n的数组,下标的范围是0-n-1
C:数组的大小必须在编译时确定
D:数组可通过值参数、地址指针、引用参数三种方式传递给函数
//数组的大小也可以在运行时确定大小,即动态开辟空间
10.在以下的叙述中,正确的是(c)。
a:线性表的顺序存储结构优于链表存储结构
b:线性表的顺序存储结构适用于频繁插入/删除数据元素的情况
c:线性表的链表存储结构适用于频繁插入/删除数据元素的情况
d:线性表的链表存储结构优于顺序存储结构
//数组适合查看更改,链表适合插入删除
大题:传入一个数组,传出一个数组,前面是偶数后面是奇数:
public class shuzu {
public static void main(String[] args) {
int aa[] = {1,2,3,4,5,6,7,8};
System.out.println(Arrays.toString(sort1(aa)));
}

public static int[]sort1( int a[]) {
	int x=0;
	int y= a.length-1;
	if(a.length==1||a==null||a.length==0) {
		return a;
	} 
	while(x

}

你可能感兴趣的:(数据结构)