好文档 - 专业文书写作范文服务资料分享网站

C++面试宝典

天下 分享 时间: 加入收藏 我要投稿 点赞

} int fn2() {

printf( \return 0; } int fn3() {

printf( \return 0; } int fn4() {

printf( \return 0; }

The _onexit function is passed the address of a function (func) to be called when the program terminates normally. Successive calls to _onexit create a register of functions that are executed in LIFO (last-in-first-out) order. The functions passed to _onexit cannot take parameters.

40.如何判断一段程序是由C 编译程序还是由C++编译程序编译的?

答案:

#ifdef __cplusplus cout<<\#else cout<<\#endif

41.文件中有一组整数,要求排序后输出到另一个文件中

PDF 文件使用 \试用版本创建 www.fineprint.cn 答案:

#i nclude #i nclude using namespace std;

void Order(vector& data) //bubble sort {

int count = data.size() ; for ( int i = 0 ; i < count ; i++) {

for ( int j = 0 ; j < count - i - 1 ; j++) {

if ( data[j] > data[j+1]) {

int temp = data[j] ; data[j] = data[j+1] ; data[j+1] = temp ; } } }

void main( void ) {

vectordata; ifstream in(\if ( !in) {

cout<<\exit(1); }

PDF 文件使用 \试用版本创建 www.fineprint.cnint temp; while (!in.eof()) {

in>>temp;

data.push_back(temp); }

in.close(); //关闭输入文件流 Order(data);

ofstream out(\if ( !out) {

cout<<\exit(1); }

for ( i = 0 ; i < data.size() ; i++) out<

out.close(); //关闭输出文件流 }

42.链表题:一个链表的结点结构

struct Node { int data ; Node *next ; };

typedef struct Node Node ;

(1)已知链表的头结点head,写一个函数把这个链表逆序 ( Intel) Node * ReverseList(Node *head) //链表逆序 {

if ( head == NULL || head->next == NULL )

PDF 文件使用 \试用版本创建 www.fineprint.cnreturn head; Node *p1 = head ; Node *p2 = p1->next ; Node *p3 = p2->next ; p1->next = NULL ; while ( p3 != NULL ) {

p2->next = p1 ; p1 = p2 ; p2 = p3 ; p3 = p3->next ; }

p2->next = p1 ; head = p2 ; return head ; }

(2)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同)

Node * Merge(Node *head1 , Node *head2) {

if ( head1 == NULL) return head2 ; if ( head2 == NULL) return head1 ; Node *head = NULL ; Node *p1 = NULL; Node *p2 = NULL;

if ( head1->data < head2->data ) {

head = head1 ; p1 = head1->next; p2 = head2 ; } else {

PDF 文件使用 \试用版本创建 www.fineprint.cnhead = head2 ; p2 = head2->next ; p1 = head1 ; }

Node *pcurrent = head ;

while ( p1 != NULL && p2 != NULL) {

if ( p1->data <= p2->data ) {

pcurrent->next = p1 ; pcurrent = p1 ; p1 = p1->next ; } else {

pcurrent->next = p2 ; pcurrent = p2 ; p2 = p2->next ; } }

if ( p1 != NULL ) pcurrent->next = p1 ; if ( p2 != NULL ) pcurrent->next = p2 ; return head ; }

(3)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。 (Autodesk) 答案:

Node * MergeRecursive(Node *head1 , Node *head2) {

if ( head1 == NULL ) return head2 ; if ( head2 == NULL) return head1 ;

PDF 文件使用 \试用版本创建 www.fineprint.cn

C++面试宝典

}intfn2(){printf(\return0;}intfn3(){printf(\return0;}intfn4(){printf(\return0;}The_onexitfunctionispassedtheaddressofafunction(func)tob
推荐度:
点击下载文档文档为doc格式
3lqiy3zri29s4tl8l1e7
领取福利

微信扫码领取福利

微信扫码分享