C语言面试卷试题.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

zdq0909 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档