安卓工程师笔试--2015--波导公司

1.在微型计算机中,采用中断方式的优点之一是(C)

  1. 简单且容易实现
  2. CPU可以不工作
  3. 可实现响应突发事件
  4. 传递速度最快

2.下列哪一项数据J2ME中所使用的虚拟机类型(C)

A.JVM  (java虚拟机)

B.DVM

C.CVM(or KVM)

D.Card VM

3.下列不属于CLDC1.1核心类库与J2SE核心类库的主要区别是:(A)

A..不支持线程组或守护线程

B.不支持浮点数据类型

C.不支持弱引用

D.有限的错误处理

4. 下列哪一个程序片段是在链表中间插入一个结点。(假设新结点为NEW,欲插入在 Pointer结点之后)(C) 

A.NEW->next=Pointer ;   Pointer=NEW

B.NEW->next=Pointer->next ;  Pointer->next=NEW

C.Pointer->next=NEW->next;  NEW->next=Pointer

D.以上皆非

5.关于abstract抽象类描述正确的是:(A)

A.不能生成抽象的构造函数

B.可以生成抽象的static方法

C.允许生成private的抽象方法

D.以上描述都对

6.一张png格式的图片文件a.png,图片宽70像素,高20像素,被用来创建Spirte,程序如下,下面描述正确的是:D

Image img;

try{ img = Image.createImage("/a.png");

}catch(Exception e){}

Sprite sprite = new Sprite(img,20,20);

A.图片被按照每块宽20像素,高20像素的比例分割成三个画面

B.图片被按照每块宽20像素,高20像素的比例分割出一个画面

C.图片被该Sprite所使用,并将该Sprite的图像描绘到屏幕坐标(20,20)的位置上。

D.出现异常

7.下列方法中哪一个方法能实现在屏幕上描绘出一条虚线(其他部分程序代码省略

public void paint(Graphics g)

{

g.setColor(255,255,255);

g.fillRect(0,0, getWidth(), getHeight());

/* 代码段A */

g.setColor(255,0,0);

g.drawLine(20, 20, 100,20);

/* 代码段B */

g.setColor(125, 125,125);

g.drawLine(20,25,100,50);

g.setStrokeStyle(Graphics.SOLID);

/* 代码段C */

g.setColor(125, 125,125);

g.drawLine(20,30,100,50);

g.setStrokeStyle(Graphics.DOTTED);

/* 代码段D */

g.setColor(255,255,255);

g.drawLine(20,50,100,50); }

A.代码段A  B.代码段B  C.代码段C  D.代码段D

答案:C

8. 蓝牙和802.11b技术都属于短程通讯技术,以下描述错误的是: ( D ) 

A. 蓝牙和802.11b都是无线技术,并且都选用了2.4GHz的频谱

B. 802.11b主要是用来连接耗电的大型设备,如个人计算机及手提电脑等

C. 蓝牙主要是用来连接耗电极小的小型设备,如PDA和手机等等

D. 蓝牙技术的数据交流的速度达到11Mb/s,距离可达100米

9.以下是一个利用Timer类和TimerTask类实现线程的一个例子(其余代码和类的设计省略),判断下面代码能实现什么功能:(B )

Timer timer = new Timer(); //生成一个Timer类的对象

timerTask tT = new timerTask() ; //该类继承了TimerTask类

timer.schedule(tT, 100, 1000);

A. 程序启动后等待1秒以后,每隔100毫秒运行一次TimerTask类的run()方法

B. 程序启动后等待100毫秒以后,每隔1秒运行一次TimerTask类的run()方法

C. 程序启动后等待10秒以后,每隔1000毫秒运行一次TimerTask类的run()方法

D. 程序启动后等待1秒以后,每隔10秒运行一次TimerTask类的run()方法

10. 下列有关J2SE中有关方法的使用书写正确的是__C__ 

A.g.getFont("SansSerif"); 用于获取当前字体,不能带参数

B.g.erase(x,y,w,h); //清除位于(x,y)点的矩形

C.Font f = new Font("serif",Font.BOLD,12);

D.g.setColor(Color.Yellow); //将当前颜色设置为黄色

11. J2ME体系架构包括  B

A.Java语言、Java编辑器、Java虚拟机

B.Configuration、Profile、可选包

C.CLDC 、MIDP 、WMA

D.CDC 、Profile、可选包

12.在Java中,创建线程的方法有(B D)多选

A.实现Run接口

B.实现Runnable接口

C.继承Pocess类,实现run()方法

D.继承Thread类,实现run()方法

13.D

14. 在MIDP中,代码的同步主要包括如下哪些方法?( BC)  

A.使用全局变量

B.使用callSerially方法

C.使用synchronized关键字,包括对单独的语句或者整个方法或者对象

D.使用servicePaint方法

15. 操作系统具有进程管理、存储管理、文件管理和设备管理的功能,在以下有关的描述中,哪一个是不正确的? (A )。
A.进程管理主要是对程序进行管理
B.存储管理主要管理内存资源
C.文件管理可以有效地支持对文件的操作,解决文件的共享、保密和保护问题
D.设备管理是指计算机系统中除了CPU和内存以外的所有输入输出设备的管理

二、简答题

1.什么是同步和异步;两者有何异同,举例说明应用场合。5分

1如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。

当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。

2.Android常用的五种布局,并简单说明这几种常用布局的特点。10分

2第二题 ,五种布局

一、
FrameLayout

这个布局可以看成是墙脚堆东西,有一个四方的矩形的左上角墙脚,我们放了第一个东西,要再放一个,那就在放在原来放的位置的上面,这样依次的放,会盖住原来的东西。这个布局比较简单,也只能放一点比较简单的东西。

二、 LinearLayout

线性布局,这个东西,从外框上可以理解为一个div,他首先是一个一个从上往下罗列在屏幕上。每一个LinearLayout里面又可分为垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal"
)。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。linearLayout中有一个重要的属性
android:layout_weight="1",这个weight在垂直布局时,代表行距;水平的时候代表列宽;weight值越大就越大。

