2025年java高级开发笔试题(高级java笔试题目)

java高级开发笔试题(高级java笔试题目)高级软件开发笔试题目 精选 9 篇 后悔啊 俺就凑合了两行 6 P1dB IIP3 等等 反复的问 我已经被问晕掉了 测试研发必考 7 接收机噪声系数的问题 8 射频同轴电缆的指标参数 9 默写麦克斯韦方程组啊 哭死鸟啊 背了几遍都是记错了 后悔啊 10 一个简单的 IIP3 计算 公式看了 忘记了 木有办法的啊 还是不会 11 RBW 12 频谱分析仪的几个选择题 记不太清了

大家好,我是讯享网,很高兴认识大家。



高级软件开发笔试题目(精选9篇)

。。后悔啊,俺就凑合了两行

6,P1dB,IIP3,等等 反复的问,我已经被问晕掉了 测试研发必考

7, 接收机噪声系数的问题

8,射频同轴电缆的指标参数

9,默写麦克斯韦方程组啊 哭死鸟啊,背了几遍都是记错了,后悔啊

10,一个简单的IIP3计算,公式看了,忘记了,木有办法的啊 还是不会。。。

11, RBW

12,频谱分析仪的几个选择题,记不太清了,反正是基本的 好像是问 它的测量精度和什么有关系(多选)

WCDMA OAM Verification Engineer –BJ

1-1Explain/Describe the UMTS physical network architecture, and indicate the interface used between devices.

1-1 In UMTS,what’s the difference between AAL2 and AAL5?

1-2 In UMTS,what do FDD and TDD mean?

1-3 Describe the processor of hardover and soft handover?

1-4 Describe the spread mechanism used in UMTS, and please draw the power spectrum before and after spreading.

1-5 Please describe the functionalities of rake recEiver?

2-1 Explain (draw) the 4 TCP-IP layer.

2-2 What’s DNS? What’s domain name? What’s the relationship between IP address and domain name?

2-3 What’s IP routing? Please list and explain several routing protocols.

2-4 What’s the function of firewall?

2-5 Please explain telnet and ssh protocol.What’s the difference between them?

3-1 List the Network Management System you know.

3-2 What’s the purpose of UMTS Network Management System.

3-3 List all the functions UMTS Network Management tool should provide and give your explanation about these functions.

3-4 Please describe the network performance optimization in UMTS network management system?

4-1 What are the meaning of these commands.

ls df cp chmod chown mv tar cpio init 0 init 6 vi aa.txt ifconfig netstat-a ps grep find(give example) iostat uname cat more tail head wc

5-1 In a Unix shell script, how to export the number of arguments of a script?

5-2 There is one variable in the shell script named “sample name”, please write a script to check whether it is a file or a directory name. Please output in this format: directory : samplename or file: samplename.

5-3 Please write a Unix shell script which ask user to input a sentence and output each work in a line.

for example:

input :

run test3.sh

promt : enter some text : I like the korn shell.

Output :

I like the korn shell

5-4 Please write a regular expression to replace “Micheal” with “Mike” in this file :ResumeOfMicheal and output to another file named ResumeOfMike.

6-1 Explain the meaning og the following computer science abbreviations

UML CORBA IDL JRE JNLP JMS DHCP VBA DLL DDBC

6-2 Please list the software life cycle model you know .describe one model in terms of advantage and disadvantage.

a) 一个整型数;

b)一个指向整型数的指针;

c)一个指向指针的指针,它指向的指针是指向一个整型数;

d)一个有10个整型的数组;

e)一个有10个指针的数组,该指针是指向一个整型数;

f)一个指向有10个整型数数组的指针;

g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数;

h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数

答案:

a)int a

b)int *a;

c)int a;

d)int a[10];

e)int *a [10];

f) int (*a)[10]

g)int (*a)(int)

h) int( *a[10])(int)

2、(4分)请写出以下语句的输出结果:

Int i=43;

Int j=5;

Double f=25.45181;

a) printf(“i=%d,j=%d,f=%3.2f”,i,j,f);

b) printf(“i=%x,j=%06d,i/j=%d”,i,j,i/j);

答案:

A)i=43,j=5,f=25.45

(说明:本来应该输出最小3位有效数字,25.5,但是由于限定了2位小数,所以强制有2位小数,有效数字的个数就起不到强制作用了。如果是%3.1,则输出为25.5)

B)i=2B ,j=000005,i/j=8

(%x显示的是一个无符号的0x 16进制的整数,%06d输出的是6位数,不够6位数,前面补0,i/j两个整数相除,只取商的整数值)

3、(2分)请完成以下宏定义:

