C程序员语言面试100题.ppt

上传人:龙*** 文档编号:35483155 上传时间:2018-03-16 格式:PDF 页数:109 大小:1,000.19KB
返回 下载 相关 举报
C程序员语言面试100题.ppt_第1页
第1页 / 共109页
C程序员语言面试100题.ppt_第2页
第2页 / 共109页
C程序员语言面试100题.ppt_第3页
第3页 / 共109页
C程序员语言面试100题.ppt_第4页
第4页 / 共109页
C程序员语言面试100题.ppt_第5页
第5页 / 共109页
点击查看更多>>
资源描述

《C程序员语言面试100题.ppt》由会员分享,可在线阅读,更多相关《C程序员语言面试100题.ppt(109页珍藏版)》请在金锄头文库上搜索。

1、 100条经典条经典C语言笔试题目语言笔试题目 100条经典C语言笔试题目 题目来源:题目来源: 1、中兴、华为、慧通、英华达、微软亚洲技术中心等中外企业面试、中兴、华为、慧通、英华达、微软亚洲技术中心等中外企业面试 题目;题目; 2、C语言面试宝典语言面试宝典(林锐林锐高质量编程第三版高质量编程第三版)。 说明:说明: 1、部分、部分C语言面试题中可能会参杂部分和语言面试题中可能会参杂部分和C+相关的知识,为了保相关的知识,为了保 持题目的灵活性故保留,但选题最终还是会以持题目的灵活性故保留,但选题最终还是会以C语言题目为主体;语言题目为主体; 2、以上公司的面试题目已成为国内中小型企业公司

2、出题模板;、以上公司的面试题目已成为国内中小型企业公司出题模板; 3、由于本人的能力有限加上时间仓促,本课件肯定存在不足之处,、由于本人的能力有限加上时间仓促,本课件肯定存在不足之处, 恳请各位同学批评指正。恳请各位同学批评指正。 100条经典C语言笔试题目 题目类型题目类型 基本数据类型的考察基本数据类型的考察(1-4) 数组、指针、内存、结构体常考点数组、指针、内存、结构体常考点(5-28) 宏、头文件、关键字的考察宏、头文件、关键字的考察(29-54) 程序阅读、改错程序阅读、改错(55-75) 编程练习编程练习(76-100) 100条经典C语言笔试题目 1、请填写、请填写 bool

3、, float, 指针变量指针变量 与“零值”比较的与“零值”比较的 if 语句。语句。 提示:这里“零值”可以是提示:这里“零值”可以是 0, 0.0 , FALSE 或者“空指针”或者“空指针” 。例。例 如如 int 变量变量 n 与“零值”比较的与“零值”比较的 if 语句为:语句为: if ( n = 0 ) if ( n != 0 ) 以此类推。以此类推。 100条经典C语言笔试题目 (1)请写出)请写出 bool flag 与“零值”比较的与“零值”比较的 if 语语 句:句: 【标准答案标准答案】if ( flag ) if ( !flag ) 100条经典C语言笔试题目 (2

4、)请写出)请写出 float x 与“零值”比较的与“零值”比较的 if 语句:语句: 【标准答案标准答案】 const float EPSINON = 0.00001; if (x = - EPSINON) 100条经典C语言笔试题目 22、关于内存的思考题(、关于内存的思考题(1)你能看出有什么问题?)你能看出有什么问题? 100条经典C语言笔试题目 23、关于内存的思考题(、关于内存的思考题(2)你能看出有什么问题?)你能看出有什么问题? 100条经典C语言笔试题目 25、关于内存的思考题(、关于内存的思考题(3)你能看出有什么问题?)你能看出有什么问题? 100条经典C语言笔试题目 2

