搜档网
当前位置:搜档网 › 嵌入式开发笔试题(定)

嵌入式开发笔试题(定)

嵌入式开发笔试题(定)
嵌入式开发笔试题(定)

三川2016年嵌入式开发类笔试试题

姓名:分数:时间:60分钟1、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?(用程序实现)(10分)

2、输入三个整数x,y,z,请把这三个数由小到大输出。(8分)

3、基尔霍夫定理的内容是什么?(4分)

4、动态随机存储器的英文缩写?压控振荡器的英文缩写?(4分)

5、用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)(10分)

6、写一个”标准”宏MIN,这个宏输入两个参数并返回较小的一个。(10分)

7、嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?(4分)

8、用变量a给出下面的定义(8分)

a) 一个整型数。

b) 一个指向整型数的指针。

c) 一个指向指针的的指针,它指向的指针是指向一个整型数。

d) 一个有10个整型数的数组。

e) 一个有10个指针的数组,该指针是指向一个整型数的。

f) 一个指向有10个整型数数组的指针。

g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数。

h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数。

9、中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具代表事实是,产生了一个新的关键字__interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码。(20分)

__interrupt double compute_area (double radius)

{ double area = PI * radius * radius;

printf(” Area = %f”, area);

return area;

}

10、同步电路和异步电路的区别是什么?(6分)

11、什么是”线与”逻辑,要实现它,在硬件特性上有什么具体要求?(8分)

12、单片机上电后没有运转,首先要检查什么? (8分)

嵌入式软件工程师笔试题

(一) 1什么是预编译,何时需要预编译: 答案: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 2 char * const p char const * p const char *p 上述三个有什么区别? 答案: char * const p; //常量指针,p的值不可以修改 char const * p;//指向常量的指针,指向的常量值不可以改const char *p;//和char const *p 3 char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout < < ( str1 == str2 ) < < endl; cout < < ( str3 == str4 ) < < endl; cout < < ( str5 == str6 ) < < endl; out < < ( str7 == str8 ) < < endl; 结果是:0 0 1 1 str1,str2,str3,str4是数组变量,它们有各自的存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。 4以下代码中的两个sizeof用法有问题吗? [C易] void UpperCase( char str[] ) // 将str 中的小写字母转换成大写字母 {for( size_t i=0; i

软件测试工程师笔试题及答案

测试工程师笔试题 一、计算机知识(30分) 1、在Linux系统中,一个文件的访问权限是755,其含义是什么 参考答案: 755表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。 2、Linux中,如何从root用户切换到普通用户 参考答案:su su user1 切换到user1,但切换后的当前目录还是root访问的目录 su – user1 切换到user1,并且当前目录切换到user1的根目录下(/home/user1/) 3、简述一下C/S模式和B/S模式的区别 参考答案: c/s 是客户端/服务器架构 b/s 是浏览器/服务器架构 C/S模式有以下特点: S模式将应用与服务分离,系统具有稳定性和灵活性 S模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性 3.由于客户端实现与服务器端的直接连接,没有中间环节,因此响应速度快 4.在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升级,每台客户机都要安装客户机程序,系统升级和维护较为复杂 B/S模式有以下特点: 1.系统开发、维护、升级方便 每当服务器应用程序升级时,只要在服务器上升级服务应用程序即可,用户计算机上的浏览器软件不需要修改,系统开发和升级维护方便 S模式具有很强的开放性 在B/S模式下,用户通过通用的浏览器进行访问,系统开放性好 S模式的结构易于扩展 由于Web的平台无关性,B/S模式的结构可以任意扩展,可以从包含一台服务器和几个用户的小型系统扩展成为拥有成千上万个用户的大型系统 4.用户使用方便 B/S模式的应用软件都是基于Web浏览器的,而Web浏览器的界面是类似的。对于无用户交换功能的页面。用户接触的界面都是一致的,用户使用方便 4、Windows操作系统中PATH环境变量的作用是什么 参考答案: PATH是Windows操作系统环境变量,PATH作用是用户在命令行窗口执行一个命令,则在PATH变量设置的目录下依次寻找该命令或对应的执行文件,若找到,则执行,若没有找到,则命令行窗口返回无效命令。 5、TCP和UDP有什么区别 参考答案: TCP-有连接,所以握手过程会消耗资源,过程为可靠连接,不会丢失数据,适合大数据量交换UDP-非可靠连接,会丢包,没有校验,速度快,无须握手过程

