热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2019年江苏大学编程考试885大题解析

本文详细解析了2019年江苏大学编程考试中的三道大题,涵盖幂运算、扑克牌翻转和素数双胞胎的实现。通过具体代码示例,帮助考生更好地理解和掌握这些编程问题。

以下是2019年江苏大学编程考试中三道大题的解析及参考答案:



第一题:幂运算


本题要求实现一个函数,计算给定实数x的n次方。


#include 
double power(double x, int n) {
if (n == 0) return 1;
else if (n == 1) return x;
else return x * power(x, n - 1);
}

int main() {
printf("请输入实数x和整数n,计算x的n次方:");
double x, result;
int n;
scanf("%lf%d", &x, &n);
result = power(x, n);
printf("x=%lf, n=%d时结果为:%lf\n", x, n, result);
return 0;
}


第二题:扑克牌翻转


题目要求模拟52张扑克牌的翻转过程,并输出最终正面朝上的扑克牌编号。


#include 

int main() {
int cards[53] = {0}; // 初始化数组,表示所有卡片初始状态
for (int i = 2; i <= 52; i++) {
for (int j = i; j <= 52; j += i) {
cards[j] = !cards[j];
}
}

printf("正面朝上的扑克牌是:\n");
for (int i = 1; i <= 52; i++) {
if (cards[i]) printf("%5d", i);
}
printf("\n");
return 0;
}


第三题:素数与双胞胎素数


题目要求找出2到300之间的所有素数,并将这些素数写入文件“prime.txt”。此外,还需统计并输出其中的最大一对双胞胎素数(即差为2的相邻素数)。


#include 
#include

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

int main() {
FILE *fp;
if ((fp = fopen("prime.txt", "w")) == NULL) {
printf("无法打开文件!\n");
return 0;
}

int primes[300] = {0}, count = 0;
for (int i = 2; i <= 300; i++) {
if (isPrime(i)) {
primes[count++] = i;
fprintf(fp, "%5d", i);
}
}

fclose(fp);

int maxTwin1 = 0, maxTwin2 = 0, twinCount = 0;
for (int i = 0; i if (primes[i + 1] - primes[i] == 2) {
twinCount++;
maxTwin1 = primes[i];
maxTwin2 = primes[i + 1];
}
}

printf("一共有%d对双胞胎素数,最大的双胞胎素数是%d和%d\n", twinCount, maxTwin1, maxTwin2);
return 0;
}


欢迎各位网友批评指正!


推荐阅读
author-avatar
奇国的雪儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有