2020-08-04 笔试04 广州爱迪斯嵌入式linux开发工程师笔试题目

选择题

 

 

 

 

扫描二维码关注公众号,回复: 12444857 查看本文章

解答题丶

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

#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL

补充(意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要)

 

2、写一个标准宏MIN,这个宏输入两个数并返回最小的一个?

#define MIN( x, y) ( (x<y? x:y))

 

3、中断是嵌入式系统中设计的难点,请评论下面这段用关键字_interrupt定义的中断服务子程序。

1).ISR 不能返回一个值,

2).ISR不能传递参数。

3).在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额外的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算时不明智的。

4).与第三点一脉相承,printf()经常有重入和性能上的问题。

 

4、下面的结构是合法的吗?请分析?

 

  1. 合法,定义了三个整型变量并给a,b赋值,2)c=a+++b 意思为a+b的值赋值给c(c=5+7=12),然后a++(a做完运算后自加1,5+1=6),b=7。

5、对于整型变量A=0x12345678,请画出在little endian 及big endian 的方式下在内存中是如何存储的?

小端 高地址—>0x12         大端 低地址—>  0x12

                        0x34                         0x34

                        0x56                                         0x56

      低地址—> 0x78                        高地址      0x78

 

6、不改变变量的作用域而又要延长变量的行命周期,你会怎么定义这个变量?

用static来修饰这个变量

 

7、用变量a给出下面的定义

7、

 

  1. int a;
  2. int *a;
  3. int **a;
  4. int a[10];
  5. int *a[10];
  6. int a[10],*p=a;
  7. int(*a)(int)
  8. int(*a[10])(int)

 

8假设在32位cpu上的情况下,填空

struct BBB

{

long num;

char *name;

short int data;

char ha;

short ba[5];

}*p;

P=0x1000000;

P+0x200=_0x01003000;

(unsigned long)p+0x200=0x01000200;

(char *)p+0x200=0x01000200;

 

9、下面这个程序执行后会有什么错误或者效果:

#define MAX 255

Int main()

{

Unsigned char I;

Ubsigned char A[MAX],I;

for(i=0;i<MAX;i++)

A[i]=I;

}

解答:死循环加数组越界访问(C/C++不进行数组越界检查)

MAX=255,数组A的下标范围为:0..MAX-1,这是其一

其二、当i循环到255时,循环内执行:

A[255]=255;

这句本身没有问题,但是返回for (i=0;i<=MAX;i++)语句时,

由于unsigned char的取值范围在(0..255),i++以后i又为0了..无限循环下去.

 

10、下面这个程序有问题吗?如果有请修下

#include<stdio.h>

Int main(void)

{

Int **p;

Int arr[100];

P=&arr;

return 0;

}

Int **p是个二级指针指向的应该是一个指针

arr 定义为整型数组,其地址就是arr或者arr[0],不需要取址符号&

??????????????????

 

11

  1. busybox
  2. /linuxrc
  3. 系统初始化要执行的第一个脚本程序
  4. /etc/fstab
  5. Isof –i:808

         

  1. .ko --kernel object 内核模块,可以在linux内核起来之后动态的加载和卸载。

.so --shared object 用户层的动态库(于.a对应)使用同一个.so的程序在运行时只需要该.so的同一份拷贝

  1. 以文件方式访问设备
  2. 字符设备,块设备,网络设备
  3. 1管道 2信号 3报文(Message)队列(消息队列)  4共享内存 5信号量

   6 套接口

 

12、网络编程中设计并发服务器,使用多进程与多线程,请问两者有什么区别?

        根本区别就一点:用多进程每个进程有自己的地址空间(address space),线程则共享地址空间。所有其它区别都是由此而来的:
1。速度:线程产生的速度快,线程间的通讯快、切换快等,因为他们在同一个地址空间内。
2。资源利用率:线程的资源利用率比较好也是因为他们在同一个地址空间内。
3。同步问题:线程使用公共变量/内存时需要使用同步机制还是因为他们在同一个地址空间内。

 

13、简述Tcp三次握手的过程?

第一次握手:建立连接时,客户端发送syn(syn=j)到服务器,并进入SYN_SEND          状态,等待服务器确认; 
SYN
:同步序列编号(Synchronize Sequence Numbers)
第二次握手:服务器收到syn,必须确认客户的SYNack=j+1,同时自己也发         送一个SYN包(syn=k,SYN+ACK,此时服务器进入SYN_RECV状态; 
第三次握手:客户端收到服务器的SYNACK,向服务器发送确认包                   ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成        三次握手.

 

14、在TCP/IP中,网络层和传输层之间的区别是最为关键的:

——————层提供点到点的服务,而——————层提供端到端的服务。

网络层  传输层

 

15、简述TCP/IP网络层,并且列出你所熟悉的协议,列在所属层下面。

主机-网络层是TCP/IP参考模型的最底层,它负责发送和接收IP分组。TCP/IP协议对主机-网络层并没有规定具体的协议,它采取开放的策略,允许使用广域网、

局域网与城域网的各种协议。任何一种流行的底层传输协议都可以与TCP/IP互联网络层接口。这正体现了TCP/IP体系的开放性、兼容性的特点,也是TCP/IP成功应用的基础。

 

16、分别介绍一下网络协议:RTP,RTCP,RTSP,STP,并且详解ICMP的作用?

        RTP数据协议:  RTP数据协议负责对流媒体数据进行封包并实现媒体流的实时传输,每一个RTP数据报都由头部(Header)和负载(Payload)两个部分组成,其中头部前12个字节的含义是固定的,而负载则可以是音频或者视频数据。

        RTCP控制协议:RTCP控制协议需要与RTP数据协议一起配合使用,当应用程序启动一个RTP会话时将同时占用两个端口,分别供RTPRTCP使用。

        RTSP实时流协议:RTSP实时流协议     作为一个应用层协议,RTSP提供了一个可供扩展的框架,它的意义在于使得实时流媒体数据的受控和点播变得可能。

        STP生成树协议:是一个二层管理协议,标准为IEEE802.1DIEEE 802.1d是最早关于STP的标准,它提供了网络的动态冗余切换机制。

            ICMPICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是          一个非常重要的协议,它对于网络安全具有极其重要的意义。

              它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之          间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无                     法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送                     ICMP消息。ICMP 文在IP帧结构的首部协议类型字段(Protocol 8bit)的值                  =1

 

 

 

 

 

 

 

 

 

17、下面是一款芯片的功能模块图,谈谈你可以从下图中获取到那些重要的消息,如芯片架构,外设支持等,如果由你方案,觉得该芯片可以用于那些领域的功能?

https://img.examcoo.com/paper/3168012/201712/151287445244650.png

ARM架构

 

猜你喜欢

转载自blog.csdn.net/weixin_41939983/article/details/107810930