1.判断素数
第一题:判断是否为素数,若是,则返回1,否则返回0,若输入1或比1小的数字返回0。

int is_Prime(int a)//素数判断,是则返回1,不是返回0,-1表示输入的值有问题
{int i = 0;if (a <= 1)return -1;for (i = 2; i <= sqrt(a); i++)    {if (a % i == 0)return 0;}return 1;
}

这里有同学可能不明白为什么for (i = 2; i <= sqrt(a); i++)简单解释一下:因数都是成对出现的,比如100,其可以分为1和100,2和50,4和25,由此可见其中一个必然小于等于100的开方,另一个则大于等于100的开方。这种判断素数的方法,应付考试足以,但想要更上一层楼这却远远不够,大家可以去了解一下筛法。
2.数组排序
期末考试的排序方法常常有两种:选择排序、冒泡排序。

void sortarry2(int* a, int n) //冒泡排序
{int i, j;for (i = 0; i < n - 1; i++)//此处只需比n-1次for (j = 1; j < n - i; j++)//每次比好后,只需比n-1-i次{if (a[j] < a[j - 1]){int temp;temp = a[j - 1];a[j - 1] = a[j];a[j] = temp;}}return;
}

这是冒泡排序(从小到大),顾名思义就是每次让较大的数想气泡一样浮上去,对于为什么第一个for语句只需比n-1次,大家想想,现在排5个数,四个较大数浮上去了,最后一个还用比吗?同样第二语句为什么只需比n-1-i次也是同样的道理。

void sortarry1(int *a,int n)//   选择排序
{int i, j;for(i=0;i<n-1;i++)for (j = i + 1; j < n; j++){if (a[i] > a[j]){int temp;temp = a[i];a[i] = a[j];a[j] = temp;}}return ;
}

了解了冒泡排序后,选择排序就十分好理解了,这里就不多说了。对于大多数学校,会这两种算法应付期末考试足以,但其实排序的方法还有很多,基础的插入排序,高级一点的快速排序。
3.二分查找
二分查找,分治法里面的一种,有叫折中查找。但二分查找必须有个前提,就是对于查找对象,必须是已经排好序的。一般期末考试常考的是对数组的排序。

int search(int* a, int key, int n)// 二分法查找,返回值为当前数组的下标
{int first = 0;int last = n - 1;int mid = 0;while (first <last){mid = (first + last) / 2;if (a[mid] >= key){last = mid;}else{first = mid + 1;}}if(a[last]==key)return mid;return -1;//表示没找到
}

我查了一下,网站上大多数的二分查找,都是找到了就返回,可我们常常遇到的题目确实,要返回第一数的位置。所以if (a[mid] >= key)这个语句起了关键作用。
4.最大公约数
对于最大公约数,大致思路有两种,直接循环、采用辗转相除法。这里直接讲第二种,这方法好像高中学过,又名欧几里得算法。内容就是:两个整数的最大公约数等于,大的除以小的余数,循环或递归,直至整除余0后的整数。至于为什么,百度吧。

int GCD(int a, int b) // 最大公约数
{if (b == 0)return 0;elsereturn GCD(b, a % b);
}

当然循环也可实现,

int gcd(int a, int b)
{int temp;while ((a % b) != 0){temp = a % b;a = b;b = temp;}return b;
}

大多数疑问的是为什么不用确保是大数除小数
当a<b时,a%b==a;此时第一个循环就会把位置换过来。
5.最小公倍数
如果会求最大公约数,那么最小公倍数就太简单了。
最大公倍数 * 最大公倍数 = a*b
至于证明,去问百度吧。接下来差不多都是水题。

6.下述程序段是要实现在数组中查找最大元素和最小元素的下标,请补充。
如果上述题目都会,那么这题目就太简单了,直接上代码。

void find(int* a,int n,int* max,int* min)
{int i;*max = *min = 0;for (i = 1; i < n; i++){if (a[i] > a[*max])*max = i;else if (a[i] < a[*min])*min = i;}return;
}

7.猴子吃桃题
猴子吃桃问题,猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子。求第一天共摘多少桃子?

int main()
{int i, count = 1;for (i = 1; i < 10; i++){count = (count + 1) * 2;}printf("%d\n", count);return 0;
}

逆过程思考问题。
8.回文问题
回文数是指正读和反读都一样的正整数。例如 3773 是回文数。求出 [1000 , 9999] 之间的回文数是偶数的最大回文数。

