软件工程师经典笔试题IT笔试题41882.docx
《软件工程师经典笔试题IT笔试题41882.docx》由会员分享,可在线阅读,更多相关《软件工程师经典笔试题IT笔试题41882.docx(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程师经典笔试题IT笔试题1. 用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)。答案:#deffine SECCONDS_PER_YYEAR(660*60*24*3665)UL应该意识到表达达式将使一个个16位机的的整形数溢出出,因此要用用到长整型符符号L,表达达式中UL表表示无符号长长整型。2. 写一个个“标准”宏MIN,这这个宏输入连连个参数并返返回较小的一一个。答案:#deffine MMIN(A,B) (A)=(B)?(AA):(B)懂得在宏中小心心的吧参数用用括号扩起来来3. sizzeof 的的一些考察char* sss1=”0012345567
2、89”; charr ss2=”011234566789”; cchar sss31000=”001234556789”;int ss44100; char q1=”abc”; cchar qq2=”aan”; cchar* q3=”aan”; 答案:ss1是是一个字符指指针,指针的的大小是一个个确定的值,就就是4,siizeof(ss1)=4; sss2是一个个字符数组,这这个数组最初初的大小未定定,填充值是是“012344567899”,一个字符符占一位,再再加上隐含的的“0”一共是111位。 sss3是一个个字符数组,这这个数组开始始预分配1000,所以它它的大小是1100位。 ss44
3、是一个整型型数组,但是是每个整型变变量所占空间间是4,所以以它的大小一一共是4000位。 qq1与ss22类似,占44位。Q2里里面有一个“n”,“n”算作一位,加加上隐含的,大大小一共是33位。Q3是是一个字符指指针,指针得得大小是一个个定值,就是是4.4 Whatt is tthe ouutput of thhe folllowinng codde?#includde uusing namesspace std; class AA ; classs A2 char d,e; strruct BB; sstructt C cchar xx,y; struuct Dint xx,y;main(
4、) couutsiizeof(A)eendl; coutsizeeof(A22)enndl; AA *p1=new AA(); A p2; A *pp3; cooutssizeoff(p1)endll; couutsiizeof(p2)endl; couttsizzeof(pp3)eendl; coutsizeeof(B)enddl;couutsiizeof(C)eendl; coutsizeeof(D)enddl; reeturn 0; 答案:对于一个个类而言,即即便它是一个个空的类,编编译器仍然要要要给它一个个空间,所以以类A即便什什么也没有,它它的空间大小小依然为1,而类A2大小是类中连
5、个字符d,e之和,所以它的空间大小依然是2,至于p1,p2,p3,p1和p3是指针,大小是一致的,而且是定值,为4,p2是A的对象,所以它的大小和类A相等,为1,B和C得解释同A和A2,至于D,它和C不同点在于,结构体有两个整型变量,每个整型变量所占空间为4,所以D所占空间大小为8。最后结果是 11, 2,44, 1,44,1,2,885. whaat is the ooutputt the folloowing code?#includde ussing nnamesppace sstd;class AA1 ppublicc: intt a; sstaticc int b;A1(); AA1
6、();class AA2 ppublicc: intt a; cchar cc; A2(); AA2();class AA3 ppublicc: flooat a; charr c; AA3(); A3();class AA4 ppublicc: flooat a; int b; chhar c; A4(); A44();class AA5 ppublicc: douuble dd; flooat a; int b; chhar c; A5(); A55();int maiin() couttsizzeof(AA1)ssizeoff(A2)sizeeof(A33)siizeof(A4)size
7、oof(A5)enddl; reeturn 0;答案:因为静态态变量是存放放在全局数据据区的,而ssizeoff计算栈中分分配的大小,是是不会计算在在内的,所以以sizeoof(A1)是4;为了了照顾数据对对其,intt大小为4,cchar大小小为1,所以以sizeoof(A2)是8;为了了照顾数据对对其,flooat大小为为4,chaar大小为11,所以siizeof(A3)为88;为了照顾顾数据对其,ffloat大大小为4,iint大小为为4,chaar大小为11,所以siizeof(A4)为112;为了照照顾数据对其其,doubble大小为为8,flooat大小为为4,intt大小为4,
8、cchar大小小为1,所以以sizeoof(A5)选择8的倍倍数为24。6. 以下代代码的输出结结果是()char vaarInt tesst(chaar varr) retruun sizzeof(vvar);答案:因为vaar等价价于*varr,函数内部部已经退化成成一个指针了了,所以大小小是4.7. 以下代代码的输出结结果是() Class B ffloat f; chhar p; int asf33; couttsizzeof(BB)enndl;答案:floaat f占了了4个字节,cchar pp占了一个字字节,intt adf3占了112个字节,总总共是17个个,根据内存存的对齐原
9、则则,要选择44的倍数,是是45=20个个字节。8. 以下代代码的输出结结果是() Class B ddoublee d; cchar pp; intt asf4; couutsiizeof(B)x=0来定义xx的值,等同同于pt.xx=0.11. #incluude usingg nameespacee std; Void GeetMemoory(innt *z) *zz=5; Int maiin() int v; GeetMemoory(&vv); cooutvvenddl; reeturn 0;Getmoryy把v的地址址传了过来,*z是地址址里的值,是是v的副本.通过直接修修改地址里的
10、的值,不需要要有返回值,也把v给修修改了,因为为v所指向地地址的值发生生了改变,最最终程序会崩崩溃.12. 下面的的数据声明都都代表什么意意思?(1)floaat(*ddef)110Def是一个二二级指针,它它指向的是一一个指向一维维数组的指针针,数组的元元素都是flloat。(2)doubble*(*gh)110Gh是一个指针针,它指向一一个一维数组组,该数组元元素都是doouble*(3) douuble(*f10)()F是一个数组,ff有十个元素素,元素都是是指向函数的的指针,指向向的函数类型型是没有参数数且返回doouble的的函数(4)int*(*b)10)就跟“int*(b)110
11、”是一样的,bb是一维数组组的指针(5)longg(*funn)(intt)函数指针:指向向函数的指针针(6)int(*(*f)(int,int)(int)F是一个函数的的指针,指向向的函数的类类型是有两个个int参数数并且返回一一个函数指针针的函数,返返回的函数指指针指向一个个int参数数且返回innt的函数。13. 指针数数组与数组指指针指针数组,是指指一个数组里里面装着指针针,数组指针针,代表它是是指针,指向向真个数组一个指向整型数数组的指针定定义为()A int(*ptr) BB.int *ptr C.int*(ptr) D.int pptrint(*pttr)是是以一个指向向整型数组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程师 经典 笔试 IT 41882
限制150内