a)用预处理指令#define 声明一个常数,用以表明1年中有多少个秒(忽略闰年问题) b)写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个

答案:

a)#define SECONDS (365*24*60*60)UL

b) #define MIN(a,b) ((A)<(B)?(A):(B))

扩展:MAX宏 #define MAX ((A)>(B)?(A):(B))

ABS宏 #define ABS (((X)>0)?(X):(-(X)))

4、(6分)以下为32为windows下的c++程序,请计算:

a)

char str=”hello”;

char *p=str;

请计算:

sizeof(str)=6

sizeof(p)=4

strlen(p)=5

答案:6,字符串数组以�(空格为结尾,所以str数组空间大小为5+1)

4,计算的是指针的长度。

5,strlen函数区的字符指针str的长度,不包括空字符。

b)

void func(char str[100])

{

Void *p=malloc(100);

}

请计算:

sizeof(str)=100,:表示在内存中预分配的内存大小。

sizeof (p)=4

c)

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

int b=sizeof(a)/sizeof(a[0]); sizeof(a)求的是数组的大小。

请计算:

b=3,对的。

5、(2分) 设有定义:int n=0,*p=&n,q=&p; 则以下选项中,正确的赋值语句是(d) a)p=1; b)*q=2; c)q=p; d)*p=5;

©改成q=&p; 才对。

6、(2分)const关键字的用途?(至少说明两种)

答案:

(1)可以定义 const 常量

(2)const 可以修饰函数的参数、返回值,甚至函数的定义体。被const 修饰的东 西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。

关键词:目标,项目,课程

《c++高级编程》课程是游戏软件开发教学中的一门专业核心能力培养课程。该课程的先修课有《c++编程基础》、《数据结构》等课程, 后续课有《DirectX图形开发》、《单机及网络游戏设计》等课程, 通过对本课程的学习, 学生们将从软件基础编程真正步入游戏软件编程。

一、课程开设原因

首先因为c++语言开发的程序具有执行高效等一些特性, 是目前网络游戏开发的首选语言, 根据《2008年中国游戏市场调查报告》显示:目前60%以上的网络游戏是由c++程序开发的。其次调查中华英才、智联招聘、中国人才热线等一些人才招聘网站可以看到, 50%以上游戏开发岗位均要求熟练掌握C++高级编程技术。

二、课程设计思路与培养目标

本课程的设计思路是:建立真实的工作过程, 设置典型工作任务, 充分利用企业的成熟项目、先进技术和专业经验等优势, 使学生的培养过程真正实现以学生为主体、工学结合。

游戏开发人才培养方向针对的核心岗位有两个:游戏编程和游戏测试。通过对岗位调查报告进行分析汇总, 这两个岗位对《C++高级编程》这门课程提出了以下培养要求:树立良好的游戏开发思想、熟练掌握和运用C++语言特性进行游戏软件开发, 同时培养良好的沟通能力、自觉的规范意识、独立分析问题解决问题的能力。

根据课程设计思路, 结合岗位调查报告分析, 《C++高级编程》的课程培养目标是:首先、通过公司化的任务设置和团队模式来培养学生良好的团队精神和独立分析、解决问题的能力, 使学生具备行业认可的通用能力。其次、通过对专业经典项目的设置, 培养学生良好的游戏编程思想, 并用工程技术将这种思想实现, 使学生掌握良好的专业核心能力。另外、适当安排一线企业游戏软件开发工程师参与综合项目实践的整个过程, 以公司的岗位要求全程指导学生综合项目实践, 针对性培养学生岗位专用能力。

三、课程设计实施

课程设计实施过程包括项目总体安排和教学过程具体实施两部分, 下面我们将对其分别进行详细阐述。

(一) 项目总体安排

技术项目的开发主要包括两个, 第一个是图书管理系统, 第二个是综合项目:连连看 (单机游戏) , 这两个项目的安排是由简单到复杂的递进关系。对于图书管理系统, 学生们非常熟悉, 因为每个人都去图书馆借过书, 对整个借书流程非常了解, 所以这个项目的开发相对简单、易操作。第二个项目连连看游戏开发难度加大, 因为游戏软件的开发和MIS系统类的软件开发还存在着很多的不同。它除了预定功能的实现以外, 还要求对用户 (也就是游戏玩家) 进行一个综合的考虑。

另外在每一个项目的实施过程中, 引入游戏开发企业的项目机制:明确任务、项目准备、分析需求、项目实施、项目测试和项目验收六个环节, 真实模拟企业项目实施流程。这几个环节, 将在下面的项目具体实施过程中进行详细的讲解。

(二) 教学具体实施过程 (以综合项目:连连看 (单机游戏) 为例)

1、项目确定

