c程序员语言面试100题资料

上传人:w****i 文档编号:95417130 上传时间:2019-08-18 格式:PPT 页数:110 大小:1.66MB
返回 下载 相关 举报
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) & (x =”或“=”此类形式。,100条经典C语言笔试题目,(3)请写出 char *p 与“零值”比较的 if 语句 【标准答案】 if (p = NULL) if (p != NULL),100条经典C语言笔试题目,2、以下为 Linux下的 32 位 C程序,请计算 sizeof 的值。 char str = “Hello” ; char *p = str ; int n = 10; 请计算 (1)sizeof (str ) = (2)sizeof ( p

4、) = (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,100条经典C语言笔试题目,3、 long a=0x801010; a+5=? 【标准答案】0x801010用二进制表示为:“1000 0000 0001 0000 0001 0000”,十进制的值为8392720,再加上5就是8392725。,100条经典C语

5、言笔试题目,4、用变量a给出下面的定义 e) 一个有10个指针的数组,该指针是指向一个整型数的; f) 一个指向有10个整型数数组的指针 ; g) 一个指向函数的指针,该函数有一个整型参数并返 回一个整型数; h) 一个有10个指针的数组,该指针指向一个函数,该 函数有一个整型参数并返回一个整型数; 【标准答案】e)int * a10; 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 dat

6、a int cat; DATE cow; double dog; too; DATE max; 则语句 printf(“%d“,sizeof(struct date)+sizeof(max);的执行结果是:_ 【标准答案】DATE是一个union, 变量公用空间. 里面最大的变量类型是int5, 占用20个字节. 所以它的大小是20 data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32. 所以结果是 20 + 32 = 52. 当然.在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + doubl

7、e8 = 20,100条经典C语言笔试题目,6、请问以下代码有什么问题: int main() char a; char *str= 【标准答案】没有为str分配内存空间,将会发生异常 问题出在将一个字符串复制进一个字符变量指针所指地址。虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃。,100条经典C语言笔试题目,7、请问以下代码有什么问题: char* s=“AAA“; printf(“%s“,s); s0=B; printf(“%s“,s); 有什么错? 【标准答案】“AAA“是字符串常量。s是指针,指向这个字符串常量,所以声明s的时候就有问题。 cosnt char* s=“

8、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中的struct不可以含有成员函数,而c+中的struct可以。c+中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private,100条经典C语

9、言笔试题目,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 不能返回动态内存, free()对str操作很危险。,100条经典C语言笔试题目,11、 char szstr10; strcpy(szstr,“0123456789“); 产生什么结果?为

10、什么? 【标准答案】长度不一样,出现段错误。,100条经典C语言笔试题目,12、数组和链表的区别? 【标准答案】数组:数据顺序存储,固定大小; 链表:数据可以随机存储,大小可动态改变,100条经典C语言笔试题目,13、 void main() char aa10; printf(“%d”,strlen(aa); 会出现什么问题?打印结果是多少? 【标准答案】sizeof()和初不初始化,没有关系,strlen()和初始化有关,打印结果值未知。,100条经典C语言笔试题目,14、给定结构struct A char t:4; char k:4; unsigned short i:8; unsign

11、ed long m; ;问sizeof(A) = ? 【标准答案】8,100条经典C语言笔试题目,15、 struct name1 char str; short x; int num; ;求sizeof(name1)? 【标准答案】8,100条经典C语言笔试题目,16、 struct name2 char str; int num; short x; ;求sizeof(name2)? 【标准答案】12,100条经典C语言笔试题目,17、程序哪里有错误 wap( int* p1,int* p2 ) int *p; *p = *p1; *p1 = *p2; *p2 = *p; 【标准答案】p为野

12、指针,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为同一个指针。 【标准答案】(void *)ptr 和 (*(void*)ptr值是相同的,100条经典C语言笔试题目,20、要对绝对地址0x100000赋值,我

13、们可以用 *(unsigned int*)0x100000 = 1234; 那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做? 【标准答案】*(void (*)( )0x100000 ) ( ); 首先要将0x100000强制转换成函数指针,即: (void (*)()0x100000 然后再调用它: (void (*)()0x100000)();,100条经典C语言笔试题目,21、 int a,b,c 请写函数实现c=a+b ,不可以改变数据类型,如将c改为long int,关键是如何处理溢出问题 【标准答案】 bool add (int a, int b,int *c)

14、*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有什么含意? 并给出三个不同的例子。 【参考答案】一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) 3

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

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

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