ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:36.67KB ,
资源ID:26149982      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26149982.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(CC语言程序大全.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

CC语言程序大全.docx

1、CC语言程序大全四、编写程序题及参考答案【4.41】从键盘输入十个整数,用插入法对输入的数据按照从小到大的顺序进行排序,将排序后的结果输出。 【4.42】输入一个正整数,要求以相反的顺序输出该数。例如输入 12345,输出位 54321。 【4.43】编写程序,读入一个整数;若为非负数,则计算到 2之间的整数和;若为一个负数,则求 到之间的整数和。分别利用 for 和 while 写出两个程序。 【4.44】求解爱因斯坦数学题。有一条长阶梯,若每步跨 2 阶,则最后剩余 1 阶,若每步跨 3 阶,则最后剩 2 阶, 若每步跨 5 阶,则最后剩 4 阶,若每步跨 6 阶则最后剩 5 阶,若每步跨

2、 7 阶,最后才正好一阶不剩。请问,这条阶 梯共有多少阶? 【4.45】一个自然数被 8 除余 1,所得的商被 8 除也余 1,再将第二次的商被 8 除后余 7,最后得到一个商为。又 知这个自然数被 17 除余 4, 所得的商被 17 除余 15,最后得到一个商是的 2 倍。编写程序求这个自然数。 【4.46】编写程序,用二分法求一元二次方程 2x3-4x2+3x-6=0 在(10,10)区间的根。 【4.47】中国古代科学家祖冲之采用正多边形逼近的割圆法求出了的值。请编写一程序,采用割 圆法求出的值,要求精确到小数点之后的第十位。 【4.48】A、B、C、D、E 五人在某天夜里合伙去捕鱼,到

3、第二天凌晨时都疲惫不堪,于是各自找 地方睡觉。日上三竿,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。 B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。C、D、E 依次醒来, 也按同样的方法拿鱼。编写程序求出他们合伙至少捕了多少条鱼。 【4.49】一辆卡车违犯交通规则,撞人逃跑。现场三人目击事件,但都没记住车号,只记下车号的 一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学 家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。 【4.50】若一个口袋中放有 12 个球,其中有 3 个红的,3 个白的和

4、6 个黑的,每次从中任取 8 个 球,编写程序求出共有多少种不同的颜色搭配。 【4.51】100 匹马驮 100 担货,大马一匹驮担,中马一匹驮担,小马两匹驮担。试编写程序 计算大、中、小马的数目。 【4.52】编写程序,输出用一元人民币兑换成 1 分、2 分和 5 分硬币的不同兑换方法。 【4.53】显示 200 以内的完全平方数和它们的个数。(完全平方数:A2+B2=C2,求 A、B、C) 【4.54】设 N 是一个四位数,它的 9 倍恰好是其反序数(例如:123 的反序数是 321),求 N 的值。 【4.55】将一个数的数码倒过来所得到的新数叫原数的反序数。如果一个数等于它的反序数,则

5、称 它为对称数。求不超过 1993 的最大的二进制的对称数。 【4.56】编写程序求解下式中各字母所代表的数字。 【4.57】一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数, 且这两个三位数的数码顺序正好相反,求这个三位数。 【4.58】请验证 2000 以内的哥德巴赫猜想,对于任何大于 4 的偶数均可以分解为两个素数之和。 【4.59】如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。 如 407=43+03+73 就是一个阿姆斯特朗数。编写程序求 1000 以内的所有阿姆斯特朗数。 【4.60】任意输入一个偶数,请将它分解为两个素

6、数之和。 【4.61】如果整数的全部因子(包括,不包括本身)之和等于;且整数的全部因子(包 括,不包括本身)之和等于,则将整数和称为亲密数。求 3000 以内的全部亲密数。 【4.62】猜数游戏。由计算机想一个数请人猜,如果人猜对了,则结束游戏,否则计算机给出提 示,告诉人所猜的数是太大还是太小,直到人猜对为止。计算机记录人猜的次数,以此可以反映 出猜数者猜的水平。 【4.63】编写程序求出 1000!后有多少个零。 【4.64】求矩阵 123 A= B= 456 A2*3 的转置矩阵 B3*2。设矩阵 A 为: 14 25 36 【4.65】十个小孩围成一圈分糖果,老师分给第一个小孩 10

7、块,第二个小孩 2 块,第三个小孩 8 块,第四个小孩 22 块,第五个小孩 16 块,第六个小孩 4 块,第七个小孩 10 块,第八个小孩 6 块, 第九个小孩 14 块,第十个小孩 20 块。然后所有的小孩同时将自己手中的糖分一半给右边的小孩; 糖块数为奇数的人可向老师要一块。问经过这样几次调整后大家手中的糖的块数都一样?每人各 有多少块糖? 【4.66】输入 55 的数组,编写程序实现: (1)求出对角线上各元素的和; (2)求出对角线上行、列下标均为偶数的各元素的积; (3)找出对角线上其值最大的元素和它在数组中的位置。 【4.67】编写程序,以字符形式输入一个十六进制数,将其变换为一

8、个十进制整数后输出。 【4.68】编写程序,输入一个十进制整数,将其变换为二进制后储存在一个字符数组中。 【4.69】编写程序,输出 1000 以内的所有完数及其因子。所谓完数是指一个整数的值等于它的因 子之和,例如 6 的因子是 1、2、3,而 6=1+2+3,故 6 是一个完数。 【4.70】对数组 A 中的 N(0N100个整数从小到大进行连续编号,输出各个元素的编号。要 求不能改变数组中元素的顺序,且相同的整数要具有相同的编号。例如数组是:A=(5,3,4,7,3,5,6) 则输出为: (3,1,2,5,1,3,4) 【4.71】现将不超过 2000 的所有素数从小到大排成第一行,第二

9、行上的每个数都等于它右肩上 的素数与左肩上的素数之差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们 的和恰好是 1898?假如存在的话,又有几种这样的情况? 第一行:2 3 5 7 11 13 17 . 1979 1987 1993 第二行: 1 2 2 4 2 4 . 8 6 【4.72】将 1、2、3、4、5、6、7、8、9 九个数字分成三组,每个数字只能用一次,即每组三个数 不许有重复数字,也不许同其它组的三个数字重复,要求将每组中的三位数组成一个完全平方数。 【4.73】一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数, 且这两个三位数的数码顺

10、序正好相反,求这个三位数。 【4.74】使用数组精确计算 M/N(0MN=100)的各小数位的值。如果 M/N 是无限循环小数,则计 算并输出它的第一循环节,同时要求输出循环节的起止位置(小数的序号)。 为了实现高精度计算结果,可将商存放在有()个元素的一维数组中,数组的每个元 素存放一位十进制数,即商的第一位存放在第一个元素中,商的第二位存放在第二个元素中, 依次类推。这样可使用数组来表示计算的结果。 【4.75】使用数组完成两个超长(长度小于)正整数的加法。 为了实现高精度的加法,可将正整数存放在有()个元素的一维数组中,数组的每个 元素存放一位十进制数,即个位存放在第一个元素中,十位存放

11、在第二个元素中,依次类推。 这样通过对数组中每个元素的按位加法就可实现对超长正整数的加法。 【4.76】使用数组完成两个超长(长度小于)正整数的加法。 为了实现高精度的加法,可将正整数存放在有()个元素的一维数组中,数组的每个 元素存放一位十进制数,即个位存放在第一个元素中,十位存放在第二个元素中,依次类推。 这样通过对数组中每个元素的按位加法就可实现对超长正整数的加法。 【4.77】使用数组完成两个超长(长度小于)正整数的乘法。 【4.78】马步遍历问题:已知国际象棋棋盘有 8*8 共 64 个格子。设计一个程序,使棋子从某位置 开始跳马,能够把棋盘上的格子走遍。每个格子只允许走一次。 【4

12、.79】八皇后问题: 在一个的国际象棋盘,有八个皇后,每个皇后占一格;要求棋盘上放上八个皇后时不会出 现相互攻击的现象,即不能有量个皇后在同一行、列或对角线上。问共有多少种不同的方法。 【4.80】编制一个计算函数 y=f(x)的值程序,其中: -x + 2.5 0= x 2 y= 2 - 1.5(x-3)*(x-3) 2= x 4 x/2 - 1.5 4= x 1) 请编写递归程序实现。 【4.88】编写函数,采用递归方法实现将输入的字符串按反序输出。 【4.89】编写函数,采用递归方法在屏幕上显示如下杨辉三角形: 1 11 121 1331 14641 1 5 10 10 5 1 【4.9

13、0】编写函数,采用递归方法将任一整数转换为二进制形式。 【4.91】设有字母 a、b、c,请编程用递归的方法产生由这些字母组成的,且长度为 n 的所有可能 的字符串。例如,输入 n=2,则输出: aa ab ac ba bb bc ca cb cc 【4.92】将一个数的数码倒过来所得到的新数,叫作原数的反序数,如果一个数等于它的反序数, 则称它为对称数。编写程序,采用递归算法求不超过 1993 的最大的二进制的对称数。 【4.93】从到 n(n1000)个自然数中选出个数进行组合,并按指定的格式输出组合的结果。例 如:n=5,r=3 时,共有 10 种组合,运行程序,要按下面的格式输出: 请

14、用递归算法实现。 【4.94】从键盘输入十个整数,用合并排序法对输入的数据按照从小到大的顺序进行排序,将排序 后的结果输出。 【4.95】编写程序,读入一个以符号.结束的长度小于 20 字节的英文句子,检查其是否为回文(即 正读和反读都是一样的,不考虑空格和标点符号)。例如: 读入句子:MADAM IM ADAM. 它是回文,所以输出:YES 读入句子:ABCDBA). 它不是回文,所以输出:NO 【4.96】编写程序,其中包括一个函数,此函数的功能是:对一个长度为 N 的字符串从其第 K 个 字符起,删去 M 个字符,组成长度为 N-M 的新字符串(其中 N、M=80,K=N)。例如输入字符

