当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(21)
发布时间:2011/7/8 11:32:31 来源:城市学习网 编辑:ziteng
  第21套
  填空题
  给定程序中,函数FUN的功能是:将S所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符原有的先后次序。
  例如,形参S所指的字符串为:def35adh3kjsdf7.执行结果为:defadhkjsdf3537.
  注意:部分源程序给出如下
  请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。
  试题程序:#include <stdio.h>
  void fun(char  *s)
  {
  int  i, j = 0, k = 0;
  char  t1[80], t2[80];
  for(i=0; s[i]!='\0'; i++)
  if(s[i]>='0' && s[i]<='9')
  {
  t2[j]=s[i];
  ___1___;
  }
  else
  {
  t1[k++] = s[i];
  }
  t2[j] = 0;
  t1[k] = 0;
  for (i=0; i<k; i++)
  ___2___;
  for (i=0; i<___3___; i++)
  s[k+i] = t2[i];
  }
  main()
  {
  char  s[80] = "ba3a54j7sd567sdffs";
  printf("\nThe original string is :  %s\n", s);
  fun(s);
  printf("\nThe result is :  %s\n", s);
  }
  第1处填空:j++或++j或j+=1或j=j+1
  第2处填空:s[i]=t1[i]
  第3处填空:j
  改错题
  下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数FUN的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。
  请改正程序中的错误,使它能得出正确结果。
  注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!
  试题程序:#include <stdio.h>
  #include <conio.h>
  #include <stdlib.h>
  typedef  struct aa
  {
  int  data;
  struct aa  *next;
  }  NODE;
  fun(NODE *h)
  {
  int  max = -1;
  NODE  *p;
  /********found********/
  p = h;
  while (p)
  {
  if (p->data > max)
  max = p->data;
  /********found********/
  p=h->next;
  }
  return max;
  }
  outresult(int  s, FILE  *pf)
  {
  fprintf(pf, "\nThe max in link : %d\n", s);
  }
  NODE *creatlink(int  n, int  m)
  {
  NODE  *h, *p, *s;
  int  i;
  h = p = (NODE*)malloc(sizeof(NODE));
  h->data = 9999;
  for (i=1; i<=n; i++)
  {
  s = (NODE*)malloc(sizeof(NODE));
  s->data = rand()%m;
  s->next = p->next;
  p->next = s;
  p = p->next;
  }
  p->next = NULL;
  return h;
  }
  outlink(NODE  *h, FILE  *pf)
  {
  NODE  *p;
  p = h->next;
  fprintf(pf, "\nTHE LIST:\n\n HEAD");
  while (p)
  {
  fprintf(pf, "->%d ", p->data);
  p = p->next;
  }
  fprintf(pf, "\n");
  }
  main()
  {
  NODE  *head;
  int  m;
  head = creatlink(12, 100);
  outlink(head, stdout);
  m = fun(head);
  printf("\nTHE RESULT :\n");
  outresult(m, stdout);
  }
  第1处:p=h;应改为p=h->next;
  第2处:p=h->next;应改为p=p->next; [NextPage]   编程题
  请编写fun函数对长度为7个字符的字符串,除首,尾字符外,其他5个字符按ASCII码降序排列
  例如原来的字符串为,CEAecda,则排序后输出为CedcEAa
  注意:部分源程序给出如下。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  试题程序:#include <stdio.h>
  #include <ctype.h>
  #include <conio.h>
  #include <string.h>
  void fun( char *s,int num)
  {
  }
  main()
  {
  char s[10];
  FILE *out;
  printf("ê?è?7??×?·?μ?×?·?′?:");
  gets(s);
  fun(s,7);
  printf("\n%s", s);
  out=fopen("out.dat", "w");
  strcpy(s, "ceaEDCA");
  fprintf(out, "%s", s);
  fclose(out);
  }
  答案是:
  void fun( char *s,int num)
  {
  char t;
  int I,j;
  for(i=1;i<num-2;i++)
  for(j=i+1;j<num-1;j++)
  if(s[i]<s[j])
  {
  t=s[i];
  s[i]=s[j];
  s[j]=t;
  }
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved