当前位置:文档之家› 嵌入式工程师笔试题

嵌入式工程师笔试题

嵌入式工程师笔试题
嵌入式工程师笔试题

1. C语言中,修饰符volatile含义是什么其应用场合有哪些

volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。

2. 请问TCP/IP协议分为哪几层FTP协议在哪一层

ISO/OSI的参考模型共有7层,由低层至高层分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

物理层:在物理媒体上传输原始的数据比特流。

数据链路层:将数据分成一个个数据帧,以数据帧为单位传输。有应有答,遇错重发。

网络层:将数据分成一定长度的分组,将分组穿过通信子网。

传输层:提供不具体网络的高效、经济、透明的端到端数据传输服务。

会话层:进程间的对话也称为会话,会话层管理不同主机上各进程间的对话。

表示层:为应用层进程提供格式化的表示和转换数据服务。

应用层:提供应用程序访问OSI环境的手段。

应用层:TELNET、FTP、TFTP、SMTP、SNMP、HTTP、BOOTP、DHCP、DNS

表示层:

文本:ASCII,EBCDIC

图形:TIFF,JPEG,GIF,PICT

声音:MIDI,MPEG,QUICKTIME

会话层:NFS、SQL、RPC 、X-WINDOWS、ASP(APPTALK会话协议)、SCP

传输层:TCP、UDP、SPX

网络层:IP、IPX、ICMP、RIP、OSPF(Open Shortest Path First开放式最短路径优先)

数据链路层:SDLC、HDLC、PPP、STP(Spanning Tree Protocol)、帧中继

物理层:EIA/TIA RS-232、EIA/TIA RS-449、、RJ-45

3. 在网络应用中,函数htons,htonl,ntohs,ntohl的作用是什么

uint32_t htonl(uint32_t hostlong);C语言中static函数与普通函数的区别是什么

静态函数

在函数的返回类型前加上关键字static,函数就被定义成为静态函数。

函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。

定义静态函数的好处:

<1> 其他文件中可以定义相同名字的函数,不会发生冲突

<2> 静态函数不能被其他文件所用。

局部静态变量

在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。

1)内存中的位置:静态存储区

2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)

3)作用域:作用域仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域随之结束。

全局静态变量

在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。

1)内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在)

2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)

3)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。

好处:

定义全局静态变量的好处:

<1>不会被其他文件所访问,修改

<2>其他文件中可以使用相同名字的变量,不会发生冲突

5. 请实现内存复制函数void memcpy(void *dst const void *src,int size)

void *memcpy(void *dest, const void *src, unsigned int size)

{

if(dest==NULL || src==NULL)

{

return dest;

}

void *temp = dest;

while(size--)

{

*(char *)dest = *(char *)src;

dest = (char *)dest + 1;

src = (char *)src + 1;

}

return temp;

}

6、进程间通信的方式有

管道(pipe),流管道(s_pipe)和有名管道(FIFO)

信号(signal)

消息队列

共享内存

信号量

套接字(socket)

7、IPv4把所有的IP地址分为A、B、C、D、E五类。请写出B类地址和C类地址的范围和掩码,D类地址的用途是什么

A类IP地址范围:到

B类IP地址范围:到

C类IP地址范围:到

D类IP地址范围:到

E类IP地址范围:到类地址用于多点播送

E类地址保留,仅作实验和开发用

全零(“0.0.0.0”)地址指任意网络。

全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。

8、请简述在linux中多进程程序和多线程程序的区别。

9、写一个标准的宏MINX,这个宏输入两个参数并返回较小的一个

#define MIN(A, B) ((A)>(B) (B) : (A))

10、什么是MMU,MMU的作用

MMU是Memory Management Unit(内存管理单元)

1)虚拟内存。有了虚拟内存,可以在处理器上运行比实际物理内存大的应用程序。为了使用虚拟内存,操作系统通常要设置一个交换分区(通常是硬盘),通过将不活跃的内存中的数据放入交换分区,操作系统可以腾出其空间来为其它的程序服务。虚拟内存是通过虚拟地址来实现的。

2)内存保护。根据需要对特定的内存区块的访问进行保护,通过这一功能,我们可以将特

定的内存块设置成只读、只写或是可同时读写

11、关键字volatile有什么含义,并给出几个应用场合。

volatile的本意是“易变的”由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化,但有可能会读脏数据。当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。

一般说来,volatile用在如下的几个地方:

1、中断服务程序中修改的供其它程序检测的变量需要加volatile;