嵌入式笔试题汇总1

1 读程序段,回答问题 (a) int main(int argc,char *argv[]) { int c=9,d=0; c=c++%5; d=c; printf("d=%d\n",d); return 0; } a) 写出程序输出 b) 在一个可移植的系统中这种表达式是否存在风险?why? 答案:5 存在风险,因为c=c++%5;这个表达式对c有两次修改,行为未定义,c的值不确定 (b) #include "stdio.h" int a=0; // data section int b; // data section static char c; // BSS int main(int argc,char *argv[]) { char d=4; // stack static short e; // BSS a++; b=100; c=(char)++a; e=(++d)++; printf("a=%d, b=%d, c=%d, d= %d, e=%d",a,b,c,d,e); return 0; } a) 写出程序输出 b) 编译器如果安排各个变量(a,b,c,d)在内存中的布局(eg. stack,heap,data section,bss section),最好用图形方式描述。 答案:a=2,b=100,c=2,d=6,e=5 2 中断是嵌入式系统中重要的组成部分,这导致了许多编译开发商提供一种扩展:让标准C支持中断,产生了一个新的关键字__interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论以下这段代码。 __interrupt double compute_area(double radius) { double area = PI * radius *radius; printf("nArea = %f", area); return area; } 答案

嵌入式C语言经典笔试题目

嵌入式c语言经典笔试题目 1 .用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1) #define语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3)意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。 4)如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。 2 .写一个"标准"宏MIN,这个宏输入两个参数并返回较小的一个。 #define MIN(A,B)((A)<= (B) ? (A) : (B)) 这个测试是为下面的目的而设的: 1)标识#define在宏中应用的基本知识。这是很重要的。因为在嵌入(inline)操作符变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。 2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。 3)懂得在宏中小心地把参数用括号括起来 4)我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事? least = MIN(*p++, b); 3.预处理器标识#error的目的是什么? 如果你不知道答案,请看参考文献1。这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。 死循环(Infinite loops) 4.嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢? 这个问题用几个解决方案。我首选的方案是: while(1) { } 一些程序员更喜欢如下方案: for(;;) { } 这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,

嵌入式软件开发人员笔试题

四川九洲电器集团有限责任公司成都技术中心 嵌入式软件开发人员笔试试题 本笔试试题分为C语言基础、算法、思维能力三部份。总分100分,描述思路和最后结果都很重要。 一、C语言基础 1. 语句实现x是否为2的若干次幂的判断。(5分) 2. 宏定义写出swap(x,y)。(5分) 3. 用变量a给出下面的定义。(16分,各两分) 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 )

Java软件开发工程师笔试题(答案)

Java工程师笔试题 一、填空题(本大题10小题,每空1分,共20分)。 1.Java语言的三大特性即是: 继承、封装、多态。 2.在Java中,char 型采用____unicode_______编码方案,这样,无论是中文字符还是英文字符,都是占用__2___个字节的内存空间。 3. 形式参数指的是方法被__定义____ 时的参数行,实际参数是方法被__调用__ _ 时所传递进去的变量或值。 4.JSP内置对象中,application对象是代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息,而session 对象则是每个客户专用的。 5.如果想把一个对象写入一个流,那么这个类就必须实现Seralizable 接口。 6.程序中实现多线程的方法有两种:继承Thread类和实现___Runable _ 接口。 7.多线程中,可以通过调用相应的setPriority() 方法来修改一个线程的相对优先级。 8.面向对象编程的五大设计原则,分别是单一职责、开放封闭、 里氏替换、依赖倒置、接口分离 9.通过Ajax,客户端获取的数据主要有两种类型:文本型和xml 10.Socket通常也称为套接字,用于描述__ ip 和_ _接口 二、选择题(本大题20 小题,每小题2分.共40分)。 1.在JA V A中,如果父类中某些方法不包含任何逻辑,并且需要由子类重写.应该使用( )关键字来声明父类的这些方法: A) final B) static C) abstract D) void 2.在JA V A中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是()。 A) interface A extend B,C B) interface A implements B,C C) class A implements B,C D) class A implements B, implements C

