软件评测师重点题目记录(1)

1.若有关系R (A, B, C, D)和S (C, D, E),则与表达式http://www.educity.cn/tiku/UploadFiles/2012-9/917_174195.png等价的SQL语句如下:

SELECT(17) FROM (18) WHERE(19);

(17)A. A,B,C,D,E                     B. C,D,E

C. R.A,R.B,R.C, R.D, S.E         D. R.C,R.D,S.E

(18)A.R             B.S                 C.R,S               D.RS

(19)A.D

【解析】

RxS就是4+3列的组合,也就是笛卡儿积

软件评测师重点题目记录(1)_第1张图片

 

软件评测师重点题目记录(1)_第2张图片

R*S就是

软件评测师重点题目记录(1)_第3张图片

σ  选择运算

先计算σ4<5 (R×S) 的意思在RxS的结果中,选择出满足属性列4 的值 <属性列5的值的那些行。

第四列是R中的D列,第五列是S中的C列,假如d1

只有绿色背景的三行,因为其他行都因为不满足σ4<5而过滤掉了

所以总结一下,选择 σ4<5 (R×S)是对关系(R x S)的映射,选出满足4<5关系的行。

软件评测师重点题目记录(1)_第4张图片

 

π投影运算

再计算π3,4,7(σ4<5 (R×S)),其实比较简单了,就是在σ4<5 (R×S)的结果中选择相应的列,这里对应的是第3,4,7列

为了避免C,D两列区分不清,要加上相应的关系名

软件评测师重点题目记录(1)_第5张图片

【答案】D   C   B

2.

(1)已知5行5列的二维数组a中各元素占两个字节,求元素a[2][3]按行优先存储的存储地址?

【解析】

第一题:由于数组下标是从0开始的,因此a[2][3]是位于图中如下位置。

a[2][3]的存储地址=a+(i*n+j)*len=a+(2*5+3) * 2个字节

软件评测师重点题目记录(1)_第6张图片

【答案】a[2][3]的存储地址=a+(i*n+j)*len=a+(2*5+3) * 2个字节

 

(2)设数组a[1...n,1...m](n>1,m>1)中的元素以行为主序存放,每个元素占用1个存储单元,则数组元素a[i,j](1<=i<=n, 1<=j<=m)相对于数组空间首地址的偏移量为()

      A (i-1)*m+j-1         B (i-1)*n+j-1         C (j-1)*m+i-1         D(j-1)*n+i-1 

【解析】

【答案】A

 (3)若二维数组arr[1...M, 1...N]的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素arr[i,j]在该数组空间的地址为()

      A base+((i-1)*M+j-1)*K          B base+((i-1)*N+j-1)*K         C base+((j-1)*M+i-1)*K          D base+((j-1)*N+i-1)*K

【解析】

二维数组arr[1..M,1..N]的元素可以按行存储,也可以按列存储。按列存储时,元素的排列次序为,先是第一列的所有元素,然后是第二列的所有元素,最后是第N列的所有元素。每一列的元素则按行号从小到大依次排列。因此,对于元素aix[i,j],其存储位置如下计算:先计算其前面j-1列上的元素总数,为然后计算第j列上排列在arr[i,j]之前的元素数目,为i-1,因此arr[i,j]的地址为base+((j-1)*M+i-1)*K。

 

【答案】C

你可能感兴趣的:(试题)