加入收藏 收藏网站 设为首页 设为首页
招生考试网
学历类| 阳光高考 研 究 生 自学考试 成人高考 专 升 本 中考会考 外语类| 四 六 级 职称英语 商务英语 公共英语 日语能力
资格类| 公 务 员 报 关 员 银行从业 司法考试 导 游 证 教师资格 财会类| 会 计 证 经 济 师 会计职称 注册会计 税 务 师
工程类| 一级建造 二级建造 造 价 师 造 价 员 咨 询 师 监 理 师 医学类| 卫生资格 执业医师 执业药师 执业护士 国际护士
计算机| 等级考试 软件水平 应用能力 其它类| 书画等级 美国高考 驾 驶 员 书法等级 少儿英语 报 检 员 单 证 员 出国留学
 招生考试网 - 计算机等级考试 - 模拟试题 - 正文

 
计算机四级考试笔试样卷之软件测试工程师
来源:fjzsksw.com 2010-8-10 编辑:zhanghaifeng 【字体:小 大】
计算机四级考试笔试样卷之软件测试工程师

 

论述题3:针对以下C语言程序,请按要求回答问题(18分)
  已知link.c源程序如下:
  /*link.c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入节点、删除节点和链表反转操作*/
  #include
  #include
  typedef struct list_node *list_pointer; //定义链表指针
  typedef struct list_node{//定义链表结构
  int data;
  list_pointerlink;
  }list_node;
  //用到的操作函数:
  list_pointer create();//建立一个单向链表
  void insert(list_pointer *p_ptr, list_pointer node);  //在node后加入一个新的节点
  void delete_node(list_pointer *p_ptr, list_pointer trail, list_pointer node);
  //删除前一个节点是trail的当前节点node
  void print(list_pointer ptr);  //打印链表节点中的值
  list_pointer invert(list_pointer lead);  //反转链表
  int main()
  {
  list_pointerptr=NULL;
  list_pointernode, trail;
  list_pointer*p = &ptr;
  int choose, location, i;
  printf("you should create a link first:\n");
  //建立一个单向链表:
  ptr=create();/* ptr 指向链表的第一个节点 */
  print(ptr);
  //根据用户的不同选择进行相应的操作:
  printf("input number 0, you can quit the program\n");
  printf("input number 1, you can insert a new node to link\n");
  printf("input number 2, you can delete a node from the link\n");
  printf("input number 3, you can invert the link\n");
  printf("please input your choice\n");
  scanf("%d", &choose);
  while(choose!=0){
  switch(choose){
  case 1:
  printf("you will insert a node to the link\n");
  printf("please input the location of the node:\n");
  scanf("%d", &location);
  node = ptr;
  i = 1;
  while(i
  node = node->link;
  i++;
  }
  insert(p, node);/* p为指向ptr的指针 */
  print(ptr);
  break;
  case 2:
  printf("you will delete a node from the link\n");
  printf("please input the location of the node:\n");
  scanf("%d", &location);
  node = ptr;
  if(location ==1)
  trail = NULL;
  trail = ptr;
  i = 1;
  while(i
  trail = trail->link;
  i++;
  }
  node = trail->link;
  delete_node(p, trail, node);
  print(ptr);
  break;
  case 3:
  printf("you will invert the link\n");
  ptr = invert(ptr);
  print(ptr);
  break;
  default:
  break;
  return -1;
  }
  printf("please input your choice\n");
  scanf("%d", &choose);
  }
  return 0;
  }
  //根据用户的输入数值建立一个新的单向链表:
  list_pointer create()
  {
  int i, current, length;
  list_pointerp1, p2, head;
  printf("please input the node number of the link:\n");
  scanf("%d", &length);
  printf("the number of the link is : %d\n", length);
  printf("please input the data for the link node:\n");
  i =0;
  p1= p2= (list_pointer) malloc(sizeof(list_node));
  head = p1;
  for(i = 0; i
  scanf("%d", ¤t);
  p1->data = current;
  p2->link = p1;
  p2 = p1;
  p1 = (list_pointer) malloc(sizeof(list_node));
  }
  p2->link = NULL;
  return head;
  }
  ……
  (1)画出主函数main的控制流程图。(10分)
  (2)设计一组测试用例,尽量使main 函数的语句覆盖率能达到100% 。如果认为该函数的语句覆盖率无法达到100% ,需说明原因。(8分)

 

 

 



 
网站版权与免责声明
①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权等问题,请在两周内来电联系.
最新文章
推荐文章
  • 此栏目下没有推荐文章
  • 热门文章

    报名考试
    全国 | 黑龙江 | 吉林 | 辽宁 | 内蒙古
    青海 | 宁夏 | 甘肃 | 新疆 | 陕西
    西藏 | 北京 | 天津 | 河北 | 山东
    江苏 | 安徽 | 河南 | 上海 | 浙江
    福建 | 广东 | 山西 | 湖南 | 湖北
    江西 | 广西 | 海南 | 云南 | 贵州
    四川 | 重庆
    分省高校计算机考试
    黑龙江 | 吉林 | 辽宁 | 内蒙古 | 河北
    北京 | 天津 | 新疆 | 甘肃 | 宁夏
    青海 | 陕西 | 山西 | 河南 | 山东
    江苏 | 安徽 | 浙江 | 福建 | 广东
    海南 | 广西 | 江西 | 湖北 | 湖南
    四川 | 上海 | 重庆 | 贵州 | 云南
    西藏
    成绩查询
    报考指南
    试题答案
    模拟试题
    考试辅导
    计算机一级 | 计算机二级 | 计算机三级 | 计算机四级
    经验交流
    高校计算机