附录F 课后题参考答案
6.答:
程序分析:利用for循环控制在100~999之间,对每个数分解出个位、十位、百位。
#include main() { int i,j,k,n; printf(\ for(n=100;n<1000;n++) { i=n/100;/*分解出百位*/ j=n/10;/*分解出十位*/ k=n;/*分解出个位*/ if(n==i*i*i+j*j*j+k*k*k) { printf(\ } } printf(\}
277
7.答:
#include main() { int x; for(x=1000;x>=3;x--) if(x%3==1&&x%5==2&&x%7==3) {
printf(\该校的学生人数是:%d人\\n\ break; } }
8.答:
#include main() { int x=12,i=1; while(1)
{ if((x+20+i)==2*(x+i)) break; i++; } printf(\小明母亲在%d年后比小明的年龄大一倍\\n\ printf(\那时小明年龄是:%d岁,小明母亲年龄是:%d岁\\n\}
习 题 6
6.1 单选题
DBCCB BDC
278
C语言程序设计教程(第3版)
6.2 填空题
1.c 2.60 3.1000 10 4.16
6.3 编程题
1.答:
#include \#include \
#define F(a) a*a+ sqrt(3*a*a+2*a+1) main()
{ float x, f;
scanf(\
f=4.5/F(exp(x))+F(cos(x))+F(sqrt(x))/F(x*x) ; printf(\}
习 题 7
7.1 单选题
BCADA CCCDA BCBDB
7.2 填空题
1.(1)2 3 4 5 (4)10000 01000 00100 00010 00001 (5)Language
(6)Language Programming (2)10010 (3)QuickC
2.(1)j+=2 (2)a[i]>a[j] 3.(1)i=1 (2)x[i?1]
7.3 改错题(略) 7.4 编程题
1.答:
#define N 10
#include \main()
{ int a[N]={1,2,3,4,5,6,7,8,9,10,osum=0, qsum=0,j; for(j=0;j<10;j++)
if( j%2) qsum+=a[j];
附录F 课后题参考答案
else osum+=a[j];
printf(\}
279
2.答:
#define N 10
#include \ main()
{ int a[N]={10,20,30,40,50,60,70,80,90}, j, k, x; scanf(\ for(j=0;j if (x{for(k=N-1; k>j; k--) a[k]=a[k-1]; a[j]=x;}
for(j=0;j printf(\ \}
3.答:
#define M 3
#include \main()
{ int a[M][M]={{1,2,3},{2,4,5},{3,5,6}},j,k,flag=1;; for( j=0;j for(k=0;k4.答:
#include \#include \main()
{ char c1[10],c2[10],j; gets(c1); gets(c2);
for(j=0; (c1[j]==c2[j]) && c1[j] && c2[j]; j++); if (c1[j]>c2[j]) printf(\ if (c1[j]5.答:
#include \#include \#define M 3 #define N 80 main()
{ char a[M][N],j,k,n[5]={0}; for(j=0;j
280
C语言程序设计教程(第3版)
for(j=0;j for(k=0;a[j][k];k++)
if( a[j][k]>='A' && a[j][k]<='Z') n[0]++;
else if (a[j][k]>='a' && a[j][k]<='z') n[1]++; else if (a[j][k]>='0' && a[j][k]<='9') n[2]++; else if (a[j][k]==' ' ) n[3]++; else n[4]++;
for(j=0;j<5;j++) printf(\}
习 题 8
8.1 单选题
DBDAC BACCC
8.2 填空题
1.(1)2, 1 (2)10#30# 2.(1)49
(2)2
(4) 1, 1, 1, 1, 1
3, 3, 3, 3, 3
(3)FOUR, P (3)2
(4)60
(5)1 0 0 0 1
0 1 0 1 0 0 0 1 0 0 0 1 0 1 0
1 0 0 0 1
8.3 改错题(略) 8.4 编程题
1.答:
#include \
main()
{ int n1,n2,n3,t; int *p1,*p2,*p3;
printf(\ scanf(\ p1=&n1;
p2=&n2; p3=&n3;
if(*p1>* p2) { t=*p1;*p1=*p2;*p2=t;}
if(*p1>*p3) { t=*p1;*p1=*p3;*p3=t;} if(*p2>*p3) { t=*p2;*p2=*p3;*p3=t;}
printf(\}