●试题一
阅读下列算法说明和算法,将应填入(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)。
●试题七
阅读以下应用说明及Visual Basic程序代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
已知窗体上有两个名为cmdGene和cmdSort的命令按钮。单击cmdGene按钮时,随机产生10个[1,100]范围内的整数并将它们放在数组intA中;单击cmdSort按钮时,用选择法排序这10个数并输出。
【程序代码】
Dim intA(1 To 10)As Integer
Private Sub cmdGene_Click()
Dim intI As Integer
Randomize
For intI=1 To 10
intA(intI)= (1)
Next intI
End Sub
Private Sub cmdSort_Click()
Dim intI,intJ,intMin,intTemp As Integer
For intI=1 To 9
intMin=intA(intI)
For intJ= (2) To 10
If intA(intJ) Temp=intA(intJ) intA(intJ)= (3) intMin=intTemp End If Next intJ (4) (5) For intI=1 To 10 Print Str(intA(intI))+" "; Next intI Next IntI Print End Sub
●试题八
阅读以下说明和C++代码,将解答写入答题纸的对应栏内。
【说明】
源程序文件vectorClass.cpp,其中定义了用于表示向量的类vector,但类vector的定义并不完整。请按要求完成下列操作,将类vector的定义补充完整,并给出输出结果。
1.补充类vector的构造函数,该函数有参数x和y,它们都是int型的数据,默认值都为0。请使用参数列表的形式分别将类的数据成员a和b分别初始化为参数x和y的值。
2.完成类vector的成员函数input(int x,int y)的定义,将int型的参数x和y分别赋值给数据成员b和a。
3.完成类vector的友元函数friend double Multiply(vector &x,vector &y)的定义,先定义double型的临时变量c,然后将参数对象x和对象y的数据成员a与b分别相乘再相加后赋值给c,最后返回c的值。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件vectorClass.cpp清单如下:
#include
class vector
{
int a;
int b;
public:
vector( (1) ): (2)
{
}
void input(int x,int y)
{ (3)
}
void output()
{
cout<<'('<,'<;
}
friend double Multiply(vector &x,vector &y);
};
double Multiply(vector &x,vector &y)
{
double c;
(4)
return c;
}
void main()
{
vector x(10,20),y;
double d;
y.input(2,3);
d=Multiply(x,y);
cout< } 程序输出结果是: (5) 。
●试题六
阅读以下说明和Java代码,将解答写入答题纸的对应栏内。
【说明】
下面是一个Applet程序,其功能是输出已定义好的两个变量x和chr。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
import javA.awt.*;
(1) import javA.Applet;
(2) public class MyApplet implements Applet
{
int x=10;
(3) char chr="R";
Label output1;
Label output2;
(4) private void init()
{
output1=new Label("定义int类型变量"+"x,的初值为"+x);
output2=new Label("定义char类型变量"+"chr,的初值为"+chr);
add(output1);
add(output2);
}
}
(5)
width=400 height=400 >