15、串 We are poor students.,利用此函数进行删除poor的处理,输出处理后的字符串是We are students.。 【4.97】编写函数,通过指针将一个字符串反向。 【4.98】编写一个函数 insert(s1,s2,ch),实现在字符串 s1 中的指定字符 ch 位置处插入字符串 s2。 【4.99】编写程序将输入的两行字符串连接后,将串中全部空格移到串首后输出。 【4.100】编写程序,输入字符串,分别统计字符串中所包含的各个不同的字符及其各自字符的数 量。如:输入字符串: abcedabcdcd 则输出:a=2 b=2 c=3 d=3 e=1。 【4.101】利用结

16、构:struct complx int real; int im; ; 编写求两个复数之积的函数 cmult,并利用该函数求下列复数之积: (3+4i)(5+6i) (10+20i)(30+40i 【4.102】编写成绩排序程序。按学生的序号输入学生的成绩,按照分数由高到低的顺序输出学生 的名次、该名次的分数、相同名次的人数和学号;同名次的学号输出在同一行中,一行最多输出 10 个学号。 【4.103】编写程序,实现输入的时间屏幕显示一秒后的时间。显示格式为 HH:MM:SS。程序需要 处理以下三种特殊情况: 若秒数加 1 后为 60,则秒数恢复到 0,分钟数增加 1; 若分钟数加 1 后为

17、60,则分钟数恢复到 0,小时数增加 1; 若小时数加 1 后为 24,则小时数恢复到 0。 【4.104】编写程序,从键盘输入 3 个学生的数据,将它们存入文件 student;然后再从文件中读出 数据,显示在屏幕上。 【4.105】编写程序,从键盘输入一行字符串,将其中的小写字母全部转换成大写字母,然后输出 到一个磁盘文件test中保存。 【4.106】编写程序,读入磁盘上语言源程序文件test8.c,删去程序中的注释后显示。 【编写程序题参考答案】 【4.41】参考答案: main( ) int i,j,num,a10; for(i=0;i=0&ajnum;j-) aj+1=aj; aj

18、+1=num; for(i=0;i0) printf(%d,n%10); 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 (

19、mod6) x0 (mod7) 参考答案: #include 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;

20、 if(2*a=n) printf(result=%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*x

21、1*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.2fn,

22、x0); 【4.47】分析:做圆的内接 4 边形,从圆心和 4 边形 顶点连接形成 4 个三角形,可以求出每个三角形的面 积(r2/2)现在我们知道三角形的面积和两个边长(均 为半径 a=r、b=r) ,可以用公式:S=s(s-a)(s-b)(s-c)求 出第三边 c。我们将内接 4 边形换为内接 8 边形,原 来的三角形被一分为二,故 c/2 就是每个三角形的高, 面积又是可以求出的。再将三角形一分为二,。 当三角形的面积求出时, 内接多边形的面积就可求出。 参考答案: main() int n=4; double r=10,s,cr,c,p; s=r*r/2; do cr=n*s; p=1

23、6*r*r*r*r-64*s*s; c=(4*r*r-sqrt(p)/2; c=sqrt(c); s=c*r/4; n=2*n; while(n*s-cr1.0e-10); printf(PAI=%lfn,cr/r/r); 【4.48】分析:根据题意,总计将所有的鱼进行了五 次平均分配,每次分配时的策略是相同的,即扔掉一 条后剩下的鱼正好分为五份,然后拿走自己的一份, 余下其它四份。假定鱼的总数为 x,则 x 可以按照题 目的要求进行五次分配:x-1 后可被 5 整除,余下的鱼 为 4(x-1) 5。若 x 满足上述要求,则 x 就是题 目的解。 参考答案: main( ) int n,i,x

24、,flag=1; /* flag:控制标记 */ for(n=6;flag;n+) /* 采用试探的方法,令试探值 n 逐步加大 */ for(x=n,i=1;flag & i=5;i+) /* 判断是否可按要 */ if(x-1)%5 = 0) x=4*(x-1)/5; /* 求进行 5 次分配 */ else flag=0; /* 若不能分配则置标记 flag=0 退出分配 过程 */ if(flag) break; /* 若分配过程正常,找到结果,退出试 探的过程 */ else flag=1; /* 否则继续试探下一个数 */ printf(Total number of fish c

25、atched = %dn, n); /* 输 出结果 */ 【4.49】分析:按照题目的要求造出一个前两位数相 同、后两位数相同且相互间又不同的整数,然后判断 该整数是否是另一个整数的平方。 参考答案: #include math.h main() int i,j,k,c; for(i=1;i=9;i+) /* i:车号前二位的取值 */ for(j=0;j=9;j+) /* j:车号后二位的取值 */ if( i!=j ) /* 判断两位数字是否相异 */ k=i*1000+i*100+j*10+j; /* 计算出可能的整数 */ for( c=31;c*ck;c+); /* 判断该数是否为

26、另一整 数的平方 */ if(c*c=k) printf(Lorry_No. is %d .n, k); /* 若是, 打印结果 */ 【4.50】分析:用穷举法解决此类问题。设任取红球 的个数为 i,白球的个数为 j,则取黑球的个数为 8-i-j, 据题意红球和白球个数的取值范围是 03,在红球和 白球个数确定的条件下,黑球的个数取值应为 8-i-j=6。 参考答案: main( ) int i,j,count=0; printf( RED BALL WHITE BALL BLACK BALLn); printf(-n); for(i=0;i=3;i+) /* 循环控制变量 i 控制任取红球

27、 个数 03 */ for(j=0;j=3;j+) /* 循环控制变量 j 控制任取白球 个数 03 */ if(8-i-j)=6) printf(%2d: %d %d %dn,+count, i,j,8-i-j); 【4.51】分析:此题采用穷举法。 参考答案: main() int x,y,z,j=0; for(x=0; x=33; x+) for(y=0; y=(100-3*x)/2; y+) z=100-x-y; if( z%2=0 & 3*x+2*y+z/2=100) printf(%2d:l=%2d m=%2d s=%2dn,+j,x,y,z); 【4.52】分析:此题采用穷举法。

28、 参考答案: main( ) int f1,f2,f5,count=0; for(f5=0;f5=20;f5+) for(f2=0;f2 5: %4d 2: %2d 1: %2dn,+count,f5,f2,f1); 【4.53】分析:此题采用穷举法。 参考答案: main( ) long int i,j,k,count=0; for(i=1;i*i=200;i+) for(j=1;j*j=200;j+) for(k=1;k*k=200;k+) if(i*i=(j*j+k*k) printf(nA2=B2+C2: %4ld%4ld%4ld,i,j,k); count+; printf(ncount=%ld,coun

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

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