您的位置:首页 > 其它

笔试基础(第二篇

2015-09-05 20:20 267 查看
1)下列程序执行后输出的结果是

#include<iostream>
using namespace std;

int f(int a)
{
    int b = 0;
    static int c = 3;
    a = c++, b++;
    return (a);
}
int main()
{
    int a = 2, i, k;
    for (i = 0; i < 2; i++)
        k = f(a++);
    printf(" % d\n", k);

    return 0;
}


A) 3

B) 0

C) 5

D) 4

解答:D

  这道题目考察主要操作符的优先级和static变量的生存期,因为逗号表达式的优先级最低,所有先计算赋值操作符,再计算逗号操作符,

  如果将a = c++, b++写成

     a = (c++, b++),则答案选B

  static变量只会初始化一次,并且具有全局生存期,所以main函数里的第二次调用f时,c不会初始化为3,而是保持4.

2)在多级存储体系中,“Cache-主存”结构的作用是解决( )的题目。

A) 主存容量不足

B) 辅存与CPU 速度不匹配

C) 主存与辅存速度不匹配

D) 主存与CPU速度不匹配

解答:D

  速度由大到小:CPU > cache > 内存 > 硬盘

  cache叫即高速缓存,由于CPU运行速度比硬盘和内存快得多,所以CPU在存储数据时会等待,cache位于主存和CPU之间,作用是解决主存和CPU速率匹配问题。主板上的控制系统统计主存中哪些数据被CPU频繁访问,然后将这些数据放入cache中,CPU读取时优先在cache中查找,提高了整体速率,如图(1)所示:

  


  图(1)”cache-主存”结构

3)以下关于各种类型路由特点的说法,哪些是不正确的?

A) 选路顺序是先选直达路由、其次迂回路由、再次基干路由;

B) 高效直达路由的呼损不能超过1%,该路由允许有话务溢出到其它路由;

C) 低呼损直达路由不允许话务量溢出到其它路由;

D) 个局向可设置多个路由。

解答:B

  高效直达路由对呼损率没有要求。

4)PING命令使用ICMP的哪一种code类型()

A) 重定向

B) Echo回响

C) 源印制

D) 目标不可达

解答:B

  Ping是Windows下的一个命令,在Unix和Linux下也有这个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。应用格式:Ping空格IP地址。该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。

  Ping实际上利用的就是ICMP ECHO和ICMP ECHO REPLY包来探测主机是否存在,所以Ping程序的流程十分简单:发送ICMP ECHO包—- > 接收ICMP ECHO REPLY包;

  发送ICMP ECHO包时填充Identifier为进程ID, Sequence Number为从0递增计数,data填充为发送时间;

  接收ICMP ECHO REPLY包时检查Identifier, Sequence Number是否正确,通过IP报头的源地址字段获得回送报文的主机地址是否正确。

5)衡量数字通信系统传输质量的指标是?

A) 误码率

B) 信噪比

C) 噪声功率

D) 话音清晰度

解答:A

  衡量数字通信系统传输质量的指标分为两种:可靠性和有效性指标,有效性主要指标为传输速率,可靠性主要指标误码率或者说是误信率,所以选择A。

6)下面关于编译系统和解释系统的观点中,错误的是?

A) 解释程序不产生目标代码,它直接执行源程序或源程序的内部形式

B) 使用编译系统时会区分编译阶段和运行阶段

C) 一般来说,编译系统的比较复杂,开发和维护费用都大。相反,解释系统比较简单,可移植性好,适合于以交互形式执行程序

D) 一般来说,建立在编译基础上的系统在执行速度上要优于建立在解释执行基础上的系统

解答:A

  解释程序执行的是对源文件解释后的代码;解释程序一边解释一边运行;解释程序跨平台的比较多;同一个源代码,只要平台上有解释器就可以运行;

  而编译程序最终生成的可执行文件与平台有很大的关系,一般在不同的平台上需要重新进行编译;

  一般来说编译后的可执行文件会比解释程序执行的快;

  解释程序,不能直接执行源代码,一般要对源文件进行“解释”,接着才能执行。

