资源描述:
《Linux研发岗位笔试题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Linux应用程序员:做一、二题,考试时间:1.5小时Linux驱动程序员:做一、二(可选做)、三题,考试时间:2小时一、C/C++语言1.头文件中的ifndef/define/endif干什么用?答:防止该头文件被重复引用2.数据类型判断typedefint(*test)(float*,float*)testtmp;tmp的类型是:___C___。(a)函数的指针,该函数以两个指向浮点数(float)的指针(pointer)作为参数(arguments),并且函数的返回值类型是整型指针(b)整型指针(c)函数的指针,该函数以两个指向
2、浮点数(float)的指针(pointer)作为参数(arguments),并且函数的返回值类型是整型(d)以上都不是3.C++的类和C里面的struct有什么区别?struct中的成员默认是public的,class中的默认是privateclass有默认的构造、析构函数,struct没有class中可以有虚函数,struct不行class可以被继承,struct不4.阅读并作答下面的代码输出是什么,为什么?voidtest(void){ unsignedinta=6; intb=-20; (a+b>6)?puts(">
3、6"):puts("<=6");}答:”>6”,因为有符号和无符号混合运算时,有符号数自动转换为无符号数值进行运算5.阅读并作答intcounter(inti){staticintcount=0;count=count+i;return(count);}main(){inti,j;for(i=0;i<=5;i++)j=counter(i);}本程序执行到最后,j的值是:__B___。(a)10(b)15(c)6(d)71.阅读并作答main(){inta[][3]={1,2,3,4,5,6};int(*ptr)[3]=a;printf
4、("%d%d",(*ptr)[1],(*ptr)[2]);++ptr;printf("%d%d",(*ptr)[1],(*ptr)[2]);}这段程序的输出是:__A___。(a)2356(b)2345(c)4500(d)以上均不对2..以下表达式符合规范的是___D__。a.while(p&&*p) //p为指针变量b.if(1==flag) //flag为布尔变量c.if(0.0==x) //x为浮点变量d.if(strlen(strName)!=0) //strName为字符串变量3.给定一个4字节整型变量a
5、,以bit0~bit31标识二进制位,写两段代码,第一个设置a的bit3,第二个清除a的bit3。在以上两个操作中,要保持其它位不变。#defineBIT3(1<<3)a
6、=BIT3;a^=~BIT3;4.编码实现以下几个小功能(1)编写两个宏实现一个字节无符号整数的16进制与压缩bcd码进行互相转换。假设数值大小不超过99例如:“0x12”是16进制表示法,10进制数为“18”,记为“0x18”#defineBYT_HEX2BCD(x)((x/10)<<4)+(x%10)#defineBYT_BCD2HEX(x)((x>>4)*10
7、)+(x&0x0f)(2)写个函数实现将ASCII码串转换为16进制数组例:ASCII串为“8e349bcd45”转换为0x8e,0x34,0x9b,0xcd,0x45intStrAsc2Hex(unsignedchar*dst,constchar*src,intlen){inti;unsignedchardtemp,stemp;char*ptr;ptr=const_cast(src);if(len%2)return0;len/=2;for(i=0;i='0'&&(*ptr)<='
8、9')stemp=*ptr-'0';if((*ptr)>='A'&&(*ptr)<='F')stemp=*ptr-'A'+0x0a;if((*ptr)>='a'&&(*ptr)<='f')stemp=*ptr-'a'+0X0a;dtemp=stemp<<4;ptr++;if((*ptr)>='0'&&(*ptr)<='9')stemp=*ptr-'0';if((*ptr)>='A'&&(*ptr)<='F')stemp=*ptr-'A'+0x0a;if((*ptr)>='a'&&(*ptr)<='f')stemp=*ptr-'a'+0
9、X0a;*dst++=dtemp
10、stemp;ptr++;}returnlen;}5.阅读并作答阅读题。(1)voidGetMemory(char*p){p=(char*)malloc(100);}voidTest(vo