免费智能真题库 > 历年试卷 > 程序员 > 2019年下半年 程序员 上午试卷 综合知识
  第49题      
  知识点:   程序流程图   数组
  章/节:   程序测试基础知识       

 
右图是求数组A中最大元素的程序流程图,图中共有(49)条路径。假设数组A有5个元素 (n=5),输入序列(即数组A的元素)为(50)时,执行过程不能覆盖所有的语句。

 
 
  A.  1
 
  B.  2
 
  C.  3
 
  D.  4
 
 
 

 
  第54题    2011年上半年  
   27%
黑盒测试不能发现(54)。
  第49题    2012年上半年  
   61%
在设计白盒测试用例时,(49)是最弱的覆盖准则。下图至少需要(50)个测试用例才可以进行路径覆盖。
  第50题    2012年上半年  
   34%
在设计白盒测试用例时,(49)是最弱的覆盖准则。下图至少需要(50)个测试用例才可以进行路径覆盖。
 
  第50题    2017年上半年  
   46%
某企业招聘系统中,对应聘人员进行了筛选,学历要求为本科、硕士或博士,专业为通信、电子或计算机,年龄不低于26岁且不高于40岁..
  第50题    2019年下半年  
   61%
右图是求数组A中最大元素的程序流程图,图中共有(49)条路径。假设数组A有5个元素 (n=5),输入序列(即数组A的元素)为(50)时,执..
 
   知识点讲解    
   · 程序流程图    · 数组
 
       程序流程图
        1)基本符号
        流程图的基本符号如下图所示。
        
        流程图的基本符号
        2)流程图的结构
        任何复杂的算法,都可以由顺序结构、选择(分支)结构和循环结构这三种基本结构组成。流程图中,也仅以这三种基本结构作为"建筑单元",遵守三种基本结构的规范,基本结构之间可以并列、相互包含,但不允许交叉,即不允许从一个结构直接转到另一个结构的内部去。正因为整个算法都是由三种基本结构组成的,就像用模块构建的一样,所以结构清晰,易于正确性验证及纠错。
        (1)顺序结构。顺序结构是简单的线性结构,各框按顺序执行。其流程图的基本形态如下图所示,语句的执行顺序为:A→B→C。
        
        顺序结构流程图
        (2)选择(分支)结构。这种结构是对某个给定条件进行判断,条件为真或假时分别执行不同的框的内容。其基本形状有两种,如下图(a)和下图(b)所示。下图(a)的执行序列为:当条件为真时执行A,当条件为假时执行B;下图(b)的执行序列为:当条件为真时执行A,当条件为假时什么也不做。
        
        选择(分支)结构流程图
        (3)循环结构。循环结构有while型循环和do…while型循环两种基本形态。
        .while型循环:如下图所示。其执行序列为:当条件为真时,反复执行A,一旦条件为假,跳出循环,执行循环紧后的语句。
        
        while循环流程图
        .do…while型循环:如下图所示。执行序列为:首先执行A,再判断条件,条件为真时,一直循环执行A,一旦条件为假,结束循环,执行循环紧后的下一条语句。
        
        do…while循环流程图
        在上2图和上1图中,A被称为循环体,条件被称为循环控制条件。
 
       数组
               数组的定义及基本运算
               一维数组是长度固定的线性表,数组中的每个数据元素类型相同。n维数组是定长线性表在维数上的扩张,即线性表中的元素又是一个线性表。
               设有n维数组Ab1b2,…,bn],其每一维的下界都为1,bi是第i维的上界。从数据结构的逻辑关系角度来看,A中的每个元素Aj1j2,…,jn](1≤jibi)都被n个关系所约束。在每个关系中,除第一个和最后一个元素外,其余元素都只有一个直接后继和一个直接前驱。因此就单个关系而言,这n个关系仍是线性的。
               以下面的二维数组Am][n]为例,可以把它看成是一个定长的线性表,它的每个元素也是一个定长线性表。
               
               可将A看作一个行向量形式的线性表:
               Am*n=[[a11a12a1n][a21a22a2n]…[am1am2amn]]
               也可将A看作列向量形式的线性表:
               Am*n=[[a11a21am1][a12a22am2]…[a1na2namn]]
               数组结构的特点如下:
               (1)数据元素数目固定。一旦定义了一个数组结构,就不再有元素的增减变化。
               (2)数据元素具有相同的类型。
               (3)数据元素的下标关系具有上下界的约束且下标有序。
               在数组中通常做下面两种操作:
               (1)取值操作。给定一组下标,读其对应的数据元素。
               (2)赋值操作。给定一组下标,存储或修改与其相对应的数据元素。
               几乎所有的程序设计语言都提供了数组类型。实际上,在语言中把数组看成是具有共同名字的同一类型多个变量的集合。需要注意的是,不能对数组进行整体的运算,只能对单个数组元素进行运算。
               数组的顺序存储
               由于数组一般不作插入和删除运算,也就是说,一旦定义了数组,则结构中的数据元素个数和元素之间的关系就不再发生变动,因此数组适合于采用顺序存储结构。
               对于数组,一旦确定了它的维数和各维的长度,便可为它分配存储空间。反之,只要给出一组下标便可求得相应数组元素的存储位置,也就是说,在数据的顺序存储结构中,数据元素的位置是其下标的线性函数。
               二维数组的存储结构可分为以行为主序(按行存储)和以列为主序(按列存储)两种方法,如下图所示。
               
               二维数组的两种存储方式
               设每个数据元素占用L个单元,mn为数组的行数和列数,那么以行为主序优先存储的地址计算公式为:
               Loc(aij)=Loc(a11)+((i-1)×n+(j-1))×L
               同理,以列为主序优先存储的地址计算公式为:
               Loc(aij)=Loc(a11)+((j-l)×m+(i-1))×L
   题号导航      2019年下半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第49题    在手机中做本题