8套C程序设计----程序设计题(14-17期末题+真题模拟题)

本文集锦了五套编程练习题目,涵盖了数据结构操作、算法实现、数学问题解决等内容,适合初学者和进阶者练习使用。

此5套卷为重叠的市面资料中选出13套卷和15套卷外,每个资料里独有的套卷,分别为:

1、期末题7套中的2014、2015、2016、2017年期末卷-----4套

2、期末17套中的2017-201学年第二学期期末试卷-----------1套

3、3套真题模拟题----------------------------------------------------3套

在此进行汇总重新按以上顺序进行编排

目录

第1套

第2套

第3套

第4套

第5套


第1套

1、水仙花数,输出所有的水仙花数(注意!水仙花数是一个三位数)

2、现有一个单向链表,已按结构体成员项num从小到大的顺序(严格单调,没有相等数据)排序,链表中的结点的结构如下:

struct data{

long num;

struct data *next;

}

请编写一个insert子函数,实现向链表中插入一个节点后,链表依然保持原有顺序的功能,函数的首部及形参说明如下:

                 struct data *insert(struct data *head,struct data *p0)

                 head:链表头指针;     p0:指针,指向将要插入的结点,且结点的num成员已被正确赋值

请编写一个del子函数,实现在链表中删除一个结点后,链表依然保持原有顺序的功能,函数的首部及形参说明如下:

                  struct data *del(struct data *head,long x)

                 head:链表头指针;     x:整型数据,若x与链表中的某个结点num成员项的值相等,则从链表中删除该结点

第2套

1、请编写一个程序,用来计算下列数列前n(1≤n≤100)项之和。(n 的值由键盘输入)
            1/2, 2/3, 3/5, 5/8, 8/13, 13/21......

2、请编写两个程序,实现手机游戏得分管理的功能。假设有N (N=4)个朋友都喜欢玩同样的3个手机游戏,要求实现如下功能:
(1) 先编写一个程序,要求从键盘输入N个人的昵称、编号(id)、每个游戏的得分,将每个人的上述信息均存入磁盘文件record1.dat中。
(2)再编写一个程序,从record1.dat文件中读出游戏得分信息,计算每个人的平均得分,按照平均得分由高到低进行排序,按照排序结果的顺序将参加游戏人员的昵称、编号(id)、平均得分存入新的磁盘文件record2.dat中。

第3套

1、亲和数:如果两个自然数a和b,a的所有除本身以外的因数之和等于b,b的所有除本身以外的因数之和等于a,则称a,b是一对亲和数。(例如: 220 和284:,因为220=1+2+4+71+142,284=1+2+4+5+10+11+20+22+44+55+110, 所以220和284是一对亲和数)

请编写一个程序,输出20000以内所有的亲和数对并统计该指定范围内有多少对亲和数。

2、小美开了一 家网店,经营着几十种商品,由于重品质,讲信誉,加之小美为人谦和大方,所以各种商品的销量--直不错。然而令小美困惑的是各种商品的月销量却总有些起伏不定,很难根据月销量数据判定哪种商品才是最受顾客欢迎的商品。为此,小美精选了30种商品,在线发放了1000 份调查问卷,请求收到调查问卷的顾客为调查问卷上的这30种商品分别评分,最高10.0分,最低0.0分。小美想,等到某个截止日期时,就可以根据收回的调查问卷信息,确定究竟哪种商品才是最受顾客欢迎的商品了。为了便于理解和编程,作如下约定:
a.到截止日期时,不一-定就能收回全部1000份调查问卷;同样,在收回的调查问卷中,评分人也不见得对所有的30种商品都进行了评分。       但只要是评了分的信息都是有效的;
b.为了减少工作负荷,每天要对当天收回的调查问卷数据进行录入和存储。这就意味着存储数据的文件会被多次打开和使用;
c. 30种商品的编号分别用1,2,.... 30表示;
d.某个评分人对某种商品的评分被称作是一条记录。所有收回的调查问卷上的有效信息都以记录的形式存储在二进制文件“vote. dat”中;
e.“最受欢迎的商品”定义为评分总人数不少于300人且平均分最高的商品。若有多个商品的平均分最高,约定商品编号较小的那种商品为“最受欢迎的商品”。

程序中可能用到的结构体类型如下:

struct vote                                                                   |     struct count
{ char voter_ name[20];   //评分人姓名                       |      {   float   sum;  //某种商品的总得分
{floatsum;//某种商品的总得分                                     |           int  n;     //某种商品的评分总人数
int goods_ id; //商品编号                                             |       };
float point;    //评分                                                      |
};                                                                                  |
(1) 编写一个void data_ in(void)函数,要求函数能提供良好的控制台人机交互界面,实现数据的录入和存储。
(2)编写一个void process (struct count goods [30])函数,要求从“vote. dat"文件中读出数据,统计并判断是否存在“最受欢迎的商品”,若存在,输出该商品的编号、评分总人数和平均分;若不存在,输出“对不起,没有最受欢迎的商品!”。
process函数的调用形式为: struct count goods [30]={0}; process (goods) ;

第4套

1.输入一个日期,请编程计算这个日期是该年的第几天?
     例如输入: 2000-2-1/
    输出: 2000年2月1日是2000年的第32天。

2.假设-一个班级有N个学生,每个学生选修了M门课程。这样,每个学生的基本信息包括:学号、姓名、性别以及M门课程的成绩。
(1)请设计学生结构体类型(struct stud),然后编写一个void data_ in() 函数,要求
             函数能提供良好的控制台人机交互界面,实现数据的录入和存储(文件名为: student. dat)。
(2) 编写一个void proce(struct stud stu[N])函数, 要求从“student. dat”文件中读出数据,

         然后统计有不及格成绩的人数并输出这些学生的全部基本信息。
 

第5套

1.编写程序,实现从键盘上输入一个字符,判断该字符是英文字母(含大小写)、数字(0~9)、空格还是其他字符。

2、编程计算下列分数序列前n项之和,数据n由键盘输入。
       1/2,2/3,3/5,5/8...
提示:从第二项起,每一项的分子是前一项的分母,每一项分母是前一项分子与分母之和。
 

3、编写程序,实现从键盘输入一个正整数x,输出比x大的(不包含x) 50个素数,要求每行输出10 个素数。

4、编写函数void fun(char *s), 实现在s所指字符串中数字字符(0-9) 后添加一个*,并输出结果。
例如,若s所指字符串为: ab12cd34则输 出: ab 1*2*cd3*4*


5.编写程序,输入数组元素值,然后找出数组中的最大数和次大数,并把最大数和a[N-1]中的数对调、次大数和a[N-2]中的数对调,其余数据位置不变。
 部分程序如下。
#include <stdio. h>
#define N 10
int main( )
{ int a[N], i;
/*编写程序,实现功能*/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱抵万难

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值