笔试常考题--嵌入式软件开发

最近在找工作,到处跑,做了很多笔试,这里总结这些天常考的题,一是记录心得,二是分享知识--Rome was not built in a day

1 char *const p; char const *p; const char *p; 这三者有什么区别?

char *const p: 指针常量,指向一块区域,这块区域可读可写,但是指针的值初始后就不能改,类似于一般常量。 char const *p; const char *p表示同一个意思: 常量指针,指向一块区域,这块区域不可写,只能读。

2 Static全局变量与普通的全局变量有什么区别?Static局部变量与普通的局部变量有什么区别?Static函数与普通的函数有什么区别?

在模块内,一个被声明为静态的全局变量可以被模块内所有函数访问,但不能被模块外其它函数访问,它是一个本地的全局变量。在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用,也就是说,这个函数被限制在声明它的模块的本地范围内使用。

3 请描述堆和栈的区别

栈区(stack)由编译器自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构中的栈。 堆区(heap)一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式类似于链表

4 列出你所知道的嵌入式操作系统

一般个人的话一般是嵌入式Linux,uclinux,ucos-ii 这些都可以,而且可以接触到源码,这个是很好的。除此之外还有微软的wince,开发工具多,开发周期短,但是看不到源码。还有就是VxWorks ,这个是嵌入式最强的可想而知一般在大企业,军工上才会用。

5 你所知道的排序算法

排序算法稳定性的简单形式化定义为:如果Ai = Aj,排序前Ai在Aj之前,排序后Ai还在Aj之前,则称这种排序算法是稳定的通俗地讲就是保证排序前后两个相等的数的相对顺序不变。

冒泡排序,时间复杂度o(n^2),稳定;

选择排序,时间复杂度o(n^2),不稳定;

插入排序,时间复杂度o(n^2),稳定;

希尔排序,时间复杂度不定,不稳定;

堆排序,时间复杂度o(nlogn),不稳定;

快速排序,时间复杂度o(nlogn),不稳定;

归并排序,时间复杂度o(nlogn),稳定;

基数排序,时间复杂度o(n^2),稳定

时间: 2024-08-07 01:37:22

笔试常考题--嵌入式软件开发的相关文章

实时嵌入式软件开发的25个常见错误

英文原文由David B. Stewart撰写,  这篇论文对实时嵌入式软件开发的易犯错误做了深入分析,对我们的开发非常有指导意义. David B. Stewart Software Engineering for Real-Time Systems Laboratory Department of Electrical and Computer Engineering and Institute for Advanced Computer Studies University of Mary

【转载】实时嵌入式软件开发的25个常见错误

原文地址:http://blog.csdn.net/myaccella/article/details/7003308 英文原文由David B. Stewart撰写,  这篇论文对实时嵌入式软件开发的易犯错误做了深入分析,对我们的开发非常有指导意义. David B. Stewart Software Engineering for Real-Time Systems Laboratory Department of Electrical and Computer Engineering an

从嵌入式软件开发到J2EE

引言 毕业还不到一年的时间,但严格的说,参加工作已经将近两个年头了.从最开始参加嵌入式培训,到现在,一直在从事嵌入式软件开发的工作.但是慢慢的感觉到,这个行业并不是那么的适合我们这种纯计算机专业毕业的大学狗,因为涉及的知识面实在太大,从硬件到软件,都需要我们能融会贯通.随着现在互联网行业的蓬勃发展,以及“互联网+”概念的愈演愈热,我觉得是时候转换行业,试试“互联网”这趟浑水了. 学习路线 其实我之前也有接触过web程序设计,html,css,js,jq,php,mysql,oracle,tomc

嵌入式软件开发中linux系统的选择

就自己使用过了几个linux版本来发表下自己的看法 在公司不上直接上网的情况下 市面上很多的linux发行版本就不能用了 要在能提供完整镜像iso的版本中进行选择 一般就只能选择 fedora centos debian fedora centos 要使用iso镜像当软件源要更改yum配置 debian 的话安装就默认是iso文件当镜像 同时debian 有3个iso文件下载,第一个是系统和一些常用软件 后两个就是些软件,你把这三个iso下载下来有12G左右,想要什么软件都会有了 根本就不再需要

面试笔试常考的mysql 数据库操作group by

IT 面试中,数据库的相关问题基本上属于必考问题,而其中关于sql语句也是经常考察的一个重要知识点. 下面介绍下sql语句中一个比较重要的操作group by,他的重要行一方面体现在他的理解困难度,一方面体现应用中的长见性. 首先,给出一个studnet学生表: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) DEFAULT NULL, `sex` tinyint(1) DEFAU

(14)嵌入式软件开发工程师技能要求总结

找准一个行业方向:音视频.人工智能.深度学习.视觉识别.机器学习 嵌入式软件开发工程师: 技能要求: 熟悉Linux操作系统.shell脚本语言.mysql的开发,部署,优化优先.掌握数据结构,常用算法; 1.数字模拟电路.熟练Protel99/Altium/PADS一种或多种电路硬件设计软件: 2.熟悉UART,IIC,SPI.蓝牙协议栈.通讯协议: 3.熟练掌握socket.多线程编程,对tcp/ip协议有一定的理解; 4.熟悉Keil或IAR嵌入式系统开发工具. 至少精通ARM.AVR.S

什么是嵌入式开发?嵌入式软件开发入门教程

嵌入式系统发展到今天,对应于各种微处理器的硬件平台一般都是通用的.固定的.成熟的,这就大大减少了由硬件系统引入错误的机会.此外,由于嵌入式 操作系统屏蔽了底层硬件的复杂性,使得开发者通过操作系统提供的API函数就可以完成大部分工作,因此大大简化了开发过程,提高了系统的稳定性.嵌入式系 统的开发者现在已经从反复进行硬件平台设计的过程中解脱出来,从而可以将主要精力放在满足特定的需求上. 嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的.目前一

python面试总结2(函数常考题和异常处理)

python函数常考题 可变类型为参数 不能类型为参数 python如何传递参数 传递值还是引用呢?都不是.唯一支持的参数传递是共享穿参 Call by Object(Call by Object Reference or Call by Sharing) Call by sharing(共享传参).函数形参获得实参中各个引用的副本 def flist(l): l.append(0) print(l) l = [] #指向同一个内存地址 flist(l) # [0] flist(l) # [0,

【笔试常考】C语言:深度剖析strlen,sizeof

在之前的博客中,我也探索过strlen,sizeof区别,详情可见博客http://10740184.blog.51cto.com/10730184/1705820. 关于strlen,sizeof均可求字符串长度,这两者是笔试面试常考的知识点. #include<stdio.h> #include<stdlib.h> #include<string.h> //void Test1() //{ //    char* arr = "hello world!&q