驱动工程师笔试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

驱动工程师笔试题目

1、选择题

1:main()

{ int x=1,y=1;

y=x-- ;

printf( “ %d,%d\n ” ,x,y);

}运行结果为( ) ;

A.0 ,0

B.0 , 1

C.1 ,0

D.1 ,1

2:某文件中定义的静态全局变量(或称静态外部变量)其作用域是( ) A.只限某个函数 B.本文件

C.跨文件

D.不限制作用域

3:设int a[10],*p=a ;则对数组元素的正确引用是( )

A.a[p]

B.p[a]

C.*(p+2)

D.p+2

4:C语言中,系统自动打开的文件是( )

A.二进制文件

B.随机文件

C.非缓冲文件

D.设备文件

5:下列程序的运行结果是( )

main( )

{ int a[][4]={1,3,5,7,9,11,13,15,17,19,21,23};

int (*p)[4],i=2,j=1;

p=a;

printf(″%d\n″,*(*(p+i)+j));

}

A.9

B.11

C.17

D.19

6:在软件生命周期中,下列哪个说法是不准确的?( )

A.软件生命周期分为计划、开发和运行三个阶段

B.在计划阶段要进行问题确认和需求分析

C.在开发后期才能进行编写代码和软件测试

D.在运行阶段主要是进行软件维护

7:下列语句定义整型指针p1、p2,( ) 是正确的。

A.int p1,p2;

B.int *p1,*p2;

C.int *p1,p2;

D.int **p1,p2;

8:下列程序的运行结果是( )

main()

{

int a[5] = {1,2,3,4,5};

int *ptr = (int*)(&a+1);

printf("%d %d" , *(a+1), *(ptr-1) );

}

A. 2 2

B. 2 1

C.2 5

D.以上均不是

2、简答题

8、下面的程序或程序段存在一个错误或不妥处请在其下划一条线,并将改正的内容写到每小题后的空白处

main()

{ char cl,c2;

cl='9';

c2='10';

printf(”cl=%c,c2=%c\n”,c1,c2);

}

9、下面的代码输出是什么,为什么?

void foo(void)

{

unsigned int a = 6;

int b = -20;

(a+b > 6) ? puts("> 6") : puts("<= 6");

}

10、中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展―让标准C支持中断。具代表事实是,产生了一个新的关键字__interrupt,下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码,找出错误并改正.

__interrupt double compute_area (double radius)

{

double area = PI * radius * radius;

printf("\nArea = %f", area);

return area;

}

3、内核驱动题

11、请简述arm linux内核启动流程。

12、驱动里面为什么要有并发、互斥的控制?如何实现?举例说明。

13、请简述linux内核终端处理分成上半部分和下半部分的原因,为何要分?如何实现?

4、编程实现题

14、设计并实现一个在linux平台下简单的内存FIFO字符设备驱动,并简述该驱动的验证方法。

相关文档
最新文档