C语言程序课程设计备选题目Word文档格式.docx

上传人:b****6 文档编号:21997713 上传时间:2023-02-02 格式:DOCX 页数:20 大小:44.98KB
下载 相关 举报
C语言程序课程设计备选题目Word文档格式.docx_第1页
第1页 / 共20页
C语言程序课程设计备选题目Word文档格式.docx_第2页
第2页 / 共20页
C语言程序课程设计备选题目Word文档格式.docx_第3页
第3页 / 共20页
C语言程序课程设计备选题目Word文档格式.docx_第4页
第4页 / 共20页
C语言程序课程设计备选题目Word文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C语言程序课程设计备选题目Word文档格式.docx

《C语言程序课程设计备选题目Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序课程设计备选题目Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

C语言程序课程设计备选题目Word文档格式.docx

实现一个C语言程序设计自助学习系统,要求实现的基本功能如下:

1、测验

(1)可以按固定的试题数目,从题库中随机选取题目进行测试,如每次测试5道题或10道题。

(2)每次只显示一道题,包括问题描述、备选答案;

(3)根据学生答题结果,对比试题答案,显示答题对错的信息;

(4)答题全部结束后给出本次测试的成绩,按百分制评分。

2、学习管理

(1)通过题目浏览,自我测验,查看题解的过程来帮助学生学习。

(2)需要为学生提供多种学习方式,至少应包括顺序选题学习和随机选题学习等方式。

(3)如果是采用顺序选题方式学习,需要做到可以从中间某个位置开始学习,不是每次一定从第一题开始学习。

3、题库管理

(1)试题库中保存全部试题及其相关信息。

(2)将要入库的试题,按固定格式编辑整理好保存在ASCII文件中,通过计算机程序读取该文件,并将文件中的全部试题添加到已有的试题库中。

(3)今后需要对于所有试题分类进行管理,在库结构设计时,要考虑这些扩展功能的数据接口要求。

(4)试题库初始化,将试题库内容全部清空,便于重新建立系统。

可以参考:

余江,肖淑芬主编,C语言程序设计,天津科学技术出版社,2001年5月,273-313页。

题目4:

实现题目3中C语言程序设计自助学习系统得升级版,可考虑实现功能:

一、测验

1、系统自动组卷

(1)试卷结构说明:

以题库提供的试题类别和各类试题的数量为依据来实现。

系统组卷前需要获得的信息是对于每类试题要含有类别名称、试题数、分数,所有类别的分数累加在一起要恰好是100分。

(2)试卷保存:

将上述组卷结果保存在二进制文件中,文件名由用户输入。

(3)个性化组卷:

输入学号后,系统根据试卷结构说明的规定自动组卷,做到每个学生试卷不同。

2、错题本功能

(1)答错的题目自动加入到错题本中;

(2)可以对错题本中的题目逐题测验,不分题目类别;

(3)可以制定分类测试。

3、多科目测试

二、学习管理

1、分类别学习

2、错题本内容学习

3、多科目学习,选择科目后可以进行指定类别的分类别学习和错题本内容学习。

三、题库管理

1、入库试题文件格式正确性检查。

包括:

试题的描述的合法性检查,类别信息合法性检查,给出出错位置的信息。

2、对于分类试题存储方式的优化,例如:

同类试题连续存储的实现;

3、目前完成的是单科目多类别的题库管理,要实现多科目多类别的题库管理。

四、用户管理

1、系统注册

2、登录

3、错题本等个性化信息管理

4、屏幕背景颜色和字符颜色的设置

5、学习位置的记载,要按科目记载,每个科目要按类别记载。

鼓励使用更多方法实现,例如使用数据库系统,VC++等。

题目5:

给出一个正整数n,一个存放1到n共n个正整数的数字金字塔构造如下:

(1)1在最上方第0层;

(2)如果x大于y并且x除以y的余数为0(即x>

y&

&

x%y==0),x要放在y下方一层(即若y在第i层,x应在i+1层);

(3)每个数应尽可能放在更下方,即如果可以放在第i层,就不能放在i-1层;

