C程序员语言面试100题教学内容

上传人:go****e 文档编号:137374861 上传时间:2020-07-07 格式:PPT 页数:110 大小:1.57MB
返回 下载 相关 举报
C程序员语言面试100题教学内容_第1页
第1页 / 共110页
C程序员语言面试100题教学内容_第2页
第2页 / 共110页
C程序员语言面试100题教学内容_第3页
第3页 / 共110页
C程序员语言面试100题教学内容_第4页
第4页 / 共110页
C程序员语言面试100题教学内容_第5页
第5页 / 共110页
点击查看更多>>
资源描述

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

1、,100条经典C语言笔试题目,100条经典C语言笔试题目,题目来源: 1、中兴、华为、慧通、英华达、微软亚洲技术中心等中外企业面试题目; 2、C语言面试宝典(林锐高质量编程第三版)。 说明: 1、部分C语言面试题中可能会参杂部分和C+相关的知识,为了保持题目的灵活性故保留,但选题最终还是会以C语言题目为主体; 2、以上公司的面试题目已成为国内中小型企业公司出题模板; 3、由于本人的能力有限加上时间仓促,本课件肯定存在不足之处,恳请各位同学批评指正。,100条经典C语言笔试题目,题目类型 基本数据类型的考察(1-4) 数组、指针、内存、结构体常考点(5-28) 宏、头文件、关键字的考察(29-5

2、4) 程序阅读、改错(55-75) 编程练习(76-100),100条经典C语言笔试题目,1、请填写 bool , 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)请写出 float x 与“零值”比较的

3、 if 语句: 【标准答案】 const float EPSINON = 0.00001; if (x = - EPSINON) char *p = str ; int n = 10; 请计算 (1)sizeof (str ) = (2)sizeof ( p ) = (3)sizeof ( n ) = 【标准答案】(1)6、(2)4、(3)4,100条经典C语言笔试题目,(4)void Func ( char str100) ; 请计算 sizeof( str ) = (5)void *p = malloc( 100 ); 请计算sizeof ( p ) = 【标准答案】(4)4、(5)4,1

4、00条经典C语言笔试题目,3、 long a=0 x801010;a+5=? 【标准答案】0 x801010用二进制表示为:“1000 0000 0001 0000 0001 0000”,十进制的值为8392720,再加上5就是8392725。,100条经典C语言笔试题目,4、用变量a给出下面的定义 e) 一个有10个指针的数组,该指针是指向一个整型数的; f) 一个指向有10个整型数数组的指针 ; g) 一个指向函数的指针,该函数有一个整型参数并返 回一个整型数; h) 一个有10个指针的数组,该指针指向一个函数,该 函数有一个整型参数并返回一个整型数; 【标准答案】e)int * a10;

