1 計算 a^b << 2 (運算符優先級問題)
int a = 2;
int b = 1;
int c = 2;
cout << (a ^ b << c);
6
2 根據先序中序求后序
3 a[3][4]哪個不能表示 a[1][1]: *(&a[0][0]) *(*(a+1)+1) *(&a[1]+1) *(&a[0][0]+4)
cout << *(&a[1][1]) << endl
<<*(*(a+1)+1) << endl
<< *(&a[1]+1) << endl
<< *(&a[0][0]+4);
6
6
0012FEC8
5
4 for(int i...)
for(int j...)
printf(i,j);
printf(j)
會出現什么問題
J沒有定義,不在其作用域
5 for(i=0;i<10;++i,sum+=i);的運行結果
int i, sum = 0;
for(i=0;i<10;++i,sum+=i);
cout << sum;
55
6 10個數順序插入查找二叉樹,元素62的比較次數
7 10個數放入模10hash鏈表,最大長度是多少
8 fun((exp1,exp2),(exp3,exp4,exp5))有幾個實參
2個,逗號運算符,
9 希爾 冒泡 快速 插入 哪個平均速度最快
10 二分查找是 順序存儲 鏈存儲 按value有序中的哪些
11 順序查找的平均時間
12 *p=NULL *p=new char[100] sizeof(p)各為多少
都是4
13 頻繁的插入刪除操作使用什么結構比較合適,鏈表還是數組
鏈表
14 enum的聲明方式
enum A{
a1,
a2,
a3,
};
15 1-20的兩個數把和告訴A,積告訴B,A說不知道是多少,
B也說不知道,這時A說我知道了,B接著說我也知道了,問這兩個數是多少
大題:
1 把字符串轉換為小寫,不成功返回NULL,成功返回新串
char* toLower(char* sSrcStr)
{
char* sDest= NULL;
if( __1___)
{
int j;
sLen = strlen(sSrcStr);
sDest = new [_______2_____];
if(*sDest == NULL)
return NULL;
sDest[sLen] = '\0';
while(_____3____)
sDest[sLen] = toLowerChar(sSrcStr[sLen]);
}
return sDest;
}
char toLowerChar(char a)
{
if(a >= 'A' && a <= 'Z')
return a - 'A' + 'a';
}
char* toLower(char* sSrcStr)
{
char* sDest= NULL;
if(sSrcStr)
{
int j;
int sLen = strlen(sSrcStr);
sDest = new char[sLen + 1];
if(*sDest == NULL)
return NULL;
sDest[sLen] = '\0';
while(sLen--)
sDest[sLen] = toLowerChar(sSrcStr[sLen]);
}
return sDest;
}
2 把字符串轉換為整數 例如:"-123" -> -123
main()
{
.....
if( *string == '-' )
n = ____1______; -1* num(string+1)
else
n = num(string);
.....
}
int num(char* string)
{
for(;!(*string==0);string++)
{
int k;
k = __2_____; *string
j = --sLen;
while( __3__) j--
k = k * 10;
num = num + k;
}
return num;
}
附加題:
1 linux下調試core的命令,察看堆棧狀態命令
2 寫出socks套接字 服務端 客戶端 通訊程序
3 填空補全程序,按照我的理解是添入:win32調入dll的函數名
查找函數入口的函數名 找到函數的調用形式
把formView加到singledoc的聲明 將singledoc加到app的聲明
4 有關系 s(sno,sname) c(cno,cname) sc(sno,cno,grade)
1 問上課程 "db"的學生no
2 成績最高的學生號
3 每科大于90分的人數
2005年騰訊招聘
選擇題(60)
c/c++ os linux 方面的基礎知識 c的Sizeof函數有好幾個!
程序填空(40)
1.(20) 4空x5
不使用額外空間,將 A,B兩鏈表的元素交叉歸并
2.(20) 4空x5
MFC 將樹序列化 轉存在數組或 鏈表中!
發信人: ChinaOfey (勇敢的傻,傻得勇敢), 信區: Career_Plaza
標 題: 騰訊筆試題
發信站: 水木社區 (Sat Nov 5 16:25:25 2005), 站內
希望明年的兄弟有用!(B卷)
第一部分:基本都是數據結構題+1,2道操作系統和數據庫相關的(比較基本)
有印象的:
1,為節省空間,兩個棧共用一個空間,棧底在兩邊,問什么時候表明空間用完
答案:棧頂相遇時
這道題就是很基礎的一個題目,因為是第一道題,所以印象比較深^_^
2,char A[5]; char* B ="abcdefg"; void * C; C = new char[100];
sizeof(A) sizeof(B) size(C)
5,4,4
3,爸爸,媽媽,妹妹,小強,至少兩個人同一生肖的概率是多少
1- 12*11*10*9/12*12*12*12 = 43% ,我忘用1減了....
然后還有幾個看程序給結果的題,考察了類,指針的內容
第二部分:程序填空
主要要能看出他的思路
第三部分:寫代碼
1,關于mfc的,一個控件,顯示時間,1s鐘刷新一次
2,SQL語言進行簡單的數據庫操作,建表,查詢,求平均工資等
不記得語言了,因此只好自創....ft
3,Unix進程通信有哪些方式,各有什么特點?
(其中A卷給的是道網絡編程題目)
第四部分:主觀題
考rp的,比較無聊,手都寫酸了....
程序4說明]
設 M 叉樹采用列表法表示,即每棵子樹對應一個列表,列表的結構為:子樹根結點的值部分
(設為一個字符) 和用“( )”,括起來的各子樹的列表 (如有子樹的話) ,各子列表間用“
,”,分隔。例如下面的三叉樹可用列表 a( b( c,d ),e,f( g,h,i ))表示。
本程序輸入列表,生成一棵 M 叉樹,并由 M 叉樹輸出列表。假定輸入無錯誤。
[程序4]
#include〈stdio.h〉
#include〈stdlib.h〉
#define M 3
typedef struct node{ char val;
struct node *subTree[M];
} NODE;
char buf[255] ,*str = buf
NODE *d = NULL
NODE *mackTree( ) /*由列表生成M叉樹*/
{ int k; NODE *s ;
s = __(1)__
s -> val = *str++ ;
for ( k = 0 ; k < M ; k++ ) s-> subTree[k] = NULL ;
if(*str='( '){
k = 0;
do { str++;
s -> subTree[k] = __(2)__ ;
if ( *str == ')' ) { str++; break ; }
k = k+l ;
} while ( __(3)__ );
}
return s ;
}
void walkTree( NODE *t ) /*由 M 叉樹輸出列表*/
{ int i ;
if( t != NULL ) {
__(4)__
if ( t -> subTree[0] == NULL ) return ;
putchar ( '( ' ) ;
for ( i = 0 ; i < m ; i++) {
__(5)__
if ( i! = M - l && t -> subTree[i+l] != NULL )
putchar ( ', ' ) ;
}
putchar ( ') ' ) ;
}
}
void main( )
{ printf( "Enter exp:" ) ;
scanf( "%S" , str ) ;
d = makeTree() ;
walkTree( d ) ; putchar( '\n') ;
}
有兩個集合
集合A{1,7,19,21,55,100。。。}
集合B{7,22,100。。。}
兩個集合都是10萬個數據(已排序),要求寫一個算法,判斷B是不是A的子集,算法時間復雜度為Q(N)