您好,欢迎来到钮旅网。
搜索
您的当前位置:首页软件安全试卷

软件安全试卷

来源:钮旅网


《软件安全》试卷 A

(试卷共3页,答题时间120分钟。答案全部写在答题纸上) 一、选择题(每小题 1分,共 10分)

1、解决缓冲区溢出的方法,以下不正确的一项是()。

A、 积极检查边界 B、 程序指针检查 C、注重程序应用性能 D、不让攻击者执行缓冲区内的命令

2、以下说法正确的一项是_____。( )

A. 任何软件都是不安全的 B. 软件无响应一定是软件存在漏洞 C. 黑盒测试就是分步检测软件代码 D. 通过测试能够完全解决软件安全问题 3、下列说法哪个是不正确的。( )

A. 进程是线程的容器 B. 单个进程可以包含多个线程 C. 进程中不一定有线程 D. 进程中一定有线程 4、下列关于异常的描述中,错误的是( ) A.异常是一种经过修正后程序仍可执行的错误

B.异常是一种程序在运行中出现的不可恢复执行的错误 C.不仅Java语言有异常处理,C++语言也有异常处理

D.出现异常不是简单结束程序,而是执行某种处理异常的代码,设法恢复程序的执行 5、下列关于抛出异常的描述中,错误的是_______.

A.捕捉到发生的异常可在当前方法中处理,也可以抛到调用该方法的方法中处理 B.在说明要抛出异常的方法时应加关键字throw<异常列表> C.<异常列表>中可以有多个用逗号分隔的异常

D.抛出异常的方法中要使用下述抛出异常语句:throw<异常名>;其中,<异常名>是异常类的类名

6、以下哪一项不是软件生命周期中的阶段( ) A.设计阶段 B.分析阶段 C.维护阶段 D.销售阶段 7、下列哪一项不是导致线程停止的方法( )

A.wait() B.sleep() C. join() D。stop() 8、下列关于造成线程死锁条件的说法,错误的是( )。

A.产生线程死锁的四个条件是:互斥条件、请求与保持条件、不剥夺条件和循环等待条件

B.死锁的四个条件是充分条件 C.死锁的四个条件是必要条件

D.死锁一般会在两个以上线程执行时产生

9、下面对静态成员的描述中,错误的是( )。 A、静态成员的提出是为了解决数据共享问题 B、静态数据成员的初始化在类体外进行

本试卷共× 页 第 1 页

C、类的不同对象有不同的静态数据成员值

D、静态成员函数可以直接访问类中的静态数据成员 10、下列对封装性的描述中,错误的是( ). A.封装体包含了属性和行为

B.封装体中的属性和行为的访问权限是相同的 C.被封装的某些信息在封装体外是不可见的 D.封装使得抽象的数据类型提高了可重用性

二、填空题(每空 1 分,共 12分)

1、一般来说,软件的安全性隐患来源于以下4个方

面: 、 、 、 。 2、进程在内存中运行时,被分为3个区域,分别是: 、 、 。 3、解决整数溢出的方案包括 、 。 4、假如多个线程出现死锁情况,排除死锁的方案为: 、 、 。

三、名词解释题(每题 4 分,共 20 分) 1、类 2、进程

3、堆栈缓冲区

4、线程的生命周期 5、异常抛出

四、简答题:(每题5分, 共25分)

1、在线程的生命周期中包括哪几种状态? 2、进程和线程有什么区别?

3、Java中,异常和错误的区别? 4、什么情况下会出现整数溢出?

5、怎样解决线程因抢占共享代码/资源而产生的结果错误? 五、程序设计题:(第一题14分,第二题19分,共33分) 1、回答问题,填写程序缺少部分,实现题目要求:

(1)下面的程序在运行时会产生什么问题?(4分) (2)修改以下代码,解决出现的问题。(10分) public class P03 implements Runnable{ static Object S1 = new Object(),S2=new Object(); public void run(){ if(Thread.currentThread().getName().equals(\"th1\")){ synchronized(S1){

System.out.println(\"线程1锁定S1\"); synchronized(S2){ System.out.println(\"线程1锁定S2\"); } } } else{ synchronized(S2){ System.out.println(\"线程2锁定S2\"); synchronized(S1){ System.out.println(\"线程2锁定S1\"); } } } } public static void main(String[] args){ Thread t1 = new Thread(new P03(),\"th1\"); Thread t2 = new Thread(new P03(),\"th2\"); t1.start(); t2.start(); } }

2、编写程序(20分)

异常处理是程序编写过程中的必要部分,一般在容易产生异常的代码段需要使用try-catch代码块捕获异常并处理。请编写一个程序,客户输入一个数字,打印其平方,但是如果输入出错,通过异常处理不断提示用户重新输入,直到输入正确为止。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- niushuan.com 版权所有 赣ICP备2024042780号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务