最近都在忙着投递简历,找些公司进行实习,很多事情都被耽搁了下来。从最初的笔试到现在,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,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
7、下面的代码输出是什么,为什么?
void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) puts("> 6") : puts("<= 6");
}
所以几次笔试总结下来,基础还是非常重要的,必须得重视。很多公司都是考一些很基础的用法,概念和算法。如果上面说到的这些要点都能清楚地搞懂,那么笔试这一关基本上不会存在大问题了。
分享到:
相关推荐
周立功单片机发展有限公司2010校园招聘笔试题。祝大家好运!
2010周立功校园招聘硬件类笔试题考点,经典解析。。。 需要的下载
周立功公司09年笔试题(2010届),包括各类笔试题
周立功2009FPGA笔试题,周立功2009FPGA笔试题,周立功2009FPGA笔试题,周立功2009FPGA笔试题
1、使用Qt Creator4.2.1编写CAN通信软件(周立功USBCAN-II)接收 2、可以设置250K和500K的波特率 3、通过表格显示接收数据报文 4、采用多线程
2012.6.18 周立功夏令营软件笔试题,题目主要考C,有点变态难,俺只得了57分。
周立功笔试题集(笔试必备) 对没面试过的同学有帮助。 网上找的。
硬件类笔试题很基础很基础,不过要得高分也不容易。
周立功SmartPRO T9000-PLUS编程器软件
周立功笔试资料集好东西,周立功笔试资料集好东西
周立功CAN用户手册和驱动,周立功USBCANtest软件驱动,包括使用说明。
周立功 CANbus的信号模拟输出软件,用于开发板上面的can接口传输模拟信息专用
ARM ARM教程 周立功 ARM ARM教程 周立功 ARM ARM教程 周立功
周立功 arm 开发软件 Tkstudio 教程.pdf 周立功 arm 开发软件 Tkstudio 教程.pdf
用于配置周立功CAN转以太网设备的IP地址,CAN通信波特率等,实测好用
周立功下载器软件 zlg actel usb cable
周立功CAN分析仪二次开发源码和文档,右C#,C++等语言的资料,还有二次开发文档可以参考,文件里还包含二次的示例
使用附件软件可以使用上位机软件截取周立功示波器界面上的图;方便操作;
历届周立功笔试题汇总及答案,很有参考价值的啊