嵌入式软件工程师笔试题1_第1页
嵌入式软件工程师笔试题1_第2页
嵌入式软件工程师笔试题1_第3页
嵌入式软件工程师笔试题1_第4页
嵌入式软件工程师笔试题1_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一)什么预译,时要编:答案:1、总是使用不经常改动的大型代码体。2程由多个模块组成所有块都使用一组标准的包含文件和相同的编译选项这种情况下,可以将所有包含文件预编译为一个预编译头。char*constp*const上述三有么别答案:*constp;//量指针,值不可以修改*;指向常量的指针,指向的常量值不可以改constchar*p;//和str1[]=str2[]=charstr3[]="abc";charstr4[]="abc";char=char===cout<<(str2)<cout<<(str4)<cout<<(str6)<out<(str7==str8)<endl;结果是:001是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是针,它们指向相同的常量区域。以下码的两sizeof用有题?[C易]voidcharstr[])

//将中小写字母转换成大写字母{for(size_ti=0;i<sizeof(str)/sizeof(str[0]);++i)if(<=str[i]&&str[i]-=);}str[]cout<<字长度:"<sizeof(str)/sizeof(str[0])<<str);cout<<<endl;答:数内的sizeof问题。根据语法如于数组,只能测出静态数组的大小,无法检测动态分配的或外部数组大小。函数外的str是个静态定义的数组,此其大小为,因为还有,函数内的实只是一个指向字符串的指针,没有任何额外的与数组相-1-

关的信息,因此sizeof作用于上只将其当针看,一个指针为字节,因此返回4一个32的器该器指针多位答:指针是多少位只要看地址总线的位数就行以的机子都是的数据总线。所以指针的位数就是4个节了。main(){intint}答案:2分析:*(a+1)是a[1]*(ptr-1)就执结果是2。&a+1不首地址1,系统会认为加一个组的偏移移一个数组的大例5个intint*ptr=(int*)(&a+1);则实是&(a[5]),也是a+5原因如下:&a是数组指针,其类型为(*)[5];而指针加1要据指针类型加上一定的值不同类型的指之后增加的大小不同a是度为5的数指针,所以要加5*sizeof(int)所以ptr实是a[5]但是prt与&a+1)类是不一样的这点很重)所以prt-1只减去sizeof(int*)。a,&a的址一样的,但意思不一样,a是组首地址,也就是a[0]的地址对象(数组)首地址a+1是组下一元素的地址,即a[1],&a+1是一个对象的地址,即a[5].请问下码有么题intmain(){a;*str=&a;strcpy(str,"hello");printf(str);0;}答案:没有为str分内存空间,将会发生异常,问题出在将一个字符串复制进一个字符变量指针所指地址虽然可以正确输出结果,但因为越界进行内存读写而导致程序崩。Char*s="AAA";printf("%s",s);s[0]='B';printf("%s",s);有什么?答案"AAA"是字符串常量s是指针指向这个字符串常量,所以声明s的候就有问题。char*s="AAA";然又因为是常量,以对是s[0]的赋操作是不合法的。写一“标准宏,个输两参并返较的个答案:.#defineY)//结尾没有;-2-

嵌入系中常用到限环你么编死环?答案:while(1){}或者for(;;)关键static的作是什?答案:定义静态变量或静态数关键有什含?答案:表示常量不可以修改的变量。关键volatile有什含?举三不的例?答案:提示编译器对象的值可能在编译器未监测到的情况下改变。(1)并行设备的硬件寄器(如状态寄存器)(2)中断函数中会访问的非自动变量(3)多线程应用中被几任务共享的变量(*s[10])(int)表的什啊答案:(*s[10])(int)函数指针数组,每个指针指向一个intparam)的函数有以表式inta=248intconstc=21;intint*conste=&b;intconst*f请问下表式些被译禁?什?答案d=&b;f=0x321f;*c这是个什么东东*d说了是const,禁止&a说是const禁止*f禁交换个量值不使第个量即交换后a=5,b=3;答案:有两种解,一用算术算法一用(或)。a=aaa或者=a^b;//只对=a^=^=a;c和c++中有么同答案:c和c++的要区别中struct不可以含有成员函数,而c++中的struct可以。c++中struct和的主要区别在于默认的存取权限不同struct默为,而class默为private18.<stdlib.h>voidgetmemory(char{p=(char*)malloc(100);-3-

