B语言程序大全

上传人:豆浆 文档编号:37522398 上传时间:2018-04-17 格式:DOC 页数:21 大小:101.50KB
返回 下载 相关 举报
B语言程序大全_第1页
第1页 / 共21页
B语言程序大全_第2页
第2页 / 共21页
B语言程序大全_第3页
第3页 / 共21页
B语言程序大全_第4页
第4页 / 共21页
B语言程序大全_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《B语言程序大全》由会员分享,可在线阅读,更多相关《B语言程序大全(21页珍藏版)》请在金锄头文库上搜索。

1、四、四、编编写程序写程序题题及参考答案及参考答案【 【4.41】 】从从键盘输键盘输入十个整数,用插入法入十个整数,用插入法对输对输入的数入的数据按照从小到大的据按照从小到大的顺顺序序进进行排序,将排序后的行排序,将排序后的结结果果输输出。出。 【 【4.42】 】输输入一个正整数,要求以相反的入一个正整数,要求以相反的顺顺序序输输出出该该数。例如数。例如输输入入 12345, ,输输出出位位 54321。 。 【 【4.43】 】编编写程序,写程序,读读入一个整数;若入一个整数;若为为非非负负数,数,则计则计算到算到 2之之间间的整数和;若的整数和;若为为一个一个负负数,数,则则求求 到之到

2、之间间的的整数和。分整数和。分别别利用利用 for 和和 while 写写出两个程序。出两个程序。 【 【4.44】 】求解求解爱爱因斯坦数学因斯坦数学题题。有一条。有一条长阶长阶梯,若每步跨梯,若每步跨 2 阶阶, ,则则最后剩最后剩余余 1 阶阶,若每步跨,若每步跨 3 阶阶, ,则则最后剩最后剩 2 阶阶, , 若每步跨若每步跨 5 阶阶, ,则则最后剩最后剩 4 阶阶,若每步跨,若每步跨 6 阶则阶则最后剩最后剩 5 阶阶,若每,若每步跨步跨 7 阶阶,最后才正好一,最后才正好一阶阶不剩。不剩。请问请问, ,这这条条阶阶 梯共有多梯共有多少少阶阶? 【 【4.45】 】一个自然数被一个

3、自然数被 8 除余除余 1,所得的商被,所得的商被 8 除除也余也余 1,再将第二次的,再将第二次的商被商被 8 除后余除后余 7,最后得到一个商,最后得到一个商为为。又又 知知这这个自然数被个自然数被 17 除余除余 4, , 所得的商被所得的商被 17 除余除余 15,最后得,最后得到一个商是的到一个商是的 2 倍。倍。编编写程序求写程序求这这个自然数。个自然数。 【 【4.46】 】编编写程序,写程序,用二分法求一元二次方程用二分法求一元二次方程 2x3-4x2+3x-6=0 在(在(10, ,10)区)区间间的根。的根。 【 【4.47】 】中国古代科学家祖冲之采用中国古代科学家祖冲之

4、采用正多边形逼近的割圆法求出了 的值。请编写一程序,采用割 圆法求出 的值,要求精确到小数点之后的第十位。 【4.48】A、B、C、D、E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找 地方睡觉。日上三竿,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。 B 第二个醒来,也将二个醒来,也将鱼鱼分分为为五份,把多余的一条五份,把多余的一条鱼鱼扔掉,拿走扔掉,拿走自己的一份。自己的一份。C、 、D、 、E 依次醒来,依次醒来, 也按同也按同样样的方法拿的方法拿鱼鱼。 。编编写程序写程序求出他求出他们们合伙至少捕了多少条合伙至少捕了多少条鱼鱼。 。 【4.49】

5、一辆卡车违犯交通规则,撞人逃跑。现场三人目击事件,但都没记住车号,只记下车号的 一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学 家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。 【4.50】若一个口袋中放有 12 个球,其中有 3 个红的,3 个白的和 6 个黑的,每次从中任取 8 个 球,编写程序求出共有多少种不同的颜色搭配。 【4.51】100 匹马驮 100 担货,大马一匹驮担,中马一匹驮担,小马两匹驮担。试编写程序 计算大、中、小马的数目。 【4.52】编写程序,输出用一元人民币兑换成 1 分、2 分和 5 分硬币的不同兑换方法。

6、 【4.53】显示 200 以内的完全平方数和它们的个数。 (完全平方数:A2+B2=C2,求 A、B、C) 【4.54】设 N 是一个四位数,它的 9 倍恰好是其反序数(例如:123 的反序数是 321),求 N 的值。 【4.55】将一个数的数码倒过来所得到的新数叫原数的反序数。如果一个数等于它的反序数,则称 它为对称数。求不超过 1993 的最大的二进制的对称数。 【4.56】编写程序求解下式中各字母所代表的数字。 【4.57】一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数, 且这两个三位数的数码顺序正好相反,求这个三位数。 【4.58】请验证 2000 以

7、内的哥德巴赫猜想,对于任何大于 4 的偶数均可以分解为两个素数之和。 【4.59】如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。 如 407=43+03+73 就是一个阿姆斯特朗数。编写程序求 1000 以内的所有阿姆斯特朗数。 【4.60】任意输入一个偶数,请将它分解为两个素数之和。 【4.61】如果整数的全部因子(包括,不包括本身)之和等于;且整数的全部因子(包 括,不包括本身)之和等于,则将整数和称为亲密数。求 3000 以内的全部亲密数。 【4.62】猜数游戏。由计算机“想“一个数请人猜,如果人猜对了,则结束游戏,否则计算机给出提 示,告诉人所猜的数是

