程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 騰訊筆試題

騰訊筆試題

編輯:C++入門知識

自己在網上找的騰訊的筆試題(研發類),沒有答案,就沒個題自己做做,不會的就網上查資料。現在整理如下:

1、請定義一個宏,比較兩個數a、b 的大小,不能使用大於、小於、if 語句


答案:


#define max(a,b) (((a)-(b))&(1<<31))?(b):(a)
2、如何輸出源文件的標題和目前執行行的行數


答案:
[cpp]
#incluede<stdio.h>  
#include<tchar.h>  
#include<Windows.h>  
 
int main(){ 
   int nLine=__FILE__; 
   TCHAR *pFIle=_T(__FILE__); 
   _tprintf(TEXT("the file name is %s\r\n,line number is %d.\r\n"),pFile,nLine); 
    
   return 0; 

#incluede<stdio.h>
#include<tchar.h>
#include<Windows.h>

int main(){
   int nLine=__FILE__;
   TCHAR *pFIle=_T(__FILE__);
   _tprintf(TEXT("the file name is %s\r\n,line number is %d.\r\n"),pFile,nLine);
  
   return 0;
}
 這主要是運用了ANSI C和Microsoft C++預先定義的一些宏來實現的。不止這兩個,還有下面這些比較常用的:
1)__DATE__:當前文件的編譯日期。與在time.h中定義的asctime函數返回的格式一樣,即是Mmm DD yyyy(月、日、年);
2)__FILE__:當前源文件的名稱。字符串格式(const char);
3)__LINE__:當前代碼在源文件中的行數。一個整數。
4)__TIME__:當前源文件的編譯時間。一個字符串(hh:mm:ss);
5)__TIMESTAMP__:當前源文件最後編譯的日期時間。一個字符串(格式為:Ddd Mmm Date hh:mm:ss yyyy,即星期幾、月、日、時、分、秒、年);

其中通過宏__FILE__和__LIEN__可以快速的定位程序出錯的文件和位置,並通過Email的形式發送給開發人員,從而進行快速維護。

 

3、兩個數相乘,小數點後位數沒有限制,請寫一個高精度算法

 

答案:
算法提示:
[plain] view plaincopyprint?輸入 string a, string b; 計算string c=a*b; 返回 c; 
 
 
1,   紀錄小數點在a,b中的位置l1,l2, 則需要小數點後移動位置數為l=length(a)+length(b)-l1-l2-2; 
 
 
2,   去掉a,b中的小數點,(a,b小數點後移,使a,b變為整數) 
 
 
3,   計算c=a*b; (同整數的大數相乘算法) 
 
 
4,   輸出c,(注意在輸出倒數第l個數時,輸出一個小數點。若是輸出的數少於l個,就補0) 

輸入 string a, string b; 計算string c=a*b; 返回 c;


1,   紀錄小數點在a,b中的位置l1,l2, 則需要小數點後移動位置數為l=length(a)+length(b)-l1-l2-2;


2,   去掉a,b中的小數點,(a,b小數點後移,使a,b變為整數)


3,   計算c=a*b; (同整數的大數相乘算法)


4,   輸出c,(注意在輸出倒數第l個數時,輸出一個小數點。若是輸出的數少於l個,就補0)

4、寫一個病毒

 

 

5、有A、B、C、D 四個人,要在夜裡過一座橋。他們通過這座橋分別需要耗時1、2、5、10 分鐘,只有一支手電,並且同時最多只能兩個人一起過橋。
請問,如何安排,能夠在17 分鐘內這四個人都過橋?

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved