【 Java架構師面試網】收集整理了一些Java面試的常見問題,這些問題可能會在你下一次技術面試中遇到。想成爲Java架構師,這些都是不可避免也是必需要掌握的哦,對於其餘模塊的面試題,我後續也將單獨分享面試問題和答案。成爲Java架構師的這條路道阻且艱,可是既然選擇了遠方就是選擇了風雨兼程,但願你們都能早日圓本身的架構師夢,一樣也但願我本身能夠~
網站近期在備案和遷移服務器,暫時沒法打開,先關注一波公衆號吧~
1.矩陣中的行列數能夠是不相等的,這樣的說法正確嗎?Ajava
A.正確
B.不正確面試
2.對矩陣壓縮存儲是爲了(D)算法
A.方便運算
B.方便存儲
C.提升運算速度
D.減小存儲空間數組
3.一維數組與線性表的區別是(A)。安全
A.前者長度固定,後者長度可變
B.後者長度固定,前者長度可變
C.二者長度均固定
D.二者長度都可變服務器
4.在如下的敘述中,正確的是 。 B數據結構
A.線性表的順序存儲結構優於鏈表存儲結構
B.二維數組是其數據元素爲線性表的線性表
C.棧的操做方式是先進先出
D.隊列的操做方式是先進後出架構
5.順序存儲方式插入和刪除時效率過低,所以它不如鏈式存儲方式好。 B函數
A.T
B.F網站
6.數組是一種線性結構,所以只能用來存儲線性表(B)
A.對
B.錯
**7.設有一個二維數組Am,假設A0存放位置在644(10),A2存放位置在676(10),每一個元素佔一個空間,問A[3]3存放在什麼位置? C
腳註(10)表示用10進製表示**
A.688
B.678
C.692
D.696
8.定義了一維 int 型數組 a[10] 後,下面錯誤的引用是( C )。
A.a[0] = 1;
B.a[0] = 5*2;
C.a[10] = 2;
D.a[1] = a[2] * a[0];
9.在一個長度爲n的順序表中刪除第i個元素,要移動_個元素。若是要在第i個元素前插入一個元素,要後移_個元素。 ( A )
A.n-i,n-i+1
B.n-i+1,n-i
C.n-i,n-i
D.n-i+1,n-i+1
10.已知 10*12 的二維數組 A ,以行序爲主序進行存儲,每一個元素佔 1 個存儲單元,已知 A1 的存儲地址爲 420 ,則 A5 的存儲地址爲 (C )
A.470
B.471
C.472
D.473
11.取線性表的第i個元素的時間同i的大小有關。( B )
A.T
B.F
12.若要定義一個具備 5 元素的整型數組,如下錯誤的定義語句是( D )。
A.int a[5] = {0};
B.int a[] = {0, 0, 0, 0, 0};
C.int a[2+3];
D.int i = 5, a[i];
13.長度爲n 的非空順序表,若在第i個位置插入新的元素X,則i的取值範圍是 1≤i≤n+1,須要移動的元素個數爲( D )。
A.i
B.n-i-1
C.n-i
D.n-i+1
14.設有一個10階的對稱矩陣A,採用壓縮存儲方式,以行序爲主存儲,a11爲第一元素,其存儲地址爲1,每一個元素佔一個地址空間,則a85的地址爲( B )。
A.13
B.33
C.18
D.40
15.設一維數組中有n個數組元素,則讀取第i個數組元素的平均時間複雜度爲( C )。
A.O(n)
B.O(nlog2n)
C.O(1)
D.O(n2)
16.定義語句"double * array [8]"的含義正確的是( B )。
A.array是一個指針,它指向一個數組,數組的元素時是雙精度實型
B.array是一個數組,數組的每個元素是指向雙精度實型數據的指針
C.C語言中不容許這樣的定義語句
D.以上都不對
17.有一個用數組C[1..m]表示的環形隊列,m爲數組的長度。假設f爲隊頭元素在數組中的位置,r爲隊尾元素的後一位置(按順時針方向)。若隊列非空,則計算隊列中元素個數的公式應爲?( A )
A.(m+r-f)mod m
B.r-f
C.(m-r+f) mod m
D.(m-r-f) mod m
E.(r-f) mod m
F.須要判斷邊界
18.For the following Java or C# code(3 Points),What will my Array32 returns?
int [][] myArray3 = new int[3][]{ new int[3]{5,6,2}, new int[5]{6,9,7,8,3}, new int[2]{3,2} };
( D )
A.9
B.2
C.6
D.Overflow
19.線性表是A。
A.一個有限序列,能夠爲空
B.一個有限序列,不能夠爲空
C.一個無限序列,能夠爲空
D.一個無限序列,不能夠爲空
20.將一個A[1..100,1..100]的三對角矩陣,按行優先存入一維數組B[1..298]中,A中元素A6665 (即該元素下標i=66,j=65),在B數組中的位置K爲( B )供選擇的答案:
A.198
B.195
C.197
21.設A是n*n的對稱矩陣,將A的對角線及對角線上方的元素以列爲主的次序存放在一維數組B[1..n(n+1)/2]中,對上述任一元素aij (1≤i,j≤n,且i≤j)在B中的位置爲( B )
A.i(i-1)/2+j
B.j(j-1)/2+i
C.j(j-1)/2+i-1
D.i(i-1)/2+j-1
**
22.下列給定程序中,函數fun的功能是:求ss所指字符串數組中長度最短的字符串所在的行下標,做爲函數值返回,並把其串長放在形參n所指的變量中。ss所指字符串數數組中共有M個字符串,且串長小於N。
請在程序的下畫線處填入正確的內容並將下畫線刪除,使程序得出正確的結果。 ( C )
試題程序。**
#define M 5 #define N 20 int fun(char(* ss)[N], int *n) { int i, k = 0, len = N; for (i = 0; i < ______; i++) { len = strlen(ss[i]); if (i == 0) *n = len; if (len ____ * n) { *n = len; k = i; } } return ( _____ ); } main( ) { char ss[M][N] = {"shanghai", "guangzhou", "beijing", "tianjing", "chongqing"}; int n, k, i; printf("\nThe originalb stringsare:\n"); for (i = 0; i < M; i++) puts(ss[i]); k = fun(ss, &n); printf("\nThe length of shortest string is: % d\n", n); printf("\nThe shortest string is: % s\n", ss[k]); }
A.N,< ,k
B.N, >,k
C.M,<,k
D.M,>,k
23.數組 A[0…5 , 0…6] 的每一個元素佔 5 個字節,將其按列優先次序存儲在起始地址爲 1000 的內存單元中,則元素 A[5 , 5] 的地址爲 ( A )
A.1175
B.1180
C.1205
D.1210
24.下列程序的功能是求兩個 2 行 3 列的數組的和,即數組對應位置的元素—相加,請爲橫線處選擇合適的程序( D )
A.void M::
B.friend M
C.M
D.M M::
25.若對n階對稱矩陣A(下標從1,1開始)以行序爲主序方式將其下三角形的元素(包括主對角線上全部元素)依次存放於一維數組B[1…(n(n+1))/2]中,則在B中肯定aij (i<j)的位置k的關係爲( B )
A.i*(i-1)/2+j
B.j*(j-1)/2+i
C.i*(i+1)/2+j
D.j*(j+1)/2+i
26.優先級隊列和有序數組的一個區別是( A )
A.最低優先級別的數據項不能從數組中輕易的提取出來,而在優先級隊列中能夠。
B.數組必須是有序的,而優先級隊列不須要。
C.最高優先級的數據項能夠很容易地從優先級隊列中提取出來,而有序數組不行。
D.其餘三個選項都是。
27.【多選】數組ARR=[1,2,3,4,5],如下返回值爲5的是( B )
A.arr.push()
B.arr.pop()
C.arr.shift()
D.arr.unshift()
28.【多選】如下能對一維數組 a 進行正確初始化的語句是( BC )
A.int a[10]=(0, 0, 0, 0, 0);
B.int a[10]={ };
C.int a[]={0};
D.int a[10]={10*a};
29.【多選】選項代碼中能正確操做數組元素的是( AB )
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.((a+i)+j)=1
B.*(a[i]+j)=1
C.**(a+i)[j]=1
D.*((a+i)+j)=1
30.【多選】在一個有8個int數據的數組中,隨機給出數組的數據,找出最大和第二大元素必定須要進行幾回比較( B )
A.8
B.9
C.10
D.11
1.爲查找某一特定單詞在文本中出現的位置,可應用的串運算是( D )
A.插入
B.刪除
C.串聯接
D.子串定位
2.字符串的長度是指 ( C )。
A.串中不一樣字符的個數
B.串中不一樣字母的個數
C.串中所含字符的個數
D.串中不一樣數字的個數
3.子串「 ABC 」在主串「 AABCABCD 」中的位置爲 2 (下標從0開始)。( B )
A.正確
B.錯誤
4.下面關於串的敘述中,哪個是不正確的?( B )
A.串是字符的有限序列
B.空串是由空格構成的串
C.模式匹配是串的一種重要運算
D.串既能夠採用順序存儲,也能夠採用鏈式存儲
5.串的長度是指( B )
A.串中所含不一樣字母的個數
B.串中所含字符的個數
C.串中所含不一樣字符的個數
D.串中所含非空格字符的個數
6.如下數據結構中,哪個是線性結構( D )?
A.廣義表
B.二叉樹
C.稀疏矩陣
D.串
7.如有如下程序
main( ) { char c1,c2; c1 ='C'+'8'-'3'; c2 ='9'-'0'; printf("%c %d\n",c1,c2); }
則程序的輸出結果是 ( B )
A.H'9'
B.H 9
C.F'9'
D.表達式不合法輸出無定值
**
8.設串 s1=’ABCDEFG’ , s2=’PQRST’ ,函數 con(x,y) 返回 x 和 y 串的鏈接串, subs(s, i, j) 返回串 s 的從序號 i 開始的 j 個字符組成的子串, len(s) 返回串 s 的長度,則 con(subs(s1, 2, len(s2)), subs(s1, len(s2), 2)) 的結果串是?(本題序號從1開始。)( D )**
9.
A.BCDEF
B.BCDEFG
C.BCPQRST
D.BCDEFEF
9.設S爲一個長度爲n的字符串,其中的字符各不相同,則S中的互異的非平凡子串(非空且不一樣於S自己)的個數爲( D )
A.2n-1
B.n²
C.(n²/2)+(n/2)
D.(n²/2)+(n/2)-1
E.(n²/2)-(n/2)-1
F.其餘狀況
10.設有兩個串S1和S2,求S2在S1中首次出現的位置的運算稱做( C )
A.求子串
B.判斷是否相等
C.模型匹配
D.鏈接
11.串中任意個字符組成的子序列稱爲該串的子串。( B )
A.正確
B.錯誤
12.判斷下列說法是否正確:設有兩個串S1和S2,求S2在SI中首次出現位置的運算稱爲求子串。( B )
A.正確
B.錯誤
13.由4個「1」和4個「0」組成的8位二進制補碼,能表示的最小整數是( C )
A.-125
B.-32
C.-121
D.-3
14.字符串」qiniu」根據順序不一樣有多少種排列組合的方式?( C )
A.96
B.72
C.60
D.24
15.不能所字符串「Good!」存放到數組 s 中的代碼是( C )。
A.char s[8] = {'G','o','o','d','!', '0'};
B.char s[8];
strcpy(s, "Good!");
C.char s[8];
s = "Good!";
D.char s[8] = "Good!";
16.請問在64位平臺機器下sizeof(string_a),sizeof(string_b)大小分別是( A )
1.char string_a=(char )malloc(100*sizeof(char));
2.char string_b[100];
A.8 100
B.100 8
C.100 100
D.8 8
17.哈弗曼編碼是一種無損二進制熵編碼算法,其加權路徑長度最小,字符串「alibaba」的二進制哈弗曼編碼有_位(bit) ( C )
A.11
B.12
C.13
D.14
18.如下不屬於字符串的方法的是?( C )
A.split
B.slice
C.reverse
D.Contact
19.串是一種特殊的線性表,其特殊性體如今( B )
A.能夠順序存儲
B.數組元素是一個字符
C.能夠連續存儲
D.數據元素能夠是多個字符
20.對字符串「mabnmnm」的二進制進行哈夫曼編碼有多少位( B )
A.12
B.13
C.14
D.15
21.設語句定義char a[ 80 ]= " 01230789 "; ,則sizeof(a)和strlen(a)的值分別爲( A )。
A.80和9
B.80和7
C.80和5
D.80和6
22.在給定文件中查找與設定條件相符字符串的命令爲?( C )
A.find
B.gzip
C.grep
D.Sort
23.字符串′ababaabab′的nextval爲( A )
A.(0,1,0,1,0,4,1,0,1)
B.(0,1,0,1,0,2,1,0,1)
C.(0,1,0,1,0,0,0,1,1)
D.(0,1,0,1,0,1,0,1,1)
24.下面程序段的輸出結果是 ( D )
char p1 = 」123」, p2 = 」ABC」, str[50] = 「xyz」;
strcpy(str + 2, strcat(p1, p2));
printf(「%sn」, str);
A.xyz123ABC
B.z123ABC
C.xy123ABC
D.出錯
25.用 0 - 9 這 10 個數字組成一個首尾相連的字符串,每一個數字能夠重複出現屢次,而且字符串中任意 2 個數字都相鄰出現過。此字符串最小長度是( D )
A.47
B.48
C.49
D.50
26.如下程序段的輸出結果是( A )
char s[]="\\123456\123456\t"; printf("%d\n",strlen(s));
A.12
B.13
C.16
D.以上都不對
27.下面關於字符串的描述正確的是:【多選】(BC )
A.經過String s1=new String("abc")和String s2="abc",則s1==s2爲true。
B."abc"+"def"則會建立三個字符串對象,第三個是"abcdef"。也就是說,在Java中對字符串的一切操做,都會產生一個新的字符串對象。
C.StringBuffer是線程安全的,它比String快。
D.StringBuilder是線程安全的,它比String快
**28.【多選】有以下語句序列:
char str[10];cin>>str;
當從鍵盤輸入」I love this game」時,str中的字符串是( D )**
A."I love this game"
B."I love thi"
C."I love"
D."I"
29.【多選】String str = new String(「abc」),「abc」在內存中是怎麼分配的?( AC )
A.堆
B.棧
C.字符串常量區
D.寄存器
30.【多選】在下列表述中,( ABD )是錯誤的
A.含有一個或多個空格字符的串稱爲空串
B.對n(n>0)個頂點的網,求出權最小的n-1條邊即可構成其最小生成樹
C.選擇排序算法是不穩定的
D.平衡二叉樹的左右子樹的結點數之差的絕對值不超過1
好啦,這就是今天分享的面試題了,其實在整理這篇推送的時候有在想面試題的話,到底是把題目和答案分開好一點仍是像如今這樣直接展現,若是是分開的話能夠前面是題目,文章結尾統一給出答案,這樣的話能夠給你們必定時間自我思考,若是你有什麼好的想法或者建議能夠評論或者後臺私聊我哦~
嗨,你好呀,將來的架構師,本文由Java架構師面試網 www.javajiagoushi.com收集整理並進行編輯發佈,謝謝你們的支持~