8、太大还是太小,直到人猜对为止。计算机记录人猜的次数,以此可以反映 出猜数者“猜“的水平。 【4.63】编写程序求出 1000!后有多少个零。 【4.64】求矩阵 123 A= B= 456 A2*3 的转置矩阵 B3*2。设矩阵 A 为: 14 25 36 【4.65】十个小孩围成一圈分糖果,老师分给第一个小孩 10 块,第二个小孩 2 块,第三个小孩 8 块,第四个小孩 22 块,第五个小孩 16 块,第六个小孩 4 块,第七个小孩 10 块,第八个小孩 6 块, 第九个小孩 14 块,第十个小孩 20 块。然后所有的小孩同时将自己手中的糖分一半给右边的小孩; 糖块数为奇数的人可向老师要一块

9、。问经过这样几次调整后大家手中的糖的块数都一样?每人各 有多少块糖? 【4.66】输入 55 的数组,编写程序实现: (1)求出对角线上各元素的和; (2)求出对角线上行、列下标均为偶数的各元素的积; (3)找出对角线上其值最大的元素和它在数组中的位置。 【4.67】编写程序,以字符形式输入一个十六进制数,将其变换为一个十进制整数后输出。 【4.68】编写程序,输入一个十进制整数,将其变换为二进制后储存在一个字符数组中。 【4.69】编写程序,输出 1000 以内的所有完数及其因子。所谓完数是指一个整数的值等于它的因 子之和,例如 6 的因子是 1、2、3,而 6=1+2+3,故 6 是一个完

10、数。 【4.70】对数组 A 中的 N(0N100个整数从小到大进行连续编号,输出各个元素的编号。要 求不能改变数组中元素的顺序,且相同的整数要具有相同的编号。例如数组是:A=(5,3,4,7,3,5,6) 则输出为: (3,1,2,5,1,3,4) 【4.71】现将不超过 2000 的所有素数从小到大排成第一行,第二行上的每个数都等于它“右肩“上 的素数与“左肩“上的素数之差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们 的和恰好是 1898?假如存在的话,又有几种这样的情况? 第一行:2 3 5 7 11 13 17 . 1979 1987 1993 第二行: 1 2 2 4

11、 2 4 . 8 6 【4.72】将 1、2、3、4、5、6、7、8、9 九个数字分成三组,每个数字只能用一次,即每组三个数 不许有重复数字,也不许同其它组的三个数字重复,要求将每组中的三位数组成一个完全平方数。 【4.73】一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数, 且这两个三位数的数码顺序正好相反,求这个三位数。 【4.74】使用数组精确计算 M/N(01) 请编写递归程序实现。【4.88】编写函数,采用递归方法实现将输入的字符串按反序输出。 【4.89】编写函数,采用递归方法在屏幕上显示如下杨辉三角形: 1 11 121 1331 14641 1 5

12、10 10 5 1 【4.90】编写函数,采用递归方法将任一整数转换为二进制形式。 【4.91】设有字母 a、b、c,请编程用递归的方法产生由这些字母组成的,且长度为 n 的所有可能 的字符串。例如,输入 n=2,则输出: aa ab ac ba bb bc ca cb cc 【4.92】将一个数的数码倒过来所得到的新数,叫作原数的反序数,如果一个数等于它的反序数, 则称它为对称数。编写程序,采用递归算法求不超过 1993 的最大的二进制的对称数。 【4.93】从到 n(n=0&ajnum;j-) aj+1=aj; aj+1=num; for(i=0;i0) printf(“%d“,n%10)

13、; n=n/10; 【4.43】参考答案: main() int i,n; long s1=0,s2=0; printf(“Please enter N:“); scanf(“%d“,&n); if(n=0) for(i=n;i=2*n;i-) s1=s1+i; i=n; if(i=0) while(i=2*n) s2=s2+i-; printf(“Result1=%ld result2=%ldn“,s1,s2); 【4.44】分析:据题意,阶梯数满足下面一组同余式: x1 (mod2) x2 (mod3) x4 (mod5) x5 (mod6) x0 (mod7) 参考答案: #includ

14、e main() int i=1; /* i 为所设的阶梯数 */ while( !(i%2=1)&(i%3=2)&(i%5=4)&(i%6= 5)&(i%7=0) ) +i; /* 满足一组同余式的判别 */ printf(“Staris_number=%dn“, i ); 【4.45】参考答案: main( ) int i,n,a; for(i=0; ;i+) if(i%8=1) n=i/8; if(n%8=1) n=n/8; if(n%8=7) a=n/8; if(i%17=4) n=i/17; if(n%17=15) n=n/17; if(2*a=n) printf(“result=%

15、dn“,i); break; 【4.46】分析:二分法的基本原理是,若函数有实根, 则函数的曲线应当在根这一点上与轴有一个交点, 在根附近的左右区间内,函数值的符号应当相反。利 用这一原理,逐步缩小区间的范围,保持在区间的两 个端点处的函数值符号相反,就可以逐步逼近函数的 根。 参考答案: #include “stdio.h“ #include “math.h“ main() float x0, x1, x2, fx0, fx1, fx2; do printf(“Enter x1,x2:“); scanf(“%f,%f“, &x1, &x2); fx1=2*x1*x1*x1-4*x1*x1+3*x1-6; /* 求出 x1 点的函 数值 fx1 */ fx2=2*x2*x2*x2-4*x2*x2+3*x2-6; /* 求出 x2 点的函 数值 fx2 */ while (fx1*fx20); /* 保证在指定的范围内有根, 即 fx 的符号相反 */ do x0=(x1+x2)/2; /* 取 x1 和 x2 的中点 */ fx0=2*x0*x0*x0-4*x0*x0+3*x0-6; /* 求出中点的函 数值 fx0 */ if(fx0*fx1)=1e-5); /* 判断 x0 点的函 数与 x 轴的 距离 */ printf(“x=%6.2f

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号