您现在的位置: 中国IT实验室 >> 软件水平考试 >> 最新试题 >> 文章正文
2004年上半年程序员考试题及答案二

ChinaITLab收集整理  2004-9-11  保存本文  推荐给好友  QQ上看本站  收藏本站



  试题三
  以下是与Visual Basic开发应用有关的5个问题.对每一个问题,请将解答填入答题纸的对应栏内。
  (1)在Visual Basic中,工程文件、窗体文件和标准模块文件的扩展名是什么?
  请从下列选项中选择:
  prg、prj、exe、vbp、rom、frm、win、fra,std、bas、vbs、Vbm
  
  (2)设某窗体上有一个命令按钮,其名称为 CmdSave,运行时该按钮上显示有“保存(S)”字样的信息。为使热键 ALT+S 与该命令按钮相关联,应该对按钮 CmdSave 的 Caption属性设置什么样的属性值?
  
  (3)设某窗口内有一个图像框 Image1,以及两个命令按钮“放大”和“缩小”。单击“放大”按钮就会使该图像框的长和宽都放大10%;单击“缩小”按钮就会使该图像框的长和宽都缩小10%(该图像框的左上角不动)。请分别写出这两个命令按钮的单击事件过程中的程序代码。
  
  (4)为使某个单选按钮初始时默认被选中,在开发时应怎样做?
  
  (5)若有语句 Tmpval=MsgBox(非法操作!,ybOKCancel+vbCritical,"提示"),请简要描述程序运行时弹出的消息框的主要特征。
  
  从下列的2道试题(试题四至试题五)中任选1道解答,如果解答的试题数超过1道,则题号小的1道解咎有效。
  
  试题四
  阅读以下说明和C代码,将应填入__(n)__处的字句写在答题纸的对应栏内。
  [说明]
  函数 MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数 n 转换成 B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把 B 进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:
  #define KAXSIZE 32
  typedef struct{
  int *elem;  /* 栈的存储区 */
  int max;   /* 栈的容量,即找中最多能存放的元素个数 */
  int top;   /* 栈顶指针 */
  }Stack;
  [C代码]
  int lnitStack(Stack *S,int n)  /* 创建容量为n的空栈 */
  { S->elem = (int *)matloc(n * sizeof(int));
  if (S->elem == NULL) return -1;
  S->max = n;__(1)__= 0;return 0;
  }
  int Push(Stack*S,int item)   /* 将整数item压入栈顶 */
  { if(S->top == S->max){ printf("Stack is full!\n");return -1;}
  __(2)__;item;return 0;
  }
  int StackEmpty(Stack S){ return(!S.top) ? 1;0;) /* 判断栈是否为空 */
  int Pop(Stack*S)        /* 栈顶元素出栈 */
  { if (!S->top){ printf("Pop an empty stack!\n");return -1;)
  return __(3)__;
  }
  void MultibaseOutput(long n,int B)
  { int m;Stack S;
  if (init Stack(&S,MAXSIZE)) { printf("Failure!\n");return;}
  do {
  if (Push(&s,__(4)__)) { printf("Failure!\n");return;}
  n = __(5)__:
  } while (n != 0);
  while (!StackEmpty(S)) {     /* 输出B进制的数 */
  m = Pop(&S);
  if (m < 10) printf("Kd",m);  /* 小于10,输出数字 */
  else printf("%c,m + 55);    /* 大于或等于10,输出相应的字符 */
  }
  printf("\n");
  }
  
  试题五
  阅读以下应用说明及Visual Basic程序代码,将应填入__(n)__处的字句写在答题纸的对应栏内。
  [应用说明5.1]
  本应用程序的窗体中有一个下拉式列表框(名称为Combol)和两个文本框(名称分别为Txtl和Txt2)。运行时,用户从Combol的列表中进行选择,程序就会将选中条目的内容以及编号(从0开始)分别在文本框 Txt1 和 Txt2 中显示出来。
  [程序代码5.1]
  Private Sub Combol_C1ick()
  Txtl.Text = Combol.__(1)__
  Txt2.Text = Combol.__(2)__
  End Sub
  (注:可供(2)处选择的选项:List,Index,Listlndex,ListCount,Number)
  [应用说明5.2]
  本应用程序的运行窗口如下图所示:
  
  
 

  当用户在输入框(名为Txtln)中输入数值数据,并从下拉式列表框(名为CmbOp)中选择所需的运算后,输出框(名为TxtOut)中就会显示运算的结果。用户单击“清除”按钮(名为CmdClear)后,输入框和输出框都清空。
  开发该应用的部分程序代码如下:
  [程序代码5.2]
  Private Sub CmbOp_Click()
  Dim DataIn As Double,DataOut as Double
  DataIn = __(3)__
  Select Case __(4)__
  Case "取整数部分"
  DataOut = Int(Dataln)
  Case "求平方根"
  If Dataln < O Then
  MsgBox$("负数不能开平方!")
  Else
  DataOut = Sqr(Dataln)
  End If
  Case "取绝对值"
  DataOut = Abs(Dataln)
  (TxtOut.Text = str$(DataOut)
  __5)__
  End Sub
  
  从下列的2道试题(试题六至试题七)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。
  
  试题六
  阅读下列函数说明和 C 函数,将应填入__(n)__处的字句写在答题纸的对应栏内。
  [函数6说明]
  函数DelAInsB(LinkedList La,LinkedList lb,int key1,int key2,int len)的功能是,将线性表A中关键码为keyl的结点开始的len个结点,按原顺序移至线性表B中关键码为key2的结点之前,若移动成功,则返回0;否则返回-1。线性表的存储结构为带头结点的单链表,La为表A的头指针,Lb为表B的头指针。单链表结点的类型定义为:
  typedef struct node{
  int key;
  struct node*next;
  }*Linkedhist;
  [函数6]
  int DelllnsB(LinkedLiSt La,LinkedList Lb,int keyl,int key2,int len)
  { LinkedList p,q,S,prep,pres;
  int k;
  if (!La->next || !Lb->next || len<=0) return-1;
  p = La->next; prep = La;
  while (p && p->key != keyl){   /* 查找表A中键值为key1的结点 */
  prep = p; p = p->next;
  }
  if (!p) return -1;        /* 表A中不存在键值为key1的结点 */
  q = p; k = 1;
  while (q && __(1)__){       /* 在表A中找出待删除的len个结点 */
  __(2)__: k++;
  }
  if (!q) return -1;        /* 表A中不存在要被删除的len个结点 */ •
  S = Lb->next;__ (3)__;
  while (s && s->key != key2){   /* 查找表B中键值为key2的结点 */
  pres = s; s = s->next;
  }
  if (!s)return -1;        /* 表B中不存在键值为key2的结点 */
  __(4)__q->next;         /* 将表A中的len个结点删除 */
  q->next:__(5)__
  pres->next = p;         /* 将len个结点移至表B */
  return 0;
  }
  
  试题七
  阅读以下应用说明、属性设置及VisualBasic程序代码,将应填入__(n)__处的字句写在答题纸的对应栏内。
  [应用说明7]
  本应用程序的运行窗口如下图所示:
  
  
 

  只要用户单击“闪烁”按钮,文字“欢迎光临”就会以0.3秒消失、0.3秒显示反复进行闪烁;单击“停止”按钮时,闪烁停止,恢复图示的初态。
  在开发过程中,需要设置的属性如下:
  [属性设置7]
  
  
 

  在开发过程中,需要编写的程序代码如下;
  [程序代码7]
  Private Sub CmdF Click()
  Timerl.__(3)__ = True
  Label.Visible = False
  End Sub
  Private Sub Timerl_ Timer()
  __(4)__ = not Label.Visible
  End Sub
  Private Sub CmdT Click()
  Timerl.Enabled = __(5)__
  Label.Visible = true
  End Sub
  
  从下列的2道试题(试题八至试题九)中任选1道解答,如果解答的试题数超过1道,则题号小的1道解答有效。
  
  试题八
  阅读下列程序说明和C程序,将应填入__(n)__处的字句写在答题纸的对应栏内。
  [程序8说明]
  程序8用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额。职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小于等于0结束。
  假设个人所得税法规定;个人收入所得,按月计税,以每月收入总额减除免税金额800元后的余额作为该月的月应纳税所得额,适用税率如下表所示。
  
  
 

  上表表明,个人收入所得税是按照超额累进的税率来征收的。
  设一个人的月应纳税所得额为K(元),用下面的公式计算其应缴纳的个人所得税额S(元):
  若0  若500  若2000  若5000  例如,某人某月工资总额为4100元,减去800元




 相关文章  热门文章
2004年上半年程序员考试题及答案一
2003年度系统设计师/高级程序员试题
2003年程序员考试试题
99年度高级程序员试卷答案
99年度高级程序员下午试卷
99年度高级程序员上午试卷
轻松应对高程软件设计题
网络程序员级模拟考试试题
程序员02年上午试卷硬件部分解答 
网络程序员考试练习题

 文章评论


认证培训
热门专题       more
相关下载
论坛新帖
博 客