2、多任务环境下各任务间共享的标志应该加volatile;

3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;

12、“栈stack”和“堆heap”有什么区别,写两个函数分别在栈上和堆上分配内存,在堆上分配内存应注意哪些问题

1.申请方式

stack:

由系统自动分配。例如,声明在函数中一个局部变量

int b; 系统自动在栈中为b开辟空间

heap:

需要程序员自己申请,并指明大小,在c中malloc函数

p1 = (char *)malloc(10);

2.申请后系统的响应

栈:

只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。

堆:

首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,

会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表

中删除,并将该结点的空间分配给程序.

3.申请大小的限制

栈:

栈顶的地址和栈的最大容量是系统预先规定好的,是一块连续的内存的区域,在WINDOWS 下,栈的大小是2M ,如果申请的空间超过栈的剩余空间时,将提示overflow。因此,能从栈获得的空间较小。(有限内存)

堆:

堆是向高地址扩展的数据结构,是不连续的内存区域。(自己分配)

void fun(void)

{

int a[10];

int *p = (int *)malloc(10*sizeof(int));

if(p == NULL)

{

return;

}

}

13、请指出下面程序的错误

unsigned char i = 10;

char b = 100;

char* p;

void f(void)

{

While(–-i>=0)

{

*(p++) = b;

}

}

p没有分配空间

i是无符号型,自减操作会引发死循环

14、TCP/IP通信建立的过程怎样,端口有什么作用

端口作用:(连接作用)就是让运输层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段的数据向上通过端口交付给应用层相应的进程

嵌入式软件工程师笔试题

(一) 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

嵌入式工程师面试题--经典

1、将一个字符串逆序 2、将一个链表逆序 3、计算一个字节里(byte)里面有多少bit被置1 4、搜索给定的字节(byte) 5、在一个字符串中找到可能的最长的子字符串 6、字符串转换为整数 7、整数转换为字符串 style="MARGIN: 0px; COLOR: rgb(102,102,102); LINE-HEIGHT: 150%" wrap="break-word"1、char *strconv(char *p) { int i,length; char temp; length = strlen(p); for(i = 0;i < length/2;i++) { temp = *(p + i);

*(p + i) = *(p + length - 1 - i); *(p +length - 1 - i) = temp; } return p; } int main() { char src[100]; char *p; scanf("%s",src); p = strconv(src); printf("%s\n",p); return 0;

style="MARGIN: 0px; COLOR: rgb(102,102,102); LINE-HEIGHT: 150%" wrap="break-word"3、int cal(int data) //calculation the number of bit in one byte { int a; int count = 0; a = data % 100; while (a != 0) { count += a % 2; a /= 2; } return count;

H3C 路由与交换售前工程师考试题库

H3C 路由与交换售前工程师考试题库 A . CAMS B . Quidview C . XLog 下列有关EAD的讲法中,正确的是( C ) A . EAD是一个软件 B . EAD是一个硬件 C . EAD是一个整体解决方案 H3C设备治理系统DM,能够真实地反映设备的面板信息( A ) A . 正确 B . 错误 SR88_NP采纳了创新的一机( C )平面架构,保证了系统的高可用性. A . 3 B . 2 C . 4 D . 1 '多选'H3C SR66的产品及市场定位描述正确的是:( ABD ) A . SR66 要紧定位于校园网出口路由器; B . SR66要紧定位于大型企业汇聚接入路由器; C . SR66要紧定位于低端接入产品; D . SR66要紧定位于中小型企业核心路由器 '多选'MSR系列OAA开放应用中,有下列哪些模块能够正常销售(AB CD ) A . 融合通信OCE卡 B . 防病毒卡 C . 广域网优化卡 D . 流量分析卡

Cisco ISR 2811是中低端路由器典型的海量产品,H3C与之对应的产品为:(D ) A . MSR 30-11 B . MSR30-20 C . MSR 20-40 D . MSR30-16 多选' H3C那些交换机通过了Tolly的认证:(ABCDE) A . S75系列 B . S75E系列 C . S9500系列 D . S55EI系列 E . S3100系列 '多选' 数据中心对接入层交换机的要求有哪些?(ABCDE) A . 上行双链路冗余能力 B . 双向ACL C . Multi-VRF支持 D . 堆叠扩展能力 E . 1U设备 多选' H3C高端交换机支持那些可靠性特性:ABCD A . 弹性分组环RPR B . 文雅重启技术GR C . 无单点故障设计 D . 快速路径爱护RRPP 多选' 关于iMC MPLS VPN治理,讲法正确的是(BCD ) A . MPLS VPN治理仅能支持H3C网络设备 B . MPLS VPN治理支持与基础网络治理功能的无缝集成 C . MPLS VPN治理支持Cisco,H3C,Huawei厂家主流设备 D . MPLS VPN治理实现了MPLS VPN业务端到端的规划,部署,监视,审计

嵌入式笔试题汇总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语言基础、算法、思维能力三部份。总分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 )

