软件工程师笔试题a(精选7篇)
1.软件工程师笔试题a 篇一
考察虚继承内存体系
class A
{
public:
A { cout<<“Construct A”<
~A { cout<<“Destruct A”<
void speak { cout<<“A is speaking!”<
};
class B:public virtual A
{
public:
B { cout<<“Construct B”<
~B { cout<<“Destruct B”<
};
class C:public virtual A
{
public:
C { cout<<“Constuct C”<
~C { cout<<“Destruct C”<
};
class D:public B, public C
{
public:
D{ cout<<“Constsruct D”<
~D{ cout<<“Destruct D”<
};
int main
{
D *p = new D;
p->speak;
delete p;
}
输出:
Construct A
Construct B
Constuct C
Constsruct D
A is speaking!
Destruct D
Destruct C
Destruct B
Destruct A
2.Java软件开发工程师笔试题 篇二
一、选择题(25 x 2’ = 50’)
1、一个Java程序运行从上到下的环境次序是()
A. 操作系统、Java程序、JRE/JVM、硬件 B. JRE/JVM、Java程序、硬件、操作系统 C. Java程序、JRE/JVM、操作系统、硬件 D. Java程序、操作系统、JRE/JVM、硬件
2、下面代码中的第2行可以插入一行代码()保证程序编译通过。
1、public interface A{ 2、3、} A.void method();B.public void method();C.static void method();D.private void method();E.protected void method();
3、关于异常下列描述中,错误的是()
A.异常机制可以用于流程控制
B.finally代码段在发生异常时不一定必须执行
C.在catch代码段中可以使用return语句来返回到异常抛出点
D.可以把catch到的异常对象再次抛出,使上层try—catch结构继续处理该异常事件
4、关于被私有访问控制符private修饰的成员变量,以下说法正确的是()
A. 可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B. 可以被两种类访问和引用:该类本身、该类的所有子类 C. 只能被该类自身所访问和修改 D. 只能被同一个包中的类访问
5、某类Example的main()方法参数为args,当命令行中输入Java Example cat时,args[0]的值为()。
A. cat
B. Java
C. example
D. null
6、下面关于Thread类提供的现成控制方法的说法中,错误的是()
A. 在线程A中执行现成B的join方法,则线程A等待直到线程B执行完成。B. 线程A通过调用iterrupt方法来中断其阻塞状态
C. 若线程A调用方法isAlive返回值为true,则说明A正在执行中 D. currentThread方法返回当前线程的引用
7、类Test1定义如下:
1.public class Test1{ 2.
public float aMethod(float a,float b){ }
1/10
3.4.}
将以下哪种方法插入行3是不合法的。()
A. public float aMethod(float a,float b,float c){ } B. public float aMethod(float c,float d){ } C. public int aMethod(int a,int b){ } D. private float aMethod(int a,int b,int c){ }
8、下面程序的输出结果是()private static void foo(){ try { System.out.println(“try”);foo();} catch(Throwable e){ System.out.println(“catch”);foo();} finally { System.out.println(“finally”);foo();} }
public static void main(String[] args){ foo();} A.执行一段时间后报栈溢出。B.会一直输出“try”。
C.会一直输出“try”和“finally”。D.会一直输出“try”、“catch”和“finally”
9、下面的哪些程序片断可能导致错误?()A.String s = “Gone with the wind”;String t = “ good ”;String k = s + t;
B.String s = “Gone with the wind”;String t;t = s[3] + “one”;
C.String s = “Gone with the wind”;String standard = s.toUpperCase();
D.String s = “home directory”;String t = s-“directory”;
10、已知如下代码:
2/10
1: class Example{ 2: String str;3: public Example(){ 4: 5: } 6: public Example(String s){ 7: 8: } 9:} 10: class Demo extends Example{ 11: } 12: public class Test{ 13: public void f(){ 14: 15: 16: } } 哪句语句会导致错误?()A、line 3 B、line 6 C、line 10 D、line 14 E、line 15
11、下面的代码中第4行创建的对象在什么时候符合垃圾回收的条件()
1、class Bar { }
2、class Test {
3、Bar doBar(){
4、Bar b = new Bar();
5、return b;
6、}
7、public static void main(String args[]){
8、Test t = new Test();
9、Bar newBar = t.doBar();10、11、12、newBar = new Bar();} } Example ex = new Example(“Good”);Demo d = new Demo(“Good”);str=s;str= “example”;A.程序运行第9行之后。B.程序运行第10行之后。C.doBar方法运行结束之后。D.main方法运行结束之后。
12、下列关于for循环和while循环的说法中哪个是正确的?()
A. while循环能实现的操作,for循环也都能实现
B. while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果
3/10
C. 两种循环任何时候都可替换
D. 两种循环结构中都必须有循环体,循环体不能为空
13、下述说法中,错误的是()A.Java中,方法的重载是指多个方法可以共享同一个名字 B.Java中,用abstract修饰的类称为抽象类,它不能实例化 C.Java中,接口不包含成员变量和方法实现 D.Java中,构造方法可以有返回值
14、下面哪些是正确的()
11.class ClassA {}
22.ClassB p1 = new ClassB();23.ClassC p2 = new ClassC();24.ClassA p3 = new ClassB();25.ClassA p4 = new ClassC();12.class ClassB extends ClassA {} 13.class ClassC extends ClassA {} and:
21.ClassA p0 = new ClassA();A.p0 = p1;
15、以下代码片段,正确的结果是:()
11.classA {
17.throw new IOException();
18.} }
19.public static void main(String[] args){
20.try { new B().process();} 21.catch(IOException e){
22.System.out.println(”Exception”);} } 12.public void process(){ System.out.print(”A,”);} } 13.class B extends A { 15.super.process();A.Exception B.A,B,Exception C.Compilation fails because of an error in line 20.D.Compilation fails because of an error in line 14.E.A NullPointerException is thrown at runtime.16、用直接插入排序方法对下面四个序列进行排序(由小到大),元素比较次数最少的是()。
A. 94,32,40,90,80,46,21,69 B. 32,40,21,46,69,94,90,80 C. 21,32,46,40,80,69,90,94 D. 90,69,80,46,21,32,94,40
17、设栈最大长度为3,入栈顺序为1,2,3,4,5,6,则不可能的出栈序列是()
A.1,2,3,4,5,6 B.2,1,3,4,5,6 C.3,4,2,1,5,6 D.4,3,2,1,5,6
18、设有98个已排序列元素,采用二分法查找时,最大比较次数是()
A.49 B.15 C.20 D.7
4/10
14.public void process()throws IOException { 16.System.out.print(”B,”);B.p1 =p2;
C.p2 = p4;
F.p2 =(ClassC)p4;D.p2 =(ClassC)p1;E.p1 =(ClassB)p3;
19、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()
A.9 B.11 C.15 D.不确定
20、以下与数据的存储结构无关的术语是()。
A.循环队列 B.链表 C.哈希表 D.栈
21、设数组A[10„100,20„100]以行优先的方式顺序存储,每个元素占4个字节,且已知A[10,20]的地址为 1000,则A[50,90]的地址是()
A.13240 B.14250 C.24220 D.14240
22、链表不具有的特点是()
A.插入、删除不需要移动元素 B.可随机访问任一元素 C.不必事先估计存储空间 D.所需空间与线性长度成正比
23、下面关于线性表的叙述中,错误的是哪一个?()
A.线性表采用顺序存储,必须占用一片连续的存储单元。B.线性表采用顺序存储,便于进行插入和删除操作。C.线性表采用链接存储,不必占用一片连续的存储单元。D.线性表采用链接存储,便于插入和删除操作。
24、若一个栈的输入序列为1,2,3,„,n,输出序列的第一个元素是i,则第j个输出元素是()。A.i-j-1 B.i-j C.j-i+1 D.不确定的
25、下列说法不正确的是()。
A.图的遍历是从给定的源点出发每一个顶点仅被访问一次 B.图的深度遍历不适用于有向图
C.遍历的基本算法有两种:深度遍历和广度遍历 D.图的深度遍历是一个递归过程
二、程序改错(5 * 2’ = 10’)1.----public class Unbelievable { static Integer i;public static void main(String[] args){
} } if(i == 42)System.out.println(“Unbelievable”);2.——————————————————————————————————
class Animal {
public String noise(){
5/10
龙通科技有限公司笔试题
} class Dog extends Animal {
} class Cat extends Animal {
} public class Test {
} public static void main(String[] args){
} Animal animal = new Dog();Cat cat =(Cat)animal;cat.noise();public String noise(){ } return “meow”;public String noise(){ } return “bark”;} return “peep”;3.——————————————————————————————————————
abstract class Something { } private abstract String doSomething();4.——————————————————————————————————————
public class Something {
} class Other { } public int i;public static void main(String[] args){
} public void addOne(final Other o){ } o.i++;Other o = new Other();new Something().addOne(o);5.——————————————————————————————————————
class Something {
final int i;public void doSomething(){ System.out.println(“i = ” + i);6
龙通科技有限公司笔试题
} }
三、程序阅读题(每空2’,共 40’)
1、阅读以下java代码,写出运行结果
class StaticTest {
}
2、编写将一维数组a[]中互不相同的数按从小到大顺序重新存于一维数组a[]的程序。
class A{ public static void main(String[] args){
} for(j=0;j } System.out.prinln(a[j]);int a[]={15,7,15,6,4,3,4,6,7};int i,j,k,low,high,mid,t;for(i=k=1;i=a[i])____________;else low=mid+1;} if(____________|| a[low]!=a[i]){ t=a[i];for(j=k-1;__________;j--)a[j+1]=a[j];___________;k++;} static int x=1;int y;StaticTest(){ } public static void main(String args[ ]){ StaticTest st=new StaticTest();System.out.println(“x=” + x);System.out.println(“st.y=” + st.y);st=new StaticTest();System.out.println(“st.y=” + st.y); } static { x++;} y++; 龙通科技有限公司笔试题 } 3、请用JAVA编写如下程序:此程序处理一个由0和非0数字成员组成的数组(长度自定),例如0 0 1 2 0 1 0 0 0 1 0 0 0 0 0 2 0 7 8 9 0 0 1 2 3 4,把数组中所有连续两个以上的0去掉,将结果存入一个新数组。如上例处理后结果为,1 2 0 1 1 2 0 7 8 9 1 2 3 4。public static void main(String[] args){ int[] srcArray = {0,0,1,2,0,1,0,0,0,1,0,0,0,0,0,2,0,7,8,9,0,0,1,2,3,4};int[] destArray = new int[50];int i=0,j=0,count=0;for(i=0;i } } for(i=0;i public static void main(String[] args){ } public static int Keeper(int peo, int n){ int k = 0;int peo;System.out.println(“请输入人数:”);Scanner inp = new Scanner(System.in);peo = inp.nextInt();int k = Keeper(peo, 3);System.out.println(“最后留下的是 ” + k + “ 号!”); 4、有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,再从他的下一 8 龙通科技有限公司笔试题 int[] array = new int[peo];for(int i = 1;i < peo;i++){ } for(k = 0;k < peo;k++){ } return k + 1;if(array[k] == 0){ } 4 ; ○int j = 1;while(j <= n){ } if(○1){ } if(j == n){ } j++;3 ; ○ ; ○j--; } } 5、在一个n×n的棋盘上,放置n个不能互相捕捉的国际象棋“皇后”的所有布局。以下是n皇后的算法,请完成填空部分: public class Queen { Queen(int d){ } // 放置皇后的方法 public void place(int row){ int i = 0;if(row == n){ 1 ; ○n = d;queenPos = new int[d];private int n;private int[] queenPos;private double num = 0;// 记录共有多少种摆法 } else { 9 龙通科技有限公司笔试题 } // 判断布局是否合法 private boolean legality(int list){ } // 测试方法 public static void main(String[] args){ }} System.out.println(“输入个数n:”);Scanner in = new Scanner(System.in);int n = in.nextInt();try { } Queen q = new Queen(n);q.place(0);System.out.println(n + “*” + n + “时,” + “共有” + q.num + “种可能摆法。”);System.out.println(“OK!”);e.printStackTrace();if(list == 0) } return true;return true;if(queenPos[i] == queenPos[list])3 ; ○for(int i = 0;i < list;i++){ } for(i = 0;i < n;i++){ 1.什么是白盒测试?什么是黑盒测试?什么是回归测试? 答:白盒测试是测试人员要了解程序结构和处理过程,按照程序内部逻辑测试程序,检查程序中的每条通路是否按照预定要求正确工作.它主要的针对被测程序的源代码,测试着可以完全不考虑程序的功能. 白盒测试流程:详细设计–>源程序–>分析程序内部逻辑结构–>流程图–>制定测试用例–>被测程序–>执行路径–>覆盖情况分析 . 黑盒测试:(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子,利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。 回归测试: (regression testing): 回归测试有两类:用例回归和错误回归;用例回归是过一段时间以后再回头对以前使用过的用例在重新进行测试,看看会重新发现问题。错误回归,就是在新版本中,对以前版本中出现并修复的缺陷进行再次验证,并以缺陷为核心,对相关修改的部分进行测试的方法。 2.单元测试、集成测试、系统测试的侧重点是什么? 单元测试针对的是软件设计的.最小单元–程序模块(面向过程中是函数、过程;面向对象中是类。),进行正确性检验的测试工作,在于发现每个程序模块内部可能存在的差错.一般有两个步骤:人工静态检查动态执行跟踪 集成测试针对的是通过了单元测试的各个模块所集成起来的组件进行检验,其主要内容是各个单元模块之间的接口,以及各个模块集成后所实现的功能. 系统测试针对的是集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件外设某些支持软件数据和人员等其他系统元素结合在一起,要在实际的运行环境中,对计算机系统进行一系列的集成测试和确认测试. 3.设计用例的方法: 在测试的不同阶段运用不用的测试方法设计用例的方法依据不同: 白盒测试用例设计有如下方法:逻辑覆盖、循环覆盖和基本路径覆盖 黑盒测试用例设计方法:等价类划分、边界值分析、错误猜测、因果图、状态图、测试大纲、场景法、正交策略表。 4.一个测试工程师应具备那些素质? 1、责任心 2、沟通能力 3、团队合作精神 4、耐心、细心、信心 5、时时保持怀疑态度,并且有缺陷预防的意识 6、具备一定的编程经验 5.集成测试通常都有那些策略? 基于分解的集成:大爆炸集成自顶向下集成自底向上集成 三明治集成基于调用图的集成基于路径的集成分层集成基于功能的集成高频集成基于进度的集成基于风险集成基于事件集成基于使用的集成C/S集成 , 6.答:我用过功能测试工具:QTP;性能测试工具:LoadRunner;测试管理工具:TD;静态分析工具:Logiscope;单元测试工具:C++Test等。 7.答:一个缺陷测试报告的组成为:缺陷报告的唯一ID,总结简明扼要的事实陈述总结软件缺陷.缺陷的描述(日期和时间测试员的姓名产品名称所属模块工作版本使用的硬件和软件配置输入数据重现步骤预期结果实际结果附件责任人备注) 、缺陷状态、修改记录等。 8.软件测试项目从什么时候开始?为什么? 软件测试应该在需求分析阶段就介入。 在软件生命周期的各个阶段都会引入缺陷。通常来说,在需求分析和产品设计阶段,容易引入80%的缺陷,而剩下的20%的缺陷才是在编码过程中引入的。 缺陷的修改成本随着所处的开发阶段的上升而上升。因此,及早引入测试,可以及早的修复缺陷,从而降低成本。 软件产品由程序和文档两个部分组成。测试的内容不仅包括软件产品,还包括生产过程使用的各类文档。需要对文档进行测试和评审。 1.单元测试技术中,静态分析的方法有哪几种?(ABC) A.走查 B.审查 C.评审 D.编译 2.从测试技术角度,正确的选择是(AC)。 A.静态测试 B.黑盒测试 C.动态测试 D.白盒测试 3.从测试阶段角度,测试正确的顺序是(ABCD)。 A.单元测试 B.集成测试 C.系统测试 D.确认测试 4.RATIONAL CLEARQUEST 可以构建以下哪种架构?(DB) A.TO CB.C/S C.TO BD.B/S 5.WINDOWS2000 SERVER 环境下,WWW、FTP 的服务的默认端口号为?(CD) A.110B.25 C.80D.21 6.RATIONAL ROBOT 中的 GUI、VU 分别的作用?(AD) A.界面测试工具 B.单元测试工具 C.白盒测试工具 D.压力、负载测试工具 7.SQL 语句中,可以查看到学生信息表中,学生姓名的 SQL 语句为?(BC) A.select 学生信息 from 学生信息 B.select * from学生信息 C.select学生姓名 from 学生信息 1、试述软件的概念和特点?软件复用的含义?构件包括哪些? 2、瀑布模型和螺旋模型的主要区别是什么? 3、软件生存周期及其模型是什么? 4、什么是软件测试?软件测试的目的与原则? 5、净室软件工程的策略是什么? 6、软件配置管理的作用 软件配置包括什么? 7、简述需求分析的过程和意义? 8、什么是数据的对立性?有几个层次? 9、网状、层次数据模型与关系数据模型的最大的区别是什么? 10、dbms读取一条记录时发生哪些事件? 11、什么是软件质量 软件包是什么? 12、软件产品质量特性是什么? 13、什么是软件质量保证 其主要任务是什么? 14、软件质量保证体系是什么? 国家标准中与质量保证管理相关的几个标准是什么 他们的编号和全称是什么? 15、软件测试的原则与策略是什么? 16、什么是测试用例 什么是测试脚本 两者的关系是什么? 17、简述什么是静态测试、动态测试、黑盒测试、白盒测试、a测试 b测试? 18、测试问题的严重性分为几级 ?如何区分? 19、测试用例设计的原则是什么 目前主要的测试用例设计方法是什么? 20、结构化系统测试和功能性系统测试分别采用了哪些方法和技术? 21、软件测试分为几个阶段 各阶段的测试策略和要求是什么? 22、面向对象的测试用例设计有几种方法 如何实现? 23、在软件测试各个阶段通常完成什么工作 各个阶段的结果文件是什么 包括什么内容? 24、软件的安全性应从哪几个方面去测试? 更多相关文章推荐: 1.中国平安银行关于软件测试笔试题 2.IT名企软件测试笔试题 3.2017华为软件测试工程师笔试题 4.2017外企软件测试笔试题 5.Java软件开发工程师笔试题 6.华为软件测试工程师笔试题目 7.2017软件测试工程师笔试题 8.2017软件测试常见的笔试题目 9.2017软件测试笔试题及答案 11. Simplify the following Boolean expression !((i ==12) || (j > 15)) 12. How many flip-flop circuits are needed to divide by 16? 13. Provides 3 properties that make an OS, a RTOS? 14. What is pre-emption? 15. Assume the BC register value is 8538H, and the DE register value is 62 A5H.Find the value of register BC after the following assembly operations: MOV A,C SUB E MOV C,A MOV A,B SBB D MOV B,A 16. In the Assembly code shown below LOOP: MVI C,78H DCR C JNZ LOOP HLT How many times is the DCR C Operation executed? 17. Describe the most efficient way (in term of execution time and code size) to divide a number by 4 in assembly language 18. what value is stored in m in the following assembly language code fragment if n=7? LDAA #n LABEL1: CMPA #5 BHI L3 BEQ L2 DECA BRA L1 LABEL2: CLRA LABEL3: STAA #m 19. What is the state of a process if a resource is not available? #define a 365*24*60*60 20. Using the #define statement, how would you declare a manifest constant that returns the number of seconds in a year? Disregard leap years in your answer. 21. Interrupts are an important part of embedded systems. Consequently, many compiler vendors offer an extension to standard C to support interrupts. Typically, the keyword is __interrupt. The following routine (ISR). Point out problems in the code. __interrupt double compute_area (double radius) { double area = PI * radius * radius; printf(“ Area = %f”, area); return area; 在机缘巧合下参加了腾讯校园招聘笔试,其中有一道有关fork的题目比较经典,网上一篇文章,原文如下: 前两天有人问了个关于Unix的fork()系统调用的面试题,这个题正好是我大约十年前找工作时某公司问我的一个题,我觉得比较有趣,写篇文章与大家分享一下,这个题是这样的: 题目:请问下面的程序一共输出多少个“-”? #include #include #include int main(void) { int i; for(i=0; i<2; i++) { fork(); printf(“-”); } return 0; } 如果你对fork()的机制比较熟悉的话,这个题并不难,输出应该是6个“-”,但是,实际上这个程序会很tricky地输出8个“-”。 要讲清这个题,我们首先需要知道fork()系统调用的特性, fork()系统调用是Unix下以自身进程创建子进程的系统调用,一次调用,两次返回,如果返回是0,则是子进程,如果返回值>0,则是父进程(返回值是子进程的pid),这是众为周知的。 还有一个很重要的东西是,在fork()的调用处,整个父进程空间会原模原样地复制到子进程中,包括指令,变量值,程序调用栈,环境变量,缓冲区,等等。 所以,上面的那个程序为什么会输入8个“-”,这是因为printf(“-”);语句有buffer,所以,对于上述程序,printf(“-”);把“-”放到了缓存中,并没有真正的输出,在fork的`时候,缓存被复制到了子进程空间,所以,就多了两个,就成了8个,而不是6个。 另外,多说一下,我们知道,Unix下的设备有“块设备”和“字符设备”的概念,所谓块设备,就是以一块一块的数据存取的设备,字符设备是一次存取一个字符的设备。磁盘、内存都是块设备,字符设备如键盘和串口。块设备一般都有缓存,而字符设备一般都没有缓存。 对于上面的问题,我们如果修改一下上面的printf的那条语句为: printf(“- ”); 或是 printf(“-”); fflush(stdout); 就没有问题了(就是6个“-”了),因为程序遇到“ ”,或是EOF,或是缓中区满,或是文件描述符关闭,或是主动flush,或是程序退出,就会把数据刷出缓冲区, 需要注意的是,标准输出是行缓冲,所以遇到“n”的时候会刷出缓冲区,但对于磁盘这个块设备来说,“n”并不会引起缓冲区刷出的动作,那是全缓冲,你可以使用setvbuf来设置缓冲区大小,或是用fflush刷缓存。 我估计有些朋友可能对于fork()还不是很了解,那么我们把上面的程序改成下面这样: #include #include #include int main(void) { int i; for(i=0; i<2; i++){ fork(); //注意:下面的printf有“n” printf(“ppid=%d, pid=%d, i=%d n”, getppid(), getpid(), i); } sleep(10); //让进程停留十秒,这样我们可以用pstree查看一下进程树 return 0; } 于是,上面这段程序会输出下面的结果,(注:编译出的可执行的程序名为fork) ppid=8858, pid=8518, i=0 ppid=8858, pid=8518, i=1 ppid=8518, pid=8519, i=0 ppid=8518, pid=8519, i=1 ppid=8518, pid=8520, i=1 ppid=8519, pid=8521, i=1 $ pstree -p | grep fork |-bash(8858)-+-fork(8518)-+-fork(8519)---fork(8521) | | `-fork(8520) 面对这样的图你可能还是看不懂,没事,我好事做到底,画个图给你看看: 注意:上图中的我用了几个色彩,相同颜色的是同一个进程。于是,我们的pstree的图示就可以成为下面这个样子:(下图中的颜色与上图对应) 【软件工程师笔试题a】推荐阅读: 软件项目经理笔试题07-07 软件工程导论试题12-22 打印过软件测试工程师试题11-22 JAVA软件开发笔试题09-27 软件工程模拟试题及答案12-08 软件工程师待遇12-13 简历—软件工程师12-22 软件工程师级别01-06 软件工程师年终总结06-27 安卓软件工程师工资06-303.软件工程师笔试题a 篇三
4.软件工程师笔试题a 篇四
5.软件外包公司软件测试笔试题 篇五
6.英文软件类笔试题 篇六
7.腾讯校园招聘软件研发笔试题 篇七