world");}intmain(){getmemory(str);free(str);0;}答案:程序崩溃getmemory中的不返回动态内存,()对str操很险szstr[10];strcpy(szstr,"0123456789");产什结?什?答案:长不一样,会造成非法的OS列举种程同机制并较优点答案:原操作信号机制自旋锁管程,会合,分布式系统进之通信途答案:共享存储系统消息传递系统管道:以文件系统为基础进死的原答案:资源竞争及进程推进顺序非法死的个要件答案:互斥、请求保持、不可剥夺、环路死的理答案:鸵鸟策略、预防策略、避免策略、检测与解除死锁25.操作统进调策有几?答案:FCFS(来先服务,优先级,时间片轮转,多级反馈类静成员非态员何别答案:类的静态成员每个类只有一个,非静态成员每个对象一个纯函如何义使时注什?答案:voidf()=0;是口,子类必须要实现数和表的别答案:数组:数据顺序存储,固定大小连表:数据可以随机存储,大小可动态改变-4-

七模是么?是属哪层tcp/udp有何优点答案:应用层表示会话输层网络路层物理层;tcp属传输层;服提供了数据流传输性流控制双工操作和多路复用技术等TCP不同,并不提对IP协议的可靠机制、流控制以及错误恢复功能等。由比较简单,UDP头包含很少的字节,比负消耗少。提供稳定的传输服务,有流量控制,缺点是包头大,冗余性不好不提供稳定的服务,包头小,开销小:*)ptr和的果否同其ptr为一指针答案:和(*(void**))ptr是相同的:intmain(){intx=3;return}问数然会其函调,什要回?答案:mian中,标认为表成功,非表错误。具体的值是某中具出错信息要对对址赋我可用(unsigned1234;那么是让序转绝地是0x100000去执,该么?答案:(*)()();首要将0x100000强转换成函数指针,即:(void(*)())0x100000然后再调用它:(*)())0x100000)();用typedef可以看得更直观些:voidFuncPtr;,知一数table用个定义求数的素数答案NTBL(table)(sizeof(table)/sizeof(table[0]))。程与程区和系线程否有同堆?dll是有立堆答案进是死的只一些资的集合,真正的程序执行都是线程来完成的,程序启动的时候操作系统就帮你创建了一个主线程。每个线程有自己的堆栈。DLL中有没有独立的堆栈,这个问题不好回答,或者说这个问题本身是否有问题。因为DLL中的代码是被某些线程所执行只线程拥有堆栈如果DLL的代码是EXE中线程所调用那这个时候是不是说这个DLL有自己独立的堆栈?如果中代码是由DLL自创建的线程所执行那是不是说有立的堆栈?以上讲的是堆栈,如果对于堆来说,每DLL有自己的堆,所以如果是从DLL中动态分配的内存,最好是从DLL中除,如果你从DLL中分配内存,然后在EXE中,或者另一个DLL中除,很有可能导致程序崩溃。-5-

