南京师范大学2003-2011地理信息系统考研专业一试题(17)

本站小编 免费考研网/2015-08-16


        {
            top++;
            s[top] = str[i];
        }
        if(str[i]==')')
            if(s[top]=='(') top--;
            else return 0;
        if(str[i]==']')
            if(s[top]=='[') top--;
            else return 0;
        if(str[i]=='}')
            if(s[top]=='{') top--;
            else return 0;
    }
    if(top == -1)   return 1;
    else return 0;
}

void main()
{
    char s[100];
    gets(s);
    if(match(s))    printf("OK\n");
    else    printf("NO\n");
}

(6)已知R[0……n-1]为整型数组,试设计实现下列运算的递归算法(本题15分)
<1> 求数组R中的最大整数
<2> 求n个整数之和
<3> 求n各整数的平均值
参考解法:
#include<stdio.h>
#define N 10
int max(int a[],int n)
{
    if(n==1)    return a[0];
    else
        return (a[n-1]>max(a,n-1))?a[n-1]:max(a,n-1);
}
int sum(int a[],int n)
{
    int s;
    if(n==1)    s = a[0];
    else
        s = a[n-1] + sum(a,n-1);
    return s;
}
float avg(int a[],int n)
{
    float f;
    if(n==1)    f = a[0];
    else
        f = ((n-1)*avg(a,n-1) + a[n-1])/n;
    return f;
}
void main()
{
    int i;
    int a[N];
    for(i=0;i<N;i++)
        scanf("%d",&a[i]);

    printf("The max number is %d\n",max(a,N));
    printf("The sum is %d\n",sum(a,N));
    printf("The average is %f\n",avg(a,N));
}

(7)分别写出下图树的先序遍历、中序遍历和后序遍历的结果。写出中序遍历算法,算法
中root指向二叉树的根。(本题20分)
A(B(D,E(G,)),C(F,))
        A
    B       C
 D    E   F
    G
参考解法:
先序遍历:ABDEGCF
中序遍历:DBGEAFC
后序遍历:DGEBFCA

#include<stdio.h>
typedef int TElemType;
typedef struct BiNode
{
    TElemType data;
    struct BiNode *lchild,*rchild;
}BiNode,*BiTree;
//先序遍历二叉树
void preorder(BiTree root)
{
    if(root != NULL)
    {
        printf("%d ",root->data);
        preorder(root->lchild);
        preorder(root->rchild);
    }
}
//中序遍历二叉树
void inorder(BiTree root)
{
    if(root != NULL)
    {
        inorder(root->lchild);
        printf("%d ",root->data);
        inorder(root->rchild);
    }
}
//统计二叉树叶子节点总数的递归算法
int count(BiTree root)
{
    if(root == NULL)    return 0;
    else if(root->lchild == NULL && root->rchild==NULL)
        return 1;
   else
        return (count(root->lchild) + count(root->rchild));
}
//二叉树求深度递归算法
int height(BiTree root)
{
    int h;
    if(root == NULL)    h = 0;
    else
        h = ((height(root->lchild)>height(rchild))?height(root->lchild):height(root->rchild)) + 1;
    return h;
}
南京师范大学2003年研究生入学考试试题-科目名称:C语言程序设计(含数据结构)
(1)从键盘输入10个数,输出其中最大数和最小数。(本题10分)
参考解法:
#include<stdio.h>
void main()
{
    int a[10],max,min,i;
    printf("Please input numbers:");
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    max = min = a[0];
    for(i=1;i<10;i++)
    {
        if(a[i]>max)    max = a[i];
        if(a[i]<min)    min = a[i];
    }
    printf("The max Number:%d,The min Number:%d.\n",max,min);
}

(2)求300以内的双素数,并输出,判断一个数m是否为素数的方法如下:
让m被2到sqrt(m)除,当且仅当m不能被2~sqrt(m)之间的任何一个数所整除,则m为素数,
而当m为素数,同时m+2也为素数,则m与m+2就是双素数。(本题15分)
参考解法:
#include <stdio.h>
#include <math.h>
#define N 100
void main()
{
   int a[N],i,j,k=0,flag;              //flag作为标识符判断是否为素数,若是则为1
   for(i=3;i<300;i+=2)
   {
       flag = 1;
       for(j=2;j<=sqrt(i);j++)
       {
           if(i%j==0)
           {
               flag = 0;
               break;
           }
       }
       if(flag)    a[k++] = i;
   }
   for(i=1;i<k;i++)
       if(a[i] - a[i-1] == 2)
           printf("Both %3d and %3d are prime numbers.\n",a[i-1],a[i]);
}

(3)编写一个子程序能将主程序传过来的数组按行分别进行从小到大的排序,再编写一个
二分法查找子程序,判定主函数传过来的待查数是否在已排序的数组中,若查找到则返回
它在数组中的位置(可以在多个位置出现),否则返回-1。(本题15分)

参考解法:
void sort(int a[][N],int m,int n)是对m行n列二维数组进行排序;
int find(int a[][N],int m,int n,int e,int b[])是将m行n列的二维数组中查找元素e。
若找到,则返回找到的元素e的个数,并将元素的位置放在b[]数组中;若找不到则返回-1。
void print(int a[][N],int m,int n)是打印m行n列的二维数组。

