程序设计基础习题.doc
《程序设计基础习题.doc》由会员分享,可在线阅读,更多相关《程序设计基础习题.doc(22页珍藏版)》请在咨信网上搜索。
1、7.8 习题 1. 编制一个C程序,从键盘输入一个正整数,如果该数为素数,则输出该素数,否则输出该数的所有因子(除去1与自身)。 2. 编制一个C程序,从键盘输入一个正整数N,然后计算并输出 S=最后计算并输出 T=其中的整数部分。 3. 编制一个C程序,计算并输出多项式的值 的值,直到 |Sn-Sn-1|0.000001 为止。其中x从键盘输入。 4. 编制一个C程序,计算下列级数和: sn=1+(2/1)+(3/2)+(5/3)+(8/5)+(13/8)+(an/an-1)其中n1,由键盘输入;s1=1。 5. 编制一个C程序,计算并输出下列级数之和: 其中n与x从键盘输入。 6. 编制一
2、个C程序,输出能写成两个数平方之和的所有三位数。 7. 如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。例如,6的因子为1、2、3,且1+2+3=6,即6是一个“完数”。编制一个C程序,计算并输出1000以内的所有“完数”之和。 8. 编制一个C程序,从键盘输入30个实数,分别计算并输出以下5个量:所有正数之和,所有负数之和,所有数的绝对值之和,正数的个数,负数的个数。 9. 100元钱买100只鸡,母鸡3元/只,公鸡2元/只,小鸡0.5元/只。编制一个C程序,制定买鸡方案。 10. 设A,B,C,D,E五人,每人额头上贴了一张或黑或白的纸。五人对坐,每人都可以看到
3、其他人额头上的纸的颜色,但都不知道自己额头上的纸的颜色。五人相互观察后开始说话: A说:我看见有三人额头上贴的是白纸,一人额头上贴的是黑纸。 B说:我看见其他四人额头上贴的都是黑纸。 C说:我看见有一人额头上贴的是白纸,其他三人额头上贴的是黑纸。 D说:我看见四人额头上贴的都是白纸。 E什么也没说。 现在已知额头上贴黑纸的人说的都是真话,额头上贴白纸的人说的都是假话。编制一个C程序,确定这五人中谁的额头上贴白纸,谁的额头上贴黑纸? 11. 寻找1000以内最小的10个素数与最大的10个素数(去掉重复的素数),计算并输出这20个素数之和。 具体要求: (1) 画出计算过程的结构化流程图。 (2)
4、 虽然1000以内素数个数超过20个,但仍要求考虑1000以内不够10个最小素数与10个最大素数,以及最小的10个素数与最大的10个素数有重复的情况。 (3) 输出要有文字说明。输出形式为 zui xiao su shu :素数1,素数2,素数10 zui da su shu : 素数1,素数2,素数10 su shu zhi he : 和的具体值 (4) 在程序内部加必要的注释(至少有三处)。 方法说明: 对于某个(从小到大与从大到小)自然数k,开始时置标志flag为0,然后对2到中的自然数j进行检测,当发现j是k的因子,就置flag为1,表示不必再对别的自然数进行检测,因为此时已经可以确定
5、k不是素数了,只有当2到中的所有自然数都不是k的因子(即flag保持为0)时,说明k为素数,输出k,并进行累加。 12. A、B、C、D、E五人分苹果。A将所有的苹果分为五份,将多余的一个苹果吃掉后再拿走自己的一份苹果;B将剩下的苹果分为五份,将多余的一个苹果吃掉后再拿走自己的一份苹果;C、D、E依次按同样的方法,将剩下的苹果分为五份,吃掉多余的一个苹果后拿走自己的一份苹果。编程计算原来至少有多少个苹果?A、B、C、D、E各得到多少个苹果? 具体要求: (1) 画出计算过程的结构化流程图。 (2) 输出要有文字说明。 (3) 在程序内部加必要的注释(至少有三处)。 方法说明: 采用逐步试探的方
6、法。 设当前试探的苹果数为n。如果n满足下列条件: n-1(多余的一个被吃掉)后要能被5整除; 拿走一份后,余下的四份苹果数为4*(n-1)/5。 按上述策略连续进行五次分配,如果每次分配时均满足其中的条件,则试探的n即为原来的苹果数x。 为了第一次能分配,试探从6开始。 根据分配策略,最后A,B,C,D,E五人得到的苹果数(不包括吃掉的一个苹果)可以按如下公式依次计算: a=(x-1)/5 b=(4*a-1)/5 c=(4*b-1)/5 d=(4*c-1)/5 e=(4*d-1)/5 13. 某单位要在A,B,C,D,E,F六人中选派若干人去执行一项任务,选人的条件如下: (1) 若C不去,
7、则B也不去; (2) C和D两人中去一个; (3) D和E要么都去,要么都不去; (4) A,B,F三人中要去两个; (5) C和F不能一起去: (6) E和F两人中至少去一个。问应该选哪几个人去? 具体要求: (1) 画出计算过程的结构化流程图。 (2) 输出要有文字说明。 (3) 在程序内部加必要的注释(至少有三处)。8.5 习题 1. 编写一个函数sabc(),根据给定的三角形三条边长a,b,c,函数返回三角形的面积。 2. 编写一个计算阶乘值的函数p()(该函数为双精度实型);再编写一个主函数,从键盘输入两个正整数m与n(mn),通过调用函数p(),计算 的值(即求 )。 3. 编写一
8、个函数,计算并返回给定正整数m与n的最大公约数。 4. 编写一个主函数,调用例8.3中的函数sushu(),输出小于1000的最大五个素数。 5. 编写一个主函数,调用例8.3中的函数sushu(),验证6到1000中的所有偶数均能表示成两个素数之和。 6. 编写一个递归函数,计算并返回菲波那契(Fibonacci)数列中第n项的值。菲波那契数列的定义如下: Fib(1)=1,Fib(2)=1 Fib(n)=Fib(n-1)+Fib(n-2) 7. 编写一个递归函数,计算并返回阿克玛(Ackermann)函数值。阿克玛函数的定义如下: 其中n,x,y均为非负整数。 8. 编写计算n!的递归函数
9、。 9. 编写一个递归函数,其功能是将一个正整数n转换成字符串(要求各字符之间用一个空格分隔)输出。例如,输入的正整数为735,应输出字符串“7 3 5”。其中正整数在主函数中从键盘输入,要求判断其输入的合理性。 10. 计算并输出500以内的所有“亲密数”对,并输出所有“完数”之和。 具体要求: (1) 编写一个函数facsum(n),返回给定正整数n的所有因子(包括1但不包括自身)之和。 (2) 编写一个主函数,调用(1)中的函数facsum(n),寻找并输出500以内的所有“亲密数”对以及计算所有“完数”之和。 (3) 分别画出函数facsum(n)和主函数计算过程的结构化流程图。 (4
10、) 在输出每对“亲密数”时,要求小数在前、大数在后,并去掉重复的数对。例如,220与284是一对“亲密数”,而284与220也是一对“亲密数”,此时只要求输出220与284这对“亲密数”。 (5) 输出要有文字说明(英文或汉语拼音)。输出时每对“亲密数”用一对圆括号括起来,两数之间用逗号分隔,且所有的“亲密数”对占一行。输出形式为 各对“亲密数” “完数”之和 (6) 在程序内部加必要的注释(至少有三处)。 (7) 将两个函数分别放在两个文件中进行编译、连接并运行。 (8) 将两个函数放在一个文件中进行编译、连接并运行。 方法说明: 如果自然数M的所有因子(包括1但不包括自身,下同)之和为N,
11、而N的所有因子之和为M,则称M与N为一对“亲密数”。例如,6的所有因子之和为1+2+3=6,因此,6与它自身构成一对“亲密数”;又如,220的所有因子之和为1+2+4+5+10+11+20+22+44+55+110=284,而284的所有因子之和为1+2+4+71+142=220,因此,220与284为一对“亲密数”。 如果一个自然数的所有因子之和恰好等于它自身,则称该自然数为“完数”。例如,6不仅与它自身构成一对“亲密数”,且6是一个“完数”。 11. 计算并输出的值。 具体要求: (1) 编写一个计算k!的递归函数,其函数名返回k!的值。 (2) 编写一个主函数,首先从键盘输入m和n的值(
12、要求nm0),然后调用(1)中的函数计算的值。 (3) 在计算k!的递归函数中,要检查形参k的合理性,当k0时,应输出出错信息,并返回0值。 (4) 在主函数中应检查从键盘输入的数据的合理性,对于不合理的输入,应输出出错信息,并不再调用计算。 (5) 分别输入(m, n)=(-3, 7), (0, 0), (1, 7), (9, 13), (9, 4)运行你的程序。 3. 利用变步长梯形求积法计算定积分。 具体要求: (1) 编写一个函数st(a, b, eps)(要求该函数放在独立的文件中),其功能是利用变步长梯形求积法计算定积分 其中eps为精度要求。 要求画出该函数处理的结构化流程图。
13、(2) 编写一个主函数以及计算被积函数值的函数fun(x),在主函数中调用(1)中的函数st(a, b, eps),计算并输出下列积分值 精度要求为eps=0.0001。 要求主函数与函数fun(x)放在同一个文件中。 (3) 编写另一个主函数以及计算被积函数值的函数fun(x),在主函数中调用(1)中的函数st(a, b, eps),计算并输出下列积分值 精度要求为eps=0.00001。 同样要求主函数与函数fun(x)放在同一个文件中。 方法说明: 变步长梯形求积法的基本步骤如下: 利用梯形公式计算积分。即取 n=1,h=b-a则有 其中xk=a+kh。 将求积区间再二等分一次(即由原来
14、的n等分变成2n等分),在每一个小区间内仍利用梯形公式计算。即有 = = 判断二等分前后两次的积分值之差的绝对值是否小于所规定的误差。若条件 |T2n-Tn|eps成立,则二等分后的积分值T2n即为结果;否则作如下处理: h=h/2,n=2*n,Tn=T2n然后重复。9.6 习题 1. 编写一个C程序,从键盘为一个长度为10的整型一维数组输入数据。最后按逆序输出数组中的元素,并输出数组中最大元素的下标值。 2. 编写一个C程序,将两个长度相同的一维数组中各下标相同的对应元素相乘,并将结果存放到另一个一维数组中。 3. 编写一个C程序,从键盘为55的一个整型二维数组输入数据。最后输出该二维数组中
15、的对角线元素。 4. 编写一个C程序,从键盘为46的一个整型二维数组输入数据。最后输出该二维数组中最小元素的行下标与列下标。 5. 从键盘输入5行5列二维整型数组的数据。编制一个函数,计算二维数组中每一行中的最小值,并将此最小值顺序存放在一个长度为5的一维数组中。最后按矩阵形式输出二维数组中的各元素,且各行中的最小值(即一维数组中的元素)输出到相应行的右边。 6. 编写一个C函数,将一个一维数组中的元素逆转。逆转是指将数组中的第一个元素与最后一个元素进行交换,第二个元素与倒数第二个元素进行交换,以此类推,直到数组的中间一个元素为止。 7. 编写一个C函数,将矩阵进行转置后输出。 8. 设有两个
16、整型一维有序数组(即数组中的元素按从小到大进行排列),编写一个C函数,将这两个有序数组合并存放到另一个一维数组中,并保证合并后的一维数组也是有序的。 9. 编制一个C程序,从键盘输入一个由5个字符组成的单词,然后判断该单词是否是China。要求给出判断结果的提示信息。 10. 编写一个C程序,从键盘输入50个字符,并统计其中英文字母(不分大小写)与数字字符的个数。 11. 中国有句俗语叫“三天打鱼,两天晒网”。现某人从2000年1月1日起开始“三天打鱼,两天晒网”,请编程判断此人在以后的某年某月某日是在“打鱼”还是在“晒网”。其中以后的某年某月某日从键盘输入。 12. 一辆汽车在开始出发前其里
17、程表上的读数是一个对称数95859,后匀速行驶两小时后,发现里程表上是一个新的对称数。问该新的对称数是多少?汽车的速度是多少? 注:所谓对称数是指从左向右读与从右向左读完全一样。 13. 计算多项式函数 P6(x)=1.5x6+3.2x5-0.8x4+1.4x3-6.5x2+0.5x-3.7在x=-2.3,-1.1,-0.6,0.8,2.1,3.6处的函数值。 具体要求: (1) 编写一个函数,其功能是:给定一个x值,返回多项式函数值。 (2) 编写一个主函数,定义两个一维数组,分别存放多项式的系数和需要计算的各x值。然后在主函数中调用(1)中的函数逐个计算各x值时的多项式值。 (3) 在主函
18、数中的输出形式为 P(x值)=具体的多项式值 方法说明: 设多项式为 Pn(x)=anxn+an-1xn-1+a1x+a0可以表述成如下嵌套形式: Pn(x)=(anx+an-1)x+an-2)x+a1)x+a0利用上式的特殊结构,从里往外一层一层地进行计算,即按如下递推关系进行计算: u=an u=ux+ak ,k=n-1,1,0最后计算得到的u即是多项式的值Pn(x)。 14. 产生100个01之间均匀分布的随机数,并将这些随机数按非递减顺序进行排序,存放到一个一维数组中。最后输出该有序数组。 具体要求: (1) 在产生随机数的过程中,每产生一个随机数就将它插入到前面已经有序的数组中。 (
19、2) 输出时要求每行输出10个数据,并上下对齐。 方法说明: 产生随机数pk(k=1,2,100)的公式为 rk=mod(2053rk-1+13849,216) pk=rk/216其中初值r0=1。 解决本问题的流程图如图9.4所示。 定义数组a100 r=1, k=0 k100 r=mod(2053r+13849, 216) p=r/216 j=k-1 j0 且 paj aj+1=aj j=j-1 aj+1=p k=k+1 输出ak, k=0, 1, , 99图9.4 实验练习2的流程图 15. 利用高斯(Gauss)消去法求解线性代数方程组。 具体要求: (1) 编写一个用高斯(列选主元)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 习题
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。