(4)相同层上的数从左向右从小到大排列。

其实第i层是有i个素数因子的数的从小到大的排列。

例如对n=6,符合这组规则的数字金字塔如下:

1

235

46

每个数按照它在塔中的位置从上到下从左到右从1开始编号,例如5,编号应该是4。

要求你编写程序,输入一个正整数n,5<

n<

50,再输入3个不大于n的正整数,然后程序输出所构造的数字金字塔,及所输入3个不大于n的正整数在数字金字塔中的编号。

例如设输入了6,3,4,5,程序可以输出:

1

235

46//用数组形式表示数字金字塔。

3,5,4//分别是3,4,5在数字金字塔中的编号。

程序编写完成后,要求给出你的程序对下列两组输入的结果:

(1)10,7,8,9

(2)25,15,20,25

本题为2010年ACM大赛题目,鼓励使用更多方法实现。

题目6:

你一定很熟悉著名的Hanoi塔游戏,当理解了圆盘数目较多需要的时间太长之后,你可以放弃实际去移动圆盘,但你不应该放弃如下一个有点类似的游戏:

设有n根柱子,每根柱子上有一个圆盘,圆盘上有一个正整数,不同圆盘上的数不同。

初始时假定柱子按照其上圆盘上数的大小从左向右排列,移动规则是从左向右看,当前一根柱子最下圆盘上数与后一根柱子最上圆盘上数相加的和是一个完全平方数时,前一根柱子上所有圆盘移动到后一根柱子上方。

要求你编写程序,输入柱子数目和圆盘上的整数,输出移动的过程和结果。

例如,一组输入是:

4,1,3,5,6,第一个数4表示有4根柱子,圆盘上的数依次是1,3,5,6。

你的程序运行后,可以输出1->

3->

6,5,c=2,表示移动是1到3,3到6,因为1+3=4,3+6=9,而4和9是完全平方数,符合条件的移动只有这两次。

移动结果是还有2根柱子上有圆盘,即c=2,有圆盘的一根柱子上圆盘3个,有数1->

6,有圆盘另一根柱子上圆盘一个,有数5,它其实没有发生移动。

(1)9,1,2,3,4,5,6,7,8,9

