- 相關(guān)推薦
騰訊技術(shù)類校園招聘筆試試題(A8卷)
【轉(zhuǎn)帖】
騰訊技術(shù)類校園招聘筆試試題(A8卷)
姓名:______________ 聯(lián)系電話:_______________ 簡(jiǎn)歷編號(hào):____________
學(xué)校:______________ 專業(yè):___________________ 學(xué)歷:________________
一. 單選題(每題4分,15題,共60分)
1.考慮函數(shù)原型void hello(int a,int b=7,char*pszC="*"),下面的函數(shù)調(diào)用鐘,屬于不合法調(diào)用的是:Ahello(5) B.hello(5,8) C.hello(6,"#") D.hello(0,0,"#")2.下面有關(guān)重載函數(shù)的說(shuō)法中正確的是: A.重載函數(shù)必須具有不同的返回值類型 B.重載函數(shù)形參個(gè)數(shù)必須不同 C.重載函數(shù)必須有不同的形參列表 D.重載函數(shù)名可以不同3.分析一下程序的運(yùn)行結(jié)果:#include
class CBase{public:CBase(){cout<<”constructing CBaseclass”<
本程序從正文文件text.in讀入一篇英文短文,統(tǒng)計(jì)該短文中不同單詞和它的出現(xiàn)次數(shù),并按詞典編輯順序?qū)卧~及它的出現(xiàn)次數(shù)輸出到正文文件word.out中.
程序用一棵有序二叉樹(shù)存儲(chǔ)這些單詞及其出現(xiàn)的次數(shù),一邊讀入一邊建立.然后中序遍歷該二叉樹(shù),將遍歷經(jīng)過(guò)的二叉樹(shù)上的節(jié)點(diǎn)的內(nèi)容輸出.
程序中的外部函數(shù)
int getword(FILE* pFile,char* pszWordBuffer,int nBufferLen);
從與pFile所對(duì)應(yīng)的文件中讀取單詞置入pszWordBuffer,并返回1;若單詞遇文件尾,已無(wú)單詞可讀時(shí),則返回0.
#include
#include
#include
#include
#define SOURCE_FILE "text.in"
#define OUTPUT_FILE "word.out"
#define MAX_WORD_LEN 128
typedef struct treenode
{
char szWord[MAX_WORD_LEN];
int nCount;
structtreenode* pLeft;
struct treenode* pRight;
}BNODE;
int getword(FILE* pFile,char* pasWordBuffer,int nBufferLen);
void binary_tree(BNODE** ppNode,char* pszWord)
{
if(ppNode != NULL && pszWord !=NULL)
{
BNODE* pCurrentNode = NULL;
BNODE* pMemoNode = NULL;
int nStrCmpRes=0;
____(1)_____;pCurrentNode=*ppNode
while(pCurrentNode)
{
nStrCmpRes = strcmp(pszWord, ___(2)___);pCurrentNode->nCount
if(!nStrCmpRes)
{
___(3)___; pCurrentNode->nCount++
return;
}
else
{
___(4)___; pMemoNode=pCurrentNode
pCurrentNode = nStrCmpRes>0?pCurrentNode->pRight :pCurrentNode->pLeft;
}
}
}
pCurrent=new BNODE;
if(pCurrentNode != NULL)
{
memset(pCurrentNode,0,sizeof(BNODE));
strncpy(pCurrentNode->szWord,pszWord,MAX_WORD_LEN-1);
pCurrentNode->nCount=1;
}
if(pMemoNode==NULL)
{
___(5)___; *ppNode= pCurrentNode
}
else if(nStrCmpRes>0)
{
pMemoNode->pRight=pCurrentNode;
}
else
{
pMemoNode->pLeft=pCurrentNode;
}
}
void midorder(FILE* pFile,BNODE* pNode)
{
if(___(6)___) return;!pNode||!pFile
midorder(pFile,pNode->pLeft);
fprintf(pFile,"%s%d\n",pNode->szWord,pNode->nCount);
midorder(pFile,pNode->pRight);
}
void main()
{
FILE* pFile=NULL;
BNODE* pRootNode=NULL;
char szWord[MAX_WORD_LEN]={0};
pFile=fopen(SOURCE_FILE,"r");
if(pFile==NULL)
{
printf("Cant open file %s\n",SOURCE_FILE);
return;
}
while(getword(pFile,szWord,MAX_WORD_LEN)==1)
{
binary_tree(___(7)___);// pRootNode,szWord
}
fclose(pFile);
pFile=fopen(OUTPUT_FILE,"w");
midorder(pFile,pRootNode);
fclose(pFile);
}
三. 附加題(每題30分,2題,共60分)
1. 從程序健壯性進(jìn)行分析,下面的FillUserInfo函數(shù)和Main函數(shù)分別存在什么問(wèn)題?
#include
#include
#define MAX_NAME_LEN 20
struct USERINFO
{
int nAge;
char szName[MAX_NAME_LEN];
};
void FillUserInfo(USERINFO* parUserInfo)
{
stu::cout<<"請(qǐng)輸入用戶的個(gè)數(shù):";
int nCount=0;
std::cin>>nCount;
for(int i=0;i {
std::cout<<"請(qǐng)輸入年齡:";
std::cin>>parUserInfo->nAge;
std::string strName;
std::cout<<"請(qǐng)輸入姓名:";
std::cin>>strName;
strcpy(parUserInfo.szName,strName.c_str());
}
}
int main(int argc,char* argv[])
{
USERINFO arUserInfos[100]={0};
FillUserInfo(arUserInfos);
printf("The first name is:");
printf(arUserInfos[0].szName);
printf("\n");
return 0;
}
2. 假設(shè)你在編寫(xiě)一個(gè)使用多線程技術(shù)的程序,當(dāng)程序中止運(yùn)行時(shí),需要怎樣一個(gè)機(jī)制來(lái)安全有效的中止所有的線程?請(qǐng)描述其具體流程.
【騰訊技術(shù)類校園招聘筆試試題(A8卷)】相關(guān)文章:
騰訊筆試題 試題分享02-24
騰訊編輯筆試題目11-21
人人校園招聘筆試題目11-08
360技術(shù)類筆試題目11-25
2024騰訊筆試題目及答案08-21
唯品會(huì)校園招聘筆試題12-01
卓越亞馬遜校園招聘開(kāi)放筆試題11-21
2015國(guó)壽校園招聘筆試題02-21