烽火通信 c语言 笔试,C语言嵌入式笔试题目及参考答案-烽火通信.doc

C语言嵌入式笔试题目及参考答案-烽火通信.doc

什么是预编译预编译又叫预处理,做一些编译前的准备工作,常见的有文件包含include代码重用,结构清晰、宏定义define(定义常量) 、条件编译if/elseif/else/endif ifdef/ifndef/endif ifndef/define/endif(避免头文件重复定义)提高编译效率。何时需要预编译、总是使用不经常改动的大型代码体。 、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。char * const p;char const * pconst char *p 上述三个有什么区别char * const p; 常量指针,p 的值不可以修改char const * p;指向常量的指针,指向的常量值不可以改const char *p; 和 char const *p 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 YYX结尾没有;2、嵌入式系统中经常要用到无限循环,你怎么用 C 编写死循环。while1或者 for3、关键字 static 的作用是什么定义静态变量或静态函数1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2)在模块内(但在函数体外) ,一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。4、关键字 const 有什么含意表示常量不可以修改的变量。还可以修饰函数的参数、返回值、函数体5、关键字 volatile 有什么含意并举出三个不同的例子提示编译器对象的值可能在编译器未监测到的情况下改变。 int *s10int 表示的是什么啊int *s10int 函数指针数组,每个指针指向一个 int funcint param的函数。 1.有以下表达式int a248; b4;int const c21;const int *dint *const eint const *f const 请问下列表达式哪些会被编译器禁止为什么*c32;d*d43;e34;ef0 x321f;*c 这是个什么东东,禁止*d 说了是 const, 禁止e 禁止2.交换两个变量的值,不使用第三个变量。即 a3,b5,交换之后 a5,b3;有两种解法, 一种用算术算法, 一种用异或a a b;b a - b;a a - b; ora ab; 只能对 int,charb ab;a ab;ora b a;3.c 和 c中的 struct 有什么不同c 和 c中 struct 的主要区别是 c 中的 struct 不可以含有成员函数,而 c中的 struct 可以。c中 struct 和 class 的主要区别在于默认的存取权限不同,struct 默认为 public,而 class 默认为 private4.include include void getmemorychar *ppchar * malloc100;strcpyp,“hello world“;int main char *strNULL;getmemorystr;printf“s/n“,str;freestr;return 0;程序崩溃,getmemory 中的 malloc 不能返回动态内存, free()对 str 操作很危险5.char szstr10;strcpyszstr,“0123456789“;产生什么结果为什么长度不一样,会造成非法的 OS6.列举几种进程的同步机制,并比较其优缺点。原子操作 信号量机制自旋锁管程,会合,分布式系统 7.进程之间通信的途径共享存储系统消息传递系统管道以文件系统为基础8.类的静态成员和非静态成员有何区别类的静态成员每个类只有一个,非静态成员每个对象一个9.纯虚函数如何定义使用时应注意什么virtual void f0;是接口,子类必须要实现10.数组和链表的区别数组数据顺序存储,固定大小连表数据可以随机存储,大小可动态改变 11.进程死锁的原因资源竞争及进程推进顺序非法12.死锁的 4 个必要条件互斥、请求保持、不可剥夺、环路互斥条件(Mutual exclusion )资源不能被共享,只能由一个进程使用。请求与保持条件(Hold and wait)已经得到资源的进程可以再次申请新的资源。非剥夺条件(No pre-emption)已经分配的资源不能从相应的进程中被强制地剥夺。循环等待条件(Circular wait)系统中若干进程组成环路,改环路中每个进程都在等待相邻进程正占用的资源。13.死锁的处理鸵鸟策略、预防策略、避免策略、检测与解除死锁处理死锁的策略1.忽略该问题。例如鸵鸟算法,该算法可以应用在极少发生死锁的的情况下。为什么叫鸵鸟算法呢,因为传说中鸵鸟看到危险就把头埋在地底下,可能鸵鸟觉得看不到危险也就没危险了吧。跟掩耳盗铃有点像。2.检测死锁并且恢复。3.仔细地对资源进行动态分配,以避免死锁。4.通过破除死锁四个必要条件之一,来防止死锁产生。14. 操作系统中进程调度策略有哪几种FCFS先来先服务,优先级,时间片轮转,多级反馈15.ISO 的七层模型是什么tcp/udp 是属于哪一层tcp/udp 有何优缺点应用层表示层会话层运输层网络层物理链路层物理层tcp /udp 属于运输层TCP 服务提供了数据流传输、可靠性、有效流控制、全双工操作和多路复用技术等。与 TCP 不同, UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单, UDP 头包含很少的字节,比 TCP 负载消耗少。tcp 提供稳定的传输服务,有流量控制,缺点是包头大,冗余性不好udp 不提供稳定的服务,包头小,开销小 文章来源笔试网 专业的笔试、面试资料搜索网站

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值