北京君正公司笔试题(带答案)----回忆版

1, 简述以下命令作用 lscdrmmvgrepapt-getmake menuconfignm; 用你熟悉的语言实现memcpy,并说明memcpy在什么问题,怎样改进效率

ls:  查看当前目录下所有文件

cd : 打开目录或者

rm :删除文件

mv: 转移文件

grep:筛选

apt-get: 安装软件

make menuconfig : 图形化的内核配置

nm:  可以用来查询可执行文件和库文件的符号

mencpy 的实现:

void  *mencpy(void *dest,void *src , int count)

{

char  *ret  =  (char *)dest;

char dest_t  =  ret;

char source_t  = (char *)src;  

while(count --)

{

dest_t++ = source_t++;

}

return ret;

}

注意:memcpy没有考虑到重叠情况,使用过程中会出意想不到的后果

改进方案:


void *memcpy(void *dest, void *src,count)
{
char *ret = (char *)dest;
char *dest_t  ;
char *src_t  ;
if(src == NULL || dest == NULL)
return -1 ;

if ((unsigned char *)dest  <= (unsigned char *)src  ||  (unsigned char *)dest >= (unsigned char *)src  + count ) 
{
dest_t  = (char *)dest ; 
src_t  =  (char *)src ;
while(count --)
{
	*dest_t ++  =  *src_t ++;
}
	
}  
else 
{
dest_t  =  (char *)dest  +  count - 1;
 src_t  =  (char *)src  +  count - 1;
while(count --)
{
	*dest_t -- = *src_t --;
}
}
return ret ;
}


2, 一个led灯,int ledvoid)为已经实现了读取它的状态,返回非零点灯,返回0灭灯,

A, 写一个程序,实现1s读取一次灯的状态

B, 采集10次结果,打印结果

int led_situation()

{

int ret;

ret = led();

sleep(1);

return ret ;

}

int led_print()

{

int count  =  10;

int temp ;

while(count --)

{

temp = led_situatio();

printf(“led situation is %d\n”,temp);

}

}

3, 打算做一个系统取代12306火车订票系统,写出保存订票信息的结构体

struct _ticket_reservation {

char name[10];

char sex;

int id;

char local_time[12];

char departure_time[12];

char origin[12];

char destination[12];

char seat_type[10];

float ticket_price;

}TICKET;

4, 简述cache的作用,画出cpucachedma,一致性的图

   cache高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问。存储器的高速缓冲存储器存储了频繁访问的 RAM 位置的内容及这些数据项的存储地址。


5, Linux中声请内存的方法和特点

  物理内存的分配, 在内核中最终都要调用__alloc_pages().它是最核心的分配函数,申请大小最大不超过2的MAX_ORDER次幂,在现在好像最大定义为4MB。 用户空间的虚拟内存, malloc之类的, 最终在内核中都是do_map()和do_brk()。实际上也只是建立了一块虚拟空间,最终的物理内存还是在缺页异常时分配的。 

6, 

1) A,B,C器件的名称是(图上画分别是电阻,三极管,二极管的符号)C起什么作用

    

2) 当EN置高时电路的情况

C是二极管,作用是防止线圈断电产生的高压烧毁三极管。
EN置高时,三极管导通工作在导通区,线圈得电吸合。

7, i2cuartspi……..请你选择一种熟悉的器件,写出管脚并注明作用

 

1 的一款芯片:24C02

VCC: 1.8V~6.0V工作电压

VSS:地

A0A1A2:同时使用时设置区分器件地址,悬空时默认为0,同一总线中最多可使用824C02,若只有一个24C02被寻址则这这三个管脚可以悬空或者接地

SDA:双向串行数据/地址管脚,用于器件所有数据的接收和发送

SCK:串行时钟引脚,用于产生器件所有数据发送和接收的时钟,这是一个输入管脚

WP:写保护引脚,当WPVCC时,芯片只能进行读操作不能进行写操作,当WPVSS时,芯片能进行正常的读/写操作。

2UART的一款芯片:SP3232EEA

EN:接收器使能控制,正常情况下该管脚为低电平,该管脚为高电平时接收器禁止输出

V+:电荷泵产生的+5.5V电压

V-:倍压电荷泵电容的负极

C2+:反向电荷泵电容的正极

C2-:反向电荷泵电容的负极

T1OUTRS232驱动器输出

T2OUTRS232驱动器输出

R1INRS232接收器输入

R2INRS232接收器输入

R1OUTTTL/CMOS接收器输出

R2OUTTTL/CMOS接收器输出

T1INTTL/COMS驱动器输入

T2INTTL/COMS驱动器输入

GND:地

VCC: +3.0~5.0V

SHDN:关断控制输入,正常模式下该管脚为高电平,为低电平时关闭驱动器和片内电荷泵电源

3SPI的一款芯片:M25PXX

C:串行时钟

D:串行数据输入

Q:串行数据输出

S:片选

W:写保护

HOLDhold

VCC5V电源

VSS:地

11,27个运动员买饮料,3个空瓶可以换1瓶饮料,问买多少瓶保证每个人有一瓶,除了用空瓶换,还有什么办法可以喝到饮料(当时我很邪恶,27个运动员,吓也可以把店小二吓得举手投降,还有什么困难弄饮料喝)

19瓶饮料,可保证每人喝一瓶;

12,西天取经,分别阐述4个徒弟的作用和特点,谁的作用最有用(此题很坑爹,差点答boss僧哥了,看清题意是4徒第)

悟空的作用最有用,每次遇到困难,都是悟空挺身而出,除妖降魔,保师徒平安。因此,任何一个团队若没有一个非常有魄力的人,这个团队很难坚持下去

14,假如你是外科医生助理,你们正在动手术,最后发现纱布不够用一块,问你怎么办(当时我也很邪恶,竟然想到了不管它,死不了

纱布虽小却关乎病人的安危,应叫医院护士再去找一块即可


注:答案为作者原创,如有错误请与本人联系

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值