2015年3月16日 星期一 小雨转阴
上周出发前,自己有整理一些测试题,以后估计用不上了,贴到这里。校园招聘,要求没那么高,随便问问。
聊天:
- 平时都有啥爱好
- 除了课堂外,平时都是怎么自学的?
C语音(1~2道):
- 实现一个函数,使用C语言把字母转换成大写,不能使用库函数。
- 实现一个函数,用来统计一个文本文件里的单词个数。
- 编译一个strcpy函数,如果是mm的话就出这道题,至少你还背过题吧?
- 求出用1,2,5这三个数不同个数组合的和为100的组合个数。如:100个1是一个组合,5个1加19个5是一个组合。。。。 请用C语言写。
- 请问C++的类和C里面的struct有什么区别?
- do {…} while (0) 在宏定义中的作用
- 说明一下big-endian和little-endian
- 请在小于99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同,如:144,676。
- 写一条匹配电话号码的正则表达式
Android:
- 谈谈handler机制的原理
- 画出Activity的生命周期
- 什么是ANR 如何避免它
- 什么情况会导致Force Close ?如何避免?能否捕获导致其的异常?如何调试?
- 谈谈做一个短信木马的思路
- 谈谈做短信自注册(打过三次电话或者发过三次短信、待机30天以上)的思路,比如使用30天后才激活、怎么才能保证程序不会被杀,这道题纯属我的原创,扩展性很好
- 介绍下android的数据存储方式,不同APK间怎么共享各自数据?
- 用的是什么手机?(不是Android的就不继续问了)自己刷过机吗?root过手机吗?一般都在哪里下载APK?
- 谈谈多线程,你会怎么用。
- 如何调试?反编译过吗?
驱动:
- 什么是GPIO? GPIO是相对于芯片本身而言的,如某个管脚是芯片的GPIO脚,则该脚可作为输入或输出高或低电平使用,当然某个脚具有复用的功能,即可做GPIO也可做其他用途。
- 列几条常用的linux命令
- 驱动里面为什么要有并发、互斥的控制?如何实现?讲个例子?
- linux中中断处理的方法,(分为上下半部),下半部有几种方法(tasklet,workqueue,softirq),三种方法有何区别?(softirq优先级最高;tasklet基于softirq,不能休眠;workqueue可以休眠,适合于调度优先级不高的任务)
- 自旋锁和信号量在互斥使用时需要注意哪些?在中断服务程序里面的互斥是使用自旋锁还是信号量?还是两者都能用?为什么?
- 写一个中断服务需要注意哪些?如果中断产生之后要做比较多的事情你是怎么做的?
- 谈谈volatile的含义
- C语言中对位的操作,比如对a的第三位清0,第四位置1
9.arm的寄存器
ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。
31个通用寄存器根据其编程特点可分为如下几种类型:
1、不分组寄存器R0-R7 为所有模式共享
2、分组寄存器R8-R12
R8_fiq-R12_fiq: FIQ模式下的寄存器
R8-R12:其它模式共享
3、分组寄存器R13-R14
分为6组,用户、系统一组,其他每种模式一组。
R13_
通常用作堆栈指针SP,R14_ 通常用作子程序链接寄存器LR,当进入子程序时,常用来保存PC的返回值于其中,mode为以下几种模式之一:usr、fiq、irq、svc、abt、und。 4、程序寄存器R15(PC) 所有模式共享 6个状态寄存器: 一个CPSR当前程序状态寄存器,保存当前程序状态。 五个程序状态备份寄存器SPSR(svc,abt,und,irq,frq),只有在异常模式下,才能被访问;各异常模式都拥有属于自己的SPSR,当发生异常时,SPSR用来保存CPSR的值,从异常退出时则可由SPSR来恢复CPSR。 10.ARM的七种工作模式 用户模式usr:正常的程序执行模式,此模式应用程序不能访问受操作系统保护的资源,不能改变模式,除非发生异常 快速中断模式fiq:支持高速数据传输或通道处理 外部中断模式irq:用于通用中断处理 管理模式svc:操作系统的保护模式,复位,软件中断(SWI)进入 数据访问终止模式abt:支持虚拟内存和内存保护 系统模式sys:支持操作系统的特殊用户模式(运行操作系统任务) 未定义指令终止模式und:支持硬件协处理器的软件仿真(浮点、向量运算)
11.大端对齐小端对齐?:通常用大端对齐,高位数据对应低位地址,也就是先高位再低位;小端对齐高位数据对应高位地址,先低位再高位。对内存的存取一定是从低位开始累加。
- i2c/spi/uart/usb 几种通信协议的区别,请简单介绍其中1-2种。 SPI(Serial Peripheral Interface:串行外设接口) I2C(INTER IC BUS:意为IC之间总线) UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI) I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制 UART总线是异步串口 SPI和UART可以实现全双工,但I2C不行 SPI 的通信原理很简单,它需要至少4根线,事实上3根也可以。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。 I2C只要求两条总线线路:一条串行数据线SDA 一条串行时钟线SCL UART硬件上由两根线,一根用于发送,一根用于接收 USB 是英文 Universal Serial BUS(通用串行总线)的缩写 USB 接口支持设备的即插 即用和热插拔功能 USB 的数据信号线是差分驱动的
Java
- 求出用1,2,5这三个数不同个数组合的和为100的组合个数。如:100个1是一个组合,5个1加19个5是一个组合。。。。 请用Java语言写。
- 请在小于99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同,如:144,676。
- 谈谈Java的反射机制
- 写一条匹配电话号码的正则表达式.
- 说明一下big-endian和little-endian
- 多线程写过么?一般用于什么场合?
汇编:
- 寄存器清零操作
- 算了,其他的我就不问了,也不招
Python 不用刻意准备了,我们也不需要会写Python的,但我会随意问一两句,会的话加分。
- List的extend和append操作
- deepcopy 和 copy
- 写个函数,遍历目录,清除*.svn文件
- 文件操作
- 随意参考C和Java的算法题
网络:
- Internet采用哪种网络协议?画该协议的主要层次结构?
- 请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图
- TCP与UDP有何区别?
- Get和POST方法的区别
- cookie和session
- http和socket编程
...