天天看點

動态數組題

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<y) {
		if (a[x]%2==0&&a[y]%2==1) {
			x++;
			y--;
		}else if (a[x]%2==0&&a[y]%2==0) {
			x++;
		}else if(a[x]==1&&a[y]%2==1) {
			y--;
		}else  {
		int conut=a[x];
		a[x]=a[y];
		a[y]=conut;
		x++;
		y--;
		}
	}
	return a;
}
           

}

繼續閱讀