为什么要选择这个项目呢?原因是:第一, 这个游戏学生非常感兴趣、非常熟悉。第二, 通过专业课老师或公司技术人员的指导, 学生开发任务可以实现。第三, 有助于培养学生们良好的游戏开发思想。

2、项目准备

在这个环节采用任务实施主体多元化和实施内容多样化的形式。授课教师要对项目所用到的知识进行讲解和应用演示, 学生要组成团队、确定负责人, 负责人要完成团队分工并以团队的形式进行资料准备。这个环节主要锻炼学生们团队合作、分析解决问题的能力, 最终实现行业通用能力的培养目标。

3、分析需求

首先两个小组为一对, 分别扮演用户玩家与项目开发者角色, 站在不同角度共同去分析需求。另外, 邀请游戏软件公司的技术工程师给学生详细介绍公司是如何分析需求。同时, 借阅游戏软件开发企业成熟项目的一些开发文档, 供学生们参考学习。最后每个小组完成分析需求、功能分解。

4、项目实施

在此过程中主要强调项目实施注意事项, 比如, 程序开发标准化。因为学生在以前的程序开发中, 往往对许多细节不太在意。例如, 在命名一些项目名称, 功能模块的时候, 往往会使用123, abc这样的命名, 经常出现这种开发内容他人无法阅读的情况。这在公司中, 是被严令禁止的, 因为一个项目的开发, 往往都是团队, 最需要的就是沟通协作和资源共享。正像一句话说的“细节决定成败”, 所以要让学生树立一种良好游戏开发思想, 专业核心能力得到培养。这个环节的最后, 学生们除了要完成作品以外, 还要完成开发文档的撰写。

5、项目测试

众所周知, 一个游戏产品上线运营之前, 都要进行严格的内部测试和公开测试。这个环节我们也引入了项目教学, 学生们完成游戏开发以后, 要进行内部测试, 内部测试呢, 小组之间互为玩家, 进行测试和修改。内部测试以后, 每个小组邀请其他班级的同学, 来试玩本小组开发的游戏, 进行公开测试, 收集意见。结合这两个部分, 完成测试报告。特别建议, 在这个环节一定要使学生对游戏测试引起高度, 因为这直接关系着一个游戏项目今后运营的成败。

6、项目验收

项目验收采用综合评分制, 其中包括小组互评部分、特邀玩家测评部分、项目答辩部分 (评委由专业课老师和企业一线工程师共同组成) 、项目总结部分, 其中要特别说明的是项目总结部分, 项目总结是指项目完成后对项目进行角色换位思考、模拟再实现、完善测评的一个综合过程, 是技术熟练掌握的一个再提高过程。

四、课程设计问题思考

我们在进行项目教学, 同时企业也在进项目开发, 那么为什么项目在企业进行的那么顺利高效?为什么企业的员工在项目实施过程中那么积极努力?

针对这个问题, 我们通过走访企业开展调查, 总结得到的答案是:每个企业不仅有严格、完善的考核机制, 而且企业的内部竞争激励, 每一位员工在竞争压力面前, 时刻身怀危机意识, 只有努力拼搏、大胆创新才能在个人核心竞争力上具有优势。那么, 在校学生参与项目实践的动力是什么呢?我们老师做为项目的实施负责人不可能像企业的老板一样, 去扣工资, 炒鱿鱼, 我们靠什么调动学生的积极性呢?通过调查和讨论, 发现只有严考核、重奖励才能使学生充分融入项目教学全过程, 充分发挥参与项目实践的积极性。所以我们认为严格的课程考核和优厚的奖励措施是我们整个课程设计顺利执行的保证。

参考文献

[1]童寅山.独立游戏开发分析[J], 程序员:游戏创造, 2006 (10) .

[2]李桂芹.提高游戏开发人才培养水平的困难与条件[J], 经济研究导刊, 2009.

关键词:通讯软件;基本功能;高级语言;应用能力

中图分类号:TP391 文献标识码:A 文章编号:1674-7712 (2013) 12-0000-01

一、需求分析

(一)技術可行性分析:目前通讯软件已经有成熟的产品,相对技术层面完全

可以满足系统前台和后台的需求,尤其VB高级语言,特有通信的端口使得编程实现变得更加方便简捷。

(二)经济可行性:本通讯软件,目的是完成通讯软件的基本功能,便于应用。在有具体需求时,加以扩展。所以经济花费极小。在完成功能编写后,功能可以扩展,也可以为企业、公司所使用有一定的经济价值,具有经济可行性。

(三)用户功能分析:注册过的用户才可以使用该软件发送和接受信息。用

户注册功能:注册新用户。能够添加好友,并显示在好友名单中。能够在好友

