吉林大学2019年研究生考试软件专硕967

程序题(100分)

1、一组数,2/1,3/2,5/3,8/5,13/8…………,后一个数的分子是前一个数分子分母的和,后一个数的分母是前一个数前一个数的分子,编写程序,求前50个数的和(25分)

#include
#include
#define N 50
int main(){
	int i,m=2,n=1;//m分子 n分母 
	int count=0;
	double sum=0.0,temp=0.0;
	for(i=0;i

 2、如果一个素数,加2后还是素数,如(3,5),(11,13),则称为孪生素数对,编写程序,输出前20个孪生素数对(25分)

#include
#include
#include
#define N 20
int isprime(int n){
	if(n<2){
		return 0;
	}
	int i;
	for(i=2;i<=sqrt(n);i++){
		if(n%i==0){
			return 0;
			break;
		}
	}
	return 1;
}
int main(){//如果一个素数,加2后还是素数,如(3,5),(11,13),则称为孪生素数对,编写程序,输出前20个孪生素数对(25分)
	int i=0,j=2;//m分子 n分母 
	double sum=0.0,temp=0.0;
	while(i!=N){
		if(isprime(j)&&isprime(j+2)){
			printf("%d:(%d,%d)\n",i+1,j,j+2);
			i++;j++;
		}
		else{
			j++;
		}
	}
	return 0;
	
}

3、如果一个数A的约数和等于B,B的约数和等于A,则A和B友好,编写布尔型函数,参数为两个正整数,问两个数
是否友好(25分) 

#include
#include
int main(){
	int i,j;
	int m,n;
	int sum1,sum2;
	while(scanf("%d%d",&m,&n)!=EOF)
	{
	    sum1=0,sum2=0;
	    for(i=1;i<=m;i++)
	    {
	    	if(m%i==0){
	    		sum1+=i;
			}
		}
		for(j=1;j<=n;j++){
			if(n%j==0){
				sum2+=j;
			}
		}
		printf("%d--%d\n",sum1,sum2);
		if(sum2==sum1){
			printf("Friendless!");
		}
		else{
			printf("No!");
		}
	}
	return 0;
	
}

 4、数组A的容量为200,里面存储了各种整数,编写函数(不必完整程序),输出以下内容:每一行有两个数,分别是A中存储的整数以及它在A中出现的次数,下一行是另一个数和出现的次数,依次输出(25分)

#include
#include
#include
#define N 100000
//数组A的容量为200,里面存储了各种整数,编写函数(不必完整程序),
//输出以下内容:每一行有两个数,分别是A中存储的整数以及它在A中出现的
//次数,下一行是另一个数和出现的次数,依次输出(25分)
int main(){//假设没个数大小都不超过100000 
	int i,j,m,n;
	int A[10],array[N];
	memset(A,0,sizeof(int)*10);
	memset(array,0,sizeof(int)*N);
	    for(i=0;i<200;i++)
	    {
		    scanf("%d",&(A[i])) ;
		    array[A[i]]++;
		}
		for(j=0;j

 

你可能感兴趣的:(吉林大学2019年研究生考试软件专硕967)