(2)10,1,3,5,7,9,11,13,15,17,19(本题为2010年ACM大赛题目。

输入:

9,1,2,3,4,5,6,7,8,9输出:

1->

6,2->

7->

9,4->

5,8,c=4

10,1,3,5,7,9,11,13,15,17,19输出:

13,5->

11,7->

9,15,17->

19,c=5

题目7:

我们知道,在10进制数中有判断整除性的二个简单规则:

一个正整数能够被3整除,当且仅当,它的各位数字之和能够被3整除;

一个正整数能够被11整除,当且仅当,它的奇数位数字之和与偶数位数字之和的差能够被11整除;

现在要问:

对于b进制数,具有类似于10进制数的3和11的这种整除性判断的数是什么?

具体地,请编写程序,输入进制的基数b,输出最小的可以如上判断整除性的数x和y。

为确定,输入输出均采用10进制数。

例如输入b为10,则自然要输出x为3,y为11;

若输入b为8,则要输出x为7,y为3(例如8进制数25,按上述规则判断应能够被7和3整除,事实上,8进制数25是10进制数21,能够被7和3整除是显然的);

若输入b为120,则要输出x为7,y为11(请自己验证这是对的)。

(本题为2011年ACM大赛题目。

对于10进制数,10-1=9=3*3,10+1=11,10进制数n可以一般地表示为:

n=ak10k+ak-110k-1+……+a110+a0

保持n不改变数值将10换为10–1和10+1,可以看出3和11可以如上判断整除性的理由。

对于b进制数,

n=akbk+ak-1bk-1+……+a1b+a0

可以想到只需考虑b–1和b+1的最小因子。

题目8:

如果语文数学两门课程的成绩,甲同学分别是80分和90分,乙同学是90分和80分,丙同学是70和60分,这时比较甲同学和乙同学的成绩,只能说语文较差,数学较好,综合到一起就属于无法比较,但对丙同学可以比较,可以说甲和乙同学的成绩都比丙同学好。

一般情况,设有一个三元向量的集合,若其中有向量P=(p1,p2,p3),Q=(q1,q2,q3),规定P≦Q当且仅当p1≦q1,p2≦q2,p3≦q3。

其中一个向量称为是一个极小元素,当且仅当它只≦它自己。

例如如下三个三元向量组成了向量组(80,90,100),(90,80,70),(60,70,60),其中只有一个最小元素,是(60,70,60)。

请编写程序,输入n个三元向量,输出其中最小元素的数目。

先对第一个坐标排序,再考虑第二个坐标,第三个坐标。

题目9:

在某城市有n座摩天大楼,问那二座之间的距离最小?

设可以输入所有大楼的位置坐标,请编写程序输出距离最近的二座大楼及它们之间的距离。

两点(x1,y1)和(x2,y2)之间的距离d按照两种不同方式规定:

(1)Euclid距离

d=

(2)Manhattan距离d=|x1–x2|+|y1–y2|。

显然的解法是计算所有点对之间的距离再找出最小值,但本题只要求输出距离最近的二点及之间距离,所以应该给出不计算所有点对之间距离的更有效率的解法(本题为2011年ACM大赛题目)。

(可查阅:

[沙特]M.H.Alsuwaiyel著,吴伟昶等译,算法设计技巧与分析,电子工业出版社,2004年8月,第121-124页。

或者:

[美]MichaelT.Goodrich等著,霍红卫译,算法分析与设计,人民邮电出版社,2006年10月,第385-387页。

找到两点距离d后,接下去可检查宽不超过d的长条。

题目10:

一条贪吃的蛇在一个n*m的网格中游走,它只能从一个方格走向另一个相邻的方格,这里相邻的意思是两个方格有公共边。

每个方格可以看作是一个房间,其中一些是空的,一些存放有苹果。

贪吃的蛇根本不进入空的房间,而进入有苹果的房间后就可以带走所有苹果使房间成为空的。

蛇从一个指定的房间出发,最终回到它的家,把一路带来的苹果存储到家中,当然,它希望带来的苹果最多。

请编写程序,输入有整数n和m,及n*m的一个矩阵,矩阵元素数值中有一个是-1,表示蛇的出发位置,有一个是-2,表示蛇的家的位置,其余数值是非负整数,0表示房间为空,非零整数表示苹果的数目。

输出蛇选择的游走路径和获得的最多的苹果数目。

例如输入4*4矩阵:

70418

4011

15711-1

012-20

则应输出(2,3),(1,3),(0,3),(0,2),(1,2),(2,2),(2,1),(3,1),(3,2),带回苹果数为1+18+4+1+11+7+12=54。

(本题为2011年ACM大赛题目)。

吕国英,任瑞征等编著,算法设计与分析(第2版),清华大学出版社,2009年1月,第200-202页。

这是一个利用回溯算法的迷宫搜索类型问题,可参考类似问题的已有解法。

题目11:

化学家研究原子团的行为时,认为每个原子具有整数能量,这个整数可以是正数、零和负数,绝对值不超过100。

可以认为原子排列成为一行,一行中任意多个连续的原子可以形成原子团,原子团的能量是其中各原子能量的代数和。

问题是怎样编写程序,求出具有最大能量的原子团和能量数值。

要求程序输入一列原子的能量数值,以-1结束,输出找到的能量最大的原子团及能量数值。

例如输入8,0,6,4,-2,-1,应输出原子团8,0,6,4,及能量数值18。

(本题为2010年ACM大赛题目)(可查阅:

吕国英,任瑞征等编著,算法设计与分析,清华大学出版社,2009年1月,第265-270页)。

这是最大子段和问题。

题目12:

一刀可以把蛋糕分为两个部分,现在给出要分为两部分的面积的比值,希望求出切口的弦的长度。

这里当然要假定蛋糕是一个圆,并设其半径为1。

例如,输入两部分比值为1:

1,切口是直径,长为2;

输入1:

2,应输出1.9285;

输入10:

1,应输出1.4145。

(本题为2010年ACM大赛题目)

计算半弦长,可以利用公式a2=2rh-h2,计算弓形面积,用公式s=0.5*xita*r*r-a*sqrt(r*r-a*a);

其中h是弓形的高,r是半径,xita是圆心角。

一个思路是用二分搜索法寻找合适的h,使用该h求得的面积比值符合题目要求。

题目13:

年历显示,要求至少具有如下功能:

(1)输入一个年份,输出是在屏幕上显示该年的日历。

假定输入的年份在1940-2040年之间。

(2)输入年月,输出该月的日历。

(3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。

(4)某人自1990年1月1日开始,“三天打鱼两天晒网”,输入一个1990年以后的日期,输出他这一天是打鱼还是晒网。

杨克昌编著,计算机程序设计典型例题精解,国防科技大学大学出版社,1999年3月,第154-156页)

应理解

(1)能被4整除不能被100整除的年份是閏年;

(2)能被100整除又能被400整除的年份也是閏年。

可以查一下今年的日历看今年1月1日是星期几,用这些数据就可以编写程序。

题目14小学生测验,面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。

要求至少具有如下功能:

(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;

(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;

(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;

(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;

(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRYAGAIN”。

可以利用随机数生成函数rand()。

题目15:

“上海自来水来自海上,黄山落叶松叶落山黄”,“客上天然居,居然天上客”,“人过大佛寺,寺佛大过人”,都是著名的“回文”的例子。

回文就是正读和反读都相同的字符串。

请编写程序判断输入的字符串是否回文,要求:

(1)用循环和递归各编写一个程序;

(2)如果不是回文,就从两端向中间检查,发现不同后,在后端加入一个与前端相同的字符,使得到一个回文字符串。

(3)类似,正读和反读都相同的数字就是回文数,例如,23532就是一个回文数。

请编写程序,输入两个正整数n1和n2,,n1<

n2,找出n1和n2之间的所有回文数。

(4)如果正整数m是一个回文数,m2和m3也是,m就是一个三重回文数,例如,11、112=121、113=1331都是回文数,因此11是三重回文数。

请编写程序找出所有小于10000的三重回文数。

(5)有人说,从任意一个数出发,用它加上把它倒过来重排得到的数,如此继续,必能得到回文数。

例如139,139+931=1070,1070+701=1771。

请对小于100的所有正整数验证这一猜想。

杨克昌编著,计算机程序设计典型例题精解,国防科技大学大学出版社,1999年3月,第265-269页)

对于字符串,要使用字符串处理函数进行处理。

对于数字,用10整除(C语言中用/)就去掉了个位数字,用10整除取余数(C语言中用%)就取得了个位数字。

题目16:

回文字符串就是正读和反读都相同的字符串,约定空串不算回文字符串,容易看出单个字符看作字符串都是回文字符串,二个字符形成的字符串仅在二个字符相同时是回文字符串。

回文字符串给人一种稳定和谐的感觉,引起了一些研究者的兴趣。

他们发现一个任意的字符串通常不是回文字符串,但一定有一些子串是。

这里子串理解为按照原有次序字符串中部分字符组成的字符串,例如长为4的字符串abcd,长为3的子串有二个:

abc和bcd。

于是可以定义一个任意字符串的稳定和谐数为它的子串是回文字符串的数目,例如字符串aab,稳定和谐数为4,因为有回文子串4个:

a,a,b,aa;

字符串ababa,稳定和谐数为9,因为有回文子串9个:

a,b,a,b,a,aba,bab,aba,ababa;

提出的问题是请你编写程序:

(1)输入一个任意字符串,输出它得稳定和谐数。

(2)输入一个任意字符串,允许并且只允许修改其中一个字符,使这个字符串能够具有最大的稳定和谐数,输出这个稳定和谐数。

例如,输入aab,应输出6,因为修改为aaa后,有回文子串a,a,a,aa,aa,aaa,这也是aaa的全部子串;

又如输入asdfasdf,应输出12,因为修改为asdsasdf后,有回文子串a,s,d,s,a,s,d,f,sds,sas,asdsa,dsasd;

再如输入abbabab,应输出15,因为修改为abbbbab后,有回文子串a,b,b,b,b,a,b,bb,bb,bb,bbb,bbb,bab,bbbb,abbbba。

(1)容易做一个判断任意字符串是否为回文字符串的函数,对于长n的字符串,其长为s的子串有n-s+1个,长1的子串n个自然计入,再对s从2至n,检查回文子串个数。

(2)直接的想法是枚举法,即逐个修改每个字符并计算回文子串个数。

一个可以考虑的启发式规则是将出现少的字符修改为出现多的字符。

题目17:

两个字符串S和T,称按照字典序S>

T,如果T是S的前缀,或者存在整数i,使对于j<

i有S[j]=T[j],但S[i]>

T[i]。

例如字符串”abcd”>

”abc”>

”abbd”。

请编写程序,输入一个任意的字符串,输出它的按照字典序最大的子串。

这里对子串的理解见题目13,例如输入字符串dcbadcbbd,应输出dcbbd;

输入abbasd,应输出sd。

本题属于比较容易,直接解法是检查所有子串,但显然可以优先考虑较大字符引起的字符串。

题目18:

某期刊的编辑使用文本文件审阅和修改论文草稿,草稿文本正文后要列出参考文献,很多草稿对参考文献的使用不符合出版要求,你的任务是编写程序,输入不一定符合出版要求的草稿文本,输出修改后至少在列出的参考文献方面符合出版要求的文本。

具体要求是:

(1)参考文献要按照在论文中首次被引用的次序从1开始连续编号;

(2)所有参考文献按照新编号次序依次放在论文末尾;

(3)不改变论文的段落顺序,不改变论文其它内容。

例如,输入数据:

[28]Auther1,Auther2,“Papernameone”,Magazine1,August1983.

Youandme,[15]and[28];

Meandyou,[28]and[15].

[15]Auther1,Auther2,Auther3,“Papernametwo”,Magazine1,August1983.

这时应该得到的输出数据是:

Youandme,[1]and[2];

Meandyou,[2]and[1].

[1]Auther1,Auther2,“Papernameone”,Magazine1,August1983.

[2]Auther1,Auther2,Auther3,“Papernametwo”,Magazine1,August1983.

(可查阅文献:

董东,周丙寅编著,计算机算法与程序设计实践,北京:

清华大学出版社,2010年5月,93-97页)

此题属于练习字符串操作,应设草稿存于文本文件,首先读入并存储,再考虑进行转换。

要将论文正文出现的参考文献编号按照出现顺序重新编号,记录新旧编号间对应关系。

输出时,先输出正文段落,再输出新编号序号和按照对应旧编号的参考文献段落。

题目19:

排班系统:

学校实验楼有7名保安人员:

钱、赵、孙、李、周、吴、陈。

由于工作需要进行轮休制度,一星期中每人休息一天。

预先让每一个人选择自己认为合适的休息日。

请编制程序,打印轮休的所有可能方案。

当然使每个人都满意,例如每人选择的休息日如下:

钱:

星期一、星期六

赵:

星期二、星期四

孙:

星期三、星期日

李:

星期五

周:

星期一、星期四、星期六

吴:

星期二、星期五

陈:

星期三、星期六、星期日

运行结果:

Solution:

1

赵钱孙李周吴陈

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

星期四星期一星期三星期五星期六星期二星期日

2

星期四星期一星期日星期五星期六星期二星期三

3

星期四星期六星期三星期五星期一星期二星期日

4

星期四星期六星期日星期五星期一星期二星期三

题目20:

用英文单词模拟数学计算:

读入两个小于100的正整数A和B,计算A+B。

需要注意的是:

A和B的每一位数字由对应的

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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