三、
AbsoluteLayout

绝对布局犹如div指定了absolute属性,用X,Y坐标来指定元素的位置android:layout_x="20px"

android:layout_y="12px" 这种布局方式也比较简单,但是在垂直随便切换时,往往会出问题,而且多个元素的时候,计算比较麻烦。

四、
RelativeLayout

相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:

相对于某一个元素

android:layout_below="@id/aaa" 该元素在 id为aaa的下面

android:layout_toLeftOf="@id[便便]b" 
该元素的左边是bbb

相对于父元素的地方

android:layout_alignParentLeft="true"  在父元素左对齐

android:layout_alignParentRight="true"
在父元素右对齐,还可以指定边距等,具体详见API

五、
TableLayout

表格布局类似Html里面的Table。每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素,设定他的对齐方式
android:gravity="" 。

每一个布局都有自己适合的方式,另外,这五个布局元素可以相互嵌套应用,做出美观的界面。

3.请写出BOOL flag 与“零值”比较的if语句;请写出float  x 与“零值”比较的if语句;请写出char *p与“零值”比较的if语句;5分

BOOL 的 if
(!var) ... 和 if
(var)...

float的 if
( (var >= - EPS) && (var <= EPS) )... 和 if ( var >= EPS || var <= -EPS)

char*的 if
(var == NULL )... 和 if
(var != NULL )...

4.内存分配区域有几类,并简单说明各个内存区域的功能;10分

1、程序计数器

每个线程都拥有一个独立的程序计数器,用于记录当前线程所要执行的字节码指令,该类内存区域为“线程私有”内存。

2、虚拟机栈

主要负责方法执行的内存部分,在每个方法执行时都会创建一个栈针存储局部变量,操作数等方法相关信息,每一次方法的调用到完成,都对应一个栈针在虚拟机栈中出入栈的过程。

3、本地方法栈

和虚拟机栈类似,只是负责本地Native方法,也会抛出stackOverFlowError和OutOfMemoryError错误。

4、JAVA堆(JAVA Heap),GC堆

主要存放对象实例,可以通过配置,设置不同代的大小和垃圾回收策略,很多优化也在堆上进行实现。

5、方法区(Method Area),非堆,永久代

主要存储虚拟机加载的类信息,常量,静态变量等

6、直接内存

直接内存没有在图中显示,以为他并不是虚拟机运行时数据区的一部分,不归虚拟机管理,

5.用图示或文字简单说明Android系统的架构。5分

Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。

6.Java垃圾回收的优点和原理,并考虑两种回收机制。5分

