热门标签 | 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;
}


欢迎各位网友批评指正!


推荐阅读
  • 主调|大侠_重温C++ ... [详细]
  • 本文详细介绍了C语言中的基本数据类型,包括整型、浮点型、字符型及其各自的子类型,并探讨了这些类型在不同编译环境下的表现。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
  • HDU 2871 内存管理问题(线段树优化)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2871。本题涉及内存管理操作,包括重置、申请、释放和查询内存块。通过使用线段树进行高效管理和维护。 ... [详细]
  • KMP算法是处理字符串匹配的一种高效算法它首先用O(m)的时间对模板进行预处理,然后用O(n)的时间完成匹配。从渐进的意义上说,这样时间复 ... [详细]
  • 2017-2018年度《网络编程与安全》第五次实验报告
    本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。 ... [详细]
  • 本题探讨如何在两个长度为 n 的整数序列中,找到它们的最长公共子序列(LCS)。题目保证第一个序列中的元素各不相同。我们将深入分析并提供一种高效的求解方法。 ... [详细]
  • 本文介绍了一个经典的算法问题——活动选择问题,来源于牛客网的比赛题目。该问题要求从一系列活动集合中选出最多数量的相容活动,确保这些活动的时间段不重叠。 ... [详细]
  • 本文详细解析了Java中throw和throws的关键区别,同时涵盖了JDK的定义、Java虚拟机的关键约定、Java的跨平台性、自动垃圾回收机制、源文件结构、包的概念及作用等多个核心知识点,旨在帮助学生更好地准备Java期末考试。 ... [详细]
  • KMP算法是一种高效的字符串模式匹配算法,能够在不进行回溯的情况下完成匹配,其时间复杂度为O(m+n),其中m和n分别为文本串和模式串的长度。本文将详细介绍KMP算法的工作原理,并提供C语言实现。 ... [详细]
  • 本文详细解析了2019年西安邀请赛中的一道树形动态规划题目——J题《And And And》。题目要求计算树中所有子路径异或值为0的集合数量,通过深入分析和算法优化,提供了高效的解决方案。 ... [详细]
  • 通过分析和解决找零钱问题,深入理解贪心算法的应用。本文提供详细的C语言代码实现及解析。 ... [详细]
  • 本文探讨了一段包含基类与派生类的C++代码,重点分析了虚函数的调用机制及其对程序行为的影响。代码示例包括了两个类的定义:Base和Derived,以及它们之间的继承关系。 ... [详细]
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社区 版权所有