2008年下半年软件考试因故推迟了,这未尝不是一件好事,对于那些准备还不够充分的考生来说,现在正是查漏补缺的好时机,本站为您整理了考前练习题,希望对您有所帮助,祝您考出好成绩!
1.试题
阅读以下应用说明、属性设置及Visual Basic程序代码,将应填入(n)处在字句写在答题纸的对应栏内。
【说明】
只要用户单击"闪烁"按钮,文字"欢迎光临"就会以0.3秒消失、0.3秒显示反复进行闪烁;单击"停止"按钮时,闪烁停止,恢复图示的初态。
在开发过程中,需要编写的程序代码如下:
【程序】
Private Sub CmdF_Click()
Timer1. (3) =True
Labe1.Visible=False
End Sub
Private Sub Timer1_Timer()
(4) =not Label.Visible
End Sub
Private Sub CmdT_Click()
Timer1.Enabled= (5)
Labe1.Visible=true
End Sub
【答案】(1)false(2)300(3)Enabled(4)Label.Visible(5)false
【解析】单击"闪烁"按钮后,文字才开始闪烁,所以初始时定时器并未启动,(1)处应填false。定时器的时间间隔为0.3秒,即300毫秒,所以(2)处应填300(Interval属性的单位是毫秒)。(3)单击"闪烁"按钮后,应启动定时器,所以修改Timer1的Enable属性为True。(4)定时器到时的时候,应当使Label的是否可见属性(Visible)取反,所以(4)处应填Label.Visible。(5)单击"停止"按钮后,要停止定时器,所以应修改Timer1的Enable属性为false。
2.阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
设计一个类模板Sample用于对一个有序数组采用二分法查找元素下标。
【C++程序】
#include<iostream.h>
#define Max 100∥最多元素个数
template<class T>
class Sample
{
T A[Max]:∥存放有序数序
int n:∥实际元素个数
public
Sample(){}∥默认构造函数
Sample(T a[],int i);∥初始化构造函数
int seek(T c);
void disp()
{
for(int i=0;i<n;i++)
cout<<A[i]<<"";
cout<<end1:
}
};
template<class T>
Sample<T>::Sample(T a[],int i)
{
n=i;
for(intj=0;j<i;j++)
(1) ;
}
template<class T>
int Sample<T>::seek(T c)
{
int low=0,high=n-1,mid;
while( (2) )
{
mid=(low+high)/2;
if( (3) )
return mid;
else if( (4) )
low=mid+l;
else
(5) ;
}
return-1;
}
void main()
{
char a[]="acegkmpwxz";
Sample<char>s(a,1。);
cout<<"元素序列:";s.disp();
cout<<"元素′g′的下标:"<<s.seek(′g′)<<endl;
}
【答案】(1)A[j]=a[j](2)low<=high(3)A[mid]==c(4)A[mid]<c(5)high=mid-1
【解析】在主函数中,首先由类模板实例化成Sample<char>模板类。(1)空所在处为构造函数的声明,将参数中的值赋值到类的成员变量中,所以(1)空应填入"A[j]=a[j]"。
成员函数seek()采用二分法查找元素下标,变量low和high分别表示查找区间的下标,如果查询到目标,则返回相应的下标,若没有查询到,则其结束的条件即(2)空的内容为"low<=high"。根据二分法的原理,当中间的元素恰好等于目标元素时,则返回其下标,所以(3)空应填入"A[mid]==c";若中间的元素小于目标元素时,则mid+1作为新的查找区间的起始下标,所以(4)空应填入"A[mid]<c";否则mid-1作为新的查找区间的结束下标,所以(5)空应填入"high=mid-1"。
3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.net/exam/