名单中选择一个好友,给好友即时发送信息。发送的信息中可以带有表情符号。

当好友不在线时信息存储在服务器,也就是可以给其留言。当收到信息时要求有提示,避免错过及时查看信息。能够存储历史信息,一边查看以前的信息。

能够将某些人添加到黑名单,能自动屏蔽黑名单中的人发送来的信息,避免被骚扰。

二、功能实现与主要模块介绍

(一)功能与实现系统采用客户/服务器设计模式,以服务器端进行响应,客户端发出请求。客户端等待应答,得到相应后(即得到应答)可完成请求或者被拒绝操作。通信协议选用TCP/IP协议,通讯软件的实现同样可以使用UDP协议来实现,但是在实际应用工作中,UDP要劣于TCP/IP协议簇,因为前者属于无连接无应答式协议,安全不能得到保证,一些屏蔽功能的操作,使用UDP协议无法实现或者实现困难。单位的通讯软件后台数据库要求不高,可以任意选用。设计以两大部分进行。首先是服务器部分,整理并总结服务器端所需要做的工作,划分功能模块,进一步对应到窗体的设计和控件的选用。客户端也是同样的流程,客户端主要包含的窗体应该有主索引窗体、用户注册登录窗体、通讯消息窗体等等。具体代码因篇幅有限以服务器端和客户端口的连接通信为例,简要说明。

PrivateSubwskServer_ConnectionRequest(IndexAsInteger,ByValrequestIDAsLong)

OnErrorResumeNext

LinkCount=LinkCount+1

LoadwskServer(LinkCount)

wskServer(LinkCount).LocalPort=0

wskServer(LinkCount).AcceptrequestID

EndSub

此段代码是连接到服务器端,服务器用户进行计数,从VB的控件WINSOCK来创建服务,服务器端为这个请求设置相应的服务。

(二)模块介绍:如果从模块化角度分析,通讯软件应该有用户注册模块、系统维护模块、屏蔽模块、添加联系人模块。用户注册模块是为用户第一次登录服务的,进行相关信息的登记并存入数据库,完成注册。这里注册模块和登录模块是同一模块,如果不是第一次的用户则直接点击登录,输入用户名和密码,通过数据库的验证为正确,就可以使用。屏蔽模块,是对用户通讯选择的人性化体现,如果用户不喜欢和某人联系,为了避免骚扰,可以屏蔽某人的信息,使得某人的信息不会再出现在用户的界面中。添加联系人模块,提供了号码添加和关键字添加,你可以添加已知固定号码的用户,也可以根据关键字进行添加,这里是采用模糊查询的方式进行关键字搜索。系统维护提供了管理员多层密码管理和系统维护的功能。当系统出现错误时便于修改。

三、功能测试

这里主要采用黑盒法对功能进行测试,首先测试消息收发功能软件运行过程中,可以给指定的用户发送即时消息。如果接收到其他用户发送给自己的消息,操作系统状态栏上的图标就会不停地变化以提示用户。在状态栏图标上单击鼠标右键,就会弹出一个菜单。单击“显示新消息”菜单项可以显示用户收到的新消息。双击该新消息,就会自动将该消息从新消息队列中删除,并且添加到历史消息中。接着测试登录、离线、屏蔽功能。启动菜单;离线、上线按钮可以切换客户端是否在线;屏蔽可以显示用户设定的不显示用户;再对历史记录功能进行测试在客户端会保留用户收到的历史消息,在状态栏的图标上单击鼠标右键查找后会出现历史记录。经测试能完成基本功能。

参考文献:

[1]丁龙.基于VB的定制软件开发与应用[J].电脑编程技巧与维护,2012(12).

[2]陈丽.浅谈VB编程常用技巧[J].科技信息(科学教研),2008(05).

[3]李瑾颉.基于即时通讯工具的知识传播与网络结构研究[D].山西师范大学,2012.

[4]罗伟.基于Android平台的即时通讯系统的研究与实现[D].湖南师范大学,2009.

[5]王森.即时通讯工具对人际关系的影响[D].成都理工大学,2009.

[6]李长城.基于Linux的即时通讯软件的研究与实现[D].哈尔滨工程大学,2008.

[7]孟锐.基于Linux的网络即时通讯软件设计与实现[D].西南交通大学,2002.

注意: 答题过程如果您不提交答案,或者关闭浏览器退出,我们将不再允许您再次答题,

谢谢!

试题 选项

question 1. (单选)

下列字符中,ascii码值最小的是

1. a

2. a

3. x

4. y

question 2. (单选)


讯享网

osi(开放系统互联)参考模型的最低层是

1. 传输层

2. 网络层

3. 物理层

