(2020级吉林大学)中国大学MOOC《高级语言程序设计》期末考试——主观题

《高级语言程序设计》期末考试——主观题

1降序数(15分)

问题描述:编写程序,判断给定自然数n是否为降序数。降序数是指对于n=d1d2d3…dk,有:di>=di+1,i=1,2,…,k-1。例如:54321就是一个降序数。

输入:一个自然数n

输出:如果n是降序数,则输出YES,否则输出NO

样例:输入:543 输出:YES

时间限制:500ms内存限制:31kb

#include 
int main(void) {
   
	int n,i=0,flag=0;
	int a[100];
	scanf("%d",&n);
	while(n) {
   
		a[i++]=n%10;
		n/=10;
	}
	for(int j=0; j<i-1; j++)
		if(a[j]>a[j+1]) flag=1;
	if(flag) printf("NO");
	else printf("YES");
	return 0;
}

2组合数计算(15分)

问题描述:编写程序计算从m个物体中选取n个物体所组成的组合数目(m>=n>0)。如果用f(m,n)表示这个组合数,这里可以得到一个分段函数的定义:

当m=n时,f(m,n)=1;

当n=1时,f(m,n)=m;

m<=0或n<=0或m

其他情况时,f(m,n)=f(m-1,n)+f(m-1,n-1);

输入:两个整数,中间以一个西文空格字符间隔,第一个为m的值,第二个是n的值。

输出:一个整数。

样例1:输入 -3 2 输出:-1

样例2:输入 2 -1 输出:-1

样例3:输入 4 1 输出:4

样例4:输入 5 5 输出:1

样例5:输入 5 2 输出:10

时间限制:2000ms内存限制:128000kb

#include 
int C(int m,int n) {
   
	if(m==n) return 1;
	else if(n==1) return m;
	else if(m<=0||n<=0||m<n) return -1;
	else return C(m-1,n)+C(m-1,n-1);
}

int main(void) {
   
	int m,n;
	scanf("%d %d",&m,&n);
	printf("%d",C(m,n));
	return 0;
}

3统计词频(20分)

问题描述:输入6个单词,查找第6个单词在前5个单词中出现的次数。

输入:6个单词

输出:一个整数(次数)

样例:输

你可能感兴趣的:((2020级吉林大学)中国大学MOOC《高级语言程序设计》期末考试——主观题)