騰訊模擬筆試——技術研發類——綜合(乾貨!!試題分享~~)
不定向選擇 14 程式設計 1 時長 1h 時間:2018.8.31 20:30——21:30
1.提升網路後臺系統性能()
A.資料庫單獨部署
B.負載均衡部署
C.增加快取
D.增加備份裝置
2.提高系統對請求的併發處理能力()
A. 使用select/epoll等IO複用技術處理網路請求
B. 對下行訊息或者請求的回覆訊息進行包合併處理
C. 傳送請求之前對網路資料進行壓縮
D. 在系統和Mysql之間增加dbproxy,把發往mqsql的同步請求轉為非同步處理
3.若11,12,13,7,8,9,23,4,5是採用下列排序方法之一得到的第二趟排序後的結果。則該排序演算法為()
A.氣泡排序 B.插入排序 C.選擇排序 D.歸併排序
4.表user
欄位 name,age,sex
索引1:age
索引1:age,sex
查詢:20—30歲的使用者
以下正確的是()
A.Select count(1) as cnt from user where age>=20 and age <=30
B.Select count(age) from user where age between 20 and 30
C.Select count(1) from user where age>=20 and age <=30 and sex is not null
D.Select sun(age) from user where age>=20 and age <=30
5.在C++中,有型別Foo宣告如下
class Foo{
public:
virtual void func1(){}
void func2(){}
int data1;
static int data2;
};
int Foo::data2=1;
現有如下程式碼:
Foo*p_foo = (Foo*)malloc(sizeof(Foo));
不考慮記憶體分配失敗的情況,以下哪些語句會引起程式異常()
A.P_foo->func1();
B.P_foo->func2();
C.P_foo->data1 = 1;
D.P_foo-> data2 = 1;
6.在32位或者64位系統中,程式碼輸出可能是哪些?()
Void Test(int Array[],int size){
int Num = sizeof(Array)/sizeof(int);
for(int i=0;i<Num &&i<size;i++){
printf(“%d”,Array[i]);
}
int main(){
int Array[]={1,2,3,4};
Test(Array, sizeof(Array)/sizeof(int));
return 0;
}
}
A.1 2
B.1 2 3
C.1 2 3 4
D.不記得了
7.以下關於二叉樹的描述錯誤的是:()
A.二叉樹可以用陣列進行儲存,此時節點索引為i的父節點(如果存在)的索引可以用i/2向下取整獲得
B.二叉樹的前序序列和中序序列存在相同的可能性
C.在二叉樹的非遞迴深度優先便利中,我們需要幾下每一個待訪問的點,而非遞迴的廣度優先遍歷則不需要
D.二叉查詢樹的最差查詢時間為o(n),但通常可以達到o(logn)
8.兩種常見的稀疏矩陣壓縮儲存方式是()
A.三元組和散組
B.二維陣列和三維陣列
C.雜湊和十字連結串列
D.三元體和十字連結串列
9.設棧s和佇列Q的初始狀態均為空,元素abcdefg依次進入棧S。若每個元素出站後立即進入佇列Q,切7個元素出隊的順序是bdcfeag,則棧S的容量可能是( )
A.1 B.2 C.3 D.4
10.假設有四臺機器,他們之間的網路延遲小於1毫秒,機器之間的頻寬是每秒10MB,現在其中一臺機器上有資料大小為1GB的資料庫,如果想把這臺機器上的資料備份到其他三臺機器上(是的每臺機都有完整的備份資料),最快大概需要多長時間(不考慮資料壓縮的情況)?()
A.300秒 B.200秒 C.150秒 D.100秒
11.Union U{
char *a;
char b;
}
Strut S{
char *a;
char b;
}
Union U2{
S s;
V v;
};
printf(“%zu”,sizeof(U));
printf(“%zu”,sizeof(S));
printf(“%zu”,sizeof(U2));
printf(“%zu”,sizeof(std::array<char,2>));
printf(“%zu”,sizeof(char[2]));
printf(“%zu”,sizeof(char*));
輸出為:()
A.4 5 5 8 2 4
B.4 8 8 8 2 4
C. 4 5 5 2 3 4
D.8 16 16 2 2 8
12.在X86-64下面程式碼列印什麼()
char *string1=”tencent2018”;
int size1=sizeof(string1);
int size2=sizeof(*string1);
char string2[100]= ”tencent2018”;
int size3=sizeof(string2);
printf(“%d%d%d”,size1,size2,size3);
A.8 1 100
B.8 12 100
C.12 1 12
D.12 12 12
13.傳入引數2018,返回()
int func(int n){
if(n>0)
return n+func(n-1);
else
return 0;
}
沒有記答案,我算的2037171
14.var a=1;
function funcA(){
alert(a);
var a =2;
alert(this.a);
}
funcA()
A. undefined 1
B. undefined 2
C.1 1
D.1 2
程式設計:
小Q有X首長度為A的不同的歌和Y首長度為B的不同的歌,現在小Q想用這些歌組成一個總長度正好為K的歌單,每首歌最多隻能在歌單中出現一次,在不考慮歌單內歌曲的先後順序的情況下,請問有多少種組成歌單的方法。
輸入描述:
每個輸入包含一個測試用例。
每個測試用例的第一行包含一個整數,表示歌單的總長度K(1<=K<=1000)。
接下來的一行包含四個正整數,分別表示歌的第一種長度A(A<=10)和數量X(X<=100)以及歌的第二種長度B(B<=10)和數量Y(Y<=100)。保證A不等於B。
輸出描述:
輸出一個整數,表示組成歌單的方法取模。因為答案可能會很大,輸出對1000000007取模的結果。
示例1
輸入
5
2 3 3 3
輸出
9