C语言程序设计题目集合.docx

上传人:b****8 文档编号:9440425 上传时间:2023-02-04 格式:DOCX 页数:14 大小:44KB
下载 相关 举报
C语言程序设计题目集合.docx_第1页
第1页 / 共14页
C语言程序设计题目集合.docx_第2页
第2页 / 共14页
C语言程序设计题目集合.docx_第3页
第3页 / 共14页
C语言程序设计题目集合.docx_第4页
第4页 / 共14页
C语言程序设计题目集合.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言程序设计题目集合.docx

《C语言程序设计题目集合.docx》由会员分享,可在线阅读,更多相关《C语言程序设计题目集合.docx(14页珍藏版)》请在冰豆网上搜索。

C语言程序设计题目集合.docx

C语言程序设计题目集合

一、A类、

①长整数四则运算(最多限1人)

【问题描述】设计任意两个长正整数(小于80位)的加法函数add()和乘法函数mult(),并求任意整数(≤58)的阶乘。

【实现提示】用无符号整型或字符型数组存储任意长整数。

【测试数据】

6!

=720

9!

=362880

19!

=121645*********0000

39!

=20397882081197443358640281739902897356800000000

②单词统计(最多限1人)

【问题描述】统计某篇英文小说中某些单词的出现次数。

【实现提示】英文小说存储在一个文本文件中。

待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后全部完成。

输出的每个单词的出现次数。

约定小说中的词汇一律不跨行,这样每从文本文件中读入一行,就统计每个单词在这行中出现的次数,直到文件结束。

要求在程序运行时才输入文本文件名和要统计的词汇。

【测试数据】以C/C++语言源程序模拟英文小说。

统计某些保留字(如:

if,else,for,while等)的出现次数。

③保龄球计分

【问题描述】打保龄球是用一个滚球去撞击10个站立的瓶,将瓶击倒。

一局分10轮,每轮可滚球1 次或多次,以击到的瓶数为依据计分,一局得分为10轮得分之和,而每轮的得分不仅与本轮的滚球情况有关,还可能与后一轮或两轮的滚球情况有关,即:

某轮某次滚球击倒的瓶数不仅要计入本轮得分,还可能会计入前一轮或两轮得分。

计分规则如下:

a)若某一轮的第一次滚球就击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加2次滚球),该轮得分为本次击倒瓶数10与以后2次滚球所击倒瓶数之和。

b)若某一轮的第一次滚球未击倒全部10个球,则对剩下未击倒的瓶再滚球一次,如果这2次滚球击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加1次滚球),该轮得分为这2次击倒瓶数10与以后1次滚球所击倒瓶数之和。

c)若某一轮2次滚球未击倒全部10个瓶,则本轮不在滚球,该轮得分为这2次滚球所击倒瓶数之和。

【实现提示】

a)模拟10个人各打一局保龄球比赛过程,统计每局各轮得分和累计总分。

b)逐人逐轮逐次输入一次滚球击倒的瓶数。

c)对10人的得分由低到高排序并显示。

d)最后,把排序的存入文件中。

【测试数据】自定模拟数据

④学生成绩统计

【问题描述】学期考试结束,统计有N个班某班每个人的平均成绩,每门课的平均成绩,并按个人平均成绩从高到低的顺序输出成绩,输出不及格人名单。

输入、输出格式自定。

【实现提示】假设某班有:

30人(姓名自定)。

考试课程有:

高等数学、物理、外语、C语言、德育5门课程。

将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程序的功能主要包括3方面:

a)输入成绩到文件中

b)输出成绩

c)输出不及格学生名单

d)成绩排序

e)修改记录

f)删除记录

g)插入记录等

主函数中对3个功能选择(菜单),调用对应的函数完成。

【测试数据】自定模拟数据

⑤README软件的制作

【问题描述】在现代的一些软件中,常常有这样一个程序,它主要是显示某些软件的使用方法及注意事项。

比如:

TC2.0下README等。

设计制作一个有自己特色的说明软件。

【实现提示】

a)某软件的使用方法及注意事项等内容存储在文件README.TXT中。

b)使用编写的程序README.EXE能方便地阅读README.TXT中的内容。

c)能实现上翻一页、下翻一页、下一行、下一行等操作。

【测试数据】以某个语言源程序模拟README.TXT文件。

⑥编制一个学生的选课及学籍管理程序

【问题描述】现有若干个班级的学生,进行下学期课程的选课,假设已经通过文件储存了选课内容的数据库,数据库中包括7门课(课程内容由学生自己定)第i门课程的接纳的学生数为10×i,i为课程的序号,如第一门课的接纳的学生数为10×1,第二门课为10×2,......依此类推,每门课的学分数分别为1、2、3、4、5、6、7,现要求每一个学生至少选3门课,最多不超过5门。