嵌入式软件助理工程师认证考试复习题新

嵌入式软件助理工程师认证考试复习题2012.08. 一、单项选择题 1、如下哪一个命令可以帮助你知道shell命令的用法( A ) A. man B. pwd C. help D. more 2、在大多数Linux发行版本中,以下哪个属于块设备( B ) A. 串行口 B. 硬盘 C. 虚拟终端 D. 打印机 3、下面哪个命令行可用来马上重新启动正在运行的Linux系统?( D ) A. restart --delay=0 B. reboot -w C. halt -p D. shutdown -r now 4、在Linux系统,默认的shell是什么( A ) A.bash B.ash C.csh D.gnush 5、下面哪条命令可用来确保文件“myfile”存在( B ) A. cp myfile /dev/null B. touch myfile C. create myfile D. mkfile myfile 6、 LILO的配置文件是:( B ) A. /etc/conf B. /etc/lilo.conf C. /proc/kcore D. /usr/local/ 7、用“useradd jerry”命令添加一个用户,这个用户的主目录是什么( A ) A./home/jerry B./bin/jerry C./var/jerry D./etc/jerry 8、Linux文件权限一共10位长度,分成四段,第三段表示的内容是( D ) A.文件类型 B.文件所有者的权限 C.文件所有者所在组的权限 D.其他用户的权限 9、在ARM系统结构中,MMU映射最小的单元空间是_D___ A、64KB B、16KB C、4KB D、1KB 10、某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为( D ) A.467 B.674 C.476 D.764 11、不是shell具有的功能和特点的是( A ) A.管道 B.输入输出重定向 C.执行后台进程 D.处理程序命令 12、在ARM处理器的各种工作模式中,( A )模式无法访问一些被保护的系统资源。年徐远超 A. 用户模式(user) B.系统模式(system) C. 中断模式(IRQ) D.终止模式(Abort) 13、如何从当前系统中卸载一个已装载的文件系统( A ) A. umount B. dismount C. mount –u D. 从 /etc/fstab 中删除这个文件系统项 14、你用vi编辑器编写了一个脚本文件shell.sh,你想将改文件名称修改为shell2.sh,下列命令( B )可以实现。 A. cp shell.sh shell2.sh B. mv shell.sh shell2.sh C. ls shell.sh >shell2.sh D. ll shell.sh >shell2.sh 15、在/home/stud1/wang目录下有一文件file,使用( D )可实现在后台执行命令,此命令将file文件中的内容输出到file.copy文件中。

嵌入式软件工程师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 */

嵌入式软件工程师笔试题

笔试题 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

如何成为一名优秀的系统集成售前工程师

如何成为一名优秀的系统集成售前工程师 系统集成是一项技术性很强的增值服务工作,而具体体现增值的服务内容是系统集成工程师的创造性劳动。 系统集成工程师通常分为售前和售后两类。售前工程师主要负责用户交流、建议方案的设计以及投标书的撰写等售前阶段的技术性工作;售后工程师则主要负责设备安装调试、系统测试、技术文档编写等售后工作。售前和售后工程师的划分不是绝对的,有时候一名工程师在项目中既要做售前工作又要做售后工作。一般来说,售前工程师比售后工程师需要更多的实际工作经验和更高的综合素质。 一名合格的系统集成工程师一般应具备以下的素质: 1、通晓计算机及网络基础理论,熟悉职有掌握了理论和技术才能正确、合理地设计网络系统,调养、完整地进行系统实施。 2、精通网络设备调试技术、服务器调试技术、基础应用平台调试技术和其中之一。掌握一种售后调试技术,是系统集成工程师必备的技能。 3、精通网络平台设计、服务器设计、基础应用平台设计等或其中之一。能够设计相应的网络系统和应用系统,是售前技能掌握情况的重要指标。 4、良好的口头语言表达能力和文字表达能力。在系统集成实施的各个阶段,诸如用户交流、方案与标书撰写、述标与答疑、用户培训和竣工文档编写等工作中,写作能力与口才是重要的基本素质。 5、较高的计算机专业英语水平。在系统集成中,英语随处可见,在产品介绍、产品配置与报价、产品技术文档、培训等资料方面,英语都是主要文字之一。越是高端的产品,英语使用的越普遍。有时还需要英语听说能力,而在国际招标项目中,英文写作能力将受到考验。 6、良好的人际交流能力和与他人协同工作能力。系统集成是一项需多人合作共同完成的系统工程,与同事、供货商、用户、厂商、施工队等的交流与合作

