logo资料库

嵌入式面试题集锦(带答案、最全).doc

第1页 / 共108页
第2页 / 共108页
第3页 / 共108页
第4页 / 共108页
第5页 / 共108页
第6页 / 共108页
第7页 / 共108页
第8页 / 共108页
资料共108页,剩余部分请下载后查看
17
试题1:C语言面试题一——华为篇
试题2:
试题3:华为全套完整试题
试题4:(慧通)
试题5:华为软件研发面试题2
试题6:微软亚洲技术中心的面试题!!!
试题7:思科
试题8:慧通:
试题9:
试题10:
试题11:C/C++ 程序设计员应聘常见面试试题深入剖析
试题12:金山公司几道面试题
试题13:面试与被面试总结
vector
deque
list
试题14:
试题15:
试题16:×××公司linux内核驱动研发招聘笔试题
试题17:C++笔试题(1)
试题18:
试题19: 
试题21:linux面试题参考答案 (选择题)
试题23:考查嵌入式C开发人员的最好的0x10道题
试题24:从一道面试题看指针与数组的区别
试题25:嵌入式研发工程师面试试题大全(ANSI CC++方面的知识)
试题26:华为面试题
试题27:Intel的笔试题
A R12
17 试题 1:C 语言面试题一——华为篇 int i=1; printf("%d\n",(++i)+(++i)+(++i)+(++i)+(++i)); 3+3= 6 3+3+4= 10 3+3+4+5= 15 3+3+4+5+6= 21 // (++i)+(++i) // (++i)+(++i)+(++i) //(++i)+(++i)+(++i)+(++i) // (++i)+(++i)+(++i)+(++i)+(++i) //(++i)+(++i)+(++i)+(++i)+(++i)+(++i) //(++i)+(++i)+(++i)+(++i)+(++i)+(++i)+(++i) // .... 1.static 有什么用途?(请至少说明两种) 1)限制变量的作用域 2)设置变量的存储域(堆,主动分配内存也是堆) 3+3+4+5+6+7= 28 3+3+4+5+6+7+8= 36 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数 访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的 模块的本地范围内使用 补充:一个代码在运行时分为 4 个区: 1)data:全局,静态,常量 2)code:代码 3)堆:new,malloc 分配的内存,需要 delete,free 释放。如果不释放,则只有等程序运行正常结束时,由操作系统 回收,理论上无限大。 4)栈:场景信息(函数的参数,返回值,局部变量,临时变量),VC 的栈区默认是 4M。对大内存的操作,需要 放堆区。如: Stedent stu[4*1024*1024] 会出问题,应改为:student *stu=new stu[4*1024*1024] 释放:delete[] stu; 2.引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 3.描述实时系统的基本特性 在特定时间内完成特定的任务,实时性与可靠性 1
4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在栈 5.什么是平衡二叉树? 左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于 1 6.堆栈溢出一般是由什么原因导致的? 堆栈溢出一般是循环的递归调用导致的,如果使用的大数据结构的局部变量,也可能导致堆栈溢出。 没有回收垃圾资源导致的是内存泄露最后内存耗尽。 7.什么函数不能声明为虚函数? 构造函数,静态成员函数,非成员函数,部分模板函数。 8(1).冒泡排序算法的时间复杂度是什么?(其它排序算法的时间复杂度) O(n^2) 8(2)、数组 a[N],存放了 1 至 N-1 个数,其中某个数重复一次。写一个函数,找出被重复的数字. 时间复杂度必须为 o(N) int do_dup(int a[],int N) { int sum = 0; for(int i = 0;i-0.000001) 10.Internet 采用哪种网络协议?该协议的主要层次结构? tcp/ip:应用层/传输层/网络层/数据链路层/物理层 OSI 模型:应用层/(会话层/表示层/)传输层/网络层/数据链路层/物理层 11.Internet 物理地址和 IP 地址转换采用什么协议? ARP (Address Resolution Protocol)(地址解析協議) 2
18.IP 地址的编码分为哪俩部分? IP 地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络 位哪些是主机位。 19.用户输入 M,N 值,从 1 至 N 开始顺序循环数数,每数到 M 输出该数值,直至全部输出。写出 C 程序。 循环链表,用取余操作做。 #include #include "stdlib.h" #define NULL 0 #define TYPE struct stu #define LEN sizeof (struct stu) struct stu { }; int data; struct stu *next; TYPE *line(int n) { int sum=1; struct stu *head,*pf,*pb; int i; for(i=0;idata=i+1; if (i==0) else pf=head=pb; pf->next=pb; if (i==(n-1)) pb->next=head; else pb->next=NULL; pf=pb; sum++; 3
head=L; printf("%d\n",pf->data); pf=pf->next; for(i=0;pf!=head;i++) { printf("%d\n",pf->data); pf=pf->next; } } main() { int M,N,x,i; struct stu *p,*q; printf("please scanf M and N (Mnext; //找到了M前面的1个 } printf("p.data=%d\n",p->data); q=p->next; printf("%d\n",q->data) p->next = p->next->next; p=p->next; free(q) ; x--; ; //输出 M //释放M //从M的下一个又开始数 } getch(); } 20.不能做 switch()的参数类型是: switch 的参数不能为实型。(只能是 int char) 4
试题 2: 1.-1,2,7,28,,126 请问 28 和 126 中间那个数是什么?为什么? 第一题的答案应该是 4^3-1=63 规律是 n^3-1(当 n 为偶数 0,2,4) n^3+1(当 n 为奇数 1,3,5) 答案:63 2.用两个栈实现一个队列的功能?要求给出算法和思路! 设 2 个栈为 A,B, 一开始均为空. 入队列: 入栈 A 出队列: 1 如果栈 B 不为空,直接弹出栈 B 的数据。 2 如果栈 B 为空,则依次弹出栈 A 的数据,放入栈 B 中,再弹出栈 B 的数据。 3.在 c 语言库函数中将一个字符转换成整型的函数是 atol()吗,这个函数的原型是什么? 函数名: atol 功 能: 把字符串转换成长整型数 函数的原型: long atol(const char *nptr); 程序例: #include #include int main(void) { long l; char *str = "98765432"; l = atol(lstr); printf("string = %s integer = %ld\n", str, l); return(0); } 4.对于一个频繁使用的短小函数,在 C 语言中应用什么实现,在 C++中应用什么实现? c 用宏定义,c++用 inline 8.软件测试都有那些种类? 黑盒:针对系统功能的测试 白合:测试函数功能,各函数接口 9.确定模块的功能和模块的接口是在软件设计的那个队段完成的? 5
概要设计阶段 11.unsigned char *p1; unsigned long *p2; p1=(unsigned char *)0x801000; p2=(unsigned long *)0x810000; 请问 p1+5=? ; p2+5=? ; 答:p1+5=0x801005 p2+5=0x810014 ; ; 二.选择题: Windows 消息调度机制是:c A.指令队列;B.指令堆栈;C.消息队列;D.消息堆栈; 三.找错题: 1.请问下面程序有什么错误? int a[60][250][1000],i,j,k; for(k=0;k<1000;k++) for(j=0;j<250;j++) for(i=0;i<60;i++) a[i][j][k]=0; 把循环语句内外换一下 (编译的时候没错,运行的时候出错,但这个数组太大,如果放在栈中,还是会溢出,要作为全局变 量) 2.#define Max_CB 500 void LmiQueryCSmd(Struct MSgCB * pmsg) { unsigned char ucCmdNum; ...... for(ucCmdNum=0;ucCmdNum
#define SQUARE(a)((a)*(a)) int a=5; int b; b=SQUARE(a++);//a 被加了 2 次 a=7,b=25 试题 3:华为全套完整试题 2、有一个 16 位的整数,每 4 位为一个数,写函数求他们的和。 解释: 整数 1101010110110111 和 1101+0101+1011+0111 /* n 就是 16 位的数,函数返回它的四个部分之和 */ char SumOfQuaters(unsigned short n) { char c = 0; int i = 4; do { c += n & 15; n = n >> 4; } while (--i); return c; } 试题 4:(慧通) 1、 写出程序把一个链表中的接点顺序倒排 typedef struct linknode { int data; struct linknode *next; }node; //将一个链表逆置 node *reverse(node *head) { 7
node *p,*q,*r; p=head; q=p->next; while(q!=NULL) { r=q->next; q->next=p; p=q; q=r; } head->next=NULL; head=p; return head; } 2、 写出程序删除链表中的所有接点 void del_all(node *head) { node *p; while(head!=NULL) { p=head->next; free(head); head=p; } cout<<"释放空间成功!"<
分享到:
收藏