• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
程序员下午试题
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
程序员下午试题
软件发布 程序员下午试题
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 认证考试 >> 程序员 >> 程序员下午试题

程序员下午试题

添加时间: 2007-4-8 4:53:13  作者: 程序员认证参考  阅读次数:29   来源: http://www.d9soft.com

       

试题一
  阅读下列说明、流程图和算法,将应填入__(n)__处的字句写在答题纸的对应栏内.
[流程图说明]
  下面的流程图用n—s盒图形式描述了数组a中的元素被划分的过程.其划分方法是:
  以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动.当划分结束时,基准数定位于a[i],并且数组中下标小于i的元素的值均小于基准数,下标大子i的元素的值均大于基准数。设数组a的下界为low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如下:
[流程图]

 

[算法说明]
  将上述划分的 思想 进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数int p(int a[],int low,int high)实现了上述流程图的划分过程并返回基准数在数组a中的下标。递归函数void sort(int a[],iht l,int h)的功能是实现数组a中元素的递增排序。
[算法]
 void sort(int a[],iht l,int h) {
 if ( l < h ) {
  k=p(a,l,r);     //p()返回基准数在数组a中的下标
  sort(__ (4)__;     //小于基准数的元素排序
  sortl__ (5)__);    //大于基准数的元素排序
  }
 }

  从下列的2道试题(试题二至试题三)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。
 


试题二
  阅读下列函数说明和c函数,将应填入__(n)__处的字句写在答题纸的对应栏内。
[函数2.1说明]
  函数palindrome(chars[])的功能是:判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“level”是回文字符串,而“leval”不是。
[函数2.1]
 int palindrome(char s[])
 { char *pi,*pj;
  pi=s;pj=s+strlen(s)-1:
  while ( pi<pj && __(1)__){
   pi++; pj--;
  }
  if(__ (2)__)return-1;
  else return 0;
 }
[函数2.2说明]
  函数f(char *str,char del)的功能是;将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。
  例如若str的值为“33123333435”,del的值为‘3’,调用此函数后,将输出三个子字符串,分别为“12”、“4”和“5”。
[函数2.2]
 void f(char*str,char del)
 { int i,j,len;
  len = strlen(str);
  i = 0;
  while (i<len){
   while (__(3)__) i++;    /*忽略连续的标志字符*/
  /*寻找从str[i]开始直到标志字符出现的一个子字符串*/
   j = i + 1;
  while (str[j] !=del && str[j] !='') j++;
  __ (4)__="";         /*给找到的字符序列置字符串结束标志*/
  printf(" %s ",&str[i]): ’
  __ (5)__;
  }
 }

