C语言面试题(经典全)_第1页
C语言面试题(经典全)_第2页
C语言面试题(经典全)_第3页
C语言面试题(经典全)_第4页
C语言面试题(经典全)_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1.static的用途是什么?(请至少说明两个)1)限制变量的范围。2)设置变量的存储域(堆,活动分配内存也是堆)。1)在函数主体中声明为静态变量的变量在调用函数时保留其值。2)在模块内(但在函数外)静态声明的变量可以由模块内使用的函数访问,但不能由模块外的其他函数访问。局部全局变量。3)在模块内静态声明的函数只能由该模块内的其他函数调用。也就是说,此函数仅限于声明它的模块的本地范围。4.全局变量和局部变量在内存中是否有区别?如果有的话,差别是什么?全局变量存储在静态数据库中,本地变量存储在堆栈6中。堆栈溢出的原因通常是什么?堆栈溢出通常是由循环的递归调用引起的,如果使用大型数据结构的局部变量,也可能导致堆栈溢出。如果没有回收垃圾资源,内存泄漏将导致最后内存耗尽。20.不能是switch()的参数类型是switch中的参数不能是实际参数。(仅限int char)9。编写比较float x和 0 的if语句。If(x-0.000001) 3。在c语言库函数中,将一个字符转换为整数的函数是atol()吗?函数名称: atol功能:字串转换整数函数原型:长atol(const char * nptr);程序示例: # include # include int main(void) long l;Char * str= 98765432l=atol(lstr);Printf (string=% s integer=% LD n ,str,l);return(0); 1 .对于常用的短函数,c语言中应用了什么实现,c中应用了什么实际?c表示宏,c表示inline 8 .定义为软件测试吗?黑盒:系统功能的测试白色:函数功能测试,每个函数界面9。验证模块的功能和模块的接口是否在软件设计的那个阶段完成。摘要设计阶段11.unsignedchar * p1Unsigned long * p2P1=(unsigned char *)0 x 801000;p2=(unsigned long *)0 x 810000;P1 5=?P2 5=?A:P1 5=0 x 801005;P2 5=0 x8100141.以下程序有什么错误?Int a602501000,I,j,k;for(k=0);K1000k)for(j=0;J250j)for(I=0;I60I)aIjk=0;循环语句的内部和外部交换(编译时间是对的,运行时间是错的,但这个数组太大,放在堆栈中或溢出时会作为全局变量导入)2。# define max _ CB 500 void lmiquerysmd(struct msg CB * pmsg) unsigned char UCC mdnum;for(UCC mdnum=0;UcCmdNum 4; while(-I);return c; 3,两个字符串,s,t;如果将t字符串连接到s字符串的末尾,则s字符串将包含t字符字符串voidconnect (char * s,char * t,int I) char * q=t;char * p=s;if(q=NULL)return;While(*p!= 0) p; while(*q!=0) * p=* q;p;q; * p= 0; void main() charp7= ABC ;charp 2= EFG ;Connect(p,p2,3);printf(“% s”,p); 4,分析以下代码:char * a= helloChar * b= helloif(a=b)printf( YES );else printf( NO );常数字符串。位于静态存储中,在程序生命周期中保持不变。编译器优化后,a和b可以同时指向同一个hello。地址相同。如果编译器没有优化,则两个不同的地址不同。对于VC是相同的。5、局部变量可以与全局变量重复吗?答:是的,部分切断了全部。全局变量需要“33363603360”。局部变量可以与在函数中引用而不是整个局部变量时使用相同名称的局部变量的完整局部变量同名。对于某些编译器,可以在同一函数中定义多个同名的本地变量。例如,两个循环都定义了同名的局部变量,其局部变量的范围在该循环内。2、如何引用已经定义的全局变量?A. CPP中定义的全局变量int a等extern将extn a添加到头文件中。然后,在需要参考的文件中包含头文件。或externa将直接添加到文档中。3.多个。可以在c文件中包含的头文件中定义全局变量吗?怎么了?答:在头文件中,可以使用static定义同名的全局变量。其他。在c文件中定义的非静态全局变量可以在其头文件中声明为extern。引用此全局变量的其他。c只需包含此头文件。4,以下代码的输出# include int main (void) inta,b,c,d;A=10b=a;c=a;d=10 * a;Printf(b,c,d: %d,%d,%d ,b,c,d);return 0; a: 10,12,120 5,static全局变量和常规全局变量之间有何区别?Static局部变量和常规局部变量有何区别?Static函数和一般函数有何不同?(: 1)全局变量(外部变量)的说明前面加static,以构成静态全局变量。全局变量本身是静态存储方式,静态全局变量也是静态存储方式。两者在存储方式上没有区别。两者的区别在于,如果非静态全局变量的范围是整个源程序,并且一个源程序由多个源文件组成,则非静态全局变量在每个源文件中有效。静态全局变量的范围受到限制。也就是说,变量仅在定义它的源文件中有效,不能在同一源程序的源文件中使用。静态全局变量的范围仅限于一个源文件,并且仅对该源文件中的函数通用,因此,您可以避免在其他源文件中出错。(2)如上分析所示,将局部变量更改为静态变量后,更改存储方法会改变相应的寿命。将全局变量更改为静态变量后,请更改其范围以限制其使用范围。3) static函数仅在此文件中不同于常规函数范围。仅在当前源文件中使用的函数数是内部函数(static),内部函数必须在当前源文件中说明和定义。对于可在当前源文件以外的文件中使用的函数,如果头文件说明要使用该函数的源文件包含头文件,则:静态全局变量和常规全局变量之间的区别会有所不同。static全局变量仅首次创建一次,不会在其他文件单位中引用。Static局部变量和常规局部变量有何区别?static本地变量只初始化一次,下次基于以前的结果值。Static函数与常规函数的区别如下:static函数在内存中只有一个,常规函数每次调用时保留副本6,type def union long I;int k5;/20 char c; DATEStruct data int cat/4 DATE cow;/20 double dog;/8 too;DATE max执行语句printf(“% d”,sizeof (structdata) sizeof (max)。测试点:区分struct和union。(通常在32位系统上假定)a: DATE为union,变量公共空间。最大的变量类型为int5,占用20个字节。因此,大小为20 .data是struct,每个变量占用单独的空间。int4 DATE20 double8=32。结果20 32=52。产生10。在以下代码中查找所有错误(标题好,值得查看):以下代码将字符串反向转换为“ABCD”,从而使“dcba”# include“string . h”main() char * src= hello,world ;Char * dest=NULLint len=strlen(src);dest=(char *)malloc(len);Char * d=destchar * s=srclen;While(len -!=0)* d=* s-;printf(“% s”,dest);return 0; a:方法1:总共4个错误;Intmain () char * src= hello,world ;int len=strlen(src);char * dest=(char *)malloc(len 1);/char* d=分配dest空间:Char* s=/最后一个字符while(len -!=0)* d=* s-;* d=0;/向尾部添加“ 0”printf(“% sn”,

温馨提示

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

评论

0/150

提交评论