int main()
{int a1, b1, a2, b2, i, hws;for (i = 1000; i <= 9999; i++){a1 = i / 1000;                     //千位b1 = i / 100 - a1 * 10;            //百位b2 = i / 10 - a1 * 100 - b1 * 10;  //十位a2 = i % 10;                       //个位if((a1 == a2) && (b1 == b2) && (i % 2 == 0))hws = i;}printf("所求的最大回文数为:%d", hws);return 0;
}

当然这里是题目简单只有四位数,万一位数不确定呢?大家可以思考思考,在评论区中讨论。
9.二维数组
一个 14*14 方阵 A(i,j) ,其每个元素的值为该元素下标的平方和,求出该矩阵所有对角线元素的累加和 ( 注: i ,j 从 1 到 14) 。
简单模拟即可。

int main()
{long a[15][15];long i, j, sum = 0;for (i = 1; i < 15; i++)for (j = 1; j < 15; j++)a[i][j] = i * i + j * j;for (i = 1; i < 15; i++)sum = sum + a[i][i];printf("%ld", sum);return 0;
}

10.结构体问题
有 5 个学生,每个学生的数据包括学号、姓名、 2 门课程的成绩,从键盘输入 5 个学生数据,要求输出 5 个学生2 门课程总平均成绩。

struct student
{char no[5];char name[8];int score[2];
};
int main()
{student record[5];int i,sum = 0,j,ave;printf("Please input 5 students score : ");for (i = 0; i < 5; i++){printf("Please input % d number : ", i + 1);printf("enter number : "); scanf("%s", record[i].no);printf("enter name : "); scanf("%s", record[i].name);for (j = 0; j < 2; j++){scanf("%d", &record[i].score[j]);sum = sum + record[i].score[j];}}ave = sum / 10;printf("total average score is : % d",ave);return 0;
}

对于结构体来说,一定要细心,要记得定义结构体类型时 后面的

大致内容就这么多,如有错误,还望大佬指出。

大一c语言期末考试编程题相关推荐

  1. 大一下c语言期末考试编程题,大一上期末C语言编程题

    大一上期末C语言编程题 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 用公式 π/4 = 1-1/3+1/5-1/7--,编程序 ...

  2. C语言期末考试编程题

    7-1 统计学生成绩 (10 分) 本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布.百分制成绩到五分制成绩的转换规则: 大于等于90分为A: 小于90且大于等于80为B: 小于80且大 ...

  3. MOOC:程序设计入门——C语言:期末考试编程题

    题目内容: 分数可以表示为"分子/分母"的形式.编写一个程序,要求用户输入一个分数,然后将其约分为最简分式.最简分式是指分子和分母不具有可以约分的成分了.如6/12可以被约分为1/ ...

  4. Python课程期末考试编程题自动批卷原理与实现模板

    适用场合: 1)Python程序设计课程上机或实验作业自动批阅. 2)Python程序设计课程期末考试编程题的自动评分. 设计思路: 1)编写考试试卷程序文件,定义好每个试题的函数接口和预期功能,详细 ...

  5. C语言计算机二级/C语言期末考试 刷题(二)

    收集了一些经典C语言计算机二级和C语言期末考试题库 整理不易,大家点赞收藏支持一下 祝大家计算机二级和期末考试都高分过 系列文章: C语言计算机二级/C语言期末考试 刷题(一) 目录 一.填空   共 ...

  6. C语言计算机二级/C语言期末考试 刷题(四)

    收集了一些经典C语言计算机二级和C语言期末考试题库 整理不易,大家点赞收藏支持一下 祝大家计算机二级和期末考试都高分过 系列文章: C语言计算机二级/C语言期末考试 刷题(一) C语言计算机二级/C语 ...

  7. c语言大一期中考试含答案,大一C语言期末考试选择复习题.docx

    大一C语言期末考试选择复习题 ### ~~~1 下列叙述中正确的是( ). 程序设计就是编制程序 程序的测试必须由程序员自己去完成 程序经调试改错后还应进行再测试 程序经调试改错后不必进行再测试 ~C ...

  8. C语言计算机二级/C语言期末考试 刷题(一)

    收集了一些经典C语言计算机二级和C语言期末考试题库 整理不易,大家点赞收藏支持一下 祝大家计算机二级和期末考试都高分过 目录 一.填空,共20题 (共计20分) 二.单选   共25题 (共计25分) ...

  9. 程序设计入门——C语言 翁恺 期末考试编程题

    最简分式(10分) 题目内容: 分数可以表示为"分子/分母"的形式.编写一个程序,要求用户输入一个分数,然后将其约分为最简分式.最简分式是指分子和分母不具有可以约分的成分了.如6/ ...

  10. 中国大学MOOC课程《程序设计入门——C语言》 期末考试编程题

    1 最简分式(10分) 题目内容: 分数可以表示为"分子/分母"的形式.编写一个程序,要求用户输入一个分数,然后将其约分为最简分式.最简分式是指分子和分母不具有可以约分的成分了.如 ...

最新文章

  1. linux socket 缓冲区默认大小
  2. 3dContactPointAnnotationTool开发日志(二二)
  3. [JSP暑假实训] 三.MySQL数据库基本操作及Servlet网站连接显示数据库信息
  4. vscode工作区是什么意思_空压机的容积流量和工作压力是什么意思?
  5. Hanlp之理解用户自定义词典(java版本)
  6. sql一个表中两个字段合并求和
  7. Dell T3610 台式工作站UEFI模式安装Win7系统
  8. react-native-router-flux 使用详解(三)
  9. 【图像去噪】基于matlab GUI空域+频域滤波图像去噪【含Matlab源码 914期】
  10. 博通BCM94352网卡驱动
  11. 大提顿国家公园美丽风景Mac动态壁纸
  12. VirtualBox 调整屏幕分辨率
  13. 《大江大河2》中教科书般的精神自救-如何让反感你的人欣赏你
  14. 【JavaEE】网络编程之TCP套接字、UDP套接字
  15. 微信小程序实现首页图片多种排版布局!
  16. 解决问题就是有成就感
  17. 关于城市居民膳食结构与食品营养的意见
  18. tx2 安装opencv4.1.1及opencv_contrib-4.1.1
  19. P2P想借壳上市?只能看命了
  20. iOS开发——高级技术内购服务

热门文章

  1. MTK FM收音机修改门限减少杂台
  2. plsql破解的办法
  3. android textwatcher 获取当前控件,TextWatcher如何找到调用它的EditText
  4. PADS2007库转换为PADS 9.0以上库文件
  5. 上位机plc编程入门_上位机-使用C#编程语言编写PLC上位机软件-技术论坛-西门子中国...
  6. 翱文中华灯谜大全 v1.1 免费下载--IT man
  7. 移动通信原理学习笔记之三——抗衰落和链路性能增强技术
  8. 蓝桥杯——练习系统登录
  9. Foobar2000目前最强解码方案
  10. Oracle数据库的安装及使用教程