集中面试题目

上传人:xzh****18 文档编号:34572101 上传时间:2018-02-25 格式:DOC 页数:17 大小:70.50KB
返回 下载 相关 举报
集中面试题目_第1页
第1页 / 共17页
集中面试题目_第2页
第2页 / 共17页
集中面试题目_第3页
第3页 / 共17页
集中面试题目_第4页
第4页 / 共17页
集中面试题目_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《集中面试题目》由会员分享,可在线阅读,更多相关《集中面试题目(17页珍藏版)》请在金锄头文库上搜索。

1、需要能默写某些程序 记忆某些题目 最好是全部记住 C竟可能多搜索 内核 驱动方面面试题答案 资料/既有实物 又有面试分 就是双料了char * strcpy( char *strDest, const char *strSrc ) assert( (strDest != NULL) /对源地址和目的地址加非 0 断言char *address = strDest; while( (*strDest+ = * strSrc+) != 0 );/为了实现链式操作,将目的地址返回return address;Char *strcp(char *strD,const *strS)Assert(strD

2、!=NULL)char *add=strD;while(*strD+=*strS+)!=0);return add;这是一些在网上找到的 linux 内核驱动笔试题目,希望对各位要参加面试的朋友提供一点帮助。(一)主要题型:选择题(具体什么题都有,包括网络、C 以及其他硬件方面的基础知识) ;简答题(主要包括读 C 程序给出结果同时给出适当的解释及其他一些硬件方面的问题) ;(二)主要内容:1、题目概述(1)C 方面:这一部分比较简单,主要是类似指针空间分配、strcpy(主要是考第一个参数是否有空间,结合指针空间分配考) 、二重指针、及(先加后加,先减后减)等,还有就是volatile 及

3、register 修饰符的意思。(2)其他方面:这一部分比较杂,什么都可以考你,多半都是基础知识,尤其是硬件方面,华为的主要题目为:(主要列出 C 以外的题目,我认为 C 是非常简单的,_)2、具体题目(1)选择题部分:1、255.255.254.0 网段最多能支持多少主机?(大概有 5 个备选项)2、10M 网卡传输过程中物理层采用什么编码?(SNAP?)(大概有 4 个备选项)3、栈与队列的特点?(备选大概只有两个,A 为 FIFO,B 为 LIFO)4、Cache 的工作方式划分?(大概也有 4 个答案,大概是:write-none,write-all,write-through,wri

4、te-back) 。5、什么叫 NMI 中断?(四个备选项)6、RISC 主要性能及特性?(大概有 6 个备选项)7、在嵌入式系统中,所谓的北桥指的是什么?(2)简答题:1、说说轮巡任务调度与抢占式任务调度的区别?2、什么叫存储器高速缓存技术,其主要目的?3、画出计算机组成的最小逻辑框图。4、谈谈 Volatile 与 Register 修饰符的作用?这只是提供一些参考内容,具体面试时各公司出的题目并不是一成不变的,关键还是靠自己知识的积累,这样碰到什么题目也胸有成竹,应聘成功的机会当然也大的多!C/C+程序员应聘常见面试题深入剖析2008-12-19 10:31:33 来源:互联网 浏览次数

5、: 收藏此页 复制 1.引言 本文的写作目的并不在于提供 C/C+程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的 strcpy 函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个 strcpy 函数吗?我们都觉得自己能,可是我们写出的 strcpy 很可能只能拿到 10 分中的 2 分。读者可从本文看到 strcpy 函数从 2 分到 10 分解答的例子,看看自己属于什么样的层次。此外,还有一些面试题考查面试者敏捷的思维能力

6、。 分析这些面试题,本身包含很强的趣味性;而作为一名研发人员,通过对这些面试题的深入剖析则可进一步增强自身的内功。2.找错题试题 1:void test1()char string10;char* str1 = 0123456789;strcpy( string, str1 );试题 2:void test2()char string10, str110;int i;for(i=0; i= - EPSINON) & (x =”或“=”形式。如果写成 if (x = 0.0),则判为错,得 0 分。试题 2:以下为 Windows NT 下的 32 位 C+程序,请计算 sizeof 的值voi

7、d Func ( char str100 )sizeof( str ) = ?void *p = malloc( 100 );sizeof ( p ) = ?解答:sizeof( str ) = 4sizeof ( p ) = 4剖析:Func ( char str100 )函数中数组名作为函数形参时,在函数体内,数组名失去了本身的内涵,仅仅只是一个指针;在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。数组名的本质如下:(1)数组名指代一种数据结构,这种数据结构就是数组;例如:char str10;cout sizeof(str) endl;输出结果为 10,st

8、r 指代数据结构 char10。(2)数组名可以转换为指向其指代实体的指针,而且是一个指针常量,不能作自增、自减等操作,不能被修改;char str10; str+; /编译出错,提示 str 不是左值(3)数组名作为函数形参时,沦为普通指针。Windows NT 32 位平台下,指针的长度(占用内存的大小)为 4 字节,故 sizeof( str ) 、sizeof ( p ) 都为 4。试题 3:写一个“标准”宏 MIN,这个宏输入两个参数并返回较小的一个。另外,当你写下面的代码时会发生什么事?least = MIN(*p+, b);解答:#define MIN(A,B) (A) = (B

9、) ? (A) : (B)MIN(*p+, b)会产生宏的副作用剖析:这个面试题主要考查面试者对宏定义的使用,宏定义可以实现类似于函数的功能,但是它终归不是函数,而宏定义中括弧中的“参数”也不是真的参数,在宏展开的时候对“参数”进行的是一对一的替换。程序员对宏定义的使用要非常小心,特别要注意两个问题:(1)谨慎地将宏定义中的“参数”和整个宏用用括弧括起来。所以,严格地讲,下述解答:#define MIN(A,B) (A) = (B) ? (A) : (B)#define MIN(A,B) (A = B ? A : B )都应判 0 分;(2)防止宏的副作用。宏定义#define MIN(A,B

