`
dowhathowtodo
  • 浏览: 777465 次
文章分类
社区版块
存档分类
最新评论

近期笔试心得(软件工程师,周立功2011校园招聘)

 
阅读更多

最近都在忙着投递简历,找些公司进行实习,很多事情都被耽搁了下来。从最初的笔试到现在,C++的基础终于补上了不少。之前周立功校园招聘的时候试着投递了一下简历,后来通知晚上6:30参加笔试(软件工程师),因为专业还是更加偏向于软件和应用这一块,但周立功又是比较偏向于底层的,有些担心自己的C++底子。周立功非常注重编程基础,所以之前几天也一直都在恶补C++和数据结构的基础知识。一个多小时做下来,总体感觉其实并不是很好,毕竟自己在基础这一块并不是很好,之前时间一直花在项目上,很少注重基础和底层的东西。

笔试主要涉及一下几个方面:

1、数组和指针

2、const和static等关键字用法

3、位操作

4、二叉树(三个遍历方式),哈弗曼编码

5、基础算法和系统知识

这次指针的操作考的最多,可能是因为嵌入式偏向于底层,对于内存的管理要求比较高。考题基本出来之后都忘了,大概记得这么几题

1、char **a[2][3];

short **b[2][3];

sizeof(a),sizeof(b);分别是多少 (答案:24,24)

2、int a[2] = {4,8};

int *p = a;

int *q = p + 1;

q - p,(int)q - (int)p分别为多少 (答案:1,4)

3、定义一个指向有10个整型数数组的指针

答案:int (*a)[10]

这些题其实并不难,只是考察指针的一些基本用法。

4、位操作:变量ui为一unsigned long的32为整数,将其前16位清空

答案:ui &= ~((2^16-1)<<16),C++ Primer中对位操作进行了很好的解释。

5、不能判断是大写字母的是:

A:issupper

B:!(str<='A' || str >='Z')

C:str >='A' && str <='Z'

D:str >='a'-32 && str <= 'z'-32

6、对于一次new一个十个整形元素的数组和分十次new一个整形数,哪个内存开销大?

7、if(____)

printf("hello ");

else

printf("world!");

如何才能输出“hello world!”? (答案:!printf("hello "))

8、为什么 int a[1024*1024]会崩溃? (答案:栈内存溢出,默认只分配1M,这里申请了4*1024*1024=4M)

9、C,C++直接createThread()会有什么问题? (答案:会有资源泄漏的隐患)

10、int a[8] = {2,4,54,12,4,5,79,10},a[25 & 7]=_____ (答案:4, 25&7=1)

还有一些题目具体是什么都想不起来了,不少都是指针的题目,考了不少二叉树的东西,比如给了先序和后续,求中序,还有满足什么条件二叉树先序和后序一样,等等。一个幻方问题,一个排序,还有一个什么五个盒子里分别有1,8,16,32,64个球(好像是这个数字),随意分配,但每个盒子不能空,最靠近中间值的是?说实话,这道题没看懂。不过有一点奇怪的是,这次笔试没有考链表。

之前去一家嵌入式公司笔试,那会儿什么都没准备就去了,结果很是悲剧,题目也很基础,大概记得这么几题

1、写一个"标准"MIN,这个宏输入两个参数并返回较小的一个。当你写下面的代码时会发生什么事?least = MIN(*p++, b);

2、用变量a给出下面的定义

a) 一个整型数(An integer

b) 一个指向整型数的指针(A pointer to an integer

c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer

d) 一个有10个整型数的数组(An array of 10 integers

e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers

f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers

g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer

h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer

3、关键字static的作用是什么?关键字const是什么含意?

4、关键字volatile有什么含意 并给出三个不同的例子。

5、assert函数的作用是什么?

6、嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置abit 3,第二个清除a bit 3。在以上两个操作中,要保持其它位不变。

7、下面的代码输出是什么,为什么?

void foo(void)

{

unsigned int a = 6;

int b = -20;

(a+b > 6) puts("> 6") : puts("<= 6");

}

所以几次笔试总结下来,基础还是非常重要的,必须得重视。很多公司都是考一些很基础的用法,概念和算法。如果上面说到的这些要点都能清楚地搞懂,那么笔试这一关基本上不会存在大问题了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics