C语言程序设计实验指导书课后答案 下载本文

内容发布更新时间 : 2024/11/18 1:29:24星期一 下面是文章的全部内容请认真阅读。

4.1.3

编写程序:计算2/1+3/2+5/3+8/5……的 近似值。要求计算前n项之和,保留2位小数(该序列从第二项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子) #include int main(void) { float n,i,sum,a,b,item; printf(\请输入n的值:\ scanf(\ sum=0; i=1; a=2; b=1; item=0; while(i<=n) { sum=sum+a/b; item=a; a=a+b; b=item; i=i++; }

printf(\结果为%.2f\\n\return 0; } 4.1.4

编写一个程序,找出被2,3,5整除时余数均为1的最小的10个自然数。 #include int main(void) {

int x,i; i=0; x=1;

while(i<10) { if(x%2==1 && x%3==1 && x%5==1) { printf(\ i++; } x++; }

return 0;

} 4.1.5

输入一个正整数,求它的位数以及各位数字之和,例如123的位数是3,各位数字之和是6.

#include int main(void) { int number,digit,i,sum; i=0; sum=0; printf(\输入一个正整数:\ scanf(\ while(number!=0) { digit=number; number=number/10; sum=sum+digit; i=i++; } printf(\ printf(\该整数的位数是%d\\n,各位数字之和是%d\\n\ return 0; } 4.1.6

猴子吃桃问题。猴子第一天摘下若干个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,求第一天共摘下来多少个桃子? #include int main(void) { int i,a; a=1; for(i=1;i<=9;i++) { a=(a+1)*2; } printf(\一共摘了%d\\n个桃子\ return 0; } 4.2.1

求100以内的全部素数,每行输出10个。素数就是只能被1和它本身整除,1不是素数,2是素数。

#include int main(void) { int i,m=0,n; for(n=2;n<=99;n++) { for(i=2;i<=n-1;i++) if(n%i==0) break; if(i>=n) { printf(\ m++; if(m==0) printf(\ } } return 0; }

4.2.2有一个四位数,千位上的数字和百位上的数字都被擦掉了,已知十位上的数字是1,个位上的数字是2,又知道这个数如果减去7就能被7整除,减去8就能被8整除,减去9就能被9整除。编写一个程序求这个四位数。提示:利用穷举法来解决该问题。 #include void main() { int x,m,n; for(x=1000;x<=9999;x++) { m=x; n=x/10; if(m==2 && n==1 && (x-7)%7==0 && (x-8)%8==0 && (x-9)%9==0) printf(\ } } 4.2.3

取1元、2元和5元的纸币共10张,现在要支付15元。编写程序输出所有的付法。针对每一种付法,输出各种面额的纸币数量。要求将1元、2元和5元设置在最合理的取值范围内。 #include int main() { int m, n, k; for (m=0; m<=10; m++)

{ for (n=0; n<=10; n++) { for (k=0; k<=10; k++) { if (m+2*n+5*k==15) { printf(\元:%d张\\t2元:%d张\\t5元:%d\\n\ } } } } return 0; } 4.2.4

找出200以内的所有完数,并输出其因子。有一个数的因子之和为该数本身,称其为完数。提示:使用二重循环嵌套,外层循环针对2~200之间的所有数,而内层循环对其中的每一个数判断其是否是完数,即判断m的每个因子之和是否等于m。其中因子是2~m/2之间能被m整除的数。 #include int main(void) { int i,j,k; for(i=1;i<=200;i++) { k=1; for(j=2;j<=i/2;j++) { if(i%j==0) k=k+j; } if(k==i) { printf(\ for(j=2;j<=i/2;j++) if(i%j==0) printf(\ printf(\ } } return 0; }

4.2.5请编写程序显示下列输出: 0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0 1 2 3 0 1 2 0 1 0

#include int main(void) { int i,j; for(i=0;i<=4;i++) { for(j=0;j<=i;j++) printf(\ printf(\ } for(i=0;i<=4;i++) { for(j=0;j<4-i;j++) printf(\ printf(\ } return 0; }

4.2.6编写程序打出下列图案。 * * * * * * * * * * * * * * * * * * * * * * * *

#include void main() {

*