4. 应用层

question 3. (单选)

计算机中,一个浮点数由两部分组成,它们是

1. 阶码和尾数

2. 基数和尾数

3. 阶码和基数

4. 整数和小数

question 4. (单选)

存储400个24x24点阵汉字字形所需的存储容量是

1. 255kb

2. 75kb

3. 37.5kb

4. 28.125kb

question 5. (单选)

用于保存计算机输入输出数据的材料及其制品称为

1. 输入输出媒体

2. 输入输出通道

3. 输入输出接口

4. 输入输出端口

question 6. (单选)

下面是关于解释程序和编译程序的论述,其中正确的一条是

1. 编译程序和解释程序均能产生目标程序

2. 编译程序和解释程序均不能产生目标程序

3. 编译程序能产生目标程序而解释程序则不能

4. 编译程序不能产生目标程序而解释程序能

question 7. (单选)

下面是与地址有关的四条论述,其中有错的一条是

1. 地址寄存器是用来存储地址的寄存器

2. 地址码是指令中给出源操作数地址或运算结果的目的地址的有关信息部分

3. 地址总线上既可传送地址信息,也可传送控制信息和其他信息

4. 地址总线上除传送地址信息外,不可以用于传输控制信息和其它信息

question 8. (单选)

下列四个不同数制表示的数中,数值最大的是

1. 二进制数

2. 八进制数334

3. 十进制数219

4. 十六进制数da

question 9. (单选)

当个人计算机以拨号方式接入internet网时,必须使用的.设备是

1. 网卡

2. 调制解调器(modem)

3. 电话机

4. 浏览器软件

question 10. (单选)

微机计算机硬件系统中最核心的部件是

1. 主板

2. cpu

3. 内存储器

4. i/o设备

question 11. (单选)

为解决某一特定问题而设计的指令序列称为

1. 文档

2. 语言

3. 程序

4. 系统

question 12. (单选)

下列关于系统软件的四条叙述中,正确的一条是

1. 系统软件与具体应用领域无关

2. 系统软件与具体硬件逻辑功能无关

3. 系统软件是在应用软件基础上开发的

A论坛里有很多玩家说你设计的某个游戏里面哪个门派不够强,其中一个门派还集体说要提升其门派的实力,否则就集体退出游戏。

B你的朋友告诉你游戏还是不要改,不然改了之后骂声更多。

C 客服人员反映说一个VIP玩家建议说有个门派的实力太弱了,要提升一下。

D 一个资深的游戏设计人员告诉你说某个门派的实力太弱,需要加强,但是论坛里该门派并没有类似的反应。

E 公司总裁也是你的游戏玩家,他玩过之后说有个门派实力太弱,该提升。

F 很多玩家反映有一个门派的实力过强,而你恰恰是这个门派的长老,玩过很多时间,进行了一些改进,但是你自己却发觉甚至比以前打敌人更加吃力了。

G 数据显示一个门派的玩家流失率很大,但是却没有相关评价说该门派的实力太弱。

要求对这些重视程度进行排序,然后在每一项后面写出排在该位置的理由,最后再写出你对待每一项的解决办法。

我的理解:

四种,答题的时候我忘了reinterpret_cast怎么拼写。要求写成示例代码, 不过我没写(没上下文环境,还得我自个去自定义类型,太费事了)。

(2)explicit关键字的作用。

我的理解:

去除隐式转换。

(3)虚析构函数。

我的理解:

在一个继承体系中,基类的析构函数必须设置为虚函数,不然可能存在析构不完整的危险。

2、是一个改错题。大概考察的知识是:vector、多态、虚函数表指针。

我的理解:

(1)要实现多态,vector里边保存的必须是地址(指针),而不能是基类、引用。

(2)定义vector的const_iterator。

(3)派生类的构造函数是在派生类对象构造的最后阶段才被调用的,当调用构造函数的时候,对象的基类子对象、成员变量(对象)已经初始化完毕。所以派生类的构造函数不可以乱来。

3、容器的传参和erase操作

给出的是一个函数,其中关键的部分大概是这样:

for(vector::iterator iter = ivec.begin; iter != ivec.end; ++iter)

{

if (*iter == N)

ivec.erase(iter);

}

我的理解:

(1) 容器类对象传参的时候最好用引用。

(2) erase操作之后会导致迭代器失效。

(3) 可能会导致删除不彻底,因为erase之后iter指向了下一个元素,而for循环中又++iter,这样会跳过一个元素,而且可能跳到vector对象之外的地方,最后导致出错。(我只考虑到会跳过一个元素,没有想到如果最后一个被删元素刚好是vector对象的最后一个元素,那么会跳出对象之外的地方。其实这个问题几个星期前在csdn上回答过,不过我通过上机得出的答案一下子就被我抛到脑后)