【实现提示】

a)显示课程内容供学生选择,并能进行选课的操作。

b)随着学生选课工作的进行,动态更新数据库的内容。

c)进行学生的最少选课量和最多选课量的控制。

d)显示所有学生的选课的结果。

e)把学生所选课按学分总积分由小到大排列,同样学分按姓名的英文字母排序。

f)录入学生的各科成绩。

g)学生的参数有:

姓名、学号、性别、总学分、各科成绩,补考情况,请把一门

和三门功课不及格的学生的姓名列出,并自动生成补考通知书,通知书中要求有学生的姓名、学号、不及格的科目及补考时间(由编程者自定)。

【测试数据】自定模拟数据

⑦一个用于医院门诊候诊的队列管理程序

【问题描述】要求采用先来先就诊的排队方式(就诊顺序与挂号单编号无关),假设挂号时编码是连续的,但由于同一个门诊科目有3个诊室,其中35(含35)岁以上的在第一诊室,35岁以下男患者进第二诊室,其它的进第三诊室,程序启动后显示下列菜单:

1--挂号2--叫号3--分诊室

4--显示各诊室队列信息

5--统计当天就诊患者情况(要求按性别进行统计和按任意年龄区段进行统计)

6--结束程序

【实现提示】

选1时,提示用户在一行内输入姓名及挂号单编号;

选2时,显示排在队列中第一位患者姓名、挂号单编号,将其从挂号序列中删除;

选3时,进行诊室分配;

选4时,按队列顺序显示个诊室排队人的姓名、挂号单编号及所在诊室;

选5时,进行两种统计方法的选择,并进行必要的统计计算;

选6时,退出程序的运行。

要求1~5中每一个步骤完成后都能重新显示此选择菜单。

【测试数据】自定模拟数据

⑧个人通讯录管理系统

【问题描述】建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。

【实现提示】

(1)通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ等。

(2)输入功能:

可以一次完成若干条信息的输入。

(3)显示功能:

完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示)

(4)查找功能:

可以按姓名等多种方式查找通讯信息

(5)增加、删除、修改功能:

完成通讯录信息的多种更新

【测试数据】自定模拟数据

 

⑨学生综合测评系统

【问题描述】每个学生的信息为:

学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。

考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。

【实现提示】

A、学生信息处理

(1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。

提示:

学生信息可先输入到数组中,排序后可写到文件中。

(2)插入(修改)同学信息:

提示:

先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,

(3)删除同学信息:

提示:

输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。

(4)浏览学生信息:

提示:

打开文件,显示该文件的学生信息。

B、学生数据处理:

(1)按考试科目录入学生成绩并且按公式:

考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次,提示:

先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。

(2)学生测评数据输入并计算综合测评总分及名次。

提示:

综合测评总分=(考试成绩)*0.6+(同学互评分)*0.1+品德成绩*0.1+任课老师评分*0.2。

(3)学生数据管理

提示:

输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件

(4)学生数据查询:

提示:

输入学号或其他信息,即读出所有数据信息,并显示出来。

C、学生综合信息输出

提示:

输出学生信息到屏幕。

【测试数据】自定模拟数据

10:

五子棋

程序要求:

1.由两个玩家分别下棋,当某一玩家五子相连,则赢。

2.界面要求:

初始状态——显示棋盘,并显示两个玩家的操作键及初始玩家号;游戏进行状态——动态显示棋盘,不同玩家的棋子用不同符号显示,屏幕上显示当前玩家号,结束时显示赢家号。

15:

井子棋

程序要求:

1.计算机为一方,人为一方,交替下棋,谁先连成一条直线谁胜;允许人选择先下还是后下。

2.界面要求:

初始状态——显示棋盘,并显示玩家的操作键;游戏进行状态——动态显示棋盘不同玩家的棋子用不同符号显示,屏幕上显示当前玩家号,结束时显示赢家号。

3.提示计算机自动下棋的规则:

计算机下时,应考虑所有空位,并按行、列、对角线计算每个空位的分值,若在某行(列、对角线)上,(设计算机画X,人画O)

已有XX加50分

已有OO加25分

已有X空加10分

已有O空加8分

都是空加4分

然后选分值最高的位置画X。

11:

迷宫游戏

程序要求:

1.随机生成迷宫,找出由入口经过迷宫到达出口的一条路径,允许选择人或计算机找出路。

2.界面要求:

初始状态——显示迷宫的图面;用箭头指出入口外和出口外;游戏进行状态——选择人找出路时,显示每一步的结果,到边了和遇上障碍,发出“嘟”的叫声。

走到出口处,应给出“胜利”的字样;选择计算机找出路时,用一条有颜色的线画出路径,若找不出出口就显示“无出路”的字样。

3.计算机找出路部分可选做。

12.贪吃蛇算法

程序要求:

游戏时,一条蛇在密闭的围墙内,围墙内会随机出现一个食物通过键盘上的4个光标键控制蛇向上下左右4个方向移动,蛇头接到食物,则表示食物被蛇吃掉,这时蛇的身体加长一节,同时计10分。

接着又出现食物等待被蛇吃掉。

如果蛇在移动过程中,撞到墙壁或身体交叉(蛇头撞到自己的身体),则游戏结束。

13.猜数字游戏,

有一定的容错功能,界面友好,功能齐全。

游戏规则:

a,一个四位数,各位上的数字不重复,从1到9。

b,按以下提示猜出这个四位数。

c,每次猜测输入的数据给出类似的提示*A*B。

d,其中A前的*代表你本次猜对了多少个数字。

e,其中B前的*代表你本次猜对的数字并且位置正确的个数。

14.模拟计算器程序

设计一个程序来模拟一个简单的手持计算器。

程序支持算术运算+、-、*、/、=、以及C(清除)、A(全清除)操作。

基本要求

程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式显示在窗口中,用户键入’=’符号后,窗口显示出结果。

(不用考虑运算符的优先级)

测试数据

程序输入不少于5种不同的表达式进行测试。

15.日历显示

1).输入任一年将显示出该年的所有月份日期,对应的星期

2).注意闰年情况

其显示格式要求如下:

1)月份:

中文英文都可以,

2)下一行显示星期,从周日到周六,中英文都可以

3)下一行开始显示日期从1号开始,并按其是周几实际情况与上面的星期数垂直对齐

当输入2004显示如下:

Inputtheyear:

2004

Inputthefilename:

a

Thecalendaroftheyear2004.

Januray1February2

SunMonTueWedThuFriSatSunMonTueWedThuFriSat

1231234567

45678910891011121314

1112131415161715161718192021

1819202122232422232425262728

2526272829303129

======================================================

March3April4

SunMonTueWedThuFriSatSunMonTueWedThuFriSat

123456123

7891011121345678910

1415161718192011121314151617

2122232425262718192021222324

28293031252627282930

======================================================

16.钟表显示程序

要求:

能模拟机械钟表行走,还要准确地利用数字显示日期和时间,在屏幕上显示一个活动时钟,按任意键时程序退出。

(如下图)

 

二、B类

1.       设计程序以打印任意一年的日历,要求每个季度的三个月并排打印,每个月的一个星期在一行打印。

2.       设计一套有关链表程序所需要的函数,提供建立链表、求链表中的结点数、逐个显示链表元素的值、按序号查询结点、按值查询结点、在指定序号的位置上插入结点和删除指定序号的结点等功能。

在此基础上编写应用程序。

3.       设计一个学生注册管理系统,能对学生注册信息(学号、姓名、性别、出生年月、所在系、专业、电话号码)进行查询(要求可以使用模糊查询和条件组合查询)、修改、增加、删除和存储等。

4.       设计一个课程信息管理系统,能对课程信息(课程编号、课程名称、学分、先修课号、任课教师)进行查询(要求可以使用模糊查询和条件组合查询)、修改、增加、删除和存储等。

5.       设计一个图书管理系统,能对图书信息(图书编号、书名、ISBN、出版社、作者、价格)进行查询(要求可以使用模糊查询和条件组合查询)、修改、增加、删除和存储等。

6.   模拟时钟程序

要求:

能准确地利用数字显示日期和时间,在屏幕上显示一个运行的电子时钟,按任意键时程序退出。

7.   编程实现文件的基本操作:

1)显示当前目录下有哪些文本文件;2)由用户输入选中的一个或多个文件名;3)由用户选择文件操作功能:

复制、删除、移动(到指定文件夹下),并实现相应的功能;

 

三、C类

1.       设计一种结构能表示最多1000位的大整数(正、负均可),并实现这类数的加、减运算。

2.       设计一种结构能表示最多1000位的大整数(正、负均可),并实现这类数的乘运算。

3.       已知一类用于表示集合的数组的元素是递增有序的,试分别编程实现这类集合的交集和并集。

4.       设计程序将两个递增有序的数组合并为一个递增有序的数组。

5.       编程实现将选中的若干个文件的内容依次复制插入到一个新文件new.txt中。

6.   剧场座位使用N*N的二维数组表示,元素值为1,代表票已售出,为0代表尚未售出,用户要求购买剧场中一块连续的num*num个座位,返回座位的起始行列坐标,找不到返回-1。