第三套嵌入式软件工程师考试试题B卷

第三套嵌入式软件工程师 考试试题B卷 The document was prepared on January 2, 2021

嵌入式Linux软件工程师认证考试 B卷 20个小题,每小题1分,共20分) 1、在下列ARM处理器的各种模式中,()模式有自己独立的R8-R14寄存器。 A、系统模式(System)、 B、终止模式(Abort) C、中断模式(IRQ) D、快中断模式(FIQ) 2、按照ARM过程调用标准(APCS),栈指针使用()寄存器, A、R0 B、R13 C、R14 D、R15 3、在ARM体系结构中,()寄存器作为连接寄存器,当进入子程序时或者处理器响应异常的时候,用来保存PC的返回值;()寄存器作为处理器的程序计数器指针。 A、R0,R14 B、R13,R15 C、R14,R15 D、R14,R0 4、在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应采用何种方法() A、直接修改CPU状态寄存器(CPSR)对应的模式 B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态 C、使用软件中断指令(SWI) D、让处理器执行未定义指令 5、下面关于MMU和Linux描述错误的是:() A、MMU是内存管理单元Memory Management Unit的缩写 B、uClinux可以运行在有MMU的处理器上 C、Linux内核功能强大,内存管理功能丰富,即使在没有MMU的处理器上,也可 以通过软件实现地址映射。 D、Linux系统正是利用MMU,才能使得各个进程有独立的寻址空间

H3C路由与交换售前工程师考试题库

1.H3C路由与交换售前工程师考试题库 A . CAMS B . Quidview C . XLog 2.下列有关EAD的说法中,正确的是( C ) A . EAD是一个软件 B . EAD是一个硬件 C . EAD是一个整体解决方案 3.H3C设备治理系统DM,能够真实地反映设备的面板信息( A ) A . 正确 B . 错误 4.SR88_NP采纳了创新的一机( C )平面架构,保证了系统的高可用性. A . 3 B . 2 C . 4 D . 1 5.'多选'H3C SR66的产品及市场定位描述正确的是:( ABD ) A . SR66 要紧定位于校园网出口路由器; B . SR66要紧定位于大型企业汇聚接入路由器; C . SR66要紧定位于低端接入产品; D . SR66要紧定位于中小型企业核心路由器 6.'多选'MSR系列OAA开放应用中,有下列哪些模块能够正常销售(ABCD ) A . 融合通信OCE卡

B . 防病毒卡 C . 广域网优化卡 D . 流量分析卡 7.Cisco ISR 2811是中低端路由器典型的海量产品,H3C与之对应的产品为: (D ) A . MSR 30-11 B . MSR30-20 C . MSR 20-40 D . MSR30-16 8.多选' H3C那些交换机通过了Tolly的认证:(ABCDE) A . S75系列 B . S75E系列 C . S9500系列 D . S55EI系列 E . S3100系列 9.'多选' 数据中心对接入层交换机的要求有哪些?(ABCDE) A . 上行双链路冗余能力 B . 双向ACL C . Multi-VRF支持 D . 堆叠扩展能力 E . 1U设备 10.多选' H3C高端交换机支持那些可靠性特性:ABCD A . 弹性分组环RPR

嵌入式笔试题

嵌入式笔试题 国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 下面就由为大家介绍一下嵌入式笔试题的文章,欢迎阅读。 嵌入式笔试题篇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)<

华为服务器认证售前工程师考试题

华为服务器认证售前工程师考试题判断题: 1.华为服务器采用跟IBM一样的处理器 □对□错 2.E6000不支持48VDC供电 □对□错 3.E6000高8U支持10个刀片 □对□错 4.每个E6000刀片最大支持2个板载硬盘 □对□错 5.每个E6000新一代刀片最多支持12个存储插槽 □对□错 6.每个E6000支持总线型交换背板,最大宽带3.25Tbps □对□错 7.华为服务器分销产品包括RH2265 V2和RH2268 V2 □对□错

