程序设计要点-编程题目小结
- 格式:doc
- 大小:200.50 KB
- 文档页数:7
程序设计必须掌握的算法设计问题 天津科技大学 计算机公共基础教研室 2008年 1 程序设计必须掌握的算法设计问题 说明: 为了进一步提高“程序设计”课程的教学质量,切实提高学生的算法设计和程序设计能力,特汇总以下算法问题,作为教师教学的参考。 本文档所列的算法设计问题,为本科学生第一学年第2学期学习《C语言程序设计》或《VB语言程序设计》课程需要掌握的问题。 教师在教学工作中,应该选择其中部分问题作为教学典型例题,挑选典型问题作为学生上机练习和作业,但不要求每个题目都讲解和完成。 学生在学期末必须掌握这些问题的算法设计和程序设计。 注意: (1)加“★”的问题,作为较高难度问题,可不要求学生掌握。 (2)加“VB语言”标注的问题,为VB语言能够完成的题目,C语言可以不完成。
1.顺序结构 1.已知三角形的三条边长a、b和c,求三角形的面积。 2.求解鸡兔同笼问题。已知笼子中鸡和兔的头数总共为h,脚数总共为f。问鸡和兔各有多少只? 3.编写程序输入圆半径r和高h,求圆周长、圆面积、圆球表面积、圆球体积和圆柱体积。
4.输入华氏温度值F,求出摄氏温度C,其公式为:)32(95FC。
5.我国现有人口13亿,如果每年增长率r=0.8%,求多少年后我国人口超过26亿(根据公式nr)13(126,推导出年数n可以用公式)1log()2log(rn计算)。 6.输入平面坐标系中两个点的坐标)y,(x11和)y,(x22,计算两点之间的距离。 7.使用Print语句输出以下图形。
8.(★)编写程序,求解二元一次方程组222111CYBXACYBXA的解,要求输入系数1A、1B、1C、2A、2B和2C。
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 程序设计必须掌握的算法设计问题 天津科技大学 计算机公共基础教研室 2008年
2 2.选择结构问题 1.输入a、b值,如果a>b,那么交换a和b,使得a≤b。 2.输入变量a、b和c,将它们按照从小到大的顺序排序后输出。 3.输入a、b值,输出其中较大的数。
4.输入x,求函数1022101121)(2xxxxxxxxf的值。
5.输入学生课程成绩mark,按照方法6070608070908090markmarkmarkmarkmark不及格及格中良优给出评分等级。 6.(★)求一元二次方程0cbxax2的根。 7.(★)输入坐标点(x,y),判断其落在哪个象限中。 8.给定整数,判定该数能否同时被6、9和14整除。 9.输入一个年号,判断该年号是否闰年。 10.(★)将四个变量从大到小排序,并输出。 11.水仙花数是指一个三位整数,该数三个数位的立方和等于该数本身。例如:333351153++= 输入一个3位整数,判断该数是否水仙花数。
12.输入x,求函数100100101002100102012)(2xxxxxxxxxf-的值。
13.(★)输入a和b的值,按公式0cossin0,0sinsin0,0lnlnabababababay计算y值。 14.某服装店经营套装,也单件出售,针对单笔交易的促销政策为: (1)不少于50套,每套80元; (2)不足50套,每套90元; (3)只买上衣每件60元; (4)只买裤子每条45元; 编写计算器,分别输入一笔交易中上衣和裤子数,计算应收款。 15.假如某地个人所得税的起征额为1600元,超过1600元以后纳税额按照以下方法计算: (1)超过500元以内部分,税率5%; (2)超过500元至2,000元部分,税率10%; (3)超过2,000元至5,000元部分,税率15%; (4)超过5,000元至20,000元部分,税率20%; (5)超过20,000元至40,000元部分,税率25%; 程序设计必须掌握的算法设计问题 天津科技大学 计算机公共基础教研室 2008年 3 (6)超过40,000元至60,000元部分,税率30%; (7)超过60,000元至80,000元部分,税率35%; (8)超过80,000元至100,000元部分,税率40%; (9)超过100,000元部分,税率45%; 编写个人所得税计算器,输入某地个人所得税起征额和个人月收入总额,计算应纳个人所得税金额。
3.循环结构问题
1.求s=10!,即求10的阶乘。 2.求s=100!,即求100的阶乘。 3.打印1-100中,所有能被4整除的整数。
4.计算分数序列的和:+++31211s,直到最后项小于0.00001。
5.利用公式71513114,求圆周率,要求最后一项绝对值小于610-。 6.(★)当1x时,计算公式432)1(432xxxxxLn+中,前20项的值。 7.输出Fibonacci数列:1、1、2、3、5、8、13、21„„的前40项。 8.素数是这样的整数,它只能被1和它自己整除。输入一个整数m,判断该数是否素数。 9.找出1到1000之间的所有素数。 10.编写程序,输出“*”,构成如图6-24所示的图形。
11.(★)循环输入20个数,求其中的最大值。 12.求两个整数m和n的最大公约数和最小公倍数。 13.百钱买百鸡问题。假定公鸡每只2元,母鸡每只3元,小鸡每只0.5元。现有100元,要求买100只鸡,编程求出公鸡只数x、母鸡只数y和小鸡只数z。 14.(★)用牛顿迭代法,求a的平方根。
15.(★)用矩形法求定积分44211dxx+。
16.求2012132xxx)(。 17.打印1~10000中所有的闰年。 18.我国人口为13亿,按照人口每年增加0.8%计算,多少年后我国的人口超过26亿。
i 1 2 3 4 5 6 7 8 9 1 * 2 * * * 3 * * * * * 4 * * * * * * * 5 * * * * * * * * * 4 * * * * * * * 3 * * * * * 2 * * * 1 * 程序设计必须掌握的算法设计问题 天津科技大学 计算机公共基础教研室 2008年
4 19.求222221......41312111n,直到最后项小于610。 20.求分数序列,1321,813,58,35,23,12,前20项之和。 21.求2211611117141211s,直到最后项小于610。
22.求)12()12()2(75653431222222nn
n,直到n>=1000。
23.求!10......!2!1!101nn。 24.(★)求!......!4!3!2!11432nxxxxxenx,直到n=100。 25.水仙花数是指一个三位整数,该数三个数位的立方和等于该数本身。例如:333351153++=。求所有水仙花数。 26.输入a和n,求s=a+aa+aaa+aaaa+„+aa„a(n个a)。例如a=2,n=5,则s=2+22+222+2222+22222。 (提示:设t为其中一项,则后一项t=t*10+a) 27.编程计算1000内的所有完数。完数是指一个数恰好等于其因子之和,例如:6=1+2+3(提示:先设计求m所有因子的算法;再求因子之和,并判断m是否完数;最后求所有完数)。 28.编写程序,输出“*”,构成以下图形。
29.搬砖问题:36块砖36人搬,男搬4块,女搬3块,2个小儿抬1块,要求1次搬完。问需男、女和小儿各多少人。 30.(★)循环输入20个数,求它们的和、平均值。
31.(★)梯形法求113)(2xxxf在区间(a,b)上的定积分。
32.(★)牛顿迭代法求02/)sin(xx在x附近的一个实根,精度小于410-。
4.数组问题 1.输入10个数,并反序输出。 2.输出Fibonacci数列:1、1、2、3、5、8、13、21、„„的前50项。 3.求一维数组中100个元素的最大值。 4.一维数组中查找满足条件(元素能被4整除)的所有元素及其个数。 5.用起泡法为一维数组的n个元素按从小到大排序并输出。
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 程序设计必须掌握的算法设计问题 天津科技大学 计算机公共基础教研室 2008年
5 6.用选择法为一维数组的n个元素按从小到大的顺序排序并输出。 7.二维数组输入数据,并按行列方式输出。 8.求数组中“行号>列号”的元素之和。 9.杨辉三角形是如图7-27所示数列,求杨辉三角形的前10行。 10.生成M×M矩阵,将矩阵转置后输出。 11.定义动态数组,先定义为一维数组,赋值并输出;再定义为二维数组,赋值并输出。 12.(★,VB语言)设计界面如图7-41所示,包括Text_i(数组元素下标)、Text_xh(学号)、Text_xm(姓名)、Text_xb(性别)、Text_Address(地址)、Command1(写入)、Command2(显示)。定义学生类型Student及一维数组,点击Command1按钮时,将文本框的输入写入数组;点击Command2按钮时,将对应下标的数组内容显示出来。 13.编写程序,生成有10个元素的一维数组,分别求和与平均值。 14.编写程序,生成有10个元素的一维数组,求其中所有偶数的平均值。 15.编写程序,生成有10个元素的一维数组,将一维数组反序并输出。 16.编写程序,生成有100个整数元素的一维数组,统计其中奇数和偶数的个数。 17.(★)编写程序,生成100个元素为0到9间整数的一维数组,求其中0到9的分别个数。 18.编写程序,将一维数组a的所有元素复制到一维数组b中。 19.编写程序,将一维数组a的所有元素连接到一维数组b的后边。 20.(★)编写程序,生成100个元素的一维数组,输入变量x,将数组中所有与x值相等的元素删除。 21.(★)编写程序,定义11个元素的一维数组,为前10个元素赋值,将前10个元素按照从小到大排序。输入变量x,将x插入数组中,使得数组仍然有序。
22.有数列的定义3n2)1(21211)(nnfnnnnf,求其前20个元素并输出。 23.编写程序,生成10行10列二维数组,求其中最大元素和最小元素。 24.编写程序,生成10行10列二维数组,求其主对角线元素之和。 25.编写程序,生成10行10列二维数组,分别求其每行和每列的和。 26.定义如下图所示两个矩阵(数据为1到20之间的随机数)