4、智能指针。

大概意思是:引用计数型的智能指针存在循环引用的缺陷,需要一个“弱引用”智能指针。大概是要求实现这两个智能指针。

我的理解:

很遗憾。我想题目是想答题者实现boost库里的shared_ptr和weak_ptr,我知道这两个指针的存在,但问题是我没考虑过它们是怎么实现的。主要是弱指针不知道该怎么做。引用计数型的智能指针凑合着写了出来,不过写得超乱,而且构造函数有错误。

一方面是很少用手写代码,一方面是几乎没有自己亲手写过智能指针,虽然分析学习了不少简单例子。虽然以前看书的时候看到“循环引用”这回事,只是当时不知道是什么,现在依然不知道,忘了问why。

算法考察的内容:

1、有一个N位二进制数,找出其中没有相邻11的数的个数。例如:N=2时,00,01,10,11,其中没有相邻11的数的个数有3个。

我的理解:

求相邻11的数的个数。

N位数跟N-1位数有关系。如果一个数在N-1中是“相邻11”,那么在这个数前面添加上0或1它还是一个相邻11的数。这里边就至少有两倍的关系了。另外,如果N-1中有数是这样的:“10”,那么在N位数中,在它前面添加上1这个数就是“相邻11”了。那么N-1位数中有多少个“10”这样的数字呢?对于N-1位的数来说, 如果头一两位是“10”,后边就还有N-3位的二进制位,所以以“10”开头的数有2的(N-3)次方个。

列出如下:N就是在N-1的数前面加上1、0。

N=2

00 01 10 11

N=3

000 001 010 011

100 101 110 111

N=4

0000 0001 0010 0011

1000 1001 1010 1011

0100 0101 0110 0111

1100 1101 1110 1111

感觉这就是数字的组合的问题。另外,上边是我个人的理解,也不一定是对的。

(结果证明,我真的错了,唯一一道会写的算法题,泪奔……)

修正:非相邻11的数字的个数正如楼下所说是斐波那契序列。因为我一开始就没往“非相邻11”方向想,而是往“相邻11”方向考虑,所以没发觉另一个方向其实有捷径可通…….但我还是想把这条路走完,虽然走了弯路。

我的分析出差错的原因在这里:“所以以“10”开头的数有2的(N-3)次方个”,这句话没错,但是没考虑到这(N-3)个位里也有可能存在“相邻11”,导致了重复计算“相邻11”的数。必须减去才行。计算“相邻11”个数的函数如下:

int fun(int n)

{

[size=9pt]if (n return 0;

if (n == 2)

return 1;

if (n == 3)

return 3;

[size=9pt]return ((fun(n-1))*2 + (2}

以上方式实现比较垃圾。比较好的方式有(第二种更好一些,但第一种的思路很值得学习):

(1)

//实现:动态规划,递推算法

/*参考:

用动态规划的东西 “[j]保存i位长的二进制位,最后一位是j” 的时候的个数,那么

[0] = [i - 1][1] + [i - 1][0];

[1] = [i - 1][0];

*/

//20xx.9.19

#include

using namespace std;

int fun(int N);

int main

{

int N;

[size=9pt]cout cin >>N;

[size=9pt]cout return 0;

}

/////////////////////////////////////////////////////////////////////

int fun(int N)

{

//申请空间。时间换空间

int p = new int*[N];

for (int i = 0; i != N; ++i)

{

p = new int[2];

}

//算法核心。递推。

p[0][0] = 1;

p[0][1] = 1;

[size=9pt]for (int i = 1; i {

//求i个二进制位以0结尾的非11相邻数:i-1个二进制位的非“11相邻”数,后边填加上一个0,必定也是非11相邻数

p[0] = p[i-1][0] + p[i-1][1];

//求i个二进制位以1结尾的非11相邻数:i-1个二进制位的非“11相邻”数必须以0结尾.

p[1] = p[i-1][0];

}

//保存返回值

int ret = p[N-1][0] + p[N-1][1];

//释放空间

for (int i = 0; i != N; ++i)

{

p;

}

p;

return ret;

}

(2)

//实现:斐波那契数列实现

/*参考:

通过列出非相邻11的数的个数,可以发现其实这个就是斐波那契数列。2,3,5,8,13,……

*/

//20xx.9.19

#include

using namespace std;

int fun(int n);

int main

{

int n;

[size=9pt]cout cin >>n;

[size=9pt]cout return 0;

}

int fun(int n)

{

if (n == 1)

return 2;

if (n == 2)

return 3;

int f1 = 2;

int f2 = 3;

int f3;

[size=9pt]for (int i = 2; i {

f3 = f1 + f2;

f1 = f2;

f2 = f3;

}

return f3;

}

2、对一个服务器日志的分析。

日志里边记录了IP登录信息,信息内容有时间和IP地址。现在要统计

(1) 每一天登录次数最多的1000个IP。以登录次数为序,从高到低排序

(2) 每一周登录次数最多的1000个IP。以登录次数为序,从高到低排序

答案:

测试设计阶段:

1)了解被测系统的性能需求,定义测试目标和范围;

2)了解系统的技术信息,如系统架构等;

3)确定测试方案、进度安排,并制定测试计划,场景设置方案,及需要收集的测试数据;

4)同相关人员协商讨论测试方案;

5)准备数据收集模板;不同项目的性能测试,需要收集的数据不同;针对性的制定一个模板,更符合需要;

