欢迎来到天天文库
浏览记录
ID:25963361
大小:107.68 KB
页数:38页
时间:2018-11-23
《[其它考试]c语言面试题汇总》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、7. printf(“%d%d”,++n,power(2,n));其中power(2,n)为实现一定功能的函数如2^n。 请问这种表示方法有什么潜在的问题? 答案:编译器的不同,对++n和power(2,n)处理的先后顺序不一样,形成二义性,造成程序的移植性差,因此最好把++n写在printf函数外面,以消除二义性。printf(s);请问这样的语句有没有问题?(s为一指向有效字符串的指针) 答案:没有%的话,可以这样表达,如果有%在s中的话,有意想不到的输出结果。9. 两段代码共存于一个文件,编译时有选择的编译其
2、中的一部分,请问如何实现?答案:有两种简单的办法可以实现:在源码中使用条件编译语句,然后在程序文件中定义宏的形式来选择需要的编译代码。在源码中使用条件编译语句,然后在编译命令的命令中加入宏定义命令来实现选择编译。10.数据结构指针传给函数,函数能访问数据单元,但不能修改实际的内容,如何实现?答案:定义为指向常量的指针,这样指针所指的数据结构中的内容就不会被改变。如: const类型*p或类型const*p 11. 在头文件中定义静态变量,可能产生什么问题?答案:在使用了该头文件的每个c程序文件中都单独存在一个
3、该静态变量,这样造成空间的浪费并且很容易引起错误。因此建议不要在头文件中定义任何变量。12.malloc()与calloc()的区别?答案: 1)参数上的区别malloc(size_tsize);calloc(size_tn,size_tsize);malloc分配一块size大小的内存块,而calloc分配一个n*size大小的内存块 2)返回内存块的状态不同malloc分配的内存块没有被清零,而calloc分配的内存块是清了零的。但是建议在使用内存时,如果需要初始化,则最好自己按照需要来进行初试化,不要依赖函数的实现说明
4、。13.寄存器变量可不可以访问其地址?可否是全局变量?在什么场合使用寄存器变量? 答案:这些问题都与编译器的实现有关,建议不要声明全局变量为寄存器变量,即使是局部变量都最好不要声明其为寄存器变量,现在的编译器在优化时都会较为合理的安排寄存器变量的使用,而人为的安排有时会造成优化的低效。14.""'' 的区别?答案:前者是一个字符串并且以’/0’结束,而后者只是一个简单的字符。15.包含预定义头文件<> 和""的区别?答案:<>只在指定的目录里寻找被包含文件;""先在当前目录下查找,再在指定目录下查找;通常<>方式用
5、于系统的头文件,而一般用户的头文件用""的方式。16.strunt S_A{ inta[10]; }; voidf() { inti; struntS_A*s_ptr; for(i=0,i<10,i++) s_ptr->a[i]=i; } 请问这段代码正确否?答案:这段代码不正确,没有对s_ptr指针进行初始化,在编程中要注意此类低级错误的发生。C语言面试题大汇总作者: 来源:zz
6、 发表时间:2006-06-23 浏览次数:75736 字号:大 中 小4.static有什么用途?(请至少说明两种)1.限制变量的作用域2.设置变量的存储域7.引用与指针有什么区别?1)引用必须被初始化,指针不必。2)引用初始化以后不能被改变,指针可以改变所指的对象。2)不存在指向空值的引用,但是存在指向空值的指针。8.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性9.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在堆栈10.什么是平衡二叉树
7、?左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于111.堆栈溢出一般是由什么原因导致的?没有回收垃圾资源12.什么函数不能声明为虚函数?constructor13.冒泡排序算法的时间复杂度是什么?O(n^2)14.写出floatx与“零值”比较的if语句。if(x>0.000001&&x<-0.000001)16.Internet采用哪种网络协议?该协议的主要层次结构?tcp/ip应用层/传输层/网络层/数据链路层/物理层17.Internet物理地址和IP地址转换采用什么协议?ARP(AddressResolut
8、ionProtocol)(地址解析協議)18.IP地址的编码分为哪俩部分?IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。2.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。循环链表,用取余
此文档下载收益归作者所有