7)测试方法可以分成哪几种?

A) 个人复查

B) 抽查和会审

C) 黑盒测试

D) 白盒测试

解答: ABCD

  软件测试可以是人工测试:如个人复查,抽查和会审等,  

也可以是机器自动测试,又有不同的分类:

按照否关软件内部结构具体实现角度划:

  A.白盒测试B.黑盒测试 C.灰盒测试

按照软件发程按阶段划:

  A.单元测试 B.集测试 C.确认测试 D.系统测试 E.验收测试

8)下面哪些属于网游的测试内容?

A) 客户端性能

B) 服务器端性能

C) 从运行完 game.exe 打开游戏界面后可进行的各种操作、玩法

D) 界面

解答:ABCD

a) 性能

i. 客户端性能

ii. 服务器端性能

1. 服务器

2. 数据库

iii. 网络

b) 功能

i. 从运行完 game.exe 打开游戏界面后可进行的各种操作、玩法

ii. 界面

iii. 音乐

c) 自动化

i. 测试工作组织实施中需要的工具、软件、平台的开发

ii. 自动化的回归测试作用:游戏中基础的、变动不大的、出错率高的、可进行 checklist 重复测试的功能、性能等自动化是一个好方法

iii. 任何时候自动化都取代不了人脑,它只是将一些重复性的劳动从我们测试人员身上去掉,让我们有更多的时间做更有意义的事情,如果你觉得你做一件事情是重复的,且有规律可行的,不防考虑自动化

9)中断响应时间是指( )。

A) 从中断处理开始到中断处理结束所用的时间

B) 从发出中断请求到中断处理结束所用的时间

C) 从发出中断请求到进入中断处理所用的时间

D) 从中断处理结束到再次中断请求的时间

解答:C

  中断响应时间就是,有请求来了,到给你处理的这段时间。所以是C。

10)下面描述测试工具的功能正确的有?

A) Meter: 基于J***A的压力测试工具,Badboy用来进行脚本的录制

B) Junit: 白盒测试工具:针对代码测试

C) LoadRunner:负载压力测试

D) TestLink: 用例管理工具

解答:ABCD

LoadRunner-负载压力测试:预测系统性能。

JMeter+Badboy:基于J***A的压力测试工具,Badboy用来进行脚本的录制

功能测试:通过自动录制、检测和回放用户的应用操作。将输出记录同预先给定的记录比较。

Junit:白盒测试工具:针对代码测试

测试管理工具:对测试需求、计划、用例、实施进行管理

测试辅助工具:本身不执行,可以生成测试数据,为测试提供数据准备

负载压力测试:LoadRunner:预测系统行为和性能的工业标准级负载测试工具。模拟上千万用户同时实施并发操作,来实时监控可能发生的问题。

功能测试: QTP(quicktest professional):自动测试工具

白盒测试:C++ TEST(做C和C++的白盒测试)、JUnit(Java白盒测试)

缺陷管理工具:Mantis、BugFree、QC、TD

用例管理工具:TestLink、QC

测试辅助工具:SVN

11)设计系统测试计划需要参考的项目文挡有哪些?

A) 软件测试计划

B) 可行性研究报告

C) 软件需求规范

D) 迭代计划

解答:ACD

  测试计划需要“软件测试计划”、“软件需求规范”、“迭代计划”,而“软件可行性研究报告”是软件还没有做到时候考虑的,在测试的时候不需要考虑“可行性”。

12)有关”测试驱动开发”,下列说法正确的有?

A) TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码

B) TDD的基本思路就是通过测试来推动整个开发得进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。

C) TDD的重要目的不仅仅是测试软件,测试工作保证代码质量仅仅是其中一部分,而且是在开发过程中帮助客户和程序员去除模棱两可的需求。

D) TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。

解答:ABCD

  测试驱动开发,英文全称Test-Driven Development,简称 TDD ,是一种不同于传统 软件开发流程 的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。

  测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD得原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于敏感词开发方法和过程。TDD得基本思路就是通过测试来推动整个开发得进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。

  TDD的重要目的不仅仅是测试软件,测试工作保证代码质量仅仅是其中一部分,而且是在开发过程中帮助客户和程序员去除模棱两可的需求。TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。

  优点:在任意一个开发节点都可以拿出一个可以使用,含少量bug并具一定功能的产品。

  缺点:增加代码量。测试代码是系统代码的两倍或更多。

13)某航空公司有M个城市之间的全连通运营线路,最近业务扩张,新增了N(>1)个城市。为了保持其全连通运营的特色,公司新增了58种单程票(往与返各算一种单程票,没有联程票);那么扩张后,该航空公司有()个城市间的运营能力。

A) 13

B) 14

C) 15

D) 16

E) 17

F) 18

解答:B

  方法一: 原来M个城市需要C(M,2)条航线。往返票需要2*C(M,2)

增加N个城市后需要C(M+N,2)条航线。往返票需要2*C(M+N,2)

  2*(C(M+N,2)-C(M,2))=58;

化简得:

  N*( N+ 2M-1 ) = 58 = 2* 29

由于N>1,所以令N=2,得M=14

       令N=29,得M=-13(舍去)

综上所述:N=2,M=14

  方法二:增加1个城市,则增加M条往返程票;增加2个,则增加M+(M+1)条往返程;增加N个,则增加 M+(M+1)+…+(M+N-1) 条(即29条)往返程;

  M + (M+1) + (M+2) + … + (M+N-1)

 = N*( M + ( M+N-1)) / 2

 = N*(N+2M-1) / 2

 即 :

    N*(N+2M-1) / 2 = 29

 于是:

     N*(N+2M-1) = 58

 解得:

    N=2,M=14

 

 14)某二维平面上有12个位置不同的点,通过连接其中任意两点,可以画出59条不同的直线。那么,在59条直线中,经过3个或3个以上的点的直线有()条。

A) 0

B) 1

C) 2

D) 3

E) 5

F) 7

解答:C

  方法一:如果12个点中不存在任意三点共线的话,一共有C(12,2)=66条直线

题目说有59条直线,则一定存在三点或者三点以上共线的情况。

3点不共线,有C(3,2)=3条直线,3点共线有1条

4点不共线,有C(4,2)=6条直线,4点共线有1条

5点不共线,有C(5,2)=10条直线,5点共线有1条

如果存在5点共线的情况,则12个点至多有66-10+1=57条直线,所以不存在5点共线的情况

如果存在4点共线的情况,则12个点至多有66-6+1=61条直线,所以可能存在这种情况

如果存在3点共线的情况,则12个点至多有66-3+1=64条直线,所以可能存在这种情况

如果3点共线和4点共线情况都存在,则有66-6+1-3+1=59条直线

所以这些点中有一个3点共线的,有一个4点共线的。

所以穿过3个或三个以上的点直线有2条。

  方法二:

  3点一线,会减少 2条;

  4点一线,会在3点一线的基础上再减少3条,也就是 5条

题目中c(12,2) -59 = 66 - 59 = 7 ,

   又 7 = 2+5 (分解为2个数相加)

所以,穿过3个或三个以上的点直线有2条。

15)主机甲和主机乙间已建立一个TCP连接,主机甲向主机乙发送了两个连续的TCP段,分别包含300字节和500字节的有效载荷,第一个段的序列号为200,主机乙正确接收到两个段后,发送给主机甲的确认序列号是?

A) 500

B) 700

C) 800

D) 1000

解答: D

  确认序列号=原始序列号+TCP段的长度,所以第一次的确认序列号为200+300=500,第二次确认序列号为500+500=1000,选D。

  

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: