欢迎来到天天文库
浏览记录
ID:37928098
大小:176.50 KB
页数:40页
时间:2019-06-03
《C语言面试题(经典全)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.static有什么用途?(请至少说明两种)1)限制变量的作用域2)设置变量的存储域(堆,主动分配内存也是堆) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在栈 6.堆栈溢出一般
2、是由什么原因导致的? 堆栈溢出一般是循环的递归调用导致的,如果使用的大数据结构的局部变量,也可能导致堆栈溢出。 没有回收垃圾资源导致的是内存泄露最后内存耗尽。 20.不能做switch()的参数类型是:switch的参数不能为实型。(只能是intchar) 9.写出floatx与“零值”比较的if语句。if(x<0.000001&&x>-0.000001) 3.在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么?函数名:atol功能:把字符串转换成长整型数函数的原型:longatol(constchar*nptr);程序例:#in
3、clude#includeintmain(void){longl;char*str="98765432"; l=atol(lstr);printf("string=%sinteger=%ld",str,l);return(0);} 1.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?c用宏定义,c++用inline 8.软件测试都有那些种类?黑盒:针对系统功能的测试 白合:测试函数功能,各函数接口 9.确定模块的功能和模块的接口是在软件设计的那个阶段完成的?概要设计阶段 11.unsig
4、nedchar*p1; unsignedlong*p2; p1=(unsignedchar*)0x801000; p2=(unsignedlong*)0x810000; 请问p1+5=? ; p2+5=? ;答:p1+5=0x801005 ; p2+5=0x810014 ; 1.请问下面程序有什么错误? inta[60][250][1000],i,j,k; for(k=0;k<1000;k++) for(j=0;j<250;j++) for(i=0;i<60;i++) a[i][j][k]=0;
5、把循环语句内外换一下(编译的时候没错,运行的时候出错,但这个数组太大,如果放在栈中,还是会溢出,要作为全局变量) 2.#defineMax_CB500 voidLmiQueryCSmd(StructMSgCB*pmsg) { unsignedcharucCmdNum; ...... for(ucCmdNum=0;ucCmdNum6、a)((a)*(a)) inta=5; intb;b=SQUARE(a++);//a被加了2次 a=7,b=25 2、有一个16位的整数,每4位为一个数,写函数求他们的和。解释:整数1101010110110111和 1101+0101+1011+0111/*n就是16位的数,函数返回它的四个部分之和*/charSumOfQuaters(unsignedshortn){ charc=0; inti=4; do { c+=n&15; n=n>>4; }while(--i); returnc;} 3、两个字符串,s,7、t;把t字符串接到s字符串尾,s字符串有足够的空间存放t字符串voidconnect(char*s,char*t,inti){char*q=t;char*p=s;if(q==NULL)return;while(*p!=' '){p++;}while(*q!=0){*p=*q;p++;q++;}*p=' ';}voidmain(){charp[7]="ABC";charp2[]="EFG";connect(p,p2,3);printf("%s",p);} 4、分析下面的代码:char*a="hello";char*b="hello";if(a==b
6、a)((a)*(a)) inta=5; intb;b=SQUARE(a++);//a被加了2次 a=7,b=25 2、有一个16位的整数,每4位为一个数,写函数求他们的和。解释:整数1101010110110111和 1101+0101+1011+0111/*n就是16位的数,函数返回它的四个部分之和*/charSumOfQuaters(unsignedshortn){ charc=0; inti=4; do { c+=n&15; n=n>>4; }while(--i); returnc;} 3、两个字符串,s,
7、t;把t字符串接到s字符串尾,s字符串有足够的空间存放t字符串voidconnect(char*s,char*t,inti){char*q=t;char*p=s;if(q==NULL)return;while(*p!=' '){p++;}while(*q!=0){*p=*q;p++;q++;}*p=' ';}voidmain(){charp[7]="ABC";charp2[]="EFG";connect(p,p2,3);printf("%s",p);} 4、分析下面的代码:char*a="hello";char*b="hello";if(a==b
此文档下载收益归作者所有