导航:首页 - 2008年11月程序员笔试考前练习(11)

2008年11月程序员笔试考前练习(11)
作者:深圳教育在线 来源:szedu.net 更新日期:2008-10-11
  试题
  阅读以下说明和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");
  }
  答案:
  (1)S->top
  (2)S->elem[S->top++]·
  (3)S->elem[-S->top]
  (4)n % B
  (5)n / B

报 名 此 课 程 / 咨 询 相 关 信 息
【预约登门】 【网上咨询】 【订座试听】 【现在报名】
课程名称
2008年11月程序员笔试考前练习(11)
真实姓名
* 性 别
联系电话
* E-mail:
所在地区
咨询内容

      

相关文章:

Copyright© 2004-2010 www.szedu.net 深圳教育在线 版权所有
中国·深圳
粤ICP备06023013号