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;
}
}