测试环境准备:

1)技术准备;选择性能测试工具;测试方案中涉及到的技术问题;测试数据的收集方案实现;如:如何监控系统资源等;

2)搭建测试环境;

3)创建初始数据;如虚拟用户使用的账号等;

测试执行阶段:

1)录制脚本;

2)调试脚本;

3)执行场景;

4)收集测试数据,并简单整理;

测试分析阶段:

1)分析测试数据;

提交测试报告 。

2、解释5个常用的性能指标的名称与具体含义。

答案:

并发:所有用户在同一时刻对系统执行操作,一般指做同一件事情或操作。

在线:所有用户在一段时间内对系统执行操作。

请求响应时间

从client端发出请求到得到响应的整个时间;

包括:client端响应时间+网络响应时间+Server端响应时间。

事务请求响应时间

完成相应事务所用的时间;这个是性能测试中重点关注的指标。

TPS(Transaction Per Second)

每秒钟系统能够处理的交易或事务的数量。它是衡量系统处理能力的重要指标。TPS是LoadRunner中重要的性能参数指标。

点击率(Hit Per Second)

每秒发送的HTTP请求的数量;点击率越大对Server的压力越大。

资源利用率

对不同资源的使用程度,如CPU,I/O,内存,……

3、写出5个Loadrunner中常用函数,并对其中2个举例说明用法。

答案:

字符串复制

strcpy(str,”Hello “) ;

字符串连接

strcat(str,”World !”);

lr_message(“str: %s”,str);

sprintf(s, “%s love %s.”, “I”, “ocean”); //产生:”I love ocean. ”

变量转为参数,将变量str的值存到参数Param中

lr_save_string(str,”Param”);

参数复制

lr_save_string(lr_eval_string(“{Param}”),”Param_1″);

参数转为变量

strcpy(str1,lr_eval_string(“{Param_1}”));

4、简述LoadRunner的工作原理?

答案: loadrunner会自动监控指定的URL或应用程序所发出的请求及服务器返回的响应,它做为一个第三方(Agent)监视客户端与服务器端的所有对话,然后把这些对话记录下来,生成脚本,再次运行时模拟客户端发出的请求,捕获服务器端的响应。

5、LaodRunner脚本中action和init、end()除了迭代的区别还有其他吗?

答案: 集合点只能插入到Action部分,vuser_init和vuser_end 中不能插入集合点。action()和init、end()都可以插入事务点。

6、什么是集合点?设置集合点有什么意义?LoadRunner中设置集合点的函数是哪个?

答案: 集合点:是一个并发访问的点,例如在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,并发访问的目的。

注意:集合点经常和事务结合起来使用,常放在事务的前面,集合点只能插入到Action 部分,vuser_init和vuser_end 中不能插入集合点。集合点函数如下:lr_rendezvous(“SubmitData”)

7、录制Web脚本时,生成的脚本中存在乱码该如何解决?

答案 : 录制脚本前,打开录制选项配置对话框Record-Options,进入到Advanced标签,先勾选”Support charset”,然后选择中支持UTF-8再次录制,就不会出现中文乱码问题了。

8、HTML-based script与URL-based script的脚本有什么区别?

答案: 使用”HTML-based script”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用”URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。

通常,基于浏览器的Web应用会使用”HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用”URL-based script”模式进行录制。

9、使用LoadRunner进行综合场景测试,如何设置能够使被测系统所受压力减轻,请分别加以说明。

答案: 若使被测系统所受压力减轻,可从如下方面进行综合调解:

将测试脚本中think time值加大并在控制台中按比例实现,此处think time指在transaction外部的时间;

Controller中Run-Time Setting的Pacing设置值加大;

虚拟用户登录时使用递增策略,间隔稍长。

1、软件测试的目的是尽可能多的找出软件的缺陷。(Y)