7.   判断一个串中的三类括号({[是否匹配。

8.   函数f(char*s,chardel),将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。

如:

str为“33123333435”,del的值为‘3’,调用此函数后,将输出3个子字符串,分别为“12”,“4”,“5”。

9.   13个人围成一圈,从第一个人开始顺序报数1,2,3。

凡报到3者退出圈子。

找出最后留在圈子中的人原来的序号。

(用数组分别实现)。

10.   设计销售管理系统

某公司有四个销售员(编号:

1-4),负责销售五种产品(编号:

1-5)。

每个销售员都将当天出售的每种产品各写一张便条交上来。

每张便条包含内容:

销售员的代号、产品的代号、这种产品的当天的销售额。

每位销售员每天可能上缴0-5张便条。

假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。

1、计算上个月每个人每种产品的销售额。

2、按销售额对销售员进行排序,输出排序结果(销售员代号)

3、统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)

4、输出统计报表  

                               销售统计报表

                                产品代号                      销售之和

销售员代号               1        2        3        4        5     

      1

      2

      3

      4

每种产品之和                                                 总和

 

四、D类(画出流程图)

1.       设计程序在屏幕上显示一个文本文件的内容,要求:

将所有大写英文字母改为小写字母输出,其它字符原样输出。

2.       输入一个正整数,再输入任意n个整数,计算并输出这n个整数的和及平均值。

使用动态内存分配方法为这n个整数分配空间。

3.       编程实现由用户输入若干字符串,使用指向若干字符串的指针数组,实现字符串的字典序输出。

4.       实现一个简易职工工资管理系统,工资项目包括编号,姓名、基本工资、奖金、保险、实发工资。

输入一个正整数,再输入n个职工前5项工资,计算其实发工资。

职工工资信息用文件保存。

5.       输入10个学生的学号、姓名和成绩,输出学生的成绩等级和不及格人数。

每个学生的记录包括学号、姓名、成绩和等级。

要求定义和调用函数,该函数实现根据学生成绩给出等级并统计不及格人数和优秀(A)人数。

85~100为A,70~84为B,60~69为C,0~59为D,用文件实现。

6.       使用程序模拟汉诺塔运行过程,由用户输入盘子数,输出搬运步骤。

7.       建立一个学生成绩信息的单向链表,学生记录按学号由小到大排列,要求实现对成绩信息的插入、修改、删除和遍历。

8.   成绩记录簿。

编制一个C语言成绩记录簿,每个学生信息包括:

学号、姓名、C语言成绩。

具体功能:

创建信息链表并以磁盘文件保存

9.   链表的合并和复制,有两个单向链表,头指针分别为pList1和pList2,链表中每个结点信息为学号、姓名、年龄和成绩。

(1)编写函数把链表pList2合并到链表pList1中;

(2)编写函数将合并后的链表复制到新链表New上(链表结点信息与上面相同)。

10.   编程实现两个文本文件内容的复制,文件的名称由输入确定。

11.   编写程序读取一个指定的文本文件,显示在屏幕上,如果有大写字母,则改成小写字母再输出,并统计行数。

根据回车符统计文件的行数,要处理的文件名通过键盘输入字符串指定。

12、不少于3000字的论文,《C语言程序设计与单片机C语言相关性、差异性分析》

《C语言教学建议及学习心得分析》

五专业类E类

《单片机C语言程序设计》编程

1、十字路口交通信号灯控制系统、交通灯的硬件和软件设计

类似于此类的软硬件结合的题目,作出实物及编写源代码。

1.编程使8个发光二极管按不同的方式循环点亮。

采用外部中断1方式来控制循环点亮,即按一下中断按键时更换一种点这方式。

每次循环在LED数码管上显示P1,P2…代表不同的方式,同时循环结束后蜂鸣器发出一声报警声音。

2.采用定时器1按方式1工作,每100ms则T1中断溢出一次,要求编写程序模拟一个循环彩灯(实验板中的发光二极管),变化花样自行设计,间隔1s变化一次。

每次循环在LED数码管上显示P1,P2…代表不同的方式,同时循环结束后蜂鸣器发出一声报警声音。

3.编写程序完成键盘与LED数码管的动态显示,上电初始状态为“----”,当键盘输入相应的数字时或字符时在数码管上显示出来,当数字或者字符超过4位时,从LED数码管从左到右循环显示。

4.编写M+(M+1)+(M+2)+…N(N>M)的程序,M,N值从键盘中输入(如M=1,N=50),并在LED数码管上显示输入的M、N数值,程序运行结果在LED数码管上显示出来。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1