笔试面试题
文章平均质量分 66
wuxinyicomeon
这个作者很懒,什么都没留下…
展开
-
面向对象的4个基本特征
上个周末霸笔大唐移动的应用程序软件工程师试题,有一道面向对象的4个特征,以前都是接触的三个,怎么多出了一个?原来就是抽象性。。。面向对象的4个基本特征 在上述面向对象的基本概念基础之上,不可避免地要涉及到面向对象程序设计所具有的4个共同特征:抽象性、封装性、继承性和多态性。 1.抽象 抽象是人们认识事物的常用方法,比如地图的绘制。抽象的过程就是如何简化、概括所观察到的现实世界,并为人们所用的过程。 抽象是软件开发的基础。软件开发离不开现实环境,但需要对信息细节进行提炼、抽象,找到事物的本质和重要属性。 抽象原创 2010-11-03 10:17:00 · 7852 阅读 · 0 评论 -
嵌入式软件常见笔试面试题总结
<br />1。中断与异常区别:<br />异常:在产生时必须考虑与处理器的时钟同步,实际上异常也称为同步中断。在处理器执行到由于编程失误而导致的错误指令时,或者在执行期间出现特殊情况(如缺页),必须靠内核处理的时候,处理器就会产生一个异常。<br />所谓中断就是外部硬件产生的一个电信号,从CPU的中断引脚进入,打断当前CPU的运行<br />所谓异常就是软件运行中发生了一些必须作出处理的事件,CPU自动产生一个陷入来打断当前运行,转入异常处理流程。<br /> <br />2。进程与线程的区别:<br原创 2010-11-17 12:15:00 · 2159 阅读 · 0 评论 -
数据结构与算法常见笔试题
<br />第一章 数据结构与算法<br />一.算法的基本概念<br />计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。<br />1.算法的基本特征:可行性,确定性,有穷性,拥有足够的情报。<br />2.算法的基本要素:算法中对数据的运算和操作、算法的控制结构。<br />3.算法设计的基本方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。<br />4.算法设计的要求:正确性、可读性、健壮性、效率与低存储量需求<br />二.算法的复杂度<br />1.算法的时间复杂度:指执原创 2010-11-09 07:53:00 · 17244 阅读 · 0 评论 -
常用的排序算法的时间复杂度和空间复杂度
常用的排序算法的时间复杂度和空间复杂度排序法 最差时间分析平均时间复杂度 稳定度 空间复杂度 冒泡排序O(n2)O(n2) 稳定 O(1) 快速排序O(n2)O(n*log2n) 不稳定 O(log2n)~O(n) 选择排序O(n2)O(n2) 稳定 O(1) 二叉树排序O(n2)O(n*log2n) 不一顶 O(n) 插入排序 O(n2)O(n2) 稳定 O(1) 堆排序O(n*log2n) O(n*log2n) 不稳定 O(1) 希尔排序OO 不稳定 O(1)1、时间复杂度 (1)时间频度 一个算法执行原创 2010-11-09 07:52:00 · 208397 阅读 · 13 评论 -
softirq/tasklet/workqueue的区别
<br />2011年威盛Linux software的笔试题,我想了半天,就想出了工作队列允许睡眠。。。真后悔驱动没能深入看看<br /> <br />softirq和tasklet都属于软中断,tasklet是softirq的特殊实现;<br />workqueue是普通的工作队列。<br />1、softirq<br />软中断支持SMP,同一个softirq可以在不同的CPU上同时运行,softirq必须是可重入的。软中断是在编译期间静态分配的,它不像tasklet那样能被动态的注册或去除。kern原创 2010-11-09 08:23:00 · 13718 阅读 · 0 评论 -
编写字符串反转函数
首先用数组下标的形式实现:提供三种方法: 1、有中间变量 2、无中间变量 3、堆栈实现 #include #include void reverse_str(char * ch); void reverse_str2(char *ch); int main(void) { char c[] = "Can you reverse me?"; printf("original string c: /n%s/n", c);原创 2010-11-07 20:47:00 · 10493 阅读 · 1 评论 -
C/C++内存分配与Linux内存管理进程所涉及到的五个数据段
<br />一. 在c中分为这几个存储区<br />1.栈 - 由编译器自动分配释放<br />2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收<br />3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放<br />4.另外还有一个专门放常量的地方。- 程序结束释放<br />原创 2010-11-07 21:50:00 · 3372 阅读 · 0 评论 -
编写字符串比较函数strcmp
<br />#include <stdio.h><br />int mystrcmp(char *pr,char *pt)<br />{<br /> int k;<br /> while(*pr==*pt&&*pr!='/0'&&*pt!='/0')<br /> {<br /> /* 如果两个字符相等,并且在数组内,指针下移*/<br /> pr++;<br /> pt++; <br /> }<br /> /*进行判断,并返回相应原创 2010-11-07 20:54:00 · 2874 阅读 · 0 评论 -
open-fopen read-fread等的不同
open和fopen的区别: 1.缓冲文件系统 缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”,装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存 “缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大,则操作外存的次数就少,执行速度就快、效率高。一般来说,文件“缓冲区”的大小随机器而定。 fopen, fclose, f原创 2010-11-05 22:59:00 · 900 阅读 · 0 评论 -
"#ifndef #define #endif ”防止头文件被重复包含
#include文件的一个不利之处在于一个头文件可能会被多次包含,为了说明这种错误,考虑下面的代码:#include "x.h"#include "x.h"显然,这里文件x.h被包含了两次,没有人会故意编写这样的代码。但是下面的代码:#include "a.h"#include "b.h"看上去没什么问题。如果a.h和b.h都包含了一个头文件x.h。那么x.h在此也同样被包含了两次,只不过它的形式不是那么明显而已。多重包含在绝大多数情况下出现在大型程序中,它往往需要使用很多头文件,因此要发现重复包含并不容易原创 2010-11-05 22:51:00 · 935 阅读 · 0 评论 -
C/C++内存分配方式
1.内存分配方式内存分配方式有三种:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。[3]从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期原创 2010-11-17 12:09:00 · 1118 阅读 · 0 评论