学习网考试学习资料

Gzu521.com

2007年11月软件设计师模拟试题下午试卷(1)(5)

计算机软件水平考试   点击:次   发布时间:2007-10-20   【字体: 】   来源:Gzu521.com
贵州学习网—属于你的学习中心

 ●试题五

  阅读下列程序说明和c程序,将应填入程序中(n)处的字句,写在答卷纸的对应栏内。

  【程序说明】

  本程序先从文件读入各考生的准考证号(设为整型数)及成绩,并将其存放在一棵检索二叉树上,二叉树结点的健值是成绩,每个结点带一链表,链表结点存放取得该成绩的考生的准考证号。然后,程序按中序遍历检索二叉树,从高分到低分输出结果,使每行输出成绩及其取得成绩的考生的准考证号。

  【程序】

  #include

  typedef struct idnode {

  int id;

  struct idnode * next;

  } idnode;

  typedef struct marknode {

  int mark;

  idnode *head;

  struct marknode *left, *right;"DKGu*rW Bm|8b'(本 文来 源于 我 的学 习网IT认证计算机软件水平考试 htTP://WWw.GZu521.COm]"DKGu*rW Bm|8b'

  } marknode;

  char fname [ ]="sp07.dat";

  main()

  { int id, mark;

  marknode *root=null;

  file *fp=fopen(fname,"r");

  if(!fp) {

  printf("file%s open error.\n", fname);

  exit(0);

  }

  while (!feop(fp)) {

  fscanf(fp,"%d%d", &id, &mark);

  btree(&root, id, mark);

  }

  fclose(fp);

  print(root);

  }

  btree(marknod**mpptr, int id, int mark)

  { idnode *ip;

  marknode *mp=*mpptr;

  if (1) {

  if (mark==p->mark) addidnode ( (2) , id);

  else if (mark>mp->mark) btree (&mp->left, id, mark);

  else btree(&mp->right, id, mark);

  }else

  { mp=(marknode *) malloc(sizeo (marknode));

  mp->mark=mark;

  mp->left=mp->right=null;

  (3)

  addidnode(&mp->head, id);

  (4) ;

  }

  }

  addidnode(idnode **ipp, int id)

  {idnode *ip=*ipp;

  if ( (5) )addidnode ( (6) ), id;

  else{

  ip=(idnode *)malloc(sizeof(idnode));

  sp->id=id;

  ip->next=null;

  (7)

  }

  }

  print(marknode *mp)

  { idnode *ip, *ip0;

  if (mp){

  print (mp->left);

  printf("%6d:\t",mp->mark);

  ip=mp->head;

  while(ip){w9e8r=X smRcR [此 资 料 转 贴 于 学 习 网 IT认证计算机软件水平考试HtTp://WwW.GzU521.CoM]w9e8r=X smRcR

  printf("%6d",ip->id);

  ip0=ip;

  ip=ip->next;

  free(ip0);

  }

  printf("\n");printf(mp->right);free(mp);

  }

  }

上 一 页
文共5页:第 【1】 【2】 【3】 【4】 【5】

责任编辑:gzu521

IT认证分类
计算机软件水平考试
全国计算机等级考试
思科认证
微软认证
ORACLE/CIW认证
Linux认证
JAVA认证
其它认证
分类推荐信息
更多...
大类最新文章
更多...