2、Beta 测试是验收测试的一种。(Y)

3、验收测试是由最终用户来实施的。(N)α测试是指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的 用户操作方式。经过α测试调整的软件产品称为β版本。紧随其后的β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出批评意见。然后软件开发公司再对β版本进行改错和完善。 一般包括功能度、安全可靠性、易用性、可扩充性、兼容性、效率、资源占用率、用户文档八个方面。

4、项目立项前测试人员不需要提交任何工件。(Y)

5、单元测试能发现约80%的软件缺陷。(Y)

6、代码评审是检查源代码是否达到模块设计的要求。(N) 指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。

7、自底向上集成需要测试员编写驱动程序。(Y)

8、负载测试是验证要检验的系统的能力最高能达到什么程度。(N)负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行

9、测试人员要坚持原则,缺陷未修复完坚决不予通过。(N)

10、代码评审员一般由测试员担任。(N)由若干程序员和测试员组成审查小组

11、我们可以人为的使得软件不存在配置问题。(N)

12、集成测试计划在需求分析阶段末提交。(N)

二、选折

1、软件验收测试的合格通过准则是:(ABCD)

A、 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。

B、 所有测试项没有残余一级、二级和三级错误。

C、 立项审批表、需求分析文档、设计文档和编码实现一致。

D、 验收测试工件齐全。

2、软件测试计划评审会需要哪些人员参加?(ABCD)

A、项目经理B、SQA 负责人C、配置负责人D、测试组

3、下列关于alpha 测试的描述中正确的是:(AD)

A、alpha 测试需要用户代表参加B、alpha 测试不需要用户代表参加

C、alpha 测试是系统测试的一种D、alpha 测试是验收测试的一种

4、测试设计员的职责有:(BC)

A、制定测试计划B、设计测试用例C、设计测试过程、脚本D、评估测试活动

5、软件实施活动的进入准则是:(ABC)

A、需求工件已经被基线化B、详细设计工件已经被基线化C、构架工件已经被基线化

D、项目阶段成果已经被基线化

三、添空

1、软件验收测试包括: 正式验收测试,alpha测试,beta测试。

2、系统测试的策略有: 功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以合在一起,分开写只要写出15就满分哦)

3、设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。

4、对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。

四、简答

1、区别阶段评审的与同行评审

① 同行评审目的:发现小规模工作产品的错误,只要是找错误;

② 同行评审人数:3-7人人员必须经过同行评审会议的培训,由SQA指导

③ 同行评审内容:内容小一般文档 < 40页, 代码 < 500行

④ 同行评审时间:一小部分工作产品完成

⑤ 阶段评审目的:评审模块阶段作品的正确性 可行性 及完整性

⑥ 阶段评审人数:5人左右评审人必须是专家 具有系统评审资格

⑦ 阶段评审内容: 内容多,主要看重点

⑧ 阶段评审时间: 通常是设置在关键路径的时间点上!

2、什么是软件测试

为了发现程序中的错误而执行程序的过程

3、简述集成测试的过程

系统集成测试主要包括以下过程:

1、构建的确认过程。

2、 补丁的确认过程。

3、 系统集成测试测试组提交过程。

4、 测试用例设计过程。

5、 测试代码编写过程。

6、 Bug的报告过程。

7、 每周/每两周的构建过程。

8、 点对点的测试过程。

9、 组内培训过程。

4、怎么做好文档测试

① 仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。

② 检查文档的编写是否满足文档编写的目的

③ 内容是否齐全,正确

④ 内容是否完善

⑤ 标记是否正确

5、白盒测试有几种方法

总体上分为静态方法和动态方法两大类。

静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义

动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

6、系统测试计划是否需要同行审批,为什么

需要,系统测试计划属于项目阶段性关键文档,因此需要评审。

7、Alpha测试与beta的区别

Alpha测试 在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。

Beta测试 当开发和测试根本完成时所做的测试,最终的.错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。

8、比较负载测试,容量测试和强度测试的区别

负载测试:

在一定的工作负荷下,系统的负荷及响应时间。

强度测试:

在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。 容量测试:容量测试目的是通过测试预先分析出反映软件 系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据 的,并且它的目的是显示系统可以处理目标内确定的数据容量。

9、测试结束的标准是什么?

用例全部测试。覆盖率达到标准。缺陷率达到标准。其他指标达到质量标准

10、描述软件测试活动的生命周期?

测试周期分为计划、设计、实现、执行、总结。

计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等; 设计:完成测试方案,从技术层面上对测试进行规划;

实现:进行测试用例和测试规程设计;

执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。

小讯
上一篇 2025-05-31 23:37
下一篇 2025-04-26 18:36

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/202062.html