unsignedA=~A);输多?分过答案:第一题,A=值为-,但输出的是uint。所以输出第二题,=0x10,输出的是int,最高位为1是负数,所以它的值就是的补码就是128,所以输出-128这两道题都是在考察二进制向int或uint转时的最高位处理。(二)-1,2,7,28,,126问和中那数什?什?答案:第一题的答案应该是规是当为数,24)n^3+1(当n奇数,35)2.用个实现个列功?求出法思!答案:设2栈为A,B,一开始均为空入:将新元素入A;出:判断栈B是否为空;(2)果不为空则将栈A中有元素依次并到B将栈的顶元素pop出样现的队列入队和出队的平摊复杂度都还是比面的几种方法要好。3.在语言函中一字符换整的数吗这函的型什么答案函数名:功能:把字符串转换成长整型数用法long*nptr);程序例<stdlib.h>int{longl;*str="98765432";l=atol(lstr);printf("string=l);return(0);}。于个繁用短函数在语中用么现C++中用么现答案:c用定义,用。接接个令的组路称什?答案:PPP到点连接。件试有些类答案:黑盒:针对系统功能的测试

白合:测试函数功能,各函数接口。定块功和块接是在件计那队完的-6-

答案:概要设计阶段。string{x1,x2,x3=10,x4,问;答案:取值在01。10。11。中的一个。unsignedchar*p1;unsigned*p2;char请p1+5=;p2+5=;答案:801005;810014不要忘记了这个是进的数字p2加变为进制就选择题接Internet用到以那协?;C.UDP;TCP;ID答案D2.属网层协的:A.TCP;C.ICMP;D.X.25答案B消调机是:指队;指令堆;C.息队列;D.息堆;答案:找错题1.请下程序什错inta[60][250][1000],i,j,k;<=1000;k++)for(j=0;j<250;j++)for(i=0;i<60;i++)答案:把循环语句内外换一下。下求个的方程序请出误#define((a)*(a))inta=5;int-7-

b=SQUARE(a++);答案:这个没有问题s(++是++)(++)唯一注意的就是计算后a=7了typedefunsignedBYTEint{*gt_buf;)MALLOC(Max_GT_Length);{returnGT_Length_ERROR;}}答案:要释放内存问答题:1.IPPhone的原是么答案:2.TCP/IP通建的程样端有么用?答案:三次握手,确定是哪个应用程序使用该协议(三)、部量否全变重?答案:能,局部会屏蔽全局。要用全局变量,需要使"::"局部变量可以与局变量同名,在函数内引用这个变量时会用到同名的局部变量不会用到全局变量对于有些编译器而言在同一个函数内可以定义个同名的局部变量如两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内、何用个经义的局变?答案extern可用引用头文件的方式可以用extern关字如果用引头文件方式来引用某个在头文件中声明的全局变理定你将那个变写错了那在编译期间会报错如果你用extern式引用时假你犯了同样的错误那在译期间不会报错而连接期间报错、局量不以义可多个.C文包的文中为么答案可在同的文中以形来声明同名全局变量可以在不同的C文中声明同名的全局变量,前提是其中只能有一个文中对此变量赋初值,此时连接不会出错-8-

、句;1;有么题它什意?答案:和while(1)相。、…和……do有什区?答案:前一个循环一遍再判断,后一个判断以后再循环。、写下代的出容#include{inta=10;b=a++;d=10*a++;printf("b,,:,%d%d",b,,d);return}答案:,12,a=10;b=a++;//a=11b=10c=++a;//a=12d=120高级题、static全局量普的局量什区?static部量普局变有么别static函与通数什么别答案:全局变量(外部变量)说明之前再冠以static就成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当个源程序由多个源文件组成时静的全局变量各个源文件中都是有效的静全局变量则限制了其作用域,即只定义该变量的源件内有效,在同一源程序的其它源文件中不能使用它由于静态全局变量的作用域局限于一个源文件内能为该源文件内的函数公用此以避免在其它源文件中引起错误。从以上分析可以看出,把部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函(static)内部函数应该在当前源文件中说明和定义于可在当前源文件以外使用的函数该一个头文件中说明使用这些函数的源文件要包含这个头文件static全变量与普通的全局变量有什么区别全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么区别static局变量只被初始化一次,下一次依据上一次结果值;static函与普通函数有什么区别函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝、序局变存于),全变存于),态请据在()。答案:栈;静态区;堆-9-

、有下明定:typedefunion{longintk[5];c;}structdata{intcat;DATE}too;DATEmax;则句printf("%d",sizeof(too)+sizeof(max));的执结是_20_答案是一个union,变公用空.里面最大的变量型是占用20个节.所以它的大小是20data是个struct,每个变量分开占用空间依为int4++所以结果是32=52.当.在某些16编辑器,int可能是字节,么结果是int2DATE10+20、列栈什区?答案:队列先进先出,栈后进先出、知个向表头请出删其一结的法要,找此点然删。答案:*Head,int{if(Head->number==key){free(Pointer);break;}=Pointer;Pointer=Pointer->next;{Back->next=Pointer->next;free(Pointer);break;}-10

voiddelete(Node*p){if(HeadNode)}}、找下代中所错说明以代是一字串序如abcd”倒后为dcba#include"string.h"{char*src="hello,world";char*dest=NULL;intchar*char*s=src[len];while(len--!=0)return}答案:#include<stdio.h>int{=int=strlen(src);(char*)malloc((len+1)*sizeof(char));//为\分一个空间d=dest;s=&src[len-1];//向最后一个字符while(len--*d++=*s--;*d//尾部要\free(dest);使完,应当释放空间,以免造成内存汇泄露0;}-11

华为笔试()19:41一判题对写T,的说原,小题分共20分)、有数组定义inta[2][2]={{1},{2,3}};则a[0][1]值为0确)、int则是维组的名字误int();定一个指向函数的指针变量)、指针在任何情况下都可进>,<,>=,运算误、语句中c可是int,long,charint类。错,不能用实形)二填题共30分)、在下,写出运行结果,每空分,共10分str[""intsizeof(str)=()))voidstr[100]){}sizeof(str)=()答案:6,4,4,具体解释请参看我的空间里“C/C++程序员应聘试题剖”、voidgetmemory(char**p,int{*p=(char*)malloc(num);}void{"hello");printf(str);}运行test函有什么结果?()分答案:输出hello但是发生内存泄漏。、设intint*ptr=arr;*(ptr++)+=123;//先算*ptr=*ptr+123;再ptr++;所以arr[0]=129;printf(%d,%d",*ptr,*(++ptr));//从右到左的顺序()10答案:8,-12

