1、C语言程序设计题目集合一、 A类、长整数四则运算(最多限1人)【问题描述】设计任意两个长正整数(小于80位)的加法函数add()和乘法函数mult(),并求任意整数(58)的阶乘。【实现提示】用无符号整型或字符型数组存储任意长整数。 【测试数据】6!=7209!=36288019!=121645*000039!=20397882081197443358640281739902897356800000000 单词统计(最多限1人)【问题描述】统计某篇英文小说中某些单词的出现次数。【实现提示】英文小说存储在一个文本文件中。待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后全部完成。
2、输出的每个单词的出现次数。约定小说中的词汇一律不跨行,这样每从文本文件中读入一行,就统计每个单词在这行中出现的次数,直到文件结束。 要求在程序运行时才输入文本文件名和要统计的词汇。【测试数据】以C/C+语言源程序模拟英文小说。统计某些保留字(如:if, else, for, while等)的出现次数。保龄球计分【问题描述】打保龄球是用一个滚球去撞击10个站立的瓶,将瓶击倒。一局分10 轮,每轮可滚球1次或多次,以击到的瓶数为依据计分,一局得分为10轮得分之和,而每轮的得分不仅与本轮的滚球情况有关,还可能与后一轮或两轮的滚球情况有关,即:某轮某次滚球击倒的瓶数不仅要计入本轮得分,还可能会计入前一
3、轮或两轮得分。计分规则如下: a) 若某一轮的第一次滚球就击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加2次滚球),该轮得分为本次击倒瓶数10与以后2次滚球所击倒瓶数之和。b) 若某一轮的第一次滚球未击倒全部10个球,则对剩下未击倒的瓶再滚球一次,如果这2次滚球击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加1次滚球),该轮得分为这2次击倒瓶数10与以后1次滚球所击倒瓶数之和。c) 若某一轮2次滚球未击倒全部10个瓶,则本轮不在滚球,该轮得分为这2次滚球所击倒瓶数之和。【实现提示】a) 模拟10个人各打一局保龄球比赛过程,统计每局各轮得分和累计总分。b) 逐人逐轮逐次输入一次滚球击倒
4、的瓶数。c) 对10人的得分由低到高排序并显示。d) 最后,把排序的存入文件中。【测试数据】自定模拟数据学生成绩统计【问题描述】学期考试结束,统计有N个班某班每个人的平均成绩,每门课的平均成绩,并按个人平均成绩从高到低的顺序输出成绩,输出不及格人名单。输入、输出格式自定。【实现提示】假设某班有:30人(姓名自定)。考试课程有:高等数学、物理、外语、C语言、德育5门课程。将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程序的功能主要包括3方面: a) 输入成绩到文件中b) 输出成绩c) 输出不及格学生名单d) 成绩排序e) 修改记录f) 删除记录g) 插入记录等主函数中对3个
5、功能选择(菜单),调用对应的函数完成。【测试数据】自定模拟数据README软件的制作【问题描述】在现代的一些软件中,常常有这样一个程序,它主要是显示某些软件的使用方法及注意事项。比如:TC2.0下README等。设计制作一个有自己特色的说明软件。【实现提示】a) 某软件的使用方法及注意事项等内容存储在文件README.TXT中。b) 使用编写的程序README.EXE能方便地阅读README.TXT中的内容。c) 能实现上翻一页、下翻一页、下一行、下一行等操作。【测试数据】以某个语言源程序模拟README.TXT文件。编制一个学生的选课及学籍管理程序【问题描述】现有若干个班级的学生,进行下学期
6、课程的选课,假设已经通过文件储存了选课内容的数据库,数据库中包括7门课(课程内容由学生自己定)第i门课程的接纳的学生数为10i,i为课程的序号,如第一门课的接纳的学生数为101,第二门课为102,. 依此类推,每门课的学分数分别为1、2、3、4、5、6、7,现要求每一个学生至少选3门课,最多不超过5门。【实现提示】a) 显示课程内容供学生选择,并能进行选课的操作。b) 随着学生选课工作的进行,动态更新数据库的内容。c) 进行学生的最少选课量和最多选课量的控制。d) 显示所有学生的选课的结果。e) 把学生所选课按学分总积分由小到大排列,同样学分按姓名的英文字母排序。f) 录入学生的各科成绩。g)
7、 学生的参数有:姓名、学号、性别、总学分、各科成绩,补考情况,请把一门和三门功课不及格的学生的姓名列出,并自动生成补考通知书,通知书中要求有学生的姓名、学号、不及格的科目及补考时间(由编程者自定)。 【测试数据】自定模拟数据一个用于医院门诊候诊的队列管理程序【问题描述】要求采用先来先就诊的排队方式(就诊顺序与挂号单编号无关),假设挂号时编码是连续的,但由于同一个门诊科目有3个诊室,其中35(含35)岁以上的在第一诊室,35岁以下男患者进第二诊室,其它的进第三诊室,程序启动后显示下列菜单:1挂号2叫号3分诊室4显示各诊室队列信息5统计当天就诊患者情况(要求按性别进行统计和按任意年龄区段进行统计)
8、6结束程序【实现提示】选1时,提示用户在一行内输入姓名及挂号单编号;选2时,显示排在队列中第一位患者姓名、挂号单编号,将其从挂号序列中删除;选3时,进行诊室分配;选4时,按队列顺序显示个诊室排队人的姓名、挂号单编号及所在诊室;选5时,进行两种统计方法的选择,并进行必要的统计计算;选6时,退出程序的运行。要求15中每一个步骤完成后都能重新显示此选择菜单。【测试数据】自定模拟数据个人通讯录管理系统【问题描述】建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。【实现提示】(1) 通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、
9、家人等)、EMAIL、QQ等。(2) 输入功能:可以一次完成若干条信息的输入。(3) 显示功能:完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示)(4) 查找功能:可以按姓名等多种方式查找通讯信息(5) 增加、删除、修改功能:完成通讯录信息的多种更新【测试数据】自定模拟数据学生综合测评系统【问题描述】每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
10、【实现提示】A、学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。提示:学生信息可先输入到数组中,排序后可写到文件中。(2) 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。(4) 浏览学生信息:提示:打开文件,显示该文件的学生信息。B、学生数据处理:(1) 按考试科目录入学生成绩并且按公式:考试成绩
11、(语文+数学+外语)/3 计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。(2) 学生测评数据输入并计算综合测评总分及名次。提示:综合测评总分(考试成绩)*0.6+(同学互评分)*0.1+品德成绩*0.1+任课老师评分*0.2。(3) 学生数据管理提示:输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件(4) 学生数据查询:提示:输入学号或其他信息,即读出所有数据信息,并显示出来。C、学生综合信息输出提示:输出学生信息到屏幕。【测试数据】自定模拟数据10:五子棋程序要求:1由两个玩家分别下棋,当
12、某一玩家五子相连,则赢。2界面要求:初始状态显示棋盘,并显示两个玩家的操作键及初始玩家号;游戏进行状态动态显示棋盘,不同玩家的棋子用不同符号显示,屏幕上显示当前玩家号,结束时显示赢家号。 15:井子棋程序要求:1计算机为一方,人为一方,交替下棋,谁先连成一条直线谁胜;允许人选择先下还是后下。2界面要求:初始状态显示棋盘,并显示玩家的操作键;游戏进行状态动态显示棋盘不同玩家的棋子用不同符号显示,屏幕上显示当前玩家号,结束时显示赢家号。 3提示计算机自动下棋的规则:计算机下时,应考虑所有空位,并按行、列、对角线计算每个空位的分值,若在某行(列、对角线)上,(设计算机画X,人画O) 已有XX 加50
13、分 已有OO 加25分 已有X空 加10分 已有O空 加8分 都是空 加4分 然后选分值最高的位置画X。11:迷宫游戏程序要求:1随机生成迷宫,找出由入口经过迷宫到达出口的一条路径,允许选择人或计算机找出路。2界面要求:初始状态显示迷宫的图面;用箭头指出入口外和出口外;游戏进行状态选择人找出路时,显示每一步的结果,到边了和遇上障碍,发出“嘟”的叫声。走到出口处,应给出“胜利”的字样;选择计算机找出路时,用一条有颜色的线画出路径,若找不出出口就显示“无出路”的字样。3计算机找出路部分可选做。12 .贪吃蛇算法程序要求:游戏时,一条蛇在密闭的围墙内, 围墙内会随机出现一个食物通过键盘上的4个光标键
14、控制蛇向上下左右4个方向移动,蛇头接到食物,则表示食物被蛇吃掉,这时蛇的身体加长一节,同时计10分。接着又出现食物等待被蛇吃掉。如果蛇在移动过程中,撞到墙壁或身体交叉(蛇头撞到自己的身体),则游戏结束。 13.猜数字游戏,有一定的容错功能,界面友好,功能齐全。游戏规则: a,一个四位数,各位上的数字不重复,从1到9。b,按以下提示猜出这个四位数。 c,每次猜测输入的数据给出类似的提示*A*B。d,其中A前的*代表你本次猜对了多少个数字。 e,其中B前的*代表你本次猜对的数字并且位置正确的个数。14. 模拟计算器程序设计一个程序来模拟一个简单的手持计算器。程序支持算术运算+、-、*、/、=、以及
15、(清除)、A(全清除)操作。基本要求程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式显示在窗口中,用户键入= 符号后,窗口显示出结果。(不用考虑运算符的优先级)测试数据程序输入不少于5种不同的表达式进行测试。15日历显示 1)输入任一年将显示出该年的所有月份日期,对应的星期2)注意闰年情况其显示格式要求如下:1)月份:中文英文都可以,2)下一行显示星期,从周日到周六,中英文都可以3)下一行开始显示日期从1号开始,并按其是周几实际情况与上面的星期数垂直对齐当输入2004显示如下:Input the year:2004Input the file name:a
16、The calendar of the year 2004. Januray 1 February 2 Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat 1 2 3 1 2 3 4 5 6 7 4 5 6 7 8 9 10 8 9 10 11 12 13 14 11 12 13 14 15 16 17 15 16 17 18 19 20 21 18 19 20 21 22 23 24 22 23 24 25 26 27 28 25 26 27 28 29 30 31 29 = = March 3 April 4 Sun Mon Tu
17、e Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat 1 2 3 4 5 6 1 2 3 7 8 9 10 11 12 13 4 5 6 7 8 9 10 14 15 16 17 18 19 20 11 12 13 14 15 16 17 21 22 23 24 25 26 27 18 19 20 21 22 23 24 28 29 30 31 25 26 27 28 29 30 = = 16钟表显示程序 要求: 能模拟机械钟表行走,还要准确地利用数字显示日期和时间,在屏幕上显示一个活动时钟,按任意键时程序退出。(如下图)二、B类1. 设计程序以打印任意一
18、年的日历,要求每个季度的三个月并排打印,每个月的一个星期在一行打印。2. 设计一套有关链表程序所需要的函数,提供建立链表、求链表中的结点数、逐个显示链表元素的值、按序号查询结点、按值查询结点、在指定序号的位置上插入结点和删除指定序号的结点等功能。在此基础上编写应用程序。3. 设计一个学生注册管理系统,能对学生注册信息(学号、姓名、性别、出生年月、所在系、专业、电话号码)进行查询(要求可以使用模糊查询和条件组合查询)、修改、增加、删除和存储等。4. 设计一个课程信息管理系统,能对课程信息(课程编号、课程名称、学分、先修课号、任课教师)进行查询(要求可以使用模糊查询和条件组合查询)、修改、增加、删
19、除和存储等。5. 设计一个图书管理系统,能对图书信息(图书编号、书名、ISBN、出版社、作者、价格)进行查询(要求可以使用模糊查询和条件组合查询)、修改、增加、删除和存储等。6. 模拟时钟程序要求:能准确地利用数字显示日期和时间,在屏幕上显示一个运行的电子时钟,按任意键时程序退出。7. 编程实现文件的基本操作:1)显示当前目录下有哪些文本文件;2)由用户输入选中的一个或多个文件名;3)由用户选择文件操作功能:复制、删除、移动(到指定文件夹下),并实现相应的功能;三、C类1. 设计一种结构能表示最多1000位的大整数(正、负均可),并实现这类数的加、减运算。2. 设计一种结构能表示最多1000位
20、的大整数(正、负均可),并实现这类数的乘运算。3. 已知一类用于表示集合的数组的元素是递增有序的,试分别编程实现这类集合的交集和并集。4. 设计程序将两个递增有序的数组合并为一个递增有序的数组。5. 编程实现将选中的若干个文件的内容依次复制插入到一个新文件new.txt中。6. 剧场座位使用 N*N的二维数组表示,元素值为1,代表票已售出,为0代表尚未售出,用户要求购买剧场中一块连续的num*num个座位,返回座位的起始行列坐标,找不到返回1。7. 判断一个串中的三类括号( 是否匹配。8. 函数 f(char *s,char del),将非空字符串str分割成若干个子字符串并输出,del表示分
21、割时的标志字符。如:str为“33123333435”,del的值为3,调用此函数后,将输出3个子字符串,分别为“12”,“4”,“5”。9. 13个人围成一圈,从第一个人开始顺序报数1,2,3。凡报到3者退出圈子。找出最后留在圈子中的人原来的序号。(用数组分别实现)。10. 设计销售管理系统 某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:销售员的代号 、产品的代号 、这种产品的当天的销售额。 每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(
22、自己设定),进行如下处理。1、计算上个月每个人每种产品的销售额。 2、按销售额对销售员进行排序,输出排序结果(销售员代号)3、统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额) 4、输出统计报表 销售统计报表 产品代号 销售之和 销售员代号 1 2 3 4 5 1 2 3 4 每种产品之和 总和四、D类(画出流程图)1. 设计程序在屏幕上显示一个文本文件的内容,要求:将所有大写英文字母改为小写字母输出,其它字符原样输出。2. 输入一个正整数,再输入任意n个整数,计算并输出这n个整数的和及平均值。使用动态内存分配方法为这n个整数分配空间。3. 编程实现由
23、用户输入若干字符串,使用指向若干字符串的指针数组,实现字符串的字典序输出。4. 实现一个简易职工工资管理系统,工资项目包括编号,姓名、基本工资、奖金、保险、实发工资。输入一个正整数,再输入n个职工前5项工资,计算其实发工资。职工工资信息用文件保存。5. 输入10个学生的学号、姓名和成绩,输出学生的成绩等级和不及格人数。每个学生的记录包括学号、姓名、成绩和等级。要求定义和调用函数,该函数实现根据学生成绩给出等级并统计不及格人数和优秀(A)人数。85100为A,7084为B,6069为C,059为D,用文件实现。6. 使用程序模拟汉诺塔运行过程,由用户输入盘子数,输出搬运步骤。7. 建立一个学生成
24、绩信息的单向链表,学生记录按学号由小到大排列,要求实现对成绩信息的插入、修改、删除和遍历。8. 成绩记录簿。编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:创建信息链表并以磁盘文件保存9. 链表的合并和复制,有两个单向链表,头指针分别为pList1和pList2,链表中每个结点信息为学号、姓名、年龄和成绩。(1)编写函数把链表pList2合并到 链表pList1中;(2)编写函数将合并后的链表复制到新链表New上(链表结点信息与上面相同)。10. 编程实现两个文本文件内容的复制,文件的名称由输入确定。11. 编写程序读取一个指定的文本文件,显示在屏幕上,如果有大写
25、字母,则改成小写字母再输出,并统计行数。根据回车符统计文件的行数,要处理的文件名通过键盘输入字符串指定。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(NM)的程序,M,N值从键盘中输入(如M1,N50),并在LED数码管上显示输入的M、N数值,程序运行结果在LED数码管上显示出来。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1