●试题一
阅读下列算法说明和算法,将应填入(n)处的字句写在答题纸的对应栏内。
【算法说明】
为便于描述屏幕上每个像素的位置,在屏幕上建立平面直角坐标系。屏幕左上角的像素设为原点,水平向右方向设为X轴,垂直向下方向设为Y轴。
设某种显示器的像素为128×128,即在每条水平线和每条垂直线上都有128个像素。这样,屏幕上的每个像素可用坐标(x,y)来描述其位置,其中x和y都是整数,0≤x≤127,0≤y≤127。
现用一维数组MAP来存储整个一屏显示的位图信息。数组的每个元素有16位二进位,其中每位对应一个像素,"1"表示该像素"亮","0"表示该像素"暗"。数组MAP的各个元素与屏幕上的像素相对应后,其位置可排列如下:
MAP(0),MAP (1) ,…,MAP (7)
MAP (8) ,MAP (9) ,…,MAP (15)
MAP(1016),MAP(1017),…,MAP(1023)
下述算法可根据用户要求,将指定坐标(x,y)上的像素置为"亮"或"暗"。
在该算法中,变量X,Y,V,S,K都是16位无符号的二进制整数。数组BIT中的每个元素BIT(K)(K=0,...,15)的值是左起第K位为1,其余位均为0的16位无符号二进制整数,即BIT(K)的值为215-k。
【算法】
第1步根据用户指定像素的位置坐标(x,y),算出该像素的位置所属的数组元素MAP(V)。这一步的具体实现过程如下:
1.将x送变量X,将y送变量Y;
2.将Y左移 (1) 位,仍存入变量Y;
3.将X右移 (2) 位,并存入变量S;
4.计算Y+S,存入变量V,得到像素的位置所属的数组元素MAP(V)。
第2步算出指定像素在MAP(V)中所对应的位置K(K=0,…,15)。这一步的具体实现过程如下:将变量X与二进制数 (3) 进行逻辑乘运算,并存入变量K。
第3步根据用户要求将数组元素MAP(V)左起第K位设置为"1"或"0"。这一步的具体实现过程如下:
1.为把指定像素置"亮",应将MAP(V)与BIT(K)进行逻辑 (4) 运算,并存入MAP(V)。
2.为把指定像素置"暗",应先将BIT(K)各位取反,再将MAP(V)与BIT(K)进行逻辑 (5) 运算,并存入MAP(V)。
试题七(共15分)
阅读以下应用说明以及用Visual Basic 编写的程序代码,将应填入(n) 处的字句写在答题纸的对应栏内。
[应用说明]
某应用程序用于监测某种设备的工作温度(20~200度),其运行窗口中,包括一个温度计(矩形形状shpMeter)以及其中指示当前设备温度的水银柱(矩形形状shpT),文字标签标记了温度刻度;另有一个图片框picCurve,用于动态描述检测到的温度曲线(用户见到的曲线与水银柱等高变化);命令按钮“开始测”(cmdStart)用于启动温度检测,命令按钮“暂停检测”(cmdStop)用于暂停检测。矩形形状 shpT(水银柱)属性visible 初始设置为不可见,属性Filltype 设置为solid(实心),FillColor设置为红色;图片框picCurve的属性AutoRedraw设置为True;再创建一个定时器TimT,属性Enabled初始设置为False(不起作用),属性Interval(定时间隔)设置为500 毫秒。为模拟设备温度的检测,程序中利用了(0,1)之间均匀分布的伪随机数获得[20,200]之间的随机温度T。为了便于在图片框picCurve 中绘制曲线,程序中对该图片框立了坐标系统,左上角为原点(0,0),水平向右方向为X 轴,垂直向下方向为Y 轴,右下角坐标为(50,180)。为了便于观察记录的温度值,图片框中从上到下创建了5 条水平线Ls(i),i=0,1,…4,并在程序中按等间隔排列进行位置设置。程序中每隔半秒算出曲线点(x,y),其中x=0,1,2,…,再用直线段连接各相邻曲线点形成温度曲线。
[Visual Basic程序代码]
Dim (1) As Integer '声明全局变量
Private Sub CmdStart_Click()
TimT.Enabled = True
ShpT.Visible = True
End Sub
Private Sub CmdStop_Click()
TimT.Enabled = False
End Sub
Private Sub Form_Load()
Dim i, H As Integer
PicCurve.Scale (0, 0)-(50, 180) '设置图片框坐标系:左上角-右下角
H = 30 'H 等于图片框高度的六分之一
For i = 0 To 4 '设置5条水平线Ls(i)的位置
Ls(i).X1 = 0 'Ls(i)起点横坐标
Ls(i).Y1 = H * (2) 'Ls(i)起点纵坐标
Ls(i).X2 = 50 'Ls(i)终点横坐标
Ls(i).Y2 = Ls(i).Y1 'Ls(i)终点纵坐标
Ls(i).BorderColor = &HC0C0C0 '设置水平线颜色
Next i
x = 0 '设置曲线坐标初值
End Sub
Private Sub timT_Timer()
Dim T, H As Integer 'T为即时温度,H 为图片框中温度点显示高度
T = Int(Rnd * 181) + 20 '模拟随机产生设备温度(20~200 度)
'按当前温度显示水银柱
H = ShpMeter.Height * (3) '算出水银柱的高度
ShpT.Top = (4) - H '设置水银柱顶部位置
ShpT.Height = H '设置水银柱的高度
'绘制温度曲线
y = (5) '算出曲线上当前点的纵坐标
If x = 51 Then '当超出图片框时
PicCurve.Cls '清除图片框内以前画的曲线
x = 0 '设置重画曲线的初值
ElseIf x > 0 Then '除左边点外
PicCurve.Line (x-1,Lasty)-(x,y),vbRed '由前1 点到当前点画红色线段
End If
x = x + 1 '准备下一点坐标
Lasty =y '保存当前坐标供下次使用
End Sub
设新旧坐标系都是右手直角坐标系,点的坐标变换公式为
(1)
(2)
其中,(x,y)与(x',y')分别表示同一点的旧坐标与新坐标,求新坐标系的原点的旧坐标,并且求坐标轴旋转的角θ.
在右手直角坐标系σ1={O;e1,e2,e3}中,已给三个互相垂直的平面:x+y+z-1=0,:x-z+1=0,:x-2y+z+2=0.确定新的坐标系,使得,,分别为坐标面,且O在新坐标系的第一卦限内,求σ1到σ2的点的坐标变换公式.
以下描述中,不是线性表顺序存储结构特征的是()。
A)可随机访问
B)需要连续的存储空问
C)不便于插入和删除
D)逻辑相邻的数据物理位置上不相邻
以下描述中,不是线性表顺序存储结构特征的是()。
A. 可随机访问
B. 需要连续的存储空间
C. 不便于插入和删除
D. 逻辑相邻的数据物理位置上不相邻