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)

语法:
CREATE [索引类型] INDEX 索引名称
ON 表名(列名)
WITH FILLFACTOR = 填充因子值0~100
GO

/*实例*/
USE 库名
GO
IF EXISTS (SELECT * FROM SYSINDEXES WHERE NAME='IX_TEST_TNAME')--检测是否已经存在IX_TEST_TNAME索引
DROP INDEX TEST.IX_TEST_TNAME--如果存在则删除

--创建索引
CREATE NONCLUSTERED INDEX IX_TEST_TNAME --创建一个非聚集索引
ON TEST(TNAME)  --为TEST表的TNAME字段创建索引
WITH FILLFACTOR = 30 --填充因子为30%
GO

SELECT * FROM TEST(INDEX = IX_TEST_TNAME) WHERE TNAME = 'A' --指定按‘IX_TEST_TNAME’索引查询

总结:
      1.什么是索引:数据库中的索引是某个表中一列或多列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
  2.分类:
     唯一索引(UNIQUE):不允许两行具有相同的索引值(创建了唯一约束,系统将自动创建唯一索引)
     主键索引:主键索引要求主键中的每个值是唯一的,(创建主键自动创建主键索引)
     聚集索引(CLUSTERED):表中各行的物理顺序与键值的逻辑(索引)顺序相同,表中只能包含一个聚集索引,主键列默认为聚集索引
     非聚集索引(NONCLUSTERED):表中各行的物理顺序与键值的逻辑(索引)顺序不匹配,表中可以有249个非聚集索引
    3.创建索引的标准:用于频繁搜索的列;用于对数据进行排序的列
注意:如果表中仅有几行,或列中只包含几个不同的值,不推荐创建索引,因为SQL Server 在小型表中用索引搜索数据所花的时间比逐行搜索更长。

备注:转载于 http://www.mianwww.com/html/2011/03/7844.html

转载于:https://www.cnblogs.com/cswolf/archive/2011/10/13/2267124.html

各大计算机公司 笔试及面试 题目 - 恒生电子相关推荐

  1. 各大计算机公司 笔试及面试 题目 - 人民搜索

    一.面试形式          1.3轮1V1的技术面试:某轮面试通过,稍事休息后开始下一轮面试.          2.面试过程基本分为两部分:           1)对简历上所写项目的描述,及回 ...

  2. 西工大-计算机学院-2021复试-面试题目

    网络远程复试 录取总成绩=初试成绩/5×0.65+复试成绩×0.35 复试总成绩=思想政治考核成绩*10%+专业外语水平考核成绩*20%+专业综合能力考核成绩*70 抽十道题,问完之后,如果时间没到2 ...

  3. C/C++ 笔试、面试题目大汇总

    C/C++ 笔试.面试题目大汇总 这些东西有点烦,有点无聊.如果要去C++面试就看看吧.几年前网上搜索的.刚才看到,就整理一下,里面有些被我改了,感觉之前说的不对或不完善. 1.求下面函数的返回值( ...

  4. 某通信公司的Android面试题目

    某通信公司的Android面试题目 今天的面试感觉做的不是很好,有些知识点明显没有掌握好,现在抽空把面试题目抄下来,同时努力掌握好对应的知识点. stack和heap有什么区别? heap是堆,sta ...

  5. 2011 各大IT公司笔试面试题目

    2011.10.17百度面试题 1.进程切换需要注意哪些问题? 保存处理器PC寄存器的值到被中止进程的私有堆栈:      保存处理器PSW寄存器的值到被中止进程的私有堆栈:    保存处理器SP寄存 ...

  6. 2011各大IT公司笔试面试题目

    2011.10.17百度面试题 1.进程切换需要注意哪些问题? 保存处理器PC寄存器的值到被中止进程的私有堆栈:      保存处理器PSW寄存器的值到被中止进程的私有堆栈:    保存处理器SP寄存 ...

  7. C/C++笔试、面试题目大汇总

    1.求下面函数的返回值(微软) int func(x) {    int countx = 0;    while(x)    {          countx ++;          x = x ...

  8. 各大IT公司笔试真题汇总开发人员一定要加入收藏夹的网站(收藏)

    巨人网络java笔试基础题分享 http://www.coderarea.net/bbs/read.php?tid=834 百度笔试题 http://www.coderarea.net/bbs/rea ...

  9. 校招八股:C/C++开发工程师常见笔试、面试题目不完全汇总【很基础】

    这里汇总一些C/C++开发岗的常见面试八股题,都属于比较基础.偏理论性的题目.换句话说,如果这些题目答不上来,可能会给面试官留下的基础不好的印象,尤其是科班生哈. 废话不多说,直接开始. 一.C/C+ ...

最新文章

  1. Datawhale来杭电啦!
  2. linux perl 报错 Can‘t locate CPAN.pm in @INC (@INC contains: inc /usr/local/lib64/perl5 /usr.... 解决方法
  3. 在updatepanel中使用fileupload控件
  4. [UTCTF2020]Cube Crypto
  5. python调用java方法_python调用java
  6. csp真题 202109-2非零段划分C++代码(100分)
  7. perl python json_Perl解析JSON数据精解
  8. Yoast SEO wordpress插件 + 所有扩展
  9. archery docker版升级
  10. HDU 5515 Game of Flying Circus 二分
  11. 编译原理教程_8 静态语义分析和中间代码生成
  12. MySQL5.7多实例自动化部署脚本
  13. 微前端子应用加载 vue-pdf 时跨域问题解决
  14. 有赞云支付php接口,Erphpdown wordpress插件集成有赞云支付的接口申请方法
  15. python跳一跳编程构造_Python玩“跳一跳” iOS+Win 硬件实现
  16. 这4种领导能力,别等变革失败了才知道!
  17. linux添加jetdirect协议,如何设置 HP JetDirect 设备的网络安全性?
  18. JAVA 订单号生成类
  19. 河北大学计算机网络卷子,河北大学计算机网络试卷
  20. springAop遇到的问题

热门文章

  1. 陶瓷设计灵感来源_网页设计师的色彩灵感来源
  2. 声优声带用计算机实现,男生声优入门训练内容
  3. 一文回顾2019年IEO市场并展望2020年
  4. Task 3 异常处理
  5. 0627-c-数据结构-块链串实现代码
  6. zabbix -server启动报错 Cannot bind socket to “/var/run/zabbix/zabbix_server_alerter.sock
  7. 吉他指弹入门——点弦技巧与左右分脑
  8. JQuery 图片循环播放抽奖
  9. 2020年PMP考证时间又推迟了,今年还有考的必要吗?
  10. Android 禁用鼠标滚轮(一)