5、6、关于内存的思考题(、关于内存的思考题(4)你能看出有什么问题?)你能看出有什么问题? 100条经典C语言笔试题目 27、 关键字关键字volatile有什么含意有什么含意? 并给出三个不同的例子。并给出三个不同的例子。 【参考答案参考答案】一个定义为一个定义为volatile的变量是说这变量可能会被意想的变量是说这变量可能会被意想 不到地改变,这样,编译器就不会去假设这个变量的值了。精确不到地改变,这样,编译器就不会去假设这个变量的值了。精确 地说就是,优化器在用到这个变量时必须每次都小心地重新读取地说就是,优化器在用到这个变量时必须每次都小心地重新读取 这个变量的值,而不是使用保存在寄存

6、器里的备份。下面是这个变量的值,而不是使用保存在寄存器里的备份。下面是 volatile变量的几个例子:变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器)并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量一个中断服务子程序中会访问到的非自动变量(Non- automatic variables) 3). 多线程应用中被几个任务共享的变量多线程应用中被几个任务共享的变量 100条经典C语言笔试题目 28、嵌入式系统经常具有要求程序员去访问某特定的内存位臵的、嵌入式系统经常具有要求程序员去访问某特定的内存位臵的 特点。在某工程中,要求设臵一绝对地

7、址为特点。在某工程中,要求设臵一绝对地址为0x67a9的整型变量的的整型变量的 值为值为0xaa66。编译器是一个纯粹的。编译器是一个纯粹的ANSI编译器。写代码去完成编译器。写代码去完成 这一任务。这一任务。 【参考答案参考答案】这一问题测试你是否知道为了访问一绝对地址把一个这一问题测试你是否知道为了访问一绝对地址把一个 整型数强制转换(整型数强制转换(typecast)为一指针是合法的。这一问题的实)为一指针是合法的。这一问题的实 现方式随着个人风格不同而不同。典型的类似代码如下:现方式随着个人风格不同而不同。典型的类似代码如下: int *ptr; ptr = (int *)0x67a9

8、; *ptr = 0xaa55; 100条经典C语言笔试题目 29、头文件中的、头文件中的 ifndef/define/endif 干什么用?干什么用? 【标准答案标准答案】防止该头文件被重复引用。防止该头文件被重复引用。 100条经典C语言笔试题目 30、#include 和和 #include filename.h 有有 什么区别?什么区别? 【标准答案标准答案】对于对于#include ,编译器从标准库路径,编译器从标准库路径 开始搜索开始搜索 filename.h ; 对于对于#include filename.h ,编译器从用户的工作路径开始搜索,编译器从用户的工作路径开始搜索 fi

9、lename.h 。 100条经典C语言笔试题目 31、const 有什么用途?(请至少说明两种)有什么用途?(请至少说明两种) 【标准答案标准答案】: (1)可以定义)可以定义 const 常量常量 (2)const 可以修饰函数的参数、返回值,甚至函数的定义体。被可以修饰函数的参数、返回值,甚至函数的定义体。被 const 修修 饰的东西都受到强制保护,可以预防意外的变动,能提高程序的饰的东西都受到强制保护,可以预防意外的变动,能提高程序的 健壮性。健壮性。 100条经典C语言笔试题目 32、 static有什么用途?(请至少说明两种)有什么用途?(请至少说明两种) 【标准答案标准答案】

10、1.限制变量限制变量 的作用域(的作用域(static全局变量);全局变量); 2.设臵变量的存储域(设臵变量的存储域(static局部变量)。局部变量)。 100条经典C语言笔试题目 33、堆栈溢出一般是由什么原因导致的?、堆栈溢出一般是由什么原因导致的? 【标准答案标准答案】没有回收垃圾资源。没有回收垃圾资源。 100条经典C语言笔试题目 34、如何引用一个已经定义过的全局变量?、如何引用一个已经定义过的全局变量? 【标准答案标准答案】可以用引用头文件的方式,也可以用可以用引用头文件的方式,也可以用extern关键字,关键字, 如果用引用头文件方式来引用某个在头文件中声明的全局变量,如果用

