内蒙古大学892程序设计与数据结构-2016年真题解析(C语言版)-创新互联

内蒙古大学892程序设计与数据结构-2016年真题解析(C语言版) 一、程序设计(本大题6小题,每小题15分,共90分),程序设计语言可选用C、C++或Java。

1、某函数原型为int MySum(int m,int n); 其功能是求两个正整数参数m到n之间(包括m和n)所有偶数的和。例如MySum(3,10)的返回值为28。请给出该函数的实现代码。(15分)

沿河网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联公司从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司
#include "stdio.h"
int MySum(int m,int n)
{int sum=0;
	while(m<=n)
	{if(m%2==0)
			sum+=m;
		m++;
	}
	return sum;
}
void main()
{printf("%d\n",MySum(3,10));
}

2、编写程序,求e的值,e≈1+1/1!+1/2!+1/3!+1/4!+…,最后一项的值小于1e-6。(15分)

#include "stdio.h"
#include "math.h"
void main()
{double e=1,k=1,m=1; //m 表示分母,k表示第n项
	int i=1;
	while(k>=pow(10.0,-6))
	{m=m*i;
		k=1/m;
		e+=k;
		i++;
	}
	printf("%lf\n",e);
}

3、编写程序,从键盘输入正整数n(n不大于20),打印一个n层的杨辉三角形。例如从键盘输入4,则输出如下图形:
       1
      1   1
     1   2  1
    1   3   3  1           (15分)

#include "stdio.h"
void main()
{int n,i,j,k,a[20][20];
	scanf("%d",&n);
	for(i=0;ifor(k=0;k

4、编写一个函数,功能是对矩阵进行处理。对于一个mxn矩阵,执行函数后使其每行元素的大小按照升序排列。(15分)

#include "stdio.h"
#define M 3
#define N 4
void sort(int a[M][N])
{int temp;
	for(int i=0;ifor(int j=0;ja[i][k])
				{temp=a[i][j];
					a[i][j]=a[i][k];
					a[i][k]=temp;
				}
	}
}
void main()
{int a[M][N];
	for(int i=0;ifor(int j=0;j

5、采用递归思想,设计并实现一个函数,其功能是将正整数参数n,由低位到高位倒序输出。例如n为4892,则输出2984。(15分)

#include "stdio.h"
int reverse(int n)
{printf("%d",n%10);	
	n/=10;
	if(n==0)
		return 1;
	else
		return reverse(n);
}
void main()
{int n;
	scanf("%d",&n);
	reverse(n);
}

6、编写程序,从键盘输入一个字符串,内有数字和非数字字符,如 xy12ab93?5786$,连续的数字成为一个整数。例如:上述字符串中有3个整数: 12、93和5786。统计字符串中有多少个整数,并依次输出。(15分)

#include "stdio.h"
void main()
{char str[20];
	int i=0,num=0,z=0;
	gets(str);
	while(str[i]!='\0')
	{if(str[i]<'0'||str[i]>'9')
		{	i++;
			continue;
		}
		while(str[i]>='0'&&str[i]<='9')
		{	z=z*10+(str[i]-'0');
			i++;
		}
		printf("%d\n",z);
		num++;
		z=0;
		i++;	
	}
	printf("%d\n",num);
}
二、分析与解答 (本大题6小题,每小题10分,共60分)
  • 近年内蒙古大学892试卷数据结构部分的题型变化较大,以下题目基本无参考价值,故不在给出具体解答,有兴趣的同学可以自己练习。

1、线性表有两种存储结构: 一种是顺序表,一种是链表。请比较二者的差异与优缺点。(10分)
2、总盘数为n的Hanoi塔(汉诺塔)需要移动多少次?假设三根柱子分别为A、B、C,最初有4个盘子都在A柱,大盘在下、小盘在上依次放置。请给出将4个盘子按照Hanoi塔的游戏规则全部移动到C柱的操作序列。(10分)
3、已知一棵完全二叉树有892个节点,请计算:
(1)树的高度
(2)叶子节点个数
(3)单支节点个数
(4)最后一个非终端节点的序号
(10分)
4、设有一堆栈,其入栈和出栈操作分别为PUSH和POP。现有三个元素a、b、c将依次进伐。请列出所有可能的出栈序列和获得该出栈序列的操作过程。(10分)
5、设有n个元素采用冒泡法进行排序,通常需要进行多少趟排序?对于第i趟冒泡通常需要进行多少次关键字比较?在程序设计中如何设置判断条件,有可能使冒泡趟数减少并且能完成排序。(10分)
6、结定一个n个元素的整数数组A,A中连续的相等元素所形成的数据区域成为“块”。请设计算法,求A中大块的长度。(10分)

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前标题:内蒙古大学892程序设计与数据结构-2016年真题解析(C语言版)-创新互联
分享链接:http://pwwzsj.com/article/decsoj.html