。这道题目的意义不大,因为在不同的编译器里p的数的方向是不一样的,在下是从右到左,这里*(++ptr)后*,于是结果为,8三编题第小20第小分、不用库函数编函数intstrcmp(char*source,相返回0不等返-;答案:一、intchar*dest){assert((source!=NULL)&&(dest!=NULL));inti,j;for(i=0;i++){&&dest[i]=='\0')0;}}答案:二、intchar{(*source!='\0')&&(*source{dest++;}((*source)-(*dest))?:}、写函数intfun(char*p)判一字符串是否为回文,是回,不是返回0,出错返回答案:一、intfun(char{if(p==NULL){intlength=inti=0;intjudge==strlen(p);-13

for(i=0;ii++){if(p[i]!=p[length-1-i])judgebreak;}if(judge==0;1;}}答案:二、intfun(char{int=strlen(p)-1;*q=p+if(p<{if((*p++)(*q--))0;}1;}华为笔网题()2006-09-30在层型网络层的功能有(B)确数据的传送正确无误确数据包如何发与路由C.在信道上传送比特流纠错与流控2.FDDI(光纤分布式数据接口)使的__域网技术。(C以网B.速以太网;令牌环D.牌总线。下面那LAN是用CSMA/CD协的令环B.FDDIC.ETHERNETD.NOVELL4.TCP和协的似之处是(C)面连接的协议面非连接的协议C.传输层协议D.上均不对应用程发的是_报文.C)请报文。应报文。C.ICMP请求报文。D.ICMP应报文。以下说错误的(多)BD)中继器是工作在物理层的设备B.集线器和以太网交换机工作数据连路层C.路器是工作在网络层的设备桥隔离网络层广播当桥接的分组的目的地在桥的映射表中没有对应的表项采取的策略是C)丢该分组B.将该分组片C.其他端口广播该分组D.以上答案均不对8.LAN在络层次模型中的地(B)-14

物层链层C.网络层D.以上都不是小于__TCP/UDP口号已保留与现有服务一一对应,数字以上的端口号可自由分配。(C)C.1024当一台主机从一个网络移到另一个网络以下说法正确的是(B)必改变它的IP地址和地址须改变它的地,不需改动地址C.必须改变它的MAC地址但不需改动IP地D.MAC地址地都不需改动答案:1.B;2.C;4.C;5.C;7.C;8.B;10.B.华为笔题4)2006-09-3013:00找void{string[10];strcpy(string,}答:表面上并且编译都不会错误。但如果数原意表示的是字符串的话那这个赋值就没有达到意图。最好定义为charstring[11],这样最后一个元素可以存储字符串结尾\0';void{str1[10];for(intI=0;I<10;I++){str1[I]}strcpy(string,}答:使错误,只遇到字符串末尾'才结束,而str1并有结尾标志,导致函数越界访问,不妨让,样就正常了。voidstr1){string[10];if(strlen(str1)<=10){strcpy(string,}}答:这又会出现第一道改错题的错误了算来的值是不包含结尾的,如果刚为个字符结符,就得不到结尾符了。可将strlen(str1)改strlen(str1)。-15

找256get_SRM_no(){intintI;for(I=0;I<MAX_SRM;I++,SRM_no++){SRM_no%=if(MY_SRM.state==IDLE){break;}}(NULL_SRM);}答:我不知道这段代码的具体功能,但明显有两个错误1SRM_no有赋初值,由于的明,使该函数成为不可重入(即不可预测结果)函数,因为变放在程序的全局存储区中,每次调用的时候还可以保持原来的赋值。这里应该去掉s明。写程序运行结果int{intc=0;intc+=1;return(a+b+c);}void{intI;inta=2;for(I=0;I{printf("%d,",}}答该题比较简单。只要注意b声为static静全局变量,值在下次调用时是可以保持住原来的赋值的就可以。-16

int{intswitch(a){b=30;b=20;b=16;}b;}则func(1)=?答:,为没有语句,中会一直计算到b=0这是提醒我们不要忘了break。呵呵。inta[0]=0;a[1]=1;a[2]=2;int*p,则答:a[q-p]=a[2]=2;这是要告诉我们指针的运算特点定int**a[3][4],则量占有的内存空间为答:此处定义的是指向指针的指针数组,对于系统,指针占内存空间字节,因此总空间为3×4×4=48编一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输年月31日23时分59秒则输出2005年1月1日时分。答:/*输入年月日时分秒,输出年月日时分秒下一秒,输出仍然在原内存空*/voidNextMinute(int*nYear,int*nDate,int*nHour,int*nMinute,int{intnDays;//秒加1//秒60出殊处理面,日,月等类同{*nSecond=0;(*nMinute)++;if(*nMinute>=60){*nMinute=0;(*nHour)++;-17

{*nHour=0;(*nDate)++;switch(*nMonth){10:12:break;2://判断闰年¦*nYear%100!=0&&*nYear%4==0){}{}break;break;}{if(*nMonth>12){*nMonth=1;}}}}}}/*示例可运行代码*void-18

{intNextMinute(&nYear,&nMonth,&nDate,&nHour,&nMinute,&nSecond);result:%d-%d-%d}华为硬件笔试题2006-09-30一选13个题目没全部抄下来涉的课程有电路,拟电路,字电路,信号与系统,微机原理网络,数字信号处理有关于微分电路2.CISC,RISC数据链路层二填10个题目没全部抄下来涉的课程有电路,拟电路,字电路,信号与系统,微机原理网络,数字信号处理有关于1.TIC6000二极管3.RISC4.IIR三简1.x(t)傅立叶变换为X(jw)=$(w)+$(w-PI)+$(w-5)h(t)=u(t)-u(t-2)问是周期的吗?(2),x(t)*h(t)是周期的吗(3),两个非周期信号卷积后可周期?简分组交换的特点和不足四分设计波变换题目从正波方波-锯齿波-方波,计电路2.74161计数器组成计数电分析几进制的用D触发器构成2分频电路判MCS-51单片机的指令正确还是错误,指出错误原因(1)MUL(2)MOVA,@R7(3)MOVA,#3000H(4)MOVC@A+DPTR,A#1000H()5.MCS-51单机中采用12Mhz时定时器T0采模式1(16位计数器),请问在下面程序中,p1.0的输出频率TMOD,#01HSETBLOOP:MOVTH0,#0B1HMOVTL0,#0E0HLOOP1:JNBTF0,LOOP1CLRCPLLOOP华为硬件面试题2006-09-30全都是几本模电数电信号单片机题目用与非等设计全加法器给出两门电路让你分析异同名词:信号与:在时域与频域关系信号与:和差不多晶体振好像是给出振荡率让你求周(该是单片机的,12分一周期串行通与同步通信异,特点,较高平脉冲对应的逻是?负逻延时问判错史密斯特电路求回差电压11.VCO是么什么参数(压控振荡器12.用D触器做个二分颦的电又问什么是状态图13.什耐斯特定,怎么由模拟信号转为数字信号14.用D触器做个进的计数那种排序方法最?一、研发软件)用语言写一个递归算法求N给一个的数,关于字符串和数组,找出错误;防火墙是怎么实现的?你哪方面编程熟悉?硬件:1、继电器控制电路。、SDRAM是么工作的、写出逻辑表达式说明A2A1A0大于。、常用触发器有几种、示波器有几种触发方式举出三种华为3COM数通信工程师试题协答案:12个协商,先H225然H245,需要注意是面试官可能会问到跟-19

SIP的较ipsec为么是三层的为么二层的?答:协安全是一个工业标准网络安全协议为IP网络通信提供透明的安全服务保护通信免遭窃听和篡改,可以有效抵御网络攻击,同时保持易用性IPSec有个基本目标:)保护IP数包安全;)为抵御网络攻击提供防护措施。第层保护的优点通IPSec提的保护需要对系统做一定的修改。但是在IP传层即第三层的"策执行"(strategic)几乎不需要什么额外开销就可以实现为绝大多数应用系统、服务和上层协议提供较高级别的保护为有应用系统和操作系统配置IPSec几无须做任何修改安全策略可以在ActiveDirectory里中定义也可以在某台主机上进行本地化管理。策略在参模型第三层即网络层上实施的安全保护,其范围几乎涵盖了CP/IP协簇中所有协议和上层协议,如、UDP,(第号协议至包括在网络层发送数据的客户自定义协议第三层上提供数据安全保护的主要优点就在于有使用协进行数据传的应用系统和服务都可以使用必对这些应用系统和服务本身做任何修改。运作于第三层以上的其他一些安全机制如安全套接层仅知道如何使用应用系如Web浏器供护极大地限制了S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论