2019年江苏大学885代码题(含答案)

一、前言

提示:以下是博主自己写的代码,仅供参考,欢迎有兴趣的朋友们留言讨论呀

二、正文

1.第一题

在这里插入图片描述

#include<stdio.h>

// 递归函数,求x的n次幂
double F(double x, int n);

void main()
{
	double x;
	int n;
	while (1)
	{
		printf("请依次输入实数x和正整数n:");
		scanf("%lf%d", &x, &n);
		if (n > 0) {
			break;
		}
	}
	printf("%lf的%d次幂为:%lf\n", x, n, F(x, n));
}

double F(double x, int n)
{
	if (n == 1)
	{
		return x;
	}
	if (n > 1)
	{
		return x * F(x, n - 1);
	}
}

运行结果示例:
在这里插入图片描述
手写版:

2. 第二题

在这里插入图片描述

#include<stdio.h>

#define N 52
// 正面朝上为1,反面朝上为-1
int aa[N + 1];

// 改变牌的朝向
void change(int n);

void main()
{
	int i, count = 0;
	for (i = 1; i <=N; i++)
	{
		aa[i] = 1;
	}
	for (i = 2; i <=N; i++)
	{
		change(i);
	}
	printf("正面朝上的牌有第");
	for (i = 1; i <= N; i++)
	{
		if (aa[i]==1)
		{
			printf("%d ", i);
			count++;
		}
	}
	printf("张\n共%d张\n", count);
}

void change(int n)
{
	for (int i = n; i <= N; i++)
	{
		if (i % n == 0)
		{
			aa[i] *= -1;
		}
	}
}

运行结果示例:
在这里插入图片描述
手写版:

3.第三题

在这里插入图片描述

#include<stdio.h>
#include <stdlib.h>
#include<math.h>

// 判断n是否是素数。是素数则返回1,否则返回0
int judge(int n);

void main()
{
	int i, count = 0, max;
	FILE* fp;
	//打开或创建文件
	if (!(fp = fopen("prime.txt", "a+")))
	{
		printf("cannot open the file!\n");
		exit(0);
	}
	for (i = 2; i <= 300; i += 1)
	{
		if (judge(i))
		{
			fprintf(fp, "%d ", i);
			if (judge(i + 2) && (i + 2) <= 300)
			{
				count++;
				max = i;
			}
		}
	}
	printf("有%d对双胞胎数,最大的一对为%d和%d\n", count, max, max + 2);
	// 关闭文件
	if (fclose(fp))
	{
		printf("cannot close the file!\n");
	}
}

int judge(int n)
{
	for (int i = 2; i <= sqrt(n); i++)
	{
		if (n % i == 0)
		{
			return 0;
		}
	}
	return 1;
}

运行结果示例:
在这里插入图片描述
在这里插入图片描述
(为了方便展示,这里我手动进行了换行,实际上数据应该是一整行的)

手写版:

→返回总目录

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值