嵌入式软件工程师C语言笔试题

软件笔试题(A) 姓名:___________________________________ 学校:_____________________________________ 专业:___________________________________ 电话:_____________________________________ (如无特殊说明,以下所有测试内容都是基于32位嵌入式系统) 1)程序的局部变量存在于 _______________ 中,全局变量存在于_________________ 中,动态申请数据存在于_________________ 中。 2)如何用if来做零值比较 int a : if(a==O) bool a : _________________________ float a : _________________________ void * a : 3) void func( char str[1OO]) { printf( “ %d ,sizeof( str )); } 输出结果是:_____________________ 有下列定义: char str[] = “ Hello World ” ; char *p = str; int n = 10; void *ptr = malloc( 100 ); 请写出如下表达式的值: sizeof (str ) = _ sizeof ( p ) = _ sizeof ( n ) = _ sizeof ( ptr )= _ 4)

un sig ned char *p1; un sig ned long *p2; p1=(unsigned char *)0x87000000; p2=(unsigned long *)0x80010000; 请问p1+5 = ____________ ; ___________ p2+5 = ________ ; _____________ 5) char str[10]; strcpy(str,"0123456789"); 产生什么结果?为什么? 6)用C语句,让程序跳转到绝对地址0XFFFF0去执行 7) 已知一个数组array ,用一个宏定义,求出数组的元素个数 #define ARRAY_COUNT _____________________________________________________ 8) 简要说明,为什么标准头文件都有类似以下的结构。 #ifndef __INC_Ho neywell_Debug #defi ne __INC_Ho neywell_Debug #ifdef __cplusplus extern "C" { #en dif /*???*/ #ifdef __cplusplus } #en dif #e ndif /*__INC_Hon eywell_Debug */

海康嵌入式笔试题

海康嵌入式笔试题 Revised as of 23 November 2020

海康嵌入式笔试题 1.请问TCP/IP协议分为哪几层FTP协议属于哪一层 答:可以分为物理层,数据链路层,网络层,传输层,应用层 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、 文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务, 主要功能是数据格式化、数据确认和丢失重传等。 如传输控制协议(TCP)、用户数据报协议(UDP)等, TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据, 并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。如ARP是地址解析协议,在这一层的时候吧IP地址转换为物理地址网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、SerialLine等)来传送数据。 另外补充一下OSI的七层所对应的协议: 应用层(Application): 应用程序网关(applicationgateway)Telnet:远程登录(在应用层连接两部分应用程序) FTP(FileTransferProtocol):文件传输协议 HTTP(HyperTextTransferProtocol):超文本传输协议 SMTP(SimpleMailTransterProtocol):简单邮件传输协议 POP3(PostOfficePtotocol):邮局协议 SNMP(SimpleNetworkMangementProtocol)简单网络管理协议 DNS(DomainNameSystem):域名系统 传输层(Transport): 传输网关(transportgateway) TCP(TransmissionControlPotocol):传输控制协议 (在传输层连接两个网络) UDP(UserDataPotocol):用户数据协议 网络层(Internet): 多协议路由器(multiprotocolrouter) IP(InternetProtocol):网络协议(在异构网络间转发分组) ARP(AddressResolutionProtocol):地址解析协议 RARP(ReverseAddressResolutionProtocol):逆地址解析协议 ICMP(InternetControlMessageProtocol):因特网控制消息协议

