本栏目下题库来源于互联网,轻速云承诺对于用户导入平台的题库是严格保密的,不会在此呈现!
轻速云给您提供更好的在线考试系统服务!
2007年上半年程序员下午试卷
1、【 简答题
试题一(共15分)
  阅读以下说明和流程图,回答问题 1 和问题 2,将解答填入答题纸的对应栏内。
[说明]
  为便于管理,每本正式出版的图书都印有国际标准书号。标准书号由“ISBN”和10个数字组成,其格式为:ISBN 组号-出版者号-书名号-校验码。其中,校验码是根据前面 9 个数字计算得到的,用于计算机自动校验。假设标准书号的 10 个数字依次是a(1),a(2),…,a(10),则校验码 a(10)的设置应使 S=10*a(1)+9*a(2)+8*a(3)+…+1*a(10)能被11 整除。如果校验码 a(10)应设置成 10,则规定以“X”表示之。例如,信息处理技术员考试大纲的标准书号为:ISBN 7-302-11191-X。第 1 段上的数字“7”是国际 ISBN中心分配给中国 ISBN 中心管理的组号。第 2 段上的“302”表示清华大学出版社。标准书号的校验过程如图 1-1 所示,计算校验码的过程如图 1-2 所示,其中,Mod(S,11)表示S 除以 11 得到的余数。
[流程图]
    
[问题1]请填补流程图中的空缺(1)~(4)。
[问题2]设“程序员考试大纲”标准书号前 9 个数字为 7-302-08493,请写出其校验码。 [15分]
解析:
【问题1】
 (1)(11-I)*a[I]
 (2) 9
 (3) S+(11-I)*a[I]->S
 (4) (11-R)%11
【问题2】9
2、【 简答题
试题二(共15 分)
  阅读以下说明和C 语言函数,将解答填入答题纸的对应栏内。
[说明]
  下面待修改的 C 程序完成的功能是:对于给定的一个长正整数,从其个位数开始,每隔一位取一个数字(即取其个位、百位、万位等数字),形成一个新的整数并输出。例如,将该程序修改正确后,运行时若输入“14251382”,则输出的整数为“4532”。下面给出的 C 程序代码中有五个错误,请指出所有的错误。
[C 程序代码]
     [15分]
解析:
 错误1:变量k没有声明
 错误2:变量num没有初始化,或者num应初始化为0
 错误3:第10行scanf 函数参数错
 错误4:第13行循环条件错
 错误5:第14行if语句条件错,或者将"="改为"=="
3、【 简答题
试题四(共15 分)
  阅读以下说明和 C 语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
  函数 sort(NODE *head)的功能是:用冒泡排序法对单链表中的元素进行非递减排序。对于两个相邻结点中的元素,若较小的元素在前面,则交换这两个结点中的元素值。其中,head 指向链表的头结点。排序时,为了避免每趟都扫描到链表的尾结点,设置一个指针 endptr,使其指向下趟扫描需要到达的最后一个结点。例如,对于图 4-1 (a)的链表进行一趟冒泡排序后,得到图 4-1 (b)所示的链表。
    
链表的结点类型定义如下:
typedef struct Node {
  int data;
  struct Node *next;
}NODE;
[C 语言函数]
void sort(NODE *head)
{ NODE *ptr,*preptr,*endptr;
  int tempdata;
  ptr = head -> next;
  while (1)/*查找表尾结点*/
    ptr = ptr -> next;
  endptr = ptr;/*令 endptr 指向表尾结点*/
  ptr =(2) ;
  while(ptr != endptr) {
    while((3) ) {
      if (ptr->data > ptr->next->data){
        tempdata = ptr->data; /*交换相邻结点的数据*/
        ptr->data = ptr->next->data;
        ptr->next->data = tempdata;
      }
      preptr =(4) ;ptr = ptr -> next;
    }
    endptr =(5) ;ptr = head->next;
  }
} [15分]
解析:
 (1) ptr ->next
 (2) head ->next
 (3) ptr != endptr
 (4) ptr
 (5) preptr
4、【 简答题
试题六(共15 分)
  阅读下列说明和 C++代码,请回答问题 1 至问题 3,将解答写在答题纸的对应栏内。
[说明]
  已知下列程序运行时的输出应为:
    1:1
    1:1
    1:1
[问题1]
  请补齐下述代码中的空缺 1 和 2。
[问题2]
  类 Stock 的定义中有两处错误,请指出错误所在行号并给出该行修改后的完整结果。
[问题3]
  指出该代码是否存在内存泄漏。
[C++ 程序]
     [15分]
解析:
【问题1】
 (1) Stock(): shares(1),share_val(1)
 (2) cout
【问题2】
 错误1:第4行,修改为:public:
 错误2:第9行,修改为:~Stock(){}
【问题3】
 否,或不存在内存泄漏
5、【 简答题
试题七(共15分)
  阅读以下应用说明、Visual Basic 开发说明以及程序代码,将应填入 (n) 的字句写在答题纸的对应栏内。
[应用说明]
  某交通灯演示程序启动后,其运行窗口中包括红绿灯标志以及当前红绿灯状态剩余秒数的动态显示(如下图)。红灯与绿灯持续的时间分别为 30 秒与 40 秒。持续时间结束时,立即变更红绿灯,并重新显示剩余秒数。
    
