广联达2014校园招聘笔试
17 October 2013
公司是做建筑方面的建模工具产品。没有面试机会。
###卷一
1. 实现一个函数,把一个字符串中的字符从小写转为大写。
2. 给定一个二叉树的根结点R,写一个函数返回该二叉树是否为平衡二叉树。
二叉树的结点定义如下:
struct node {
int data;
struct node* left;
struct node* right;
}
3. 写一个函数,将两个有序的Key-Value数组按Key累加得到一个新的有序数组。
例: 数组 1 1, 400 4, 700 5, 100 数组 2 1, 300 2, 500 3, 400 4, 200 按Key累加之后得到新的数组 1, 700 2, 500 3, 400 4, 900 5, 100 Key-Value定义:
typedef struct keyvalue {
int key;
double value;
} 函数接口:
void sumKeyValueArray(const keyvalue aArray1[], int nLen1, const keyvalue aArray2[], int nLen2, keyvalue aResult[], int &nResultLen);
4. 不开辟和用于交换数据的临时空间,如何完成字符串的逆序。
C语言的函数头为:void change(char* str);
不开辟临时空间交换值可以使用异或操作或者加法来实现,可以参考《3种交换值的方法》
5. 一个学生的信息包括:姓名,学号,性别,年龄等信息,用一个链表保存所有学生的信息,给出一个age,在链表中删除学生年龄等于age的学生信息。
typedef struct student {
char name`[20]`;
char sex;
int no;
int age;
student* next;
};
###卷六
4. 在字符串中找出第一个只出现一次的字符,如输入”abaccdeff”,则输出’b’。
5. 设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),空间复杂度为O(1)。
原文链接: 广联达2014校园招聘笔试 ,转载请注明来源!
– EOF –