试题三
  以下是与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代码中的符号常量及栈的类型定义如下:#p#
 #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! ");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! ");return -1;)
  return __(3)__;
 }
 void multibaseoutput(long n,int b)
 { int m;stack s;
  if (init stack(&s,maxsize)) { printf("failure! ");return;}
  do {
   if (push(&s,__(4)__)) { printf("failure! ");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(" ");
 }

试题五
  阅读以下应用说明及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个结点 */#p#
   __(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]

对象 对象名 属性名 属性值
窗体 frm1 caption 闪烁显示演示
标签 labe1 caption 欢迎光临
命令按钮 cmdf caption 闪烁
命令按钮 cmdt caption 停止
定时器 timer1 enabled __(1)__
    interval __(2)__

  在开发过程中,需要编写的程序代码如下;
[程序代码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元后的余额作为该月的月应纳税所得额,适用税率如下表所示。

级数 月应纳税所得额 适用税率(%)
1
2
3
4
5
6
7
8
9

 不超过500元的部分
 501元~2000元的部分
 2001元~5000元的部分
 5001元~20000元的部分
 20001元~40000元的部分
 40001元~60000元的部分
 60001元~80000元的部分
 80001元~100000元的部分
 超过100000元的部分

5
10
15
20
25
30
35
40
45

  上表表明,个人收入所得税是按照超额累进的税率来征收的。
  设一个人的月应纳税所得额为k(元),用下面的公式计算其应缴纳的个人所得税额s(元):
  若0<k≤500,则s=k×5%;
  若500<k≤2000,则s=500×5%+(k—500)×10%:
  若2000<k≤5000,则s=500×5%+1500×10%+(k-2000)×15%:
  若5000<k≤20000,则s=500×5%+1500×10%+3000×15%+(k-5000)×20%:
  例如,某人某月工资总额为4100元,减去800元后,应纳税所得额为3300元,其应缴纳的个人所得税额为500*5%+1500*10%+1300*15%=370元。
[程序8]
 #include <stdio.h>
 #define maxnum 50
 #define base 800     /*免税金额基数*/
 int paylevel[]={0,500,2000,5000,20000,40000,60000,80000,100000,100000¨:
 int taxprate[]={5,10,15,20,25,30,35,40,45): /*税率表*/
 typedef struct{
  int ld;    /*职工的工号*/ .
  long salary;  /*职工的工资*/
 }info;
 /* 查找工号为id的职工在数组employee中的下标,返回值为0表示没有 */
 int find(int ld,info employee[],int m){
  int j;
  employee[0].id=id;
  for(j=m;__(1)__;j--);
   return j;
 }
 void main(void)
 { info employeechaxnum+1];
  long wage;
  double sum s 0,k,s:
  int i,j,n=0,code;
  scanf("m%ld",&code,&wage);   /*读入职工号、工资或薪金*/
  while(code>0) {#p#
   i=find(code,employee,n);
   if (i>0)employee[i].salary += wage:
   else{ __ (2)__;
   employee[n].id=code;employee[n].salary=wage;
   }
   scanf("%d%ld",&code,&wage):
  }
  for (i=1;i<=n;i++){
   k = __(3)__;         /*计算月应纳税所得额*/
   s=0;             /*月应纳税额赋初值*/
   if (k > 0) {
    for (j=1;j<=9;j++)
     if(__(4)__)        /*月应纳税所得额超过第j级*/
      s=s+(paylevel[j]-paylevel[j-1])*taxprate[j-1]/100;
     else{ s=s+(__ (5)__)*taxprate[j-1]/100;break;}
   }
   printf("职工%d应缴纳的个人所得税额:%10.21f ",employee[i].id,s);
   sum += s;
  }
  printf("全体职工个人所得税总额:%10,21f ",sum);
 }

试题九
  阅读以下应用说明及visualbasic程序代码,将应填入__(n)__处的字句写在答题纸的对应栏内.
[应用说明9]
  本应用程序的运行窗口如下图所示:

  窗口中的三个文本框和两个按钮名称分别为txt_salary、txt_base、ht_tax、cmd compute和cmd_quit.运行时,文本框txt_base中存放的是免税金额基数(应扣除的基本费用)。当用户在文本框ht_salary中输入月收入(工资或薪金)并单击“计算”按钮crud_compute后,txt_tax框中就显示计算所得的应纳税额。文本框txt_base和txt_tax在运行时不接受用户输入,txt_base的内容以灰色显示。
  个人工资(或薪金)所得税是按照超额累进的税率来征收的,方法是:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算.目前的免税金额基数为800元,税率如下表所示:
  个人工资(或薪金)所得税是按照超额累进的税率来征收的,方法是:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算.目前的免税金额基数为800元,税率如下表所示:

级数 月应纳税所得额 适用税率(%)
1
2
3
4
5
6
7
8
9

  不超过500元的部分
  501元~2000元的部分
  2001元~5000元的部分
  5001元~20000元的部分
  20001元~40000元的部分
  40001元~60000元的部分
  60001元~80000元的部分
  80001元~100000元的部分
  超过100000元的部分

5
10
15
20
25
30
35
40
45

  设一个人的月应纳税所得额为k(元),用下面的公式计算其应缴纳的个人所得税额s(元):
  若0<k≤500,则s=k×5%;
  若500<k≤2000,则s=500×5%+(k—500)×10%:
  若2000<k≤5000,则s=500×5%+1500×10%+(k-2000)×15%:
  若5000<k≤20000,则s=500×5%+1500×10%+3000×15%+(k-5000)×20%:
  例如,某人某月工资总额为4100元,减去800元后,应纳税所得额为3300元,其应缴纳的个人所得税额为500*5%+1500*10%+1300*15%=370元。
  在开发过程中,需要编写的程序代码如下:
[程序代码]
 option base 0
 private sub cmd compute-c1ick()
  dim paylevel,taxprate
  paylevel=array(0,500,2000,5000,20000,40000,60000,80000,100000,1000001)
  taxprate=array(5,10,15,20,25,30,35,40,45)
  k=__(1)__
  s = 0
  if (k>0) then
   for j=1 to 9
    if __(2)__ then
     s=s+(paylevel(j)-paylevel(j-1))*taxprate(j-1)/100
    else
     s=s+(__(3)__)*taxprate(j-1)/100
     exit for
    end lf
   next j
  end lf
  __(4)__=str$(s)
 end sub

 private sub cmd_quit_c1ick()
 end
 end sub

 private sub form_load()
  txt_tax.text = " "
  txt_salary.text = " "
  txt_base.text = 800
  txt_tax.locked = true
  txt_base.enabled =__(5)__
 end sub

 

上下文章:

 

上一篇文章: 历年高级程序员试题 一 下一篇文章: 历年高级程序员试题 二

相关文章:

  • 史上最强的几道oracle面试题
  • 国外公司的Oracle DBA试题
  • 今年4月三级数据库笔试试题及答案
  • Oracle DBA 逻辑备份试题选
  • 国外某公司的Oracle DBA试题

相关软件:

  • 中考物理试卷分类试题 4.1
  • 计算机软件水平考试测试系统2005版(程序员) v 5.0
  • 试题库管理系统 V5.1
  • 秋风试题大题 V1.0
  • 历年高考化学试题库 V8.0
  • 历年高考生物试题库 V8.0

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

认证考试分类导航

  • 微软认证
  • 计算机等级考试
  • 软件水平考试
  • 思科认证
  • Oracle认证
  • Linux认证
  • JAVA认证
  • 网络工程师
  • 系统工程师
  • 程序员

本类经典文章推荐

  • 软考系统分析师考试须知
  • C++箴言:绝不在构造或析构期调用...
  • 数据结构:判别是否为二叉排序树的...
  • 一个程序员的成长的六个阶段
  • 程序员英语试题常见硬件名和设备名
  • 从一个程序出发详细研究DataReader
  • 如何判断程序处于运行环境还是调试...
  • 程序高手必读:写好C程序的10条秘...
  • 程序员介绍:程序员的“素质”是什...
  • C++箴言:让=返回一个*this的引用

程序员阅读排行

  • 数据结构:判别是否为二叉排序树的...
  • VC++动态链接库(DLL)编程深入浅出...
  • VC++动态链接库(DLL)编程深入浅出...
  • 程序员考试:证书样本
  • 补码加、减运算规则及溢出判断
  • 数据结构:栈和递归求两顶点所有简...
  • DirectX8.0简介(8)
  • 水滴石穿·C语言之代码检查工...
  • 数据结构:打印线索二叉树的中序遍...
  • DirectX8.0简介(3)

认证考试阅读总排行

  • 全国计算机等级考试一级模拟试题01
  • 全国计算机等级考试一级模拟试题10
  • 全国计算机等级考试一级模拟试题08
  • MCSD简介
  • 全国计算机等级考试一级考试最新模...
  • 全国计算机等级考试一级模拟试题07
  • 全国计算机等级考试一级模拟试题02
  • 全国计算机等级考试一级模拟试题06
  • 全国计算机等级考试一级模拟试题03
  • 一级(WINDOWS)试题解析-Word篇

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有