- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、 C 语言面试题:
1、问:在嵌入式开发中,为什么能通过 C语言直接操作硬件?
答:因为 C有指针,它是 C语言的灵魂,它可以直接访问存。
2、问:链表的作用? (这是上一个问题的延申,学员一般会举一堆例子来说
明它的作用,但这都不是重点,没有抓住主要矛盾 )
答:链表用于存管理, 链表节点中的指针域可以将不连续的存彼此关联起来,实现存的动态管理。
3、问:什么变量不能用指针指向?
答:寄存器变量( register 修饰),因为这个变量会优先选择存放到 CPU 寄存器中,而指针只能指向存的任务区域,但不能指向寄存器。
4、问:有符号字符型和无符号字符型变量的最大值和最小值分别是多少 (十六进制多少),为什么?
答:有符号( -128 —127,-0X80— 0X7F),无符号( 0-255,0X00 —0XFF)。
5、问:林锐面试题中四个有关存操作的问题:
第一题、运行会出现段错误(崩溃) :
答:因为参数是值传递,所以主调函数中的 str 指针已然指向空,不能向里面拷数据,除非加上取地址,采用二维指针接收才能传递动态存;
第二题:乱码:
答:实际上可能是乱码,也可能显示出一部分容,显示乱码是因为刚才那段栈存空间全部被覆盖,如果未完全覆盖则显示一部分容;
第三题:能够输出 hello
答:但由于没有在同一层释放存,容易导致存泄露;第四题:对已经释放的存进行操作
答:会破坏其它有用数据,后果难以预料,通常提示出现段错误。
6、问:哪些地方可以用到 const? const 变量和函数输入参数用 const 修饰有
哪些作用?
答: 1、定义常量
1) const 修饰变量, const TYPE ValueName=value;value 是不可变的。
2) 将 const 改为外部, 作用于扩大至全局, 编译时分配存, 并且可以不进行初始化,仅仅作为声明,编译器认为在在程序其他地方进
行了定义;
Extend const int ValueName = value;
2、指针使用 CONST
(1)指针本身是常量不可变
char *) const pContent; Const ( char*) pContent;
(2)指针指向的容是常量不可变
Const char *pContent;
Char const *pContent;
(3)两者都不可变
Const char *const pConten
3、函数中使用 CONST
(1)const 修饰函数的参数
传递过来的参数在函数不可以改变;
void function (const int var);
参数指针所指容为常量不可变; void function(const char *Var);
参数本身为常量不可变;
void function (char *const Var);
二、 系统编程
1、问:什么是程序?什么是进程?本质区别?
答:程序是存放在磁盘上一些指令的有序集合;
进程是程序执行的实例,是个动态的过程;
本质区别:程序是静态的,进程是动态的。
2、问:无名管道为什么只能在具有公共祖先的进程间通信?管道的特点?
答:因为无名管道没有名字,没法通过 open 的方法打开,进程只能通过
继承的方法获取管道文件描述符。
管道的特点:
1、半双工,数据在同一时刻只能在一个方向上流动。
2、只能在具有公共祖先的进程之间使用,通常用在父子管道之间。
3、管道对于管道两端的进程而言,就是一个文件,但他不是普通的
文件,不属于某个文件系统,并且只存在于存中。
4、数据从管道的一端写入,从另一端读出。
5、没有名字。
6、管道的缓冲区是有限的。
7、管道所传送的数据是无格式的,这要求管道的读出方与写入方必
须事先约定好数据的格式,如多少字节算一个消息等。
8、写入管道的数据读完以后就从管道中消失。
3、问:管道与消息队列的区别?
答:管道与无名管道收发数据都是先进先出的, 消息队列可以实现按消息的类型随机读取。
4、问: select()函数的作用?
答:用于一个进程同时监听多个文件描述符, 还可以设置监听超时时间。
5、问:有名管道相比无名管道最大的优点是什么?
答:可以实现毫无干系的进程间通信。
6、问:什么是信号量,有什么特点,简述 PV 操作?答:信号量就是个计数器,计数器的值只能是非负的。
操作计数器的方法是 PV 操作, PV 操作具有原子性(不可中断) ,要执行就一定要执行成功,要么就不执行。
操作使信号量的值减一
当进行带堵塞的 P 操作的时候,如果信号量的值已经是 0 了,P 操作就会堵塞。
操作使得信号量的值加一
7、问:什么是进程、什么是线程,它们之间的关系?实现多任务的优缺点?
答:进程是系统资源分配的最小单位,线程是 CPU 调度
文档评论(0)