嵌入式软件工程师笔试题

笔试题 1: 设 float a=2, b=4, c=3; ,以下 C 语言表达式与代数式 (a+b)+c 计算结果不一致的是 A.(a+b)*c/2 B.(1/2)*(a+b)*c C.(a+b)*c*1/2 D.c/2*(a+b) 参考答案: B,因为 a,b,c 三个变量都是浮点数,所以在 B 答案中其结果是 0,因为在计算 1/2 是就是 0,如果改成 1/2.0 就正确了。 2: 为了向二进制文件尾部增加数据,打开文件的方式应采用 A.″ab″ B.″rb+″ C.″wb″ D.″wb+″ 参考答案: D 3: 下述程序执行后的输出结果是 #include main() { int x= 'f'; printf( “%c n”, 'a'+(x - ‘a'+1)); } A.g B.h C.i D.j 参考答案: A 4:C 语言中,下列运算符优先级高的是 A.! B.% C.>> D.= = 参考答案: A 5:数组定义为“ int a [ 4 ] ; ”,表达式 ( ) 是错误的。 A.*a B. a [ 0 ] C. a D.a++ 参考答案: D

6: 执行语句“ k=7>>1; ”后,变量 k 的当前值是 A.15 B.31 C. 3 D. 1 参考答案: C 7: 定义函数时,缺省函数的类型声明,则函数类型取缺省类型 A.void B.char C.float D.int 参考答案: D 8: 若 main() 函数带参数,参数个数多是 A.0 B. 1 C. 2 D. 3 参考答案: C 只知道有定义形式 main(int argc,char* argv[])) 9: 若有宏定义: #define MOD(x , y) x%y 则执行以下语句后的输出结果是 int a=13 ,b=94; printf( ″%d n″, MOD(b, a+4)); A. 5 B.7 C.9 D.11 参考答案: B 10: 下列各个错误中,哪一个不属于编译错误 A.改变 x 原值 3 为 5 ,写作“ x==5 ; ” B.花括号不配对 C.复合语句中的后一条语句后未加分号 D.变量有引用、无定义参考答案: A 11: 下列程序段运行后, x 的值是 ( ) a=1;b=2;x=0; if(!( — a))x — ; if(!b)x=7;else ++x; A.0 B. 3 C. 6 D.7 参考答案: A

Java软件开发工程师笔试题(答案)

Java软件开发工程师笔试题(答案) Java工程师笔试题 1,填空(此大题10项,每空1分,共20分) 1。Java语言的三个特性是继承性、封装性和多态性2.在Java中,char 使用_ _ _ _ Unicode _ _ _ _ _ _编码方案,因此中文字符和英文字符都占用__2__字节的内存空间 3。当方法由_ _定义时,形参指的是参数行,当方法由_ _调用时,实际参数是传入的变量或值。 4。JSP内置对象,应用程序对象代表应用程序上下文,它允许JSP 页面与包含在同一应用程序中的任何网络组件共享信息,而会话对象是特定于每个客户的 5。如果你想把一个对象写到一个流中,这个类必须实现Seralizable 接口 6。在程序中实现多线程有两种方法:继承线程类和实现_ _ Runable _ interface 7。在多线程中,线程的相对优先级可以通过调用相应的setPriority()方法来修改 8。面向对象编程的五个设计原则是单一责任、开放和封闭、里氏尺度替换、依赖倒置、接口分离。通过Ajax,客户端获取的数据主要有两种类型:文本类型和xml 10。Socket通常也叫socket,用来描述__ ip和_ _ interface 2,多项选择题(这个大题20项,每项2分,共40分)