8.X6000高密度服务器融计算,存储,网络于一体 □对□错 9.华为进入服务器领域已经超过10年 □对□错 10.E6000支持9个热插拔风扇模块,支持N+N冗余 □对□错 11.华为服务器已经成熟应用在全球多个国家和行业 □对□错 12.BH620刀片板载4个GE,采用Intel82579芯片 □对□错 13.华为服务器分销产品2012年只有2款 □对□错 14.E6000的NX110交换模块集成L3 GE交换模块 □对□错

15.E6000支持4个1600W AC电源,支持N+N和N+1冗余 □对□错 单项选择题: 16.RH2485 V2最大支持多少个内存?[ ] A.12 B.24 C.48 D.60 17.BH620刀片扩展卡支持?xPCIe总线接口?[ ] A.1 B.2 C.4 D.8 18.BH620刀片支持那种处理器互联技术?[ ] A.HT B.QPI C.FSB D.XPI

19.华为八路服务器产品为:[ ] A.RH5885 V2 B.RH680 V2 C.RH2488 V2 D.BH680 V2 20.RH5885 V2支持多少个处理器?[ ] A.6 B.8 C.10 D.4或8 21.华为ES系列SSD卡对外提供那种接口?[ ] A.SATA B.PCI-X C.PCI-E D.VISA 22.华为ES系列SSD卡扩展加速服务器什么性能?[ ] A.网络 B.计算 C.存储

嵌入式经典笔试题目

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 {

嵌入式助理工程师硬件试题

嵌入式硬件助理工程师认证考试试题题库 一、选择题 1、以下说法不正确的是(B )。 A、任务可以有类型说明 B、任务可以返回一个数值 C、任务可以有形参变量 D、任务是一个无限循环 2、用图形点阵的方式显示一个16*16点阵汉字需要(B )字节。 A、8 B、32 C、16 D、64 3、下列描述不属于RISC计算机的特点的是(C)。 A.流水线每周期前进一步。 B.更多通用寄存器。 C.指令长度不固定,执行需要多个周期。 D.独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输。 4、存储一个32位数0x2168465到2000H~2003H四个字节单元中,若以大端 模式存储,则2000H存储单元的内容为( D)。 A、0x21 B、0x68 C、0x65 D、0x02 5、μCOS-II中对关键代码段由于希望在执行的过程中不被中断干扰,通常采用关中断的方式,以下X86汇编代码正确而且不会改变关中断之前的中断开关状态的是(D) A. 先CLI、执行关键代码、再STI B. 先STI、执行关键代码、再CLI C. 先POPF、CLI、执行关键代码、再PUSHF D. 先PUSHF、CLI、执行关键代码、再POPF。 6、RS232-C串口通信中,表示逻辑1的电平是(D )。 A、0v B、3.3v C、+5v~+15v D、-5v~-15v

7、ARM汇编语句“ADD R0, R2, R3, LSL#1”的作用是(A)。 A. R0 = R2 + (R3 << 1) B. R0 =( R2<< 1) + R3 C. R3= R0+ (R2 << 1) D. (R3 << 1)= R0+ R2 8、IRQ中断的入口地址是( C)。 A、0x00000000 B、0x00000008 C、0x00000018 D、0x00000014 9、S3C2420X I/O口常用的控制器是(D)。 (1)端口控制寄存器(GPACON-GPHCON)。 (2)端口数据寄存器(GPADAT-GPHDAT)。 (3)外部中断控制寄存器(EXTINTN)。 (4)以上都是。 10、实时操作系统中,两个任务并发执行,一个任务要等待其合作伙伴发来信息,或建立某个条件后再向前执行,这种制约性合作关系被成为(A)。 A. 同步 B. 互斥 C. 调度 D. 执行 11、和PC系统机相比嵌入式系统不具备以下哪个特点( C)。 A、系统内核小 B、专用性强 C、可执行多任务 D、系统精简 12、ADD R0,R1,#3属于(A)寻址方式。 A. 立即寻址 B. 多寄存器寻址 C. 寄存器直接寻址 D. 相对寻址 13、GET伪指令的含义是( A) A. 包含一个外部文件 B. 定义程序的入口 C. 定义一个宏 D. 声明一个变量 14、存储一个32位数0x876165到2000H~2003H四个字节单元中,若以小端模式存 储,则2000H存储单元的内容为( C)。

嵌入式常见经典笔试题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);

完整word版嵌入式软件工程师笔试题 华为

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

相关主题
文本预览
相关文档 最新文档