#include<stdio.h>
#define M 5
#define N 4
void sort(int a[][N],int m,int n)
{
    int i,j,k,temp,pos;
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            pos = j;
            temp = a[i][j];
            for(k=j+1;k<n;k++)
            {
                if(a[i][k]<temp)
                {
                    temp = a[i][k];
                    pos = k;
                }
            }
            if(pos != j)
            {

相关话题/地理

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19
  • 2001-2008年西南大学人文地理学考研真题
    2001年人文地理学 一、 名词解释(15) 1、中东 2、地理大发现 3、大洋洲 4、尼罗河 5、巴黎盆地 二、 简述题(20) 1、世界地理环境结构的地域分异规律 2、战后科技革命对世界经济发展和产业分布的影响 三、 填图题(图) 在图上填出(15) 1、统一后的德国国界和国名(1) ...
    本站小编 免费考研网 2015-08-09
  • 华南师范大学人文地理学2002-2011历年考研真题(附答案)
    华南师范 大学 2011 硕士 研究生招生入学考试试卷 人文地理学 一、名词解释(每题 5 分,共 30 分) 1、因子生态分析法 2、容积率和建筑密度 3、城市发展的经济基础原理 4、产业集群 5、集聚与扩散 6、旅游规划 二、简答题(70 分) 1、请简述我国的区域空间规划体系。(15 分) ...
    本站小编 免费考研网 2015-07-22
  • 湖南师范大学经济地理学复试资料(整合)
    第一章 绪论 何谓经济地理学? 答:经济地理学是研究经济活动区位、空间组织及其地理环境相关系的学科。 试述经济地理学的研究对象。 答:经济地理学的研究对象包括:经济活动的内容、区位、空间 ...
    本站小编 免费考研网 2015-07-22
  • 2013年兰州大学818现代地理学(含自然地理学、经济地理学)+考研试题(回忆版)
    2013年兰州大学818现代地理学(现代地理学(含自然地理学、含自然地理学、经济 地理学) 地理学) 考研试题) 考研试题(考研试题(回忆版)回忆版) 一、名词解释(每题6分) 1、不整合 2、干洁空气 3、锋 4、雪线 5、黄土 6、土壤质地 7、生态系统 8、隐域性 二、简答题(每题8分) 1、岩石的结构与构造 2、沉积岩的基本 ...
    本站小编 网络资源 2015-07-16
  • 人文地理学 赵荣等 高等教育出版社(答案)
    第一章 绪论 1、 人文地理学在地理学中的地位和作用。 人文地理学是以人地关系的理论为基础,探讨各种人文现象的地理分布、扩散和变化,以及人类社会活动的地域结构的形成和发展规律的一门学科。又称人生地理学。它是地理学的两个主要分支学科之一,人文二字与自然地理学的自然二字相对应 ...
    本站小编 免费考研网 2015-07-16
  • 西北大学2015中国历史地理学考题
    西北大学2015中国历史地理学考题 一、名词解释 沿革地理学 地理环境决定论 新秦中 陈桥驿 统万城 关西和关东 二、简答题 1、简述中国历史时期人口变化特点及其影响。 2、简述毛乌素沙漠的形成原因。 3、简述中国历史上东西对峙的原因。 三、论述题 1、论述中国历史时期气候变迁及其影响。 2、论述安阳成为中国七大古都 ...
    本站小编 网络资源 2015-07-15
  • 西北师范大学2011年,2012年自然地理试题
    2010 一名词解释 1沉积建造 2米兰科维奇理论 3水分循环 4土壤肥力 5趋同适应 6洪积扇 7正断层 8海陆风 二简答题 1分析气候与生物对土壤形成的作用与影响 2简要分析我国西北干旱气候的形成原因. 3分析对比准平原和山麓面的形成过程. 4简述农业生态系统的特点. 5简述冰川对地理环境的影响 6简要分析地球自转的 ...
    本站小编 免费考研网 2015-07-01
  • 中科院寒旱所2007-1997硕士入学考试真题 [自然地理]
    自然地理学 1997年硕士研究生入学考试题 一、名词解释 1、沉积相与沉积韵律 2、气旋与反气旋 3、土壤与土地 4、径流系数与径流模数(写出单位) 5、生物群落与生态系统 二、回答问题 1、 季风环流是怎样形成的?简述热带季风气候、副热带季风气候和温带季风气候各自发育的区域和气候特点。(13分) 2、 自然带在空间 ...
    本站小编 免费考研网 2015-07-01
  • 中科院寒旱所2006自然地理学考博试题答案
    自然地理学 一、名词解释 1、季风 2、水循环 3、大气环流 4、洋流 5、生态系统 季风:大陆和海洋间的广大地区,以一年为周期、随着季节变化而方向相反的风系,称为季风。季风是海陆间季风环流的简称,它是由大尺度的海洋和大陆间的热力差异形成的大范围热力环流。夏季由海洋吹向大陆的风称为夏季风;冬季由大陆吹向海洋的 ...
    本站小编 免费考研网 2015-07-01
  • 中科院寒旱所考博地理名词解释(答案整理)
    名词解释: 1、季风(monsoon):是由于大陆及邻近海洋之间存在的温度差异而形成大范围盛行的、风向随季节有显著变化的风系,具有这种大气环流特征的风称为季风。 大陆和海洋间的广大地区,以一年为周期、随着季节变化而方向相反的风系,称为季风。季风是海陆间季风环流的简称,它是由大尺度的海洋和大陆间的热力差异形成 ...
    本站小编 免费考研网 2015-07-01