1。在JA V A中,如果父类中的一些方法不包含任何逻辑并且需要被子类重写,那么父类的这些方法应该使用()关键字来声明:a)final b)static c)abstract d)void 2。在JA V A中,已经定义了两个接口b和c。要定义实现这两个接口的类,下面的语句是正确的() a)接口aextend b,c b)接口a implements b,c c)类a mplements b,c d)类a mplements b,实现c 3。可以在JA V A接口()中定义 A)静态方法b)常量c)构造函数d)抽象方法 4。假设A有构造函数A (int a),那么在A类的其他构造函数中调用的构造函数和语句格式应该是() a)a(x)b)this . a(x)c)this(x)d)super(x) 5。如果x = 1,y = 2,z = 3,表达式y+= z-/++x的值为()a)3b)3.5°c)4d)5 6。下列关于继承的陈述中哪一个是正确的?( )a)子类只继承父类的公共方法和属性:b)子类继承父类的非私有属性和方法: C)子类继承父类的方法,但不继承父类的属性:d)子类继承所有的属性和方法。 7。在爪哇。使用JDBC时对于对同一个SQL语句的多次调用,使用()通常会提高效率 a)语句b)可调用语句c)准备语句d)prarmeters语句8。以下方法无法控制Servlet的生命周期:a)服务b)销毁c) dopost d) init9。可以分配给字节变量的值的范围是()0 ~ 65535 b) (-128) ~ 127 c) (-32,768) ~ 32,

经典嵌入式面试题

经典嵌入式面试题 C语言测试就是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者与被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也就是相当有趣的。 从被面试者的角度来讲,您能了解许多关于出题者或监考者的情况。这个测试只就是出题者为显示其对ANSI标准细节的知识而不就是技术技巧而设计不?这个愚蠢的问题不?如要您答出某个字符的ASCII值。这些问题着重考察您的系统调用与内存分配策略方面的能力不?这标志着出题者也许花时间在微机上而不上在嵌入式系统上。如果上述任何问题的答案就是"就是"的话,那么我知道我得认真考虑我就是否应该去做这份工作。 从面试者的角度来讲,一个测试也许能从多方面揭示应试者的素质:最基本的,您能了解应试者C语言的水平。不管怎么样,瞧一下这人如何回答她不会的问题也就是满有趣。应试者就是以好的直觉做出明智的选择,还就是只就是瞎蒙呢?当应试者在某个问题上卡住时就是找借口呢,还就是表现出对问题的真正的好奇心,把这瞧成学习的机会呢?我发现这些信息与她们的测试成绩一样有用。 有了这些想法,我决定出一些真正针对嵌入式系统的考题,希望这些令人头痛的考题能给正在找工作的人一点帮住。这些问题都就是我这些

年实际碰到的。其中有些题很难,但它们应该都能给您一点启迪。 这个测试适于不同水平的应试者,大多数初级水平的应试者的成绩会很差,经验丰富的程序员应该有很好的成绩。为了让您能自己决定某些问题的偏好,每个问题没有分配分数,如果选择这些考题为您所用,请自行按您的意思分配分数。 预处理器(Preprocessor) 1 、用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想瞧到几件事情: ?; #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) ?; 懂得预处理器将为您计算常数表达式的值,因此,直接写出您就是如何计算一年中有多少秒而不就是计算出实际的值,就是更清晰而没有代价的。 ?; 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数就是的长整型数。 ?; 如果您在您的表达式中用到UL(表示无符号长整型),那么您有了一个好的起点。记住,第一印象很重要。 2 、写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。#define MIN(A,B) ( (A) <= (B) ? (A) : (B) )

软件工程师笔试题及答案