10、) (A) = (B) ? (A) : (B)对 MIN(*p+, b)的作用结果是:(*p+) = (b) ? (*p+) : (*p+)这个表达式会产生副作用,指针 p 会作三次+自增操作。除此之外,另一个应该判 0 分的解答是:#define MIN(A,B) (A) = (B) ? (A) : (B);这个解答在宏定义的后面加“;” ,显示编写者对宏的概念模糊不清,只能被无情地判 0分并被面试官淘汰。试题 4:为什么标准头文件都有类似以下的结构? #ifndef _INCvxWorksh#define _INCvxWorksh #ifdef _cplusplusextern C #en

11、dif /*.*/ #ifdef _cplusplus#endif #endif /* _INCvxWorksh */解答:头文件中的编译宏#ifndef_INCvxWorksh#define_INCvxWorksh#endif的作用是防止被重复引用。作为一种面向对象的语言,C+支持函数重载,而过程式语言 C 则不支持。函数被 C+编译后在 symbol 库中的名字与 C 语言的不同。例如,假设某个函数的原型为: void foo(int x, int y);该函数被 C 编译器编译后在 symbol 库中的名字为_foo,而 C+编译器则会产生像_foo_int_int 之类的名字。_foo

12、_int_int 这样的名字包含了函数名和函数参数数量及类型信息,C+就是考这种机制来实现函数重载的。为了实现 C 和 C+的混合编程,C+提供了 C 连接交换指定符号 extern C来解决名字匹配问题,函数声明前加上 extern C后,则编译器就会按照 C 语言的方式将该函数编译为_foo,这样 C 语言中就可以调用 C+的函数了。试题 5:编写一个函数,作用是把一个 char 组成的字符串循环右移 n 个。比如原来是“abcdefghi”如果 n=2,移位后应该是“hiabcdefgh” 函数头是这样的:/pStr 是指向以0结尾的字符串的指针/steps 是要求移动的 nvoid L

13、oopMove ( char * pStr, int steps )/请填充.解答:正确解答 1:void LoopMove ( char *pStr, int steps )int n = strlen( pStr ) - steps;char tmpMAX_LEN; strcpy ( tmp, pStr + n ); strcpy ( tmp + steps, pStr); *( tmp + strlen ( pStr ) ) = 0;strcpy( pStr, tmp );正确解答 2:void LoopMove ( char *pStr, int steps )int n = strl

14、en( pStr ) - steps;char tmpMAX_LEN; memcpy( tmp, pStr + n, steps ); memcpy(pStr + steps, pStr, n ); memcpy(pStr, tmp, steps ); 剖析:这个试题主要考查面试者对标准库函数的熟练程度,在需要的时候引用库函数可以很大程度上简化程序编写的工作量。最频繁被使用的库函数包括:(1) strcpy(2) memcpy(3) memset试题 6:已知 WAV 文件格式如下表,打开一个 WAV 文件,以适当的数据结构组织 WAV 文件头并解析 WAV 格式的各项信息。WAVE 文件格式

15、说明表偏移地址 字节数 数据类型 内 容文件头00H 4 Char RIFF标志04H 4 int32 文件长度08H 4 Char WAVE标志0CH 4 Char fmt标志10H 4 过渡字节(不定)14H 2 int16 格式类别16H 2 int16 通道数18H 2 int16 采样率(每秒样本数) ,表示每个通道的播放速度1CH 4 int32 波形音频数据传送速率20H 2 int16 数据块的调整数(按字节算的)22H 2 每样本的数据位数24H 4 Char 数据标记符data28H 4 int32 语音数据的长度解答:将 WAV 文件格式定义为结构体 WAVEFORMAT: typedef struct tagWaveFormat char cRiffFlag4; UIN32 nFileLen; char cWaveFlag4; char cFmtFlag4; char cTransition4; UIN16 nFormatTag ; UIN16 nChannels; UIN16 nSamplesPerSec; UIN32 nAvgBytesperSec; UIN16 nBlockAlign; UIN16 nBitNumPerSample; char cDataFlag4; UIN16 nAudioLength; WAVEFORMAT;假设 WAV 文件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题 > 高中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号