c语言基础面试题及答案_第1页
c语言基础面试题及答案_第2页
c语言基础面试题及答案_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c语言根底面试题及答案面试前的准备对于程序员求职者来说是非常重要的。下面精心了一些c语言根底面试题及答案的例文,希望可以帮到你!1、局部变量能否和全局变量重名?答:能,局部会屏蔽全局。要用全局变量,需要使用"::"用到同名的局部变量,而不会用到全局变量。对于有些编译器而那个循环体内。2答:extern可以用引用头文件的方式,也可以用extern用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern3.C答:可以,在不同的C文件中以static形式来声明同名全局变量。可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错4、语句for(;1;)有什么问题?它是什么意思?答:和while(1)相同。5、do……while和while……do有什么区别?答:前一个循环一遍再判断,后一个判断以后再循环6、static?static?static全局变量(外部变量)的说明之前再冠以static就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量那么限制了其作用域,即只在定义该变量的源文件变量的作用域局限于一个源文件内,只能为该源文件内的函数公它的存储方式即改变了它的生存期。把全局变量改变为静态变量后static(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件staticstaticstaticstatic1:变量的声明和定义有什么区别为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。参加extern面局部定义。说明:很多时候一个变量,只是声明不分配内存空间,直到详细使用时才初始化,分配内存空间,如外部变量。2:Cstatic和C++的关键字static区别在C中static而C++中除了上述功能外,还用来定义类的成员变量和函数。即静态成员和静态成员函数。注意:编程时static的记忆性,和全局性的特点可以让在不同时期调用的函数进展通信,传递信息,而C++的静态成员那么可以在多个对象实例间进展通信,传递信息。3:C中的malloc和C++中的new有什么区别malloc和new有以下不同:(1)new、delete是操作符,可以重载,只能在C++中使用。(2)malloc、free是函数,可以覆盖,C、C++中都可以使用。(3)new可以调用对象的构造函数,对应的delete调用相应的析构函数。mallocfree和析构函数newdelete、free回的是void注意:malloc申请的内存空间要用free释放,而new申请的内存空间要用delete释放,不要混用。因为两者实现的机理不同。4:写一个“标准”宏MIN#definemin(a,b)((a)<=(b)?(a):(b))注意:在调用时一定要注意这个宏定义的副作用,如下调用:((++*p)<=(x)?(++*p):(x)。pMIN5:一个指针可以是volatile可以,因为指针和普通变量一样,有时也有变化程序的不可控性。常见例:子中断效劳子程序修改一个指向一个buffer的指针时,必须用volatile来修饰这个指针。说明:指针是一种普通的变量,从访问上没有什么不同于其他变量的特性。其保存的数值是个整型数据,和整型变量不同的是,这个整型数据指向的是一段内存地址。1:a&a请写出以下代码的打印结果,主要目的是考察a&a#includevoidmain(void){inta[5]={1,2,3,4,5};int*ptr=(int*)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));return;}输出结果:2,5。aint*ptr=(int*)(&a+1)为int*ptr=(int*)(a+1)2:简述C、C++程序编译的内存分配情况C、C++中内存分配方式可以分为三种:(1)从静态存储区域分配:内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在。速度快、不容易出错,因为有系统会善后。例如全局变量,static变量等。在栈上分配:在执行函数时,函数内局部变量的存储单元都在栈上创立,函数执行完毕时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。从堆上分配:即动态内存分配。程序在运行的时候用malloc或new大小的内存,程序员自己负责在何时用free或delete一个CC+5局区、文字常量区、程序代码区。3:简述strcpy、sprintf与memcpy的区别三者主要有以下不同之处:操作对象不同,strcpy何种数据类型。执行效率不同,memcpystrcpysprintf率最低。实现功能不同,strcpy是内存块间的拷贝。说明:strcpy、sprintf与memcpy是针对的对象不同,根据实际需求,来选择适宜的函数实现拷贝功能。40x67a9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论