吉运集团 北京信息科技开发公司软件工程师笔记题 ___________________________________________ __________ 姓名:________________ 联系电话:_____________ 期望工资________________ 分)第一部分:选择题(每题5 ) 多选都正确一、以下程序中VB和C#书写的是:( A:Public strName As String 和string strName = new string() B:Public strName As String()和string strName = new string() C:Public strName(10)As String和string[] strName = new string[100]; D:以上答案都正确; 二、以下C#程序中,写法不正确的是( )多选.B :C:\\Windows\\System32 A:C://Windows//System32 D:@C:/Windows/System32 C:@C:\Windows\System32 三、下列选项中,是引用类型的是( ) A. enum类型 B. struct类型 D. int 类型类型C. string ) 四、软件开发过程一般有以下几个阶段,正确的说法是( A:需求分析,概要设计,详细设计,软件编码,软件测试 B:概要设计,需求分析,详细设计,软件编码,软件测试 C:需求分析,详细设计,软件开发,系统上线 D:系统调研,需求讨论,整体设计,系统上线,系统售后 ) 五、以下关于CLR语言描述,不正确的是( 中调用;https://www.sodocs.net/doc/864413078.html,写类,在C#翻译语言,用户可以用.NET是CLR:A. B:有了CRL 在.NET,保证了一种语言具有的功能其它语言也有; C:CLR是在.NET 中间语言,是CPU能看懂的语言; D :以上说法都正确; ( )

嵌入式笔试题

嵌入式笔试题 国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 下面就由为大家介绍一下嵌入式笔试题的文章,欢迎阅读。 嵌入式笔试题篇11:用C语言实现大小端的测试Int CheckCpu(){union{int a;char b;}c;c.a=1;if(c.b==1)printf(“小端);else printf(“大端);}2:volatile的作用有哪些?Volatile第一变量相当于告诉编译器这个变量的值会随时发生变化,每次使用之前都要去内存里从新读取它的值,并不要随意针对它做优化,主要用在:1:一个中断子程序中会访问到的非自动变量;2:多线程应用中被几个线程共享的变量;3:并行设备的硬件寄存器。 3:C语言中static关键字的作用有哪些?1:在函数体中,一个被声明为静态的变量在这个变量在调用过程中维持其值不变;2:在模块内(但在函数体外),一个被声明为静态的变量,可以被这个模块内的所用函数使用,但不能被模块外的函数使用,它是一个本地的全局变量;3:在模块内,一个被声明为静态变量的函数,智能被这个模块内的函数调用;4:static全局变量与局部变量的区别:static全局变量只能被初始化一次,防止其他单元文件中被引用;5:static局部变量与局部变量的区别:static局部变量只能被初始化一次,下一次依据上一次结果的值;6:static函数与普通函数的区别:static在内存中只用一份,普通函数在每

一次调用中维持一份拷贝。 4:请问下面三种变量的区别:Int const *p : 指向常整型的指针;Int *const p; 指向整型的常指针;Int *const *p:指向常整型的常指针;5:在ARM系统中,在函数调用的时候,参数是通过哪种方式传递的。 当参数小于等于4的时候是通过r0~r3来进行传递的,当参数大于4的时候是通过压栈的方式进行传递。 6:中断与异常有何区别.异常在处理的时候必须考虑与处理器的时钟同步,实际上异常也称为同步中断,在处理器执行到因编译错误而导致的错误指令时,或者在执行期间出现特殊错误,必须靠内核处理的时候,处理器就会产生一个异常;所谓中断是指外部硬件产生的一个电信号从CPU的中断引脚进入,打断CPU的运行。 所谓异常是指软件运行过程中发生了一些必须作出处理的事件,CPU自动产生一个陷入来打断CPU的运行。 7:用预处理指令#define表示一年中有多少秒#define SECONDS_PER_YEAR (60*60*24*365)UL注意后面必须加UL,表示计算的结构是常整型。 8:简述SPI,UART,I2C三种传输方式。 SPI:高速同步串行口,首发独立,可同步进行SPI接口主要应用在EEPROM,Flash,实时时钟,A/D转化器,数字信号处理,是一种全双工同步通讯总线,该接口一般使用四条线:串行时钟线(sck),主出从入线,主入从出线,低电平有效地的从机选择线。

嵌入式软件工程师笔试题华为优选稿