5、 f)int (*a)10 g)int (*a)(int); h) int (*a10)(int),100条经典C语言笔试题目,5、设有以下说明和定义:typedef union long i; int k5; char c; DATE;struct data int cat; DATE cow; double dog; too;DATE max;则语句 printf(%d,sizeof(struct date)+sizeof(max);的执行结果是:_ 【标准答案】DATE是一个union, 变量公用空间. 里面最大的变量类型是int5, 占用20个字节. 所以它的大小是20data是一个s

6、truct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是 20 + 32 = 52.当然.在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 20,100条经典C语言笔试题目,6、请问以下代码有什么问题:int main()char a;char *str= 【标准答案】没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃。,100条经典C语言笔试题目,7、请问以下代码有什么问题: cha

7、r* s=AAA;printf(%s,s);s0=B;printf(%s,s);有什么错? 【标准答案】AAA是字符串常量。s是指针,指向这个字符串常量,所以声明s的时候就有问题。cosnt char* s=AAA;然后又因为是常量,所以对是s0的赋值操作是不合法的。,100条经典C语言笔试题目,8、 int (*s10)(int) 表示的是什么啊 【标准答案】int (*s10)(int) 函数指针数组,每个指针指向一个int func(int param)的函数。,100条经典C语言笔试题目,9、 c和c+中的struct有什么不同? 【标准答案】c和c+中struct的主要区别是c中的s

8、truct不可以含有成员函数,而c+中的struct可以。c+中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private,100条经典C语言笔试题目,10、void getmemory(char *p)p=(char *) malloc(100);strcpy(p,“hello world”);int main( )char *str=NULL;getmemory(str);printf(“%s/n”,str);free(str);return 0;会出现什么问题? 【标准答案】程序崩溃,getmemory中的malloc 不能

9、返回动态内存, free()对str操作很危险。,100条经典C语言笔试题目,11、 char szstr10;strcpy(szstr,0123456789);产生什么结果?为什么? 【标准答案】长度不一样,出现段错误。,100条经典C语言笔试题目,12、数组和链表的区别? 【标准答案】数组:数据顺序存储,固定大小;链表:数据可以随机存储,大小可动态改变,100条经典C语言笔试题目,13、 void main()char aa10;printf(“%d”,strlen(aa); 会出现什么问题?打印结果是多少? 【标准答案】sizeof()和初不初始化,没有关系,strlen()和初始化有关

10、,打印结果值未知。,100条经典C语言笔试题目,14、给定结构struct Achar t:4;char k:4;unsigned short i:8;unsigned long m;问sizeof(A) = ? 【标准答案】8,100条经典C语言笔试题目,15、 struct name1char str;short x;int num;;求sizeof(name1)? 【标准答案】8,100条经典C语言笔试题目,16、 struct name2char str;int num;short x;求sizeof(name2)? 【标准答案】12,100条经典C语言笔试题目,17、程序哪里有错误

11、wap( int* p1,int* p2 ) int *p; *p = *p1; *p1 = *p2; *p2 = *p; 【标准答案】p为野指针,100条经典C语言笔试题目,18、 c和c+中的struct有什么不同? 【标准答案】c和c+中struct的主要区别是c中的struct不可以含有成员函数,而c+中的struct可以。c+中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private。,100条经典C语言笔试题目,19、 (void *)ptr 和 (*(void*)ptr的结果是否相同?其中ptr为同一个指针。 【标

12、准答案】(void *)ptr 和 (*(void*)ptr值是相同的,100条经典C语言笔试题目,20、要对绝对地址0 x100000赋值,我们可以用*(unsigned int*)0 x100000 = 1234;那么要是想让程序跳转到绝对地址是0 x100000去执行,应该怎么做? 【标准答案】*(void (*)( )0 x100000 ) ( );首先要将0 x100000强制转换成函数指针,即:(void (*)()0 x100000然后再调用它:(void (*)()0 x100000)();,100条经典C语言笔试题目,21、 int a,b,c 请写函数实现c=a+b ,不可

13、以改变数据类型,如将c改为long int,关键是如何处理溢出问题 【标准答案】 bool add (int a, int b,int *c)*c=a+b;return (a0 ,100条经典C语言笔试题目,22、关于内存的思考题(1)你能看出有什么问题?,100条经典C语言笔试题目,23、关于内存的思考题(2)你能看出有什么问题?,100条经典C语言笔试题目,25、关于内存的思考题(3)你能看出有什么问题?,100条经典C语言笔试题目,26、关于内存的思考题(4)你能看出有什么问题?,100条经典C语言笔试题目,27、 关键字volatile有什么含意? 并给出三个不同的例子。 【参考答案】

14、一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:1). 并行设备的硬件寄存器(如:状态寄存器)2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)3). 多线程应用中被几个任务共享的变量,100条经典C语言笔试题目,28、嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0 x67a9的整型变量的值为0 xaa

15、66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。 【参考答案】这一问题测试你是否知道为了访问一绝对地址把一个整型数强制转换(typecast)为一指针是合法的。这一问题的实现方式随着个人风格不同而不同。典型的类似代码如下:int *ptr;ptr = (int *)0 x67a9;*ptr = 0 xaa55;,100条经典C语言笔试题目,29、头文件中的 ifndef/define/endif 干什么用? 【标准答案】防止该头文件被重复引用。,100条经典C语言笔试题目,30、#include 和 #include “filename.h” 有什么区别? 【标准答案】对于#include ,编译器从标准库路径开始搜索 filename.h ; 对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h 。,100条经典C语言笔试题目,31、const 有什么用途?(请至少说明两种) 【标准答案】: (1)可以定义 const 常量 (2)const 可以修饰函数的参数、返回值,甚

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 其它小学文档

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