.程序可以用System.gc()
或Runtime.getRuntime().gc()请求垃圾回收,工作原理: 引用计数,标记复制

垃圾回收机制的优缺点:Java的垃圾回收机制是的程序员不用担心内存空间的分配,减少了内存溢出.但同时也牺牲了一定的性能.

7.Android中Activity,Intent,Content
Provider,Servide各自定义及特点。5分

Activity: 活动。一个活动就是一个用户可以操作的可视化用户界面,每一个活动都被实现为一个独立的类,并且从活动基类继承而来。

Intent: 意图。最重要的部分是动作和动作对应的数据。

Content Provider:内容提供器,android应用程序能够将它们的数据保存到文件、SQLite数据库中,甚至是任何有效的设备中。当你想将你的应用数据和其他应用共享时,内容提供器就可以发挥作用了。

Service:服务,具有一段较长生命周期且没有用户界面的程序组件。

8.什么是Java序列化,序列化的优缺点,如何实现。5分

8序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。

序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements
Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

9. 下列程序的输出结果是___C___。 int t(int x,int y,int
cp,int dp) { cp=x*X+y*y; dp=x*x-y*y; } main() { int a=4,b=3,c=5,d=6: t(a,b,c,d); printf("%d%d\n" ,c,d);

A.4 5

B.4 6

C.5 6

D.5 5

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

__interrupt
double compute_area (double radius)

{

double area = PI * radius * radius;

//printf(" Area = %f", area);

return area;

}

1、ISR不能传递参数,必须用void;

2、ISR应该是短而高效的,所以不推荐在ISR中做浮点运算,应该只由中断发出消息或置位标志然后由应用层去处理其他工作;

3、ISR中不应该有重入和性能上的问题,因此使用pintf()函数也是不好的

11.如何用两个栈实现一个队列的功能?要求给出算法和思路。10分

#include <iostream>

#include <stack>

class TMyQueue

{

private:

stack<char> s1,s2;

public:

void push(char c)

{

while (!s2.empty())

{

char x = s2.top();

s2.pop();

s1.push(x);

}

s1.push( c );

}

char pop()

{

char c;

while (!s1.empty())

{

char x = s1.top();

s1.pop();

s2.push(x);

}

c = s2.top();

s2.pop();

return c;

}

bool empty() const

{

return s1.empty() && s2.empty();

}

};

int main()

{

TMyQueue q;

int i;

char buf1[4] = "one";

char buf2[4] = "two";

char buf3[6] = "three";

for (i = 0; i < 3; i++)

q.push(buf1[i]);

for (i = 0; i < 3; i++)

q.push(buf2[i]);

for (i = 0; i < 3; i++)

cout << q.pop();

cout << endl;

for (i = 0; i < 5; i++)

q.push(buf3[i]);

while (!q.empty())

{

cout << q.pop();

}

cout << endl;

return 0;

}

时间: 2024-11-13 10:11:01

安卓工程师笔试--2015--波导公司的相关文章

JAVA软件工程师笔试试题

JAVA软件工程师笔试试题 (考试时间:120分钟 试卷分值:150分 ) 一. 逻辑推理题[10分] 1.甲.乙.丙.丁四位同学中有一位同学为海啸灾区捐款1000元,当老师询问时,他们分别这样回答: 甲:这1000元不是我捐的 乙:这1000元是丁捐的 丙:这1000元是乙捐的 丁:这1000元不是我捐的 这四人中只有一个人说了真话,由此可见这1000元是谁捐的( ).[2分] A.甲 B.乙 C.丙 D.丁 2. 甲.乙.丙三人是同一家公司的员工,他们的未婚妻A.B.C也都是这家公司的职员.

BAT安卓工程师面试流程解析+还原最真实最完整的一线公司面试题

尊重原创,转载请写明原文出处:http://blog.csdn.net/sk719887916/article/details/47040931 (skay) 求职和我们每个人息息相关,而求职也有门道,好的发挥和技巧或许能以压倒性优势在面试中胜出,回或许我们技不如人,但是我们的综合能力如果良好的话,企业也愿意招这样的人,因此我将自己亲身经历的BAT和其他知名互联网的面试经验分享给大家,让有技术的人展现获得展现自我的平台,前几天在网上一搜,一系列的百度面试题,我特别兴奋,点击练链接一看,差点给吓尿

阿里巴巴 校招2015 数据研发工程师 笔试

知识点: 1.Linux 进程访问权限 2.二叉树的前序遍历.中序遍历.后序遍历(其中根据前序和中序,写出后序遍历结果) 3.按照LRU方法进行页面置换 4.双向链表插入一个节点 5.磁盘大小的计算 6. 成本为500元,其中每增加1元,顾客将会流失1%,计算最优的 7.概率问题 8.推理题(紧急项目,由ABCDEF承接,其中)   附加题: 1.给定一个query和一个text,均由小写字母组成.要求在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度.例如, query

百度 2015 校招 北京机器学习/数据挖掘工程师笔试题目(地点:天津大学)

注:凭记忆写的,可能不全,也不一定正确. 一. 简答题 1. new 和 malloc 的区别. 2. hash冲突是指什么?怎么解决?给两种方法,写出过程和优缺点. 3. 命中的概率是 0.25,若要至少命中一次的概率不小于 0.75,则至少需要几次? 二. 算法设计题 1. 用C/C++写一个归并排序. 数据结构为struct Node{int v; Node *next}; 接口为 Node * merge_sort(Node *); 2. 设计S型层次遍历树的算法,比如根节点是第一层,第

Google笔试(2015年8月)

华电北风吹 天津大学认知计算与应用重点实验室 日期:2015/8/21 这三道题目的PDF能够在这里下载 https://github.com/ncepuzhengyi/jobHuntingExam/tree/master/jobExam/Problem_20150815_google Problem 1: 问题1是眼下须要将阻止分成两块,因为组织内有些人之间有矛盾不能分到同一组内.问你是否存在这种划分. 问题一是二分图推断问题,仅仅须要推断无向图是否是二分图就可以. 最简单的方法是採用广度优先

轻装上阵,安卓工程师之路---day04(JavaScript &amp; XML &amp; DTD)

00 Node接口的API(续) createElement()    按照给定的标签名创建一个新的元素节点.方法只有一个参数:将被创建的元素的名字,参数是一个字符串.方法的返回值:是一个指向新建节点的引用指针.返回值是一个元素节点,所以它的 nodeType 属性值等于 1.新元素节点不会自动添加到文档里,新节点没有 nodeParent 属性,它只是一个存在于 JavaScript 上下文的对象. innerHTML   浏览器几乎都支持该属性,但不是 DOM 标准的组成部分.innerHT

腾讯测试工程师笔试体会

时间:2016年9月10日 笔试题目:25道多选题(限时60分钟)+25道填空题(限时60分钟) 1.多选题涉及数据结构.操作系统.计算机网络.C语言.软件工程.安卓.C++相关类型的题目 2.填空题及数据结构.操作系统.计算机网络.C语言.软件工程.安卓.C++相关类型 例如:1.android在内存使用上默认没有使用(),而使用low memory killer 可以让APP有足够的内存使用 2.读程序,写出输出 3.比较2段程序说出面向对象编程语言的一个基本特性 4.哈夫曼编码 5.对于3

网络工程师成长日记379-PRADA公司设备升级工程感想

这是我的第379篇原创文章,记录网络工程师行业的点点滴滴,结交IT行业有缘之人 11月21日下午接到老大的通知,下午有工程需要出去做.我有幸能跟着老大去做这个项目.我们的任务是配合北京中企总部工程师给中大国际的PRADA公司做设备升级.PRADA公司原来上网用的是电话线接入,现在升级用光纤代替电话线.事先电信公司已将光纤铺好.我们的任务就是配合北京的工程师做线路测试.如果测试无误的话,我们就将光纤接入新的协议转换设备,将旧的协议转换器撤掉.因为我现在毕竟学的比较浅,对很多东西还不懂.所以刚开始心

轻装上阵,安卓工程师之路---day02(CSS&amp;JavaScript)

01 CSS选择器 CSS的语法 格式:选择器{  属性:属性值;  } 举例:h2{color : red; } 常见选择器: 标签选择器     h2{  } 类选择器       .a {  }  <h2 class=“a”>  // 不能是数字,提倡 ID选择器      #a{  }  <h2 id=“a”>    // ID要唯一 组选择器       h1,h2{  } 父类选择器      p  a{  }   //p标签中的a标签 通用选择器      *{