C语言作业及参考答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言及实验作业参考做法

分支程序设计

1.从键盘上输入10个整数,计算这些整数的和

2.水仙花数。一个3位数,若其各位数字之和等于它本身,这个数就称为水仙花数.输出所有的水仙花数。(如153)

#include<>

int main()...前20项之和。

#include<>

int main()

{

float sum,fenzi,fenmu,a;

int i;

fenzi=2;fenmu=1;sum=0;

for(i=1; i<=20; i++)

{

sum+=fenzi/fenmu;

a=fenmu;

fenmu=fenzi;fenzi+=a;

}

printf("%.3f",sum);

return 0;

}

4.迭代法求平方根。利用公式x(n+1)=1/2*(x(n)+a/x(n)) 计算a的平方根.要求|x(n+1)-x(n)|<1e-5

#include <>

#include <>

main()

{float x0,x1,a;

printf("input a="); scanf("%f",&a);

x1=a/2;

do

{ x0=x1;

x1=(x0+a/x0)/2;

}while(fabs(x1-x0)>1e-5);

printf("the sqrt of %f is %f\n",a,x1);

}

5.百钱买百鸡:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何

6.某人摘下一些桃子,第一天卖掉一半,又吃了一个,第二天卖掉剩下的一半,又吃了一个,以后每天都是如此处理,到第n天发现只剩下一只桃子。输入n,输出一共摘了多少桃子。

7.一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1, 2*2, 3*3, 4*4, 5*5, 6*6。这些产品通常使用一个6*6*h 的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。

输入

输入文件包括几行,每一行代表一个订单。每个订单里的一行包括六个整数,中间用空格隔开,分别为1*1至6*6这六种产品的数量。输入文件将以6个0组成的一行结尾。

输出

除了输入的最后一行6个0以外,输入文件里每一行对应着输出文件的一行,每一行输出一个整数代表对应的订单所需的最小包裹数。

数组

1.输入10个整数,输出最小值及最小值的下标。

2.字符串复制。输入一个字符串,把它复制到一个字符数组中,并输出。3.找出一个5*6的二维数组的鞍点。一个数组的鞍点是一个位置(行号,列号),该位置上的元素在该行值最大,在该列值最小.一个数组可能有一个鞍点,也可能没有鞍点。

4.字符分类统计。输入3行字符,分别统计其中英文大写字母、小写字母、数字、空格及其他字符的个数。

5.判断一个字符串是否是回文如“abcba”(顺读和逆读相同)

6.折半查找。有15个数,按从小到大的顺序存放在一个数组中。输入一个数,查找该数是数组中的第几个数。如果该数不在数组中,则输出“找不到”

7.矩阵的乘法运算

8.用筛选法求素数。对于一个整数x,只要删去所有不超过sqrt(x)的素数p的所有倍数(不含p),剩下的就是不超过x的全部素数。

9.输入1000个0~50的整数,统计每个数出现的次数

10.公元元年元月元日(1年1月1日)是星期一,确定公元y年m月d日是星期几

11.A,B,C,D,E合伙夜间捕鱼,凌晨时都睡了。A第1个醒来,将鱼平分成5份,多余1条扔掉,回家了。B第2个醒来,将鱼平分成5份,多余1条扔掉,回家了;C、D、E依次醒来,按同样的方法分鱼。问5人至少合作捕到多少条鱼每人醒来后看到多少条鱼

12.完美立方。

问题描述:a^3= b^3+ c^3+ d^3为完美立方等式。例如123= 6^3+ 8^3+ 10^3。编写一个程序,对任给的正整数N (N≤100),寻找所有的四元组(a, b, c, d),使得a^3= b^3+ c^3+ d^3,其中1

输入:正整数N (N≤100)

输出:每行输出一个完美立方,按照a的值,从小到大依次输出。当两个完美立方等式中a的值相同,则依次按照b、c、d进行非降升序排列输出,即b值小的先输出、然后c值小的先输出、然后d值小的先输出。

#include <>

int main()

{

int n;scanf("%d",&n);

int i, cube[101];

for(i=0;i<=100;i++) cube[i]=i*i*i;

int a,b,c,d;

for(a=2;a<=n;a++)

for(b=2;b

for(c=b;c

for(d=c;d

if(cube[a] == cube[b]+cube[c]+cube[d])

printf("Cube = %d, Triple = (%d,%d,%d)\n",a,b,c,d);

return 0;

}

13.给定一个整数序列,判断其中有多少个数,等于数列中其他两个数的和。比如,对于数列1 2 3 4, 这个问题的答案就是2, 因为3 = 2 + 1, 4 = 1 + 3。14.猜字游戏。计算机生成一个随机数,用户来猜。猜对数字但是位置不对用nB来表示,位置正确用nA表示。

例如随机数:2468

一猜:0123 0A,1B 二猜:1234 0A,2B

三猜:2345 1A,1B 四猜:2346 1A,2B

五猜:8346 0A,3B 六猜:2846 1A,3B

七猜:2486 2A,2B 八猜:2468 4A

15.A,B,C是小学老师,各教两门课,互不重复。共有6门课:语文、算术、政治、地理、音乐和美术。已知:

(1)政治老师和算术老师是邻居

(2)地理老师比语文老师年纪大

(3)B最年轻

(4)A经常对地理老师和算术老师讲他看过的文学作品

(5)B经常和音乐老师、语文老师一起游泳

16.过年了,村里要庆祝一下。村长对村里的128个村民说:做一个游戏,让每个人把出生年+月+日得到一个数。例如:1968年10月28日=1968+10+28=2006。然后把这个数报上来。村里有一笔钱要作为游戏的奖金,数额为M元。如果有人报上来的数字与M相同,就把这笔钱发给这些人。如果只有一个人得奖,奖金都归这个人。如果有多于一个人得奖,则他们平分这笔钱。现在让我们来写一段程序算算都有哪些人得到了奖金得到多少

函数

相关文档
最新文档