11、引用头文件方式来引用某个在头文件中声明的全局变量, 假定你将那个变量写错了,那么在编译期间会报错,如果你用假定你将那个变量写错了,那么在编译期间会报错,如果你用 extern方式引用时,假定你犯了同样的错误,那么在编译期间不方式引用时,假定你犯了同样的错误,那么在编译期间不 会报错,而在连接期间报错。会报错,而在连接期间报错。 100条经典C语言笔试题目 35、全局变量可不可以定义在可被多个、全局变量可不可以定义在可被多个.C文件包含的头文件中?文件包含的头文件中? 为什么?为什么? 【标准答案标准答案】可以,在不同的可以,在不同的C文件中以文件中以static形式来声明同名全形式来声明同名全

12、 局变量。可以在不同的局变量。可以在不同的C文件中声明同名的全局变量,前提是其文件中声明同名的全局变量,前提是其 中只能有一个中只能有一个C文件中对此变量赋初值,此时连接不会出错。文件中对此变量赋初值,此时连接不会出错。 100条经典C语言笔试题目 36、队列和栈有什么区别?、队列和栈有什么区别? 【标准答案标准答案】队列先进先出,栈后进先出。队列先进先出,栈后进先出。 100条经典C语言笔试题目 37、 Heap与与stack的差别。的差别。 【标准答案标准答案】Heap是堆,是堆,stack是栈。是栈。 Stack的空间由操作系统自动分配的空间由操作系统自动分配/释放,释放,Heap上的空

13、间手动分配上的空间手动分配 /释放。释放。 Stack空间有限,空间有限,Heap是很大的自由存储区是很大的自由存储区 C中的中的malloc函数分配的内存空间即在堆上函数分配的内存空间即在堆上,C+中对应的是中对应的是new 操作符。操作符。 程序在编译期对变量和函数分配内存都在栈上进行程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过且程序运行过 程中函数调用时参数的传递也在栈上进行。程中函数调用时参数的传递也在栈上进行。 100条经典C语言笔试题目 38、用宏定义写出、用宏定义写出swap(x,y),即交换两数。),即交换两数。 【标准答案标准答案】 #define swap(x

14、, y) (x)=(x)+(y);(y)=(x)(y);(x)=(x)(y); 100条经典C语言笔试题目 39、写一个、写一个标准标准宏,这个宏输入两个参数并返回较小的一个。宏,这个宏输入两个参数并返回较小的一个。 【标准答案标准答案】#define Min(X, Y) (X)(Y)?(Y):(X)/结尾没有结尾没有; 100条经典C语言笔试题目 40、带参宏与带参函数的区别、带参宏与带参函数的区别(至少说出至少说出5点点)? 【标准答案标准答案】 带参宏 带参函数 处理时间处理时间 编译时编译时 运行时运行时 参数类型参数类型 无无 需定义需定义 程序长度程序长度 变长变长 不变不变 占用

15、存储空间占用存储空间 否否 是是 运行时间运行时间 不占运行时间不占运行时间 调用和返回时占调用和返回时占 100条经典C语言笔试题目 41、关键字、关键字volatile有什么含意?有什么含意? 【标准答案标准答案】提示编译器对象的值可能在编译器未监测到的情况下提示编译器对象的值可能在编译器未监测到的情况下 改变。改变。 100条经典C语言笔试题目 42、 int main() int x=3; printf(“%d“,x); return 1; 问函数既然不会被其它函数调用,为什么要返回问函数既然不会被其它函数调用,为什么要返回1? 【标准答案标准答案】mian中,中,c标准认为标准认为0表示成功,非表示成功,非0表示错误。具体表示错误。具体 的值是某种具体出错信息。的值是某种具体出错信息。 100条经典C语言笔试题目 43、已知一个数组、已知一个数组table,用一个宏定义,求

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

最新文档


当前位置:首页 > 高等教育 > 大学课件

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