C语言 百分网手机站

计算机等级二级C语言上机考前预测题

时间:2020-10-14 17:54:18 C语言 我要投稿

2017年计算机等级二级C语言上机考前预测题

  学习是要持之以恒的一件事,坚持就是胜利!下面是小编整理的2017年计算机等级二级C语言上机考前预测题,希望对大家有用,更多消息请关注应届毕业生网。
  一、程序填空题
  请补充函数proc(),该函数的功能是建立一个带头结点的单向链表并输出到文件“out.dat"和屏幕上,各结点的值为对应的下标,链表的结点数及输出的文件名作为参数传人。
  注意:部分源程序给出如下。
  请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
  试题程序:
  #include
  #include
  #include
  typedef struct ss
  {
  int data;
  struct SS*next;
  }NODE;
  void proc(int n,char*filename)
  {
  NODE*h,*p,*S;
  FILE*pf;
  int i:
  h=p=(NODE*)malloc(sizeof(N()DE));
  h->data=0;
  for(i=1;i   {
  s=(N()DE*)malloc(sizeof(N()DE));
  s>data= 【1】 ;
  【2】 ;
  p= 【3】 ;
  }
  P->newt=NULL;
  if((pf=fopen(filename,"W"))==NULL)
  {
  printf("Can not open out98.dat!");
  exit(0);
  }
  P=h;
  {printf(pf,"\n***THE LIST***\n");
  printf("\n***THE LIST***\n");
  while(p)
  {
  fprintf(pf,"%3d",P->data):
  printf("%3d",p->data);
  if(p>next!=NULL)
  {
  fprintf(pf,"->"):
  printf(" >"):
  }
  p=p->next;
  }
  fprintf(pf,"\n"):
  printf("\n"):
  fclose(pf);
  p=h;
  while(p)
  {
  s=p:
  p=p- >next;
  free(s):
  }
  }
  void main()
  {
  char*filename- "out dat":
  int n;
  system("CLS"):
  printf("\nlnput n:");
  scanf("%d",&n);
  proc(n,filename);}
  二、程序改错题
  下列给定程序中,proe()函数的功能是:根据形参n,计算下列公式的值:
  t=1-1/2+1/3-1/4+…+(-1)(n+1)/n
  例如,若输入6,则应输出0.616667。
  请修改程序中的错误,使它能得到正确结果。
  注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
  试题程序:
  #include
  #include
  #include
  //****found****
  int proc(int n)
  {
  double t=1.0,j=1.0;
  int i;
  //****found****
  for(i=1:i   {j=-1*j;t十=j/i;}
  return t;
  }
  void main()
  {
  int n;
  system("CLS"):
  printf("\nPlease enter 1 integer number:");scanf("%d",&n);printf("\nThe result is%1f\n",proc(n));}
  三、程序设计题
  请编写函数proc(),其功能是:计算并输出F列多项式的值。
  S=1+1/(1+2)十1/(1+2+3)+…+1/(1+2+3+…m)
  例如,若主函数从键盘给m输入20后,则输出为S=1.904762。
  注意:部分源程序给出如下。
  请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
  试题程序:
  #include
  double proc(int m)
  {
  }
  void main()
  {
  int m;
  double s;
  printf("\nInput m:");
  scanf("%d",&m);
  s=proc(m):
  printf("\n\ns=%f\n\n",s);
  }
  上机考试试题答案与解析
  一、程序填空题
  【1】i【2】p->next=S【3】p->next
  【解析】s->data指向节点S的值,其下标为i,题目中要求各节点的值为对应的下标,因此,【1】处填“i”。函数的功能是建立一个带头节点的单向链表,因此每生成一个节点上一个节点的next指针指向该结点。由程序可知,指针p一直都指向上一个结点,因此,【2】处填“p->next=S”。每生成一个节点,P指向下一个节点,因此,【3】处填“p-> next”。
  二、程序改错题
  (1)错误:int proc(int n)
  正确:double proc(int n)
  (2)错误:for(i=1;i  正确:for(i=2;i<=n;i++)【解析】由主函数中的函数调用以及函数proc()中返回值的'类型,可知函数proc()的返回值类型为double型数据。因此,“int proc(int n)”应改为“double proc(int n)”。由题目中给出的表达式可知,循环的最大值应该取到n,因此,“for (i=1;i  三、程序设计题double proc(int m){
  int i;
  double s=0.0,s1=0.0; //s表示分数的和,sl为分数for(i=1;i<=m;i++) //通过循环求S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)
  { s1=s1+i;
  s=s+1.0/s1;
  }
  return s;//最后把和s返回到主函数中
  }
  【解析】由题目中所给公式可知,多项式的值为rrl项的和。多项式每一项的分子均为1,第i项的分母为1~i所有整数的和。根据这个特点,通过m次循环求出多项式的每一项并求和。最后将多项式的和返回到主函数中。
 

【2017年计算机等级二级C语言上机考前预测题】相关文章:

1.计算机二级C语言上机编程题讲解

2.2017计算机二级考试C语言考前冲刺题

3.2016年计算机二级C语言上机考试技巧

4.计算机等级考试二级C语言真题

5.计算机等级考试二级C语言填空题

6.2015年计算机等级考试二级C语言考场指导

7.2015年计算机等级二级C语言考试备考技巧

8.计算机二级C语言上机模拟题

9.计算机等级二级考试C++考前试题选择题