恒生电子

简介: 1.    Please specify what does “func()” do with the list "pParam", and what are the errors. struct LIST  {      int nValue;      struct LIST * pPr...

1.    Please specify what does “func()” do with the list "pParam", and what are the errors.

struct LIST 

    int nValue; 
    struct LIST * pPrev; 
    struct LIST * pNext; 
}; 
struct LIST * func(struct LIST * pParam) 

    struct LIST* pCur = pParam; 
    struct LIST* pNext; 
    struct LIST* pPrev = NULL; 
    struct LIST* pTail; 
    struct LIST* pReturn = NULL;

    if (pCur == NULL) 
    { 
        return pReturn; 
    } 
    else 
    { 
        pPrev = pCur->pPrev; 
        if (pCur->pNext == NULL) 
        { 
             pReturn = pCur; 
        } 
        else 
        { 
             pReturn = pCur->pNext; 
        } 
    }

    while (pCur != NULL) 
    { 
        pNext = pCur->pNext; 
        if (pNext == NULL) 
        { 
            return pReturn; 
        } 
        else 
        { 
            pTail = pNext->pNext;

            pNext->pPrev = pPrev; 
            pNext->pNext = pCur; 
            pCur->pPrev = pNext; 
            if (pTail == NULL) 
            { 
                pCur->pNext = pTail; 
            } 
            else 
            { 
                if (pTail->pNext == NULL) 
                { 
                    pCur->pNext = pTail; 
                } 
                else 
                { 
                    pCur->pNext = pTail->pNext; 
                } 
            } 
        }

        pPrev = pCur; 
        pCur = pTail; 
    }

    return pReturn; 

2.    Please complete the standard C function: memmove(), here is the description (don’t use any C standard function): 
void * memmove (void *to, const void *from, unsigned int size) 
memmove copies the size bytes at from into the size bytes at to. The value returned by memmove is the value of to. 
3.    please complete this function, get binary tree’s depth. For example, the following binary tree’s depth is 4. The function returns depth. 
   1 
/     \ 
2    3 
     /       \ 
   4          5 
/     \ 
6        7

struct NODE 

    struct NODE* pLeft;        // pLeft is NULL if it has no left sub node 
    struct NODE* pRight;    // pRight is NULL if it has no right sub node 
}; 
int GetDepth(const struct NODE* pRoot) 

}

4.    A worker needs to do A work and B work. B’s priority is higher than A. For example, if he shall do A from 9:00 to 13:00, and shall doing B from 10:00 to 11:00, his choice shall be doing A from 9:00 to 10:00, doing B from 10:00 to 11:00, and doing A from 11:00 to 13:00.

Complete the following function (you can use pseudo-code or solution steps explanation instead of actual code), ”pSchedule“ is a worker’s work schedule (it’s an array), "nNum" is number of elements in array "pSchedule", "ppResult" is the result array which shall be returned and its buffer shall be allocated by yourself, "nRNum" is number of elements in “ppResult". The time phases in "pSchedule" cover each other, and not sorted, the output data in "ppResult" shall be a new schedule that are not covered of any phase, and sorted by start time. Return 0 if success.

enum WORK 

    A,        // A work 
    B        // B work 
}; 
struct SCHED 

    int nStartHour;        // at that hour work start 
    int nEndHour;            // at that hour work end 
    enum WORK work;        // work type 
}; 
int func(const struct SCHED* pSchedule, unsigned int nNum, struct SCHED** ppResult, unsigned int& nRNum) 

}

1.    请指出以下函数对参数"pParam"做了什么动作,并指出其中的错误

    将链表中的元素奇数位与偶数位互换。

int func(struct LIST * pParam) 

    // … … 
    while (pCur != NULL) 
    { 
        pNext = pCur->pNext; 
        if (pNext == NULL) 
        { 
            pCur->pPrev = pPrev; 
            return pReturn; 
        } 
        // … … 
    } 
    return pReturn; 
}

2.    请完成标准C函数:memmove()

void *memmove(void *dest, const void *src, size_t count) 

    char *tmp; 
    const char *s;

    if (dest == NULL || src == NULL) 
    { 
        return NULL; 
    }

    if (dest <= src) { 
        tmp = dest; 
        s = src; 
        while (count–) 
            *tmp++ = *s++; 
    } else { 
        tmp = dest; 
        tmp += count; 
        s = src; 
        s += count; 
        while (count–) 
            *–tmp = *–s; 
    } 
    return dest; 
}

3.    请完成以下函数,返回二叉树的深度。例如下面所示二叉树的深度为4。

#include <stdlib.h>

struct NODE 

    struct NODE* pLeft;    // pLeft is NULL if it has no left sub node 
    struct NODE* pRight;    // pRight is NULL if it has no right sub node 
};

int GetDepth(const struct NODE* pRoot) 

    if (pRoot == NULL) 
    { 
        return 0; 
    } 
    int nLeft = GetDepth(pRoot->pLeft); 
    int nRight = GetDepth(pRoot->pRight); 
    return nLeft > nRight ? nLeft + 1 : nRight + 1; 
}

4.    工人需要做A工作和B工作。B工作的优先级比A工作更高。例如,如果他要在9:00至13:00做A工作,而且在10:00至11:00做B工作,那么他 应该在9:00至10:00做A工作,在10:00至11:00做B工作,在11:00至13:00做A工作。 
完成下面函数,"pSchedule"是工人的工作计划(它是一个数组),"nNum"是数组"pSchedule"中的元素数量,"ppResult" 是需要返回的结果数组,"nRNum"是结果中的元素数量。"pSchedule"中的时间段互相覆盖,而且未排序,输出结果"ppResult"中的时 间段不允许有覆盖,并且按开始时间排序。函数执行成功返回0。


//以下是2011年的笔试题

5、已知2010年的1月1日是星期五,写一个函数,输入M年和N 月,计算出该月的第3个星期五是几号?


6、写SQL 语句的题,其中有一个是如何创建索引?

答案:(http://www.cnblogs.com/hanjin/archive/2008/09/09/1287505.html

 

转自:http://www.cnblogs.com/cswolf/archive/2011/10/13/2267124.html  

img_e00999465d1c2c1b02df587a3ec9c13d.jpg
微信公众号: 猿人谷
如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果您希望与我交流互动,欢迎关注微信公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

目录
相关文章
|
3月前
|
传感器 监控 安全
eFuse电子保险丝
热保险丝作为一种基本的电路保护器件,已经成功使用了150多年。热保险丝有效可靠、易用,具有各种不同的数值和版本,能够满足不同的设计目标。然而,对于寻求以极快的速度切断电流的设计人员来说,热保险丝不可避免的缺点就是其自复位能力,以及在相对较低的电流下的工作能力。对于这些设计人员来说,电子保险丝(通常用eFuse或者e-Fuse表示)是一种很好的解决方案,有时还可以取代热保险丝,但通常是对热保险丝功能的补充。 eFuse基于一个简单概念,即通过测量已知电阻器上的电压来检测电流,然后在电流超过设计限值时,通过场效应晶体管(FET)切断电流。eFuse具有热保险丝无法实现特性、灵活性和功能。 本文
eFuse电子保险丝
|
5月前
|
传感器 监控 安全
eFuse电子保险丝,需要了解的技术干货来啦
电子保险丝(eFuse)作为热保险丝的升级版,提供更快的反应速度(微秒至纳秒级)、低电流操作、可复位功能、反向电流和过压保护等优势。它们常用于需要快速保护的场景,如热插拔、汽车应用、PLC和电池管理。eFuse可以选择锁定或自动重启模式,根据应用需求调整。虽然可以使用分立组件构建基本的eFuse,但完整的IC解决方案更紧凑、稳定且功能丰富,通常包含多种保护特性,并已通过安全认证,适用于USB终端、笔记本电脑、服务器、可穿戴设备等多种应用。
160 4
|
Java 数据库 索引
恒生电子面试题总结
恒生电子面试题总结
168 0
|
开发框架 Rust 前端开发
金牛座与电子#137
金牛座与电子#137
105 0
|
API 区块链
深交所发文鼓励电子签约!IPO支持电子签章
5月4日,深交所发布《关于支持实体经济若干措施的通知》(以下简称《通知》),支持企业采用电子签章办理业务。3月27日,上交所也表明文件信息披露因疫情影响无法及时提供实体签章的,可以暂以电子签章等代替,或者提交相关说明。
197 0
深交所发文鼓励电子签约!IPO支持电子签章
|
BI 流计算
“电子“ ”“”哪里有
“电子“ ”“”哪里有此外,为了帮助大家更加深入了解EMR StarRocks,我们推出了EMR StarRocks 白皮书,供各位小伙伴学习参考,免费下载! 白皮书下载:https://developer.aliyun.com/ebook/7585 内容一览表: ? StarRocks 新?代极速全场景 MPP 数据仓库 ? StarRocks 简介 ? StarRocks 架构 ? StarRocks 特性 ? StarRocks ?态与?具 ? 数据迁移 ? 数据摄? ? 湖仓?体 ? StarRocks X Flink ?态 ? StarRocks 场景解决?案 ? 固定报表业务 ?
|
传感器
可随身携带的电子乐队
可随身携带的电子乐队
可随身携带的电子乐队
|
存储 监控 安全
财税行业 | 电子发票
本文介绍了财税行业 | 电子发票的方案概述,方案价值及优势以及最佳实践。
财税行业 | 电子发票
|
运维 物联网 芯片
应用速递 | 电子价签方案
应用速递栏目:应用速递是面向IoT厂商推荐芯片开放社区(OCC)上的典型应用案例,便于IoT厂商精准获取方案,快速实现产品落地。
232 0
应用速递 | 电子价签方案
|
运维 搜索推荐 安全
财税行业 | 电子税务局
本文介绍了财税行业 | 电子税务局的方案概述,方案价值及优势以及最佳实践。
财税行业 | 电子税务局
下一篇
无影云桌面