[Visual Basic开发说明]
  在开发过程中,先在窗体内制作形状“红绿灯框架”(长方形,透明),在该框架中,上部制作形状“红灯”(ShpRed,圆形),默认属性为透明;下部制作形状“绿灯”(ShpGreen,圆形),初始设置其填充方式属性 FillStyle 为实心,填充颜色属性 FillColor 为绿色。
  再设置两个图像框(Image1 在左,Image2 在右),使其能分别装入数字图像文件,以显示当前红绿灯状态剩余的秒数。10 个数字图像文件 N0.bmp~N9.bmp 分别用于显示数字 0、1、…、9,这些文件存放在该应用程序所在目录中,以便在程序运行时按需要选择装入这两个图像框。为使图像文件装入图像框时能自动改变大小以适应图像框,这些图像框的 Stretch 属性都应设置成 (1) 。为使这些数字能每秒变化一次,开发窗体中设置了计时器 Timer1,其 Enable 属性设置成 True,其 Interval 属性设置成 1000。
  程序中,全局变量 Light 用以标志当前红灯(0)或绿灯状态(1),RedT 和 GreenT分别表示红灯或绿灯状态剩余的秒数。
  计时器 Timer1 的定时过程是在该程序启动 1 秒后首次执行的,以后每隔 1 秒执行1 次。开发者应考虑对以下四种情况的处理:绿灯持续、绿灯转红灯、红灯持续、红灯转绿灯。
  过程 LoadNumber 的功能是:将红绿灯剩余秒数 N(2 位整数)分离出两个一位数 i与 j,再将其变换成字符,删除前面可能产生的空格,再将数字图像文件 Ni.bmp 与 Nj.bmp装入两个图像框(其中 i 与 j 应以相应的数字字符代替)。
[Visual Basic程序代码]
  Public Light As Integer, RedT As Integer, GreenT As Integer
  Private Sub Form_Load()
    Light = 1 : GreenT = 40 : RedT = 0        ’初始化设置
  End Sub
  Private Sub Timer1_Timer()              ’计时器定时过程
  If Light = 1 Then                  ’绿灯状态时
    (2)  
  If GreenT > 0 Then                  ’绿灯持续时
    Call LoadNumber(GreenT)              ’调用过程,显示数字 GreenT
  Else                         ’绿灯转红灯时
    ShpRed.FillStyle = 0               ’置红灯形状实心 
    ShpRed.FillColor = vbRed             ’为红灯形状填充红色
    ShpGreen.FillStyle = 1              ’置绿灯形状透明
    Call LoadNumber(30)
    Light = 0 : RedT = 30
  End If
Else’红灯状态时
  RedT = RedT - 1
  If RedT > 0 Then         ’红灯持续时
    Call LoadNumber(RedT)
  Else               ’红灯转绿灯时
    ShpRed.FillStyle = 1
    ShpGreen.FillStyle = 0
    ShpGreen.FillColor = vbGreen
      (3)  
    Light = 1 : GreenT = 40
   End If
  End If
End Sub
  Sub LoadNumber(N As Integer)      ’根据剩余秒数 N 将数字图像装入图像框
  Dim i As Integer, j As Integer
  i = Int( (4) )
  j = (5)
  Image1.Picture = LoadPicture("N"&Trim(Str(i))&".bmp") ’显示十位上的数字
  Image2.Picture = LoadPicture("N"&Trim(Str(j))&".bmp") ’显示个位上的数字
End Sub [15分]
解析:
 (1) True
 (2) GreenT = GreenT - 1
 (3) Call LoadNumber(40)
 (4) N/10
 (5) N -i*10
6、【 简答题
试题八(共15 分)
  阅读以下说明和 Java 代码,请回答问题 1 和问题 2,将解答写在答题纸的对应栏内。
[说明]
  已知类 Stock 和类 cxyjava 都定义在 cxyjava.java 文件中,类 Stock 的定义中第14 行前共有四行出现了错误,将下面代码修改正确并完善后的输出结果为:
  0:0
  1:23
[问题1]
  请指出错误所在行号并给出该行修改后的完整结果。
[问题2]
  请补齐第 21 行代码中的空缺。
[Java 代码]
     [15分]
解析:
【问题1】
 错误1:第1行,修改为: class Stock{
 错误2:第2行,修改为: {
 错误3:第4行,修改为: share_val = 0;
 错误4:第7行,修改为: public Stock(int n ,int pr){
【问题2】
 (1) new Stock()
1
1页,共6个题库
1页,共6个题库
轻速云给您提供更好的在线考试系统服务!
推荐
推荐题库
众多企事业单位的信赖之选
36万+企事业单位的共同选择
查看更多合作案例
众多企事业单位的信赖之选
开始使用轻速云组织培训考试
四步组织一场考试答题,一键搭建企业培训平台
免费使用 免费使用 预约演示
咨询热线
400-886-8169
周一到周日 8:00-22:00
©2023 轻速云 苏ICP备16049646号-1 轻速云科技提供专业的在线考试系统、在线培训系统
联系我们
客服热线客服热线:400-886-8169 | 周一至周日 8:00-22:00
©2023 轻速云 苏ICP备16049646号-1
轻速云科技提供专业的在线考试系统、在线培训系统
在线咨询 400-886-8169