嵌入式软件工程师笔试 题华为 集团公司文件内部编码:(TTT-UUTT-MMYB-URTTY-ITTLTY-

(一)1什么是预编译,何时需要预编译: 答案: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 2char*constpcharconst*pconstchar*p上述三个有什么区别 答案: char*constp;//常量指针,p的值不可以修改 charconst*p;//指向常量的指针,指向的常量值不可以改 constchar*p;//和charconst*p 3 charstr1[]="abc"; charstr2[]="abc"; constcharstr3[]="abc"; constcharstr4[]="abc"; constchar*str5="abc"; constchar*str6="abc"; char*str7="abc"; char*str8="abc";

cout<<(str1==str2)<

软件开发工程师(JAVA)笔试题

软件开发工程师(JAVA)笔试题 请在90分钟以内做答答案请写在答题纸上 一、选择题 1、下面哪项是不合法的标识符:() A. $persons B. TwoUsers C. *point D. _endline E. final 2、下列运算符合法的是() A.&& B.<> C.if D.:= 3、下面描述中哪两项相等:()[选择两项] A.<%= YoshiBean.size%> B.<%= YoshiBean.getSize()%> C.<%= YoshiBean.getProperty(“size”)%> D. E. F. G. 4、设float x = 1,y = 2,z = 3,则表达式 y+=z--/++x的值是:() A. 3.5 B. 3 C. 4 D. 5 5、下面的哪些叙述为真:() A.equals()方法判定引用值是否指向同一对象 B.==操作符判定两个不同的对象的内容和类型是否一致 C.equal()方法只有在两个对象的内容一致时返回true D.类File重写方法equals()在两个不同的对象的内容和类型一致时返回true 6、如果一个对象仅仅声明实现了cloneable接口,但是不声明clone方法,外部能够调用其clone方法吗?() A. 能 B. 不能 C. 不确定 7、下列说法错误的有() A.能被java.exe成功运行的java class文件必须有main()方法 B. J2SDK就是Java API C. Appletviewer.exe可利用jar选项运行.jar文件 D.能被Appletviewer成功运行的java class文件必须有main()方法 8、下列正确的有() A. call by value不会改变实际参数的数值 B. call by reference能改变实际参数的参考地址 C. call by reference不能改变实际参数的参考地址 D. call by reference能改变实际参数的内容 9、下列说法错误的有() A.数组是一种对象 B.数组属于一种原生类 C. int number=[]={31,23,33,43,35,63}

嵌入式经典笔试题目

1将一个字符串逆序 2、将一个链表逆序 3、计算一个字节里(byte)里面有多少bit被置1 4、搜索给定的字节(byte) 5、在一个字符串中找到可能的最长的子字符串 6、字符串转换为整数 7、整数转换为字符串 答案: 1、方法1: int main() { char* src = "hello,world"; int len = strlen(src); char* dest = (char*)malloc(len+1);//要为\0分配一个空间char* d = dest; char* s = &src[len-1];//指向最后一个字符 while( len-- != 0 ) *d++=*s--; *d = 0;//尾部要加\0 printf("%s\n",dest); free(dest);// 使用完,应当释放空间,以免造成内存汇泄露return 0; } 方法2: #include #include main() { char str[]="hello,world"; int len=strlen(str); char t; for(int i=0; i { t=str[i]; str[i]=str[len-i-1]; str[len-i-1]=t; } printf("%s",str); return 0; } 2、 链表题:一个链表的结点结构 struct Node {

int data ; Node *next ; }; typedef struct Node Node ; (1)已知链表的头结点head,写一个函数把这个链表逆序 ( Intel) Node * ReverseList(Node *head) //链表逆序 { if ( head == NULL || head->next == NULL ) return head; Node *p1 = head ; Node *p2 = p1->next ; Node *p3 = p2->next ; p1->next = NULL ; while ( p3 != NULL ) { p2->next = p1 ; p1 = p2 ; p2 = p3 ; p3 = p3->next ; } p2->next = p1 ; head = p2 ; return head ; } (2)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同) Node * Merge(Node *head1 , Node *head2) { if ( head1 == NULL) return head2 ; if ( head2 == NULL) return head1 ; Node *head = NULL ; Node *p1 = NULL; Node *p2 = NULL; if ( head1->data < head2->data ) { head = head1 ; p1 = head1->next; p2 = head2 ; } else {

单片机嵌入式应聘测试题(含答案)[精品文档]

嵌入式工程师初试试题 学校_______________ 院系________________ 姓名________________ 电话_________________ 本试题包括C程序设计(70分)、单片机基础(20分)、逻辑题(10分) C程序设计部分: 一、选择题(本大题共10小题,每小题3分,共30分) 1.下面定义变量方法错误的一项是( C) A)int ab_2 B) int _2a3 C)int 2_ab D)int ab2_ 2.判断char型变量ch是否为大写字母的正确表达式是(B ) A)‘A’<=ch<=’Z’ B) (ch>=’A’) && (ch<=’Z’) C) (ch>=’A’)& (ch<=’Z’) D) (‘A’<=ch) AND (‘Z’>=ch) 3.设有说明:char w;int x;double y;则表达式w*x-y值的数据类型为(D ) A) float B) char C) int D) double 4.以下正确的说法是(D ) 在C语言中 A) 实参和与其对应的形参各占用独立的存储单元 B) 实参和与其对应的形参共占用一个存储单元 C)只有当实参和与其对应的形参同名时才共占用存储单元 D) 形参是虚拟的,不占用存储单元 5.下面程序运行结果是( C) #include int a[3][3]={{1},{2},{3}}; int b[3][3]={1,2,3,4,5}; int main() { printf("%d\n",a[1][0] + b[1][0]); return 0; } A) 2 B) 4 C) 6 D) 值不一定 6.下面程序运行结果是( D) #include "stdio.h" int main() { int x=1, y=0, a=0, b=0;

