| 网站首页 | 考研信息中心 | 考研资料下载 | 考研论坛 | 考研专业试题 | 2008考研招生简章 | 考研图书 | 留言板 | 考研图片中心 | 

设为首页
加入收藏
联系我们

您现在的位置: 考研信息网 >> 考研信息中心 >> 考研资料 >> 免费试卷 >> 东北院校 >> 吉林大学 >> 正文 用户登录 新用户注册
吉林大学2002年硕士研究生入学考试c语言程序设计答案          【字体:
吉林大学2002年硕士研究生入学考试c语言程序设计答案
作者:吉林大学…    文章来源:吉林大学2002年硕士研究生入学考试c语言程序设计答案    点击数:    更新时间:2006-2-16

本站推荐Firefox浏览器,有效阻止病毒和垃圾弹出[正版免费下载]

吉林大学2002年硕士研究生入学考试c语言程序设计答案

2002-1/*====================================================================================*/
/*函数名称:2002_1.c                                  */
/*程序目的:递归地将一个数插入一个准递增序列,且插入完毕后仍然保持准递增特性      */
/*Writen by Apechn ,Soft Lab of JLU                          */
/*====================================================================================*/
#include <stdio.h>
struct node //定义链表结点结构,在最前面给出
{
 int num;
 node* next;
}
node* insert(node* head,int n)//题目要求的函数
{
 node *p;
 if (n <= head->num) //若n已经到了准递增序列的合适的位置,递归出口
 {
  p = (node*)malloc(sizeof(node));//新建一个节点用来存放n
  p->num = n;
  p->next = head;
  head = p;
 }
 else
  insert(head->next,n);//否则递归插入
 return head;
}
2002-1/*=============================================================================*/
/*函数名称:2002_2.c                              */
/*函数目的:求给定序列的最长递增子序列的长度                   */
/*Writen by Apechn,Soft Lab of JLU                       */
/*=============================================================================*/
#include <stdio.h>
const int N = 8;
int MaxLeng(int a[])
{
  int i,len = 1,lmax = 1;
  for (i = 1;i < N;i++)
  {
   if(a[i] >= a[i-1]) //如果满足递增子序列的定义,len增一
   {
    len ++;
    contnue;
   }
   if (lamx < len)
    lmax = len;
   len = 1;
  }
  return lmax;
}
2002-3/*=============================================================================*/
/*函数名称:2004_3.c                              */
/*函数目的:用链表表示集合的相加                        */
/*Writen by Apechn ,Soft Lab of JLU                       */
/*=============================================================================*/
#include <stdio.h>
struct node //定义链表结点结构,在最前面给出
{
 int num;
 node* next;
}
int ismember(int a,node* head)//子函数,判断整数a是不是在以head为头结点的链表中
{
 int sign = 0; //如果在,返回1,否则返回0
 node* p = head;
 if (p == NULL) //注意集合为空集的情况
  return sign;
 while (p != NULL)
 {
  if (p->num == a)
  {
   sign = 1;
   break;
  }
  p = p->next;
 }
 return sign;
}
node* SetAdd(node* P,node* Q)//题目要求的函数
{
 int n;
 node *r,*tail,*point1,*poing2;
 if (P == NULL)
  return Q;
 if (Q == NULL)
  return P;
 r = P;
 while (r != NULL) //tail用来记录P链表的尾部
 {
  tail = r;
  r = r->next;
 }
 r = Q;
 while (ismember(r->num,P))//找到Q中第一个不在P中的元素的位置,记为r
  r = r->next;
 point1 = r;
 poing2 = r->next;
 while (point2 != NULL) //从r开始遍历链表Q
 {
  n = point2->num;
  if(ismember(n,P))
   point1->next = point2->next;//如果遍历到的元素是P中的元素,那么把它删掉
  else
   point1 = point2;//否则继续
  point2 = point2->next;
 }
 tail->next = r; //把剩余的元素放到P中
 return P;
}
2002_4/*=============================================================================*/
/*函数名称:2004_4.c                              */
/*函数目的:用链表表示八进制数以及它们的和                   */
/*Writen by Apechn ,Soft Lab of JLU                       */
/*=============================================================================*/
#include <stdio.h>
struct node
{
 int num;
 node* next;
};
node* inverse(node* head) //子函数,逆转链表的所有指针,把原来的尾结点变成头结点
{
 node *f,*g,*h;
 if (head != NULL)
 {
  f = head;
  g = NULL;
  while (f->next != NULL)
  {
   h = f;
   f = f->next;
   h->next = g;
   g = h;
  }
  f->next = g;
  head = f;
 }
 return head;
}
node* Add(node* P,node* Q) //题目要求的函数
{
 node *p,*q,*r,*head = NULL;
 int carry,temp;
 if (P == NULL)
  return Q;
 if (Q == NULL)
  return P;
 p = inverse(P); //逆转两个链表的指针
 q = inverse(Q);
 carry = 0; //进位设为0
 while (p != NULL && q != NULL)//逐为相加两个数,知道其中一个加完为止
 {
  temp = p->num + q->num +carry;
  r = new node;
  r->num = temp % 8;
  r->next = head;
  head = r;
  carry = temp/8;
  p = p->next;
  q = q->next;
 }
 if (q == NULL) //修改一下指针,便于统一计算
 q = p;
 while (q != NULL) //把剩余的数加完
 {
  temp = q->num + carry;
  r = new node;
  r->num = temp % 8;
  r->next = head;
  head = r;
  carry = temp/8;
  q = q->next;
 }
 return head;
}
2002_5/*====================================================================================*/
/*函数名称:2002_5.c                                  */
/*程序目的:将一个函数改写为递归函数                          */
/*Writen by Apechn ,Soft Lab of JLU                          */
/*====================================================================================*/
#include <stdio.h>
#include <math.h>
int m,n;
doublef1(double x,double y)
{
 L:
 printf("This is S1 %d times \n",m);
 m++;
 printf("This is S2 %d times \n",n);
 n++;
 x = x + 1.5;
 y = y + x;
 if (y <= 100)
 goto L;
 return sin(y);
}
double f3(double x,double y)//递归函数
{
 printf("This is S1 %d times\n",m);
 m++;
 printf("This is S2 %d times\n",n);
 n++;
 x = x + 1.5;
 y = y + x;
 if (y <= 100) //递归出口
  return f3(x,y);
 else
  return sin(y);
}

 

 

考研信息网在线版权与免责声明

1、 凡本站注明“稿件来源:考研信息网(sanwww.com)”的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、

网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发表。已经本站协议授权的媒体、网站,在下载使用时

必须注明"稿件来源:sanwww.com",违者本站将依法追究责任。

2、本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着

赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。

3、考研试题、各种考试试题以及考试信息转载于各大bbs论坛,就其真实性本站无法证实,并不意味着赞同其观点。

如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
           最新热点        最新推荐        相关文章
    吉林大学2004年硕士研究生入学考试
    吉林大学2004年硕士研究生入学考试
    吉林大学2004年硕士研究生入学考试
    吉林大学2003年硕士研究生入学考试
    吉林大学2003年硕士研究生入学考试
    吉林大学2002年硕士研究生入学考试
    吉林大学2002年硕士研究生入学考试
    吉林大学2002年硕士研究生入学考试
    吉林大学2001年硕士研究生入学考试
    吉林大学2001年硕士研究生入学考试
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)