當前位置:學問君>學習教育>考研>

普天C++筆試題及答案

學問君 人氣:1.06W

1.實現雙向鏈表刪除一個節點P,在節點P後插入一個節點,寫出這兩個函數。

普天C++筆試題及答案

void DeleteNode(DuNode *p)

{

p->prior->next=p->next;

p->next->prior=p->prior;

free(p);

}

void InsertNode(DuNode *p, DuNode *s)//Node "s" is inserted after "p"

{

s->next=p->next;

p->next->prior=s;

p->next=s;

s->prior=p;

}

2.寫一個函數,將其中的/t都轉換成4個空格.

/* Name: Copyright: Author: 52coder

Date: 12-07-03 16:40

Description: 寫一個函數,將其中的/t都轉換成4個空格

*/

#include

using namespace std;

char* Convert_t(char *des,char *src)

{

char *temp;

des=new char[100];

temp=des;

while(*src!='/0')

{

if(*src=='/t')

{

src++;

*des++=' ';

*des++=' ';

*des++=' ';

*des++=' ';

continue;

}

*des++=*src++;

}

*des='/0';

des=temp;

return des;

}

int main()

{

char *t="asdf/tasd/tasasddas//tdfasdf",*d;

cout<

cout<

getchar();

}

ows程序的入口是哪裏?寫出Windows消息機制的流程。

WINDOWS入口是WinMain函數

消息機制的流程:

系統中發生了某個事件

Windows把這個事件翻譯爲消息,然後把它放到消息隊列中

應用程序從消息隊列中接收到這個消息,把它存放在TMsg記錄中

應用程序把消息傳遞給一個適當的視窗的視窗過程

視窗過程響應這個消息並進行處理

4.如何定義和實現一個類的成員函數爲回調函數?

如果類的成員函數是一個callback函數, 必須宣告它爲”static”,才能把C++ 編譯器加諸於函數的一個隱藏參數this去掉。

5.C++裏面是不是所有的動作都是main()引起的?如果不是,請舉例。

不是的,C++裏面有些動作不是引起的,比如,全局對象的實例化、全局變量的動態空間申請,等等.

下面是一個例子:

#include

using namespace std;

//全局變量的動態空間申請在程序執行之後,main執行之前完成。所以不是所有的.動作都是main引起的

char *des=new char[100];

int main()

{

char *des="abc";

cout<

getchar();

}

6.C++裏面如何聲明const void f(void)函數爲C程序中的庫函數?

extern “C” const void f(void);

這樣聲明之後,相當於告訴C, 函數const void f(void)是在C++語言的檔案中聲明或者實現的,c程序可以使用這個C++中的函數了,從而實現C++和c的混合編程。

7.下列哪兩個是等同的

int b;

A const int *a = &b; //指針a所指內容是常量,等同於int const *a,

B const * int a = &b; //沒有這種寫法 ,只有int *const a,指針a是常量

C const int* const a = &b; //指針a是常量,所指的內容也是常量

D int const* const a = &b; //指針a是常量,所指的內容也是常量

所以C和D是一樣的

8.內聯函數在編譯時是否做參數類型檢查?

內聯函數和普通函數都要做類型檢查,宏不做類型檢查。