您好,欢迎访问三七文档
凹凸笔试题目(嵌入式软件开发)EmbeddedSoftwareDesignEngineer1读程序段,回答问题(a)intmain(intargc,char*argv[]){intc=9,d=0;c=c++%5;d=c;printf(d=%d\n,d);return0;}a)写出程序输出b)在一个可移植的系统中这种表达式是否存在风险?why?答案:5存在风险,因为c=c++%5;这个表达式对c有两次修改,行为未定义,c的值不确定(b)#includestdio.hinta=0;//datasectionintb;//datasectionstaticcharc;//BSSintmain(intargc,char*argv[]){chard=4;//stackstaticshorte;//BSSa++;b=100;c=(char)++a;e=(++d)++;printf(a=%d,b=%d,c=%d,d=%d,e=%d,a,b,c,d,e);return0;}a)写出程序输出b)编译器如果安排各个变量(a,b,c,d)在内存中的布局(eg.stack,heap,datasection,bsssection),最好用图形方式描述。答案:a=2,b=100,c=2,d=6,e=52中断是嵌入式系统中重要的组成部分,这导致了许多编译开发商提供一种扩展:让标准C支持中断,产生了一个新的关键字__interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论以下这段代码。__interruptdoublecompute_area(doubleradius){doublearea=PI*radius*radius;printf(nArea=%f,area);returnarea;}答案a)ISR不能返回一个值;b)ISR不能传递参数;c)浮点一般都是不可重入的;d)printf函数有重入和性能上的问题。3C/C++基础知识问题a)关键字volatile在编译时有什么含义?并给出三个不同使用场景的例子(可以伪代码或者文字描述)。用volatile关键字定义变量,相当于告诉编译器,这个变量的值会随时发生变化,每次使用时都需要去内存里重新读取它的值,并不要随意针对它作优化。建议使用volatile变量的场所:(1)并行设备的硬件寄存器(2)一个中断服务子程序中会访问到的非自动变量(全局变量)(3)多线程应用中被几个任务共享的变量b)C语言中static关键字的具体作用有哪些?在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝c)请问下面三种变量声明有何区别?请给出具体含义intconst*p;int*constp;intconst*constp;答案一个指向常整型数的指针一个指向整型数的常指针一个指向常整型数的常指针4嵌入式系统相关问题a)对于整形变量A=0x12345678,请画出在littleendian及bigendian的方式下在内存中是如何存储的。littleendianbigendian刚好反过来高地址--〉0x12低地址--〉0x120x340x340x560x56低地址--〉0x78高地址--〉0x78b)在ARM系统中,函数调用的时候,参数是通过哪种方式传递的?参数=4时候,通过R0~R3传递,4的通过压栈方式传递c)中断(interrupt,如键盘中断)与异常(exception,如除零异常)有何区别?异常:在产生时必须考虑与处理器的时钟同步,实践上,异常也称为同步中断。在处理器执行到由于编程失误而导致的错误指令时,或者在执行期间出现特殊情况(如缺页),必须靠内核处理的时候,处理器就会产生一个异常。所谓中断应该是指外部硬件产生的一个电信号,从cpu的中断引脚进入,打断cpu当前的运行;所谓异常,是指软件运行中发生了一些必须作出处理的事件,cpu自动产生一个陷入来打断当前运行,转入异常处理流程。5设周期性任务P1,P2,P3的周期为T1,T2,T3分别为100,150,400;执行时间分别为20,40,100。请设计一种调度算法进行任务调度,满足任务执行周期及任务周期。6优先级反转问题在嵌入式系统中是一中严重的问题,必须给与足够重视。a)首先请解释优先级反转问题b)很多RTOS提供优先级继承策略(Priorityinheritance)和优先级天花板策略(Priorityceilings)用来解决优先级反转问题,请讨论这两种策略。高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务的现象叫做优先级反转优先级继承策略(Priorityinheritance):继承现有被阻塞任务的最高优先级作为其优先级,任务退出临界区,恢复初始优先级。优先级天花板策略(Priorityceilings):控制访问临界资源的信号量的优先级天花板。优先级继承策略对任务执行流程的影响相对教小,因为只有当高优先级任务申请已被低优先级任务占有的临界资源这一事实发生时,才抬升低优先级任务的优先级。suningin详解笔试面试题(4)--微软试题1.有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐分成50、90克各一份?答案:(一)1.天平一边放7+2=9克砝码,另一边放9克盐。2.天平一边放7克砝码和刚才得到的9克盐,另一边放16克盐。3.天平一边放刚才得到的16克盐和再刚才得到的9克盐,另一边放25克盐。这些16+9+25=50克盐,剩下的就是90克盐。(二)170=70235=35320+2=15+74(20+70)+(15+35)=1402。迈克和托德的薪水相差$21。迈克的薪水比托德多$20。迈克的薪水是多少?托德的薪水是多少?(答案中不包含小数点)答案:|托德-迈克|=21,迈克-托德=20,答案迈克$21.5,托德$0.5谁都知道答案为$21.5和$0.5但是题目中偏偏说不能含有小数点,我们这里就需要换一种思路答题,那么我们的答案是21美元50美分和50美分,呵呵没有小数点吧。。。。3.有三筐水果,一筐装的全是苹果,第二筐装的全是橘子,第三筐是橘子与苹果混在一起。筐上的标签都是骗人的,(比如,如果标签写的是橘子,那么可以肯定筐里不会只有橘子,可能还有苹果)你的任务是拿出其中一筐,从里面只拿一只水果,然后正确写出三筐水果的标签答案:1、选标签写着混合的一篮,拿出一个有两种情况,要么是苹果,要么是桔子(因为不可能是混合的,所以拿出什么,这篮就是什么)2、剩下的一篮写着苹果,一篮写着桔子,应该不难判断了吧linux面试题参考答案(转)收藏新一篇:考查嵌入式C开发人员的最好的0x10道题一.填空题:1.在Linux系统中,以文件方式访问设备。2.Linux内核引导时,从文件/etc/fstab中读取要加载的文件系统。3.Linux文件系统中每个文件用i节点来标识。4.全部磁盘块由四个部分组成,分别为引导块、专用块、i节点表块和数据存储块。5.链接分为:硬链接和符号链接。6.超级块包含了i节点表和空闲块表等重要的文件系统信息。7.某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为:644,该文件属性是目录。8.前台起动的进程使用Ctrl+c终止。9.静态路由设定后,若网络拓扑结构发生变化,需由系统管理员修改路由的设置。10.网络管理的重要任务是:控制和监控。11.安装Linux系统对硬盘分区时,必须有两种分区类型:文件系统分区和交换分区。13.编写的Shell程序运行前必须赋予该脚本文件执行权限。14.系统管理的任务之一是能够在分布式环境中实现对程序和数据的安全保护、备份、恢复和更新。15.系统交换分区是作为系统虚拟存储器的一块区域。16.内核分为进程管理系统、内存管理系统、I/O管理系统和文件管理系统等四个子系统。17.内核配置是系统管理员在改变系统配置硬件时要进行的重要操作。18.在安装Linux系统中,使用netconfig程序对网络进行配置,该安装程序会一步步提示用户输入主机名、域名、域名服务器、IP地址、网关地址和子网掩码等必要信息。19.唯一标识每一个用户的是用户ID和用户名。20.RIP协议是最为普遍的一种内部协议,一般称为动态路由信息协议。21.在Linux系统中所有内容都被表示为文件,组织文件的各种方法称为文件系统。22.DHCP可以实现动态IP地址分配。23.系统网络管理员的管理对象是服务器、用户和服务器的进程以及系统的各种资源。24.网络管理通常由监测、传输和管理三部分组成,其中管理部分是整个网络管理的中心。25.当想删除本系统用不上的设备驱动程序时必须编译内核,当内核不支持系统上的设备驱动程序时,必须对内核升级。26Ping命令可以测试网络中本机系统是否能到达一台远程主机,所以常常用于测试网络的连通性。27.vi编辑器具有两种工作模式:命令模式和输入模式。28.可以用ls–al命令来观察文件的权限,每个文件的权限都用10位表示,并分为四段,其中第一段占1位,表示文件类型,第二段占3位,表示文件所有者对该文件的权限。29.进程与程序的区别在于其动态性,动态的产生和终止,从产生到终止进程可以具有的基本状态为:运行态、就绪态和等待态(阻塞态)。30.DNS实际上是分布在internet上的主机信息的数据库,其作用是实现IP地址和主机名之间的转换。31.Apache是实现服务器功能的应用程序,即通常所说的“浏览web服务器”,在服务器端为用户提供浏览web服务的就是apache应用程序。32.在Linux系统上做备份可以有两种类型:系统备份和用户备份。其中前者是指对操作系统的备份,后者是指对应用程序和用户文件的备份。33.CD-ROM标准的文件系统类型是iso9660。34.当lilo.conf配置完毕后,使之生效,应运行的命令及参数是lilo。35.在使用ls命令时,用八进制形式显示非打印字符应使用参数-b。36.Linux使用支持Windows9.x/2000长文件名的文件系统的类型是vfat。37.设定限制用户使用磁盘空间的命令是quota。38在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是/etc。39.硬连接只能建立对文件链接。符号链接可以跨不同文件系统创建。40.套接字文件的属性位是s。41.结束后台进程的命令是kill。42.进程的运行有两种方式,即独立运行和使用父进程运行。43.Links分为硬链接和符号链接。44.在超级用户下显示Linux系统中正在运行的全部进程,应使用的命令及参数是ps-aux。45.管道文件的属性位是p。46.将前一个命令的标准输出作为后一个命令的标准输入,称之为管道。47.为脚本程序指定执行权的命令及参数是chmoda+xfilename。48.进行远程登录的命令是telnet。49.欲发送10个分组报文测试与主机abc.tuu.edu.cn的连通性,应使用的命令和参数是:pingabc.tuu.edu.cn–c10。50.DNS服务器的进程命名为named,当其启动时,自动装载/etc目录下的named.conf文件中定义的DNS分区数据库文件。51.Apache服务器进程配置文件是httpd.conf。52.在Linux系统中,压缩文件后生成后缀为.gz文
本文标题:凹凸笔试题目
链接地址:https://www.777doc.com/doc-2648546 .html