好文档 - 专业文书写作范文服务资料分享网站

C语言程序设计课后习题答案(第四版)谭浩强

天下 分享 时间: 加入收藏 我要投稿 点赞

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

return 0; } 5-3

#include int main() {

int p,r,n,m,temp;

printf(\请输入两个正整数n,m:\ scanf(\ if (n

temp=n; n=m; m=temp; }

p=n*m; while(m!=0) {

r=n%m; n=m; m=r; }

printf(\它们的最大公约数为:%d\\n\ printf(\它们的最小公约数为:%d\\n\ return 0; } 5-4

#include int main() {

char c;

int letters=0,space=0,digit=0,other=0; printf(\请输入一行字符:\\n\ while((c=getchar())!='\\n') {

if (c>='a' && c<='z' || c>='A' && c<='Z') letters++; else if (c==' ') space++;

else if (c>='0' && c<='9') digit++; else other++;

16

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

}

printf(\字母数:%d\\n空格数:%d\\n数字数:%d\\n其它字符数:%d\\n\ return 0; } 5-5

#include int main() {

int a,n,i=1,sn=0,tn=0; printf(\

scanf(\ while (i<=n) {

tn=tn+a; /*赋值后的tn为i个 a组成数的值*/ sn=sn+tn; /*赋值后的sn为多项式前i项之和*/ a=a*10; ++i; }

printf(\ return 0; } 5-6

#include int main()

{double s=0,t=1; int n;

for (n=1;n<=20;n++) {

t=t*n; s=s+t; }

printf(\ return 0; } 5-7

#include int main() {

17

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

int n1=100,n2=50,n3=10; double k,s1=0,s2=0,s3=0;

for (k=1;k<=n1;k++) /*计算1到100的和*/ {s1=s1+k;}

for (k=1;k<=n2;k++) /*计算1到50各数的平方和*/ {s2=s2+k*k;}

for (k=1;k<=n3;k++) /*计算1到10的各倒数和*/ {s3=s3+1/k;}

printf(\ return 0; } 5-8

#include int main() {

int i,j,k,n;

printf(\ for (n=100;n<1000;n++) {

i=n/100; j=n/10-i*10; k=n;

if (n==i*i*i + j*j*j + k*k*k) printf(\ }

printf(\ return 0; }

5-9-1

#define M 1000 /*定义寻找范围*/ #include int main() {

int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10; int i,a,n,s;

for (a=2;a<=M;a++) /* a是2-1000之间的整数,检查它是否完数 */ {n=0; /* n用来累计a的因子的个数 */

s=a; /* s用来存放尚未求出的因子之和,开始时等于a */ for (i=1;i

18

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

{n++; /* n加1,表示新找到一个因子 */ s=s-i; /* s减去已找到的因子,s的新值是尚未求出的因子之和 */ switch(n) /* 将找到的因子赋给k1...k9,或k10 */ {case 1: k1=i; break; /* 找出的笫1个因子赋给k1 */ case 2: k2=i; break; /* 找出的笫2个因子赋给k2 */ case 3: k3=i; break; /* 找出的笫3个因子赋给k3 */ case 4: k4=i; break; /* 找出的笫4个因子赋给k4 */ case 5: k5=i; break; /* 找出的笫5个因子赋给k5 */ case 6: k6=i; break; /* 找出的笫6个因子赋给k6 */ case 7: k7=i; break; /* 找出的笫7个因子赋给k7 */ case 8: k8=i; break; /* 找出的笫8个因子赋给k8 */ case 9: k9=i; break; /*找出的笫9个因子赋给k9 */ case 10: k10=i; break; /* 找出的笫10个因子赋给k10 */ } }

if (s==0) {

printf(\

if (n>1) printf(\ /* n>1表示a至少有2个因子 */ if (n>2) printf(\ /* n>2表示至少有3个因子,故应再输出一个因子 */

if (n>3) printf(\ /* n>3表示至少有4个因子,故应再输出一个因子 */

if (n>4) printf(\ /* 以下类似 */ if (n>5) printf(\ if (n>6) printf(\ if (n>7) printf(\ if (n>8) printf(\ if (n>9) printf(\ printf(\ } }

return 0; }

19

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

5-9-2

#include int main() {int m,s,i;

for (m=2;m<1000;m++) {s=0;

for (i=1;i

if ((m%i)==0) s=s+i; if(s==m)

{printf(\ for (i=1;i

#include int main() {

int i,n=20;

double a=2,b=1,s=0,t; for (i=1;i<=n;i++) {

s=s+a/b; t=a, a=a+b, b=t; }

printf(\ return 0; } 5-11

#include int main() {

double sn=100,hn=sn/2; int n;

20

4nwrt9c7b60wacw0f2p46m3qp9xkwe00yof
领取福利

微信扫码领取福利

微信扫码分享