软件安全试卷

2022-05-16 16:15:32   第一文档网     [ 字体: ] [ 阅读: ] [ 文档下载 ]
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。下载word有问题请添加QQ:admin处理,感谢您的支持与谅解。点击这里给我发消息

#第一文档网# 导语】以下是®第一文档网的小编为您整理的《软件安全试卷》,欢迎阅读!
试卷,安全,软件



《软件安全》试卷 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、下列哪一项不是导致线程停止的方法(

Await() B.sleep() C. join() Dstop() 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、进程和线程有什么区别?

3Java中,异常和错误的区别? 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代码块捕获异常并处理。请编写一个程序,客户输入一个数字,打印其平方,但是如果输入出错,通过异常处理不断提示用户重新输入,直到输入正确为止。








本文来源:https://www.dywdw.cn/fd6dd4b20342a8956bec0975f46527d3240ca6dd.html

相关推荐
推荐阅读