资源描述:
《CC工程师面试题-答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、考题(C/C++软件工程师)姓名:学校:专业:学历:毕业时间:手机电话:邮件地址:一、选择题。1、以下选项中不属于C语言的基本数据类型是(B)A)charB)booleanC)doubleD)float2、在C语言中,以下选项中不属于转义字符的是(D)A)aB)bC)?D)
2、3、在C语言中,以下赋值不正确的是(B)A)chari=OxAF;B)charsquote=〃s〃;C)charpattern[]={'c','a','t','t',' ',' '};D)enummonths{JAN=1,FEB,MAR,APR,MAY,JUN,DEC};4、如果N=5那么语句:x=n++
3、;x=++n;x分别被赋值为:(C)A)5,5B)6,505,6D)6,65、在第四题中N的值变为:(D)A)5,5B)6,5C)5,6D)6,66、以下程序的输出结果是(B)main(){intn二20;n二n&0177;printf(d",n);}A)91B)92093D)947、以下程序的输出结果是(A)voidFunc(charstr[100]);intmain(){charstr[]="hello";char*p=str;intn=10;Func(str);void*p=ma11oc(100);printf(z,%d”,sizeof(p));printf(,z%d”,sizeo
4、f(n));voidFunc(charstr[100])printf("%d〃,sizeof(str));}A)444B)544051004D)61004&以下定义有严重缺陷的是(B)A)#defineforeverfor(;;)B)#definesquare(x)x*xC)#definedprintf(expr)printf(#expr"二%g",expr)D)#definemax(A,B)((A)>(B)?(A):(B))9、赋值语句:charamsg[]="nowisthetime";(C)char*pmsg="nowisthetime";下面的操作错误的是:A)asmg[8]
5、=*pmsg+8;B)asmg[8]=*(pmsg+8);C)*pmsg二asmg[8];D)pmsg=asmg;10、字符串数组charaname[][]={"Illegalmonth","Jan","Feb","Mar"};aname需要的存储空间为(A)个字节A)56B)52C)60D)2211、若已定义:charamsg[100],char*p=amsg;并在以后的语句中未改变p的值,不能表示amsg[100]地址的表达式是(C)A)&(*(p+100))B)p+100C)&(*p+100)D)&asmg[100]12、以下程序的输出结果是(B)A)[hello]B)[hello
6、]B)[hello]D)[]mainO{charamsg二"hello";printf(“[%T0s]”,amsg);}二、简答题1、简述一下^include"f订ename"与^include〈f订ename>的相同与不同。#includez,filenamez,与^include都是引用f订ename文件"filename"是到搜索源程序所在的目录查找filename文件如果文件没有找到,就到编译器默认的冃录去查找。〈filename〉直接到编译器默认的目录去查找2、简述一下字符串数字charas[]与char*ap的相同与不同。charas□与char*ap都能
7、存储一个字符串,as和ap都能表示字符串的首地址as在使用过程中不能改变它的值,ap可以改变它的值as在变量声明是已经为字符串生成了存储空间,ap在声明是没有存储空间,比较手工指定存储空间。3、详细说明为什么swap函数不能将a和b的值互换,并写出能互换的函数。#includevoidswap(inta,intb);main(){inta,b;a=5;b=8;change(a,b);}voidswap(inta,intb){intc;c=a;a=b;b=c;}Answer:由于C函数的调用是通过传递值调用,swap函数在调用的时候,会生成变量a和b的一个复制值,函数交换
8、的是复制值之间的交换,对main函数屮的变量没有彫响,所以不能改变a和b的值正确的函数声明和调用如下:#inc1udevoidswap(int*a,int*b);main(){inta,b;a=5;b=8;swap(&q,&b);voidswap(int*a,int*b)intc;c二*a;*a=*b;*b=*c;}三编程题1、不使用库函数编写strcmp函数,函数原型intstrcmp(char*s,char*