嵌入式常见经典笔试题1

上海某全球五百强面试题(嵌入式) 1.static变量和static 函数各有什么特点? 3.描述一下嵌入式基于ROM的运行方式基于ram的运行方式有什么区别。 4.task 有几种状态? 5.task 有几种通讯方式? 6.C函数允许重入吗? 7.嵌入式操作系统和通用操作系统有什么差别?

嵌入式经典面试题 C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的ASCII 值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着出题者也许花时间在微机上而不是在嵌入式系统上。如果上述任何问题的答案是"是"的话,那么我知道我得认真考虑我是否应该去做这份工作。 从面试者的角度来讲,一个测试也许能从多方面揭示应试者的素质:最基本的,你能了解应试者C语言的水平。不管怎么样,看一下这人如何回答他不会的问题也是满有趣。应试者是以好的直觉做出明智的选择,还是只是瞎蒙呢?当应试者在某个问题上卡住时是找借口呢,还是表现出对问题的真正的好奇心,把这看成学习的机会呢?我发现这些信息与他们的测试成绩一样有用。 有了这些想法,我决定出一些真正针对嵌入式系统的考题,希望这些令人头痛的考题能给正在找工作的人一点帮助。这些问题都是我这些年实际碰到的。其中有些题很难,但它们应该都能给你一点启迪。 这个测试适于不同水平的应试者,大多数初级水平的应试者的成绩会很差,经验丰富的程序员应该有很好的成绩。为了让你能自己决定某些问题的偏好,每个问题没有分配分数,如果选择这些考题为你所用,请自行按你的意思分配分数。 预处理器(Preprocessor) 1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3) 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。 4) 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。 2 . 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。 #define MIN(A,B) ((A)<= (B) ? (A) : (B)) 这个测试是为下面的目的而设的: 1) 标识#define在宏中应用的基本知识。这是很重要的。因为在嵌入(inline)操作符变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。 2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。 3) 懂得在宏中小心地把参数用括号括起来 4) 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事? least = MIN(*p++, b);

相关主题