参考答案 C语言程序设计 第二版 (丁亚涛 著) 高等教育出版社 课后答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
wfor(i=0;i<33;i++) printf("-");
printf("\n");
wfor(i=0;i<5;i++) printf("%6d",s2[i]); printf("\n"); } 5. #include<stdio.h>
main()
{ char s[3][80];
int a=0,b=0,c=0,d=0,e=0,i,j;
1. 6 6 6.00 6.00
a 2. x=127,x= 127,x=177,x=7f Y=123.4567 , y= 123.46 , y=123.45670 3. 2,1
d 4. 1234
5. 4,3
h 6. -6,-6
四.程序设计题 1.
k #include "stdio.h"
#include "math.h"
三.阅读程序题
k 1. a=1,b=0 2. c=1
四.程序设计题
. 1.
#include <stdio.h>
main()
w{ int a,b;
char c;
wprintf("INPUT A+(-*/)B\n");
scanf("%d%c%d",&a,&c,&b);
wswitch(c)
{
case'+':printf("%d+%d=%d\n",a,b,a+b);break;
. 5.
#include <stdio.h> main( )
w{
int i,j,k=0;
wfor (i=1;i<=4;i++)
{
wfor (j=1;j<=i;j++) {k++;printf("%d",k%10);} printf("\n"); } }
6.
#include <stdio.h>
main( )
四.程序设计题
. 1.
#include<stdio.h> main()
w{ int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i,j,s=0; wfor(i=0;i<4;i++) for(j=0;j<4;j++)
w if(i==j||i+j==3)s+=a[i][j];
1. 该函数内
局部
2. 整型
w 3. k<=b
return y;
a 4. x[i]
return (ave);
printf("n=%d\n",n); }
习题五 (P87) 一.单选题
1.B 2.D 3.C 4.C 5.B 6.C 7.D 8.C 9.A 10.D 11.B 12.B 13.B 14.D 15. C
二.填空题 1. for 语句 while 语句 2. a=14,y=26 3. k=14,n= -1
. printf("s=%d\n",s);
} 1.(另一做法)
w#include<stdio.h>
main()
w{
int i,s;
wfor(i=1,s=0;i<=100;i++)
if(i%2==0)s=s-i;
else s=s+i;
printf ("%d\n",s);
}
课 后 答 案 网
2. #include <stdio.h> main() { int i,j,s1=0,s2=0;
m 2.j=1,i=2 k=3,i=3 o j=3,i=2 k=1,i=1
c 习题三 (P52)
一.单选题
. 1.D 2.C 3.D 4.B 5.A 6.B 7.C 8.A 9.C 10.B 11. -1,37777777777,4294967295
二.填空题 5. L 6. -1
w 三.阅读程序题
m else if(x>0) y=(x+1)/(x-2); else y=(x-1)/(x-2);
o printf("y=%f\n",y);
} 3.
c #include <stdio.h>
main()
. { int g; printf("请输入学生成绩:"); scanf("%d",&g); w printf("g=%d:",g); switch(g/10) a { case 10:printf("A\n");break; case 9:printf("B\n");break; d case 8:printf("C\n");break; case 7:printf("D\n");break; h case 6:printf("E\n");break; default:printf("F\n"); }
for(i=0;i<3;i++) gets(s[i]);
for(i=0;i<3;i++)
for(j=0;s[i][j]!='\0';j++)
if(s[i][j]>='A'&&s[i][j]<='Z')a++; else if(s[i][j]>='a'&&s[i][j]<='z')b++; else if(s[i][j]>='0'&&s[i][j]<='9')c++;
m #include <stdio.h>
#include <string.h>
o main()
{ char a[80]; int i,j=5; /*假设插入位置为 5*/
c char s='t'; /*假设插入字符为 t*/
gets(a);
. for(i=strlen(a);i>j;i--) a[i+1]=a[i]; a[j]='t';
{ float a,v,s;
scanf("%f",&a);
v=a*a*a;s=6*a*a;
printf("v=%.2f,s=%.2f\n",v,s);
}
3.
#include <stdio.h> main() { int a,b,c,t; scanf("%d%d%d",&a,&b,&c);
m printf("a=%d,b=%d,c=%d\n",a,b,c);
m 4. 39
5. s=19
o 6. 22222
7. 10 8. 7
c 9. 8
10. 5,5
do-while 语句
课 后 答 案 网
. 三.改错题
应改为 for(i=0;i<5;i++)j++;
w 应改为 int j=0;while(j<10){j++;i=j;} 注 while(j<10)后不应有分号
case'-':printf("%d-%d=%d\n",a,b,a-b);break;
case'*':printf("%d*%d=%d\n",a,b,a*b);break;
课 后 答 案 网
case'/':printf("%d/%d=%d\n",a,b,a/b);break; default:printf("INPUT ERROR!"); } } 2. #include <stdio.h> main() { float x,y; scanf("%f",&x); if(x==0||x==2)y=0;
w puts(a);
}
a 4.
#include<stdio.h> main()
d { int a[3][5]={1,3,5,7,9,2,4,6,8,10,3,5,8,7,6}; int i,j,s1[3]={0},s2[5]={0}; h for(i=0;i<3;i++) for(j=0;j<5;j++) s1[i]+=a[i][ j]; k for(i=0;i<5;i++) for(j=0;j<3;j++) .s2[i]+=a[ j][i]; for(i=0;i<3;i++) {for(j=0;j<5;j++) wprintf("%6d",a[i][j]); printf (" |%6d\n",s1[i]);}
k }
4.
. #include <stdio.h>
main() { int x,n=0;
wscanf("%d",&x);
if(x<=0||x>=10000)
wprintf("Data Error!\n");
else
w{if(x<10)n=1; else if(x<100)n=2; else if(x<1000)n=3; else n=4; }
应改为 while(j<10); 注 while(j<10)后分号不能少
a s*=i;i++;应改为{s*=i;i++;}
continue 应改为 break
d 四.程序设计题
1.
h #include <stdio.h>
main() { int i,j,s=0;
k for(i=1,j=1;i<=100;i++,j=j*(-1)) s=s+i*j;
printf("%d",s);
}
2.
#include <stdio.h>
课 后 答 案 网
main() { char a[80];
int i,j=5; /*假设删除位置为 5*/ gets(a); for(i=j-1;a[i]!='\0';i++)
a[i]=a[i+1]; a[i]='\0'; puts(a); } 3.
. main()
{ float a,b,c,d,x1,x2;
wa=2;b=-3;c=-5;
d=b*b-4*a*c;
wx1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
wprintf("x1=%.2f,x2=%.2f\n",x1,x2); } 2. #include <stdio.h> main()
课 后 答 案 网
1.D 2.B 3.C 4.C 5.C 6.D 7.A 8.B
. 二.填空题
1. 20 0 19 2. 数组名
w 3. 越界
4. 6
a 5. j==k a[j][k]=1;
三.阅读程序题
a[j][k]=0;
1. 6 5 4
d 3 2 1
2. aaa
h bbb
ccc ddd
k 3. 2,2,1
一.单选题
d 1.C 2.D 3.D 4.B 5.A 6.D 7.D 8.B 9.C 10.A 11.B 12.D 13.passwarnerror .
14.C 15. C 16.B 17. B 18. C
h 二.填空题
1. 非 0 0 2. k==0 3. n%7==0 && n%8==0
else
for(i=0;i<10;i++) {scanf("%d",&j); if(j>0)s1=s1+j; else s2=s2+j;
}
m printf("s1=%d,s2=%d\n",s1,s2);
}
o 3.
#include<stdio.h> main()
c {
int i,s;
. for(i=6,s=0;i<=96;i=i+1) if(i%10==6||i/10==6) s=s+i;
else if(s[i][j]==32)d++;
m else e++;
printf("%3d%3d%3d%3d%3d",a,b,c,d,e);
o }
习题七 (P145)
c 一.单选题
课 后 答 案 网
1.A 2.B 3.C 4.A 5.C 6.D 7.C 8.B 9.B 10.C 11.D
. 二.填空题
{
Hale Waihona Puke Baidu
int i,j,k=0;
for (i=-3;i<=3;i++)
{if(i<0)k=-i;else k=i; for(j=1;j<=k;j++) printf(" "); for(j=1;j<=7-2*k;j++)
m printf("*");
printf("\n");}
o }
习题六 (P111)
c 一.单选题
课 后 答 案 网
参考答案
习题二 (P33) 一.单选题 1.C 2.B 3.D 4.C 5.A 6.D 7.D 8.B 9.B 10.D 11.D 12.C 13.C . 15. A 14 题最后一句应为 printf("%f\n",d*y);结果为 2.2 二.填空题 1. 18 2. int float double 3. 10 11 4. 八 十六 十 5. % 三.阅读程序题 1.10,10,9,10
w printf ("%d\n",s);
}
a 4.
#include<stdio.h> main()
d {
int i,a,b,c;
h for(i=100;i<=999;i++) {a=(i%10);b=(i/10%10);c=(i/100); if(i==a*a*a+b*b*b+c*c*c) k printf ("%d\n",i);} }
t=c;c=b;b=a;a=t;
o printf("a=%d,b=%d,c=%d\n",a,b,c);
} 4.
c #include <stdio.h>
main()
. { char s1,s2;
s1=getchar(); s2=s1-32;
w printf("%c\n",s2);
}
课 后 答 案 网
a 习题四 (P70)
printf("\n");
wfor(i=0;i<5;i++) printf("%6d",s2[i]); printf("\n"); } 5. #include<stdio.h>
main()
{ char s[3][80];
int a=0,b=0,c=0,d=0,e=0,i,j;
1. 6 6 6.00 6.00
a 2. x=127,x= 127,x=177,x=7f Y=123.4567 , y= 123.46 , y=123.45670 3. 2,1
d 4. 1234
5. 4,3
h 6. -6,-6
四.程序设计题 1.
k #include "stdio.h"
#include "math.h"
三.阅读程序题
k 1. a=1,b=0 2. c=1
四.程序设计题
. 1.
#include <stdio.h>
main()
w{ int a,b;
char c;
wprintf("INPUT A+(-*/)B\n");
scanf("%d%c%d",&a,&c,&b);
wswitch(c)
{
case'+':printf("%d+%d=%d\n",a,b,a+b);break;
. 5.
#include <stdio.h> main( )
w{
int i,j,k=0;
wfor (i=1;i<=4;i++)
{
wfor (j=1;j<=i;j++) {k++;printf("%d",k%10);} printf("\n"); } }
6.
#include <stdio.h>
main( )
四.程序设计题
. 1.
#include<stdio.h> main()
w{ int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i,j,s=0; wfor(i=0;i<4;i++) for(j=0;j<4;j++)
w if(i==j||i+j==3)s+=a[i][j];
1. 该函数内
局部
2. 整型
w 3. k<=b
return y;
a 4. x[i]
return (ave);
printf("n=%d\n",n); }
习题五 (P87) 一.单选题
1.B 2.D 3.C 4.C 5.B 6.C 7.D 8.C 9.A 10.D 11.B 12.B 13.B 14.D 15. C
二.填空题 1. for 语句 while 语句 2. a=14,y=26 3. k=14,n= -1
. printf("s=%d\n",s);
} 1.(另一做法)
w#include<stdio.h>
main()
w{
int i,s;
wfor(i=1,s=0;i<=100;i++)
if(i%2==0)s=s-i;
else s=s+i;
printf ("%d\n",s);
}
课 后 答 案 网
2. #include <stdio.h> main() { int i,j,s1=0,s2=0;
m 2.j=1,i=2 k=3,i=3 o j=3,i=2 k=1,i=1
c 习题三 (P52)
一.单选题
. 1.D 2.C 3.D 4.B 5.A 6.B 7.C 8.A 9.C 10.B 11. -1,37777777777,4294967295
二.填空题 5. L 6. -1
w 三.阅读程序题
m else if(x>0) y=(x+1)/(x-2); else y=(x-1)/(x-2);
o printf("y=%f\n",y);
} 3.
c #include <stdio.h>
main()
. { int g; printf("请输入学生成绩:"); scanf("%d",&g); w printf("g=%d:",g); switch(g/10) a { case 10:printf("A\n");break; case 9:printf("B\n");break; d case 8:printf("C\n");break; case 7:printf("D\n");break; h case 6:printf("E\n");break; default:printf("F\n"); }
for(i=0;i<3;i++) gets(s[i]);
for(i=0;i<3;i++)
for(j=0;s[i][j]!='\0';j++)
if(s[i][j]>='A'&&s[i][j]<='Z')a++; else if(s[i][j]>='a'&&s[i][j]<='z')b++; else if(s[i][j]>='0'&&s[i][j]<='9')c++;
m #include <stdio.h>
#include <string.h>
o main()
{ char a[80]; int i,j=5; /*假设插入位置为 5*/
c char s='t'; /*假设插入字符为 t*/
gets(a);
. for(i=strlen(a);i>j;i--) a[i+1]=a[i]; a[j]='t';
{ float a,v,s;
scanf("%f",&a);
v=a*a*a;s=6*a*a;
printf("v=%.2f,s=%.2f\n",v,s);
}
3.
#include <stdio.h> main() { int a,b,c,t; scanf("%d%d%d",&a,&b,&c);
m printf("a=%d,b=%d,c=%d\n",a,b,c);
m 4. 39
5. s=19
o 6. 22222
7. 10 8. 7
c 9. 8
10. 5,5
do-while 语句
课 后 答 案 网
. 三.改错题
应改为 for(i=0;i<5;i++)j++;
w 应改为 int j=0;while(j<10){j++;i=j;} 注 while(j<10)后不应有分号
case'-':printf("%d-%d=%d\n",a,b,a-b);break;
case'*':printf("%d*%d=%d\n",a,b,a*b);break;
课 后 答 案 网
case'/':printf("%d/%d=%d\n",a,b,a/b);break; default:printf("INPUT ERROR!"); } } 2. #include <stdio.h> main() { float x,y; scanf("%f",&x); if(x==0||x==2)y=0;
w puts(a);
}
a 4.
#include<stdio.h> main()
d { int a[3][5]={1,3,5,7,9,2,4,6,8,10,3,5,8,7,6}; int i,j,s1[3]={0},s2[5]={0}; h for(i=0;i<3;i++) for(j=0;j<5;j++) s1[i]+=a[i][ j]; k for(i=0;i<5;i++) for(j=0;j<3;j++) .s2[i]+=a[ j][i]; for(i=0;i<3;i++) {for(j=0;j<5;j++) wprintf("%6d",a[i][j]); printf (" |%6d\n",s1[i]);}
k }
4.
. #include <stdio.h>
main() { int x,n=0;
wscanf("%d",&x);
if(x<=0||x>=10000)
wprintf("Data Error!\n");
else
w{if(x<10)n=1; else if(x<100)n=2; else if(x<1000)n=3; else n=4; }
应改为 while(j<10); 注 while(j<10)后分号不能少
a s*=i;i++;应改为{s*=i;i++;}
continue 应改为 break
d 四.程序设计题
1.
h #include <stdio.h>
main() { int i,j,s=0;
k for(i=1,j=1;i<=100;i++,j=j*(-1)) s=s+i*j;
printf("%d",s);
}
2.
#include <stdio.h>
课 后 答 案 网
main() { char a[80];
int i,j=5; /*假设删除位置为 5*/ gets(a); for(i=j-1;a[i]!='\0';i++)
a[i]=a[i+1]; a[i]='\0'; puts(a); } 3.
. main()
{ float a,b,c,d,x1,x2;
wa=2;b=-3;c=-5;
d=b*b-4*a*c;
wx1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
wprintf("x1=%.2f,x2=%.2f\n",x1,x2); } 2. #include <stdio.h> main()
课 后 答 案 网
1.D 2.B 3.C 4.C 5.C 6.D 7.A 8.B
. 二.填空题
1. 20 0 19 2. 数组名
w 3. 越界
4. 6
a 5. j==k a[j][k]=1;
三.阅读程序题
a[j][k]=0;
1. 6 5 4
d 3 2 1
2. aaa
h bbb
ccc ddd
k 3. 2,2,1
一.单选题
d 1.C 2.D 3.D 4.B 5.A 6.D 7.D 8.B 9.C 10.A 11.B 12.D 13.passwarnerror .
14.C 15. C 16.B 17. B 18. C
h 二.填空题
1. 非 0 0 2. k==0 3. n%7==0 && n%8==0
else
for(i=0;i<10;i++) {scanf("%d",&j); if(j>0)s1=s1+j; else s2=s2+j;
}
m printf("s1=%d,s2=%d\n",s1,s2);
}
o 3.
#include<stdio.h> main()
c {
int i,s;
. for(i=6,s=0;i<=96;i=i+1) if(i%10==6||i/10==6) s=s+i;
else if(s[i][j]==32)d++;
m else e++;
printf("%3d%3d%3d%3d%3d",a,b,c,d,e);
o }
习题七 (P145)
c 一.单选题
课 后 答 案 网
1.A 2.B 3.C 4.A 5.C 6.D 7.C 8.B 9.B 10.C 11.D
. 二.填空题
{
Hale Waihona Puke Baidu
int i,j,k=0;
for (i=-3;i<=3;i++)
{if(i<0)k=-i;else k=i; for(j=1;j<=k;j++) printf(" "); for(j=1;j<=7-2*k;j++)
m printf("*");
printf("\n");}
o }
习题六 (P111)
c 一.单选题
课 后 答 案 网
参考答案
习题二 (P33) 一.单选题 1.C 2.B 3.D 4.C 5.A 6.D 7.D 8.B 9.B 10.D 11.D 12.C 13.C . 15. A 14 题最后一句应为 printf("%f\n",d*y);结果为 2.2 二.填空题 1. 18 2. int float double 3. 10 11 4. 八 十六 十 5. % 三.阅读程序题 1.10,10,9,10
w printf ("%d\n",s);
}
a 4.
#include<stdio.h> main()
d {
int i,a,b,c;
h for(i=100;i<=999;i++) {a=(i%10);b=(i/10%10);c=(i/100); if(i==a*a*a+b*b*b+c*c*c) k printf ("%d\n",i);} }
t=c;c=b;b=a;a=t;
o printf("a=%d,b=%d,c=%d\n",a,b,c);
} 4.
c #include <stdio.h>
main()
. { char s1,s2;
s1=getchar(); s2=s1-32;
w printf("%c\n",s2);
}
课 后 答 案 网
a 习题四 (P70)