试题四至试题五选答1道 |
试题四(15分,每空3分)
阅读以下应用说明以及用Visual Basic 开发过程中进行的属性设置和所编写的程序代码,将应填入_____(n)_____处的字句写在答题纸的对应栏内。
[应用说明]
启动某应用程序运行的登录窗口如下:
其中的标签(Label1)"用户名(U)"对应文本框 Username ,标签(Label2)"密码(P)"对应文本框"Password" 。当用户在Username 文本框中输入用户名"ali88" ,在Password文本框中输入"zmkm"( 显示的字符均为"*") ,并单击"确定"按钮时,就会弹出应用程序的主窗口frmAPP ,而该登录窗口就会卸载。
如果用户名或密码输入错误,则会弹出报警信息框。当用户单击其中的"确定" 按钮后,登录窗口"Password" 文本框的内容就会消失,光标停留在该框内,以便用户重新输入密码,必要时用户还可以再修改用户名,再次做登录尝试。本应用程序允许发生3次输入错误。在第3次输入错误后,就会立即退出该应用程序。
在弹出登录窗口后,当按键"Alt+U" 时光标就会停留在Usename 文本框中;当按键"Alt+P" 时光标就会停留在Password文本框中。当用户按"Enter" 键时,就相当于单击"确定"按钮;当用户按"Esc"键时,就相当于单击"取消"按钮,立即退出该应用程序。
[属性设置]
在开发过程中,部分控件及属性设置如下:
对象 |
对象名 |
属性 |
属性值 |
标签 |
Label2 |
Caption |
____(1)____ |
文本框 |
Username |
Text |
(空白) |
文本框 |
Password |
Text |
(空白) |
|
Password |
* | |
命令按钮 |
CmdOK |
Caption |
确定 |
|
Default |
____(2)___ | |
命令按钮 |
CmdCancel |
Caption |
取消 |
|
Cancel |
True |
[程序代码]
Private Sub cmdOK_Click()
_____(3)_____ As Integer '静态变量time 的说明
If ___(4)___ Then
Unload Me '卸载本登录窗口
____(5)_____ '弹出应用程序主窗口frmAPP
Else
MsgBox(" 用户名密码错!")
Times = times+1
Password.Text = "" '清除密码框中的内容
Password.SetFocus '将光标定位于密码框
If times = 3 Then
End
End If
End Sub
Private Sub
cmdCancel_Click()
End
End Sub
试题五(共15分)
阅读以下说明和C语言函数,将应填入__(n)__ 处的字句写在答题纸的对应栏内。
[说明]
二叉排序树或者是一棵空树,或者是具有如下性质的二叉树:若它的左子树非空,则左子树上所有结点的值小于根结点的值;若它的右子树非空,则右子树上所有结点的值均大于根结点的值;左、右子树本身就是两棵二叉排序树。
函数insert_BST(char *dtr) 的功能是:对给定的字符序列按照ASCII 码值大小关系创建二叉排序树,并返回指向树根结点的指针。序列中重复出现的字符只建一个结点,并由结点中的Count域对字符的重复次数进行计数。
二叉排序树的链表结点类型定义如下:
typedef struct BSTNode{
char Elem; /* 结点的字符数据*/
int Count; /*记录当前字符在序列中重复出现的次数*/
struct BSTNode *Lch,*Rch; /* 结点的左、右指针*/
} *BiTree;
[函数]
BiTree insert_BST(char * str) {
BiTree root,parent,p;
char _______(1)________; /*变量定义及初始化*/
root = (BiTree)malloc(sizeof(struct BSTNode));
if (!root || *s=='\0') return NULL;
root->Lch = root->Rch = NULL;
root->Count = 1;
root->Elem = *s++;
for(;*s != '\0';s++){
______(2)______;
parent = NULL;
while (p) {
/*p从树根结点出发查找当前字符*s所在结点*/
parent = p;
if (*s == p->Elem) /*若树中已存在当前字符结点,则当前的字符计数值加1*/
{ p->Count++; break;}
else /*否则根据字符*s与结点*p中字符的关系,进入*p的左子树或右子树*/
if (*s > p->Elem) p = p->Rch;
else p = p->Lch;
} /*while*/
if (______(3)_____) { /*若树中不存在字符值为*s的结点,则申请结点并插入树中*/
p = (BiTree)malloc(sizeof(struct BSTNode));
if (!p) return NULL;
p->Lch = p->Rch = NULL;
p->Count = 1;
p->Elem = *s;
/*根据当前字符与其父结点字符值的大小关系,将新结点作为左子树或右子树插入*/
if (p->Elem > parent->Elem) ______(4)_____ = p;
else _________(5)________ = p;
}
} /*for*/
return root;
}
责任编辑:小草