admin管理员组文章数量:1530842
2023年12月26日发(作者:)
参考答案
习题二 (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("%fn",d*y);结果为2.2
二.填空题
1. 18 2. int float double 3. 10 11 4. 八 十六 十 5. %
三.阅读程序题
1.10,10,9,10
2.j=1,i=2
k=3,i=3
j=3,i=2
k=1,i=1
习题三 (P52)
一.单选题
1.D 2.C 3.D 4.B 5.A 6.B 7.C 8.A 9.C
二.填空题
5. L 6. -1
三.阅读程序题
1. 6 6 6.00 6.00
2. x=127,x= 127,x=177,x=7f
Y=123.4567 , y= 123.46 , y=123.45670
3. 2,1
4. 1234
5. 4,3
6. -6,-6
四.程序设计题
1.
#include "stdio.h"
#include "math.h"
main()
{
float a,b,c,d,x1,x2;
a=2;b=-3;c=-5;
d=b*b-4*a*c;
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%.2f,x2=%.2fn",x1,x2);
}
2.
#include
main()
10.B 11. -1,37777777777,4294967295
{ float a,v,s;
scanf("%f",&a);
v=a*a*a;s=6*a*a;
printf("v=%.2f,s=%.2fn",v,s);
}
3.
#include
main()
{ int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%dn",a,b,c);
t=c;c=b;b=a;a=t;
printf("a=%d,b=%d,c=%dn",a,b,c);
}
4.
#include
main()
{ char s1,s2;
s1=getchar();
s2=s1-32;
printf("%cn",s2);
}
习题四 (P70)
一.单选题
1.C 2.D 3.D 4.B 5.A 6.D 7.D 8.B 9.C
14.C 15. C 16.B 17. B 18. C
二.填空题
1. 非0 0 2. k==0 3. n%7==0 && n%8==0
三.阅读程序题
1. a=1,b=0 2. c=1
四.程序设计题
1.
#include
main()
{ int a,b;
char c;
printf("INPUT A+(-*/)Bn");
scanf("%d%c%d",&a,&c,&b);
switch(c)
{
case'+':printf("%d+%d=%dn",a,b,a+b);break;
case'-':printf("%d-%d=%dn",a,b,a-b);break;
case'*':printf("%d*%d=%dn",a,b,a*b);break;
10.A 11.B
else
rnerror . 12.D
case'/':printf("%d/%d=%dn",a,b,a/b);break;
default:printf("INPUT ERROR!");
}
}
2.
#include
main()
{ float x,y;
scanf("%f",&x);
if(x==0||x==2)y=0;
else if(x>0) y=(x+1)/(x-2);
else y=(x-1)/(x-2);
printf("y=%fn",y);
}
3.
#include
main()
{ int g;
printf("请输入学生成绩:");
scanf("%d",&g);
printf("g=%d:",g);
switch(g/10)
{
case 10:printf("An");break;
case 9:printf("Bn");break;
case 8:printf("Cn");break;
case 7:printf("Dn");break;
case 6:printf("En");break;
default:printf("Fn");
}
}
4.
#include
main()
{ int x,n=0;
scanf("%d",&x);
if(x<=0||x>=10000)
printf("Data Error!n");
else
{if(x<10)n=1;
else if(x<100)n=2;
else if(x<1000)n=3;
else n=4;
}
printf("n=%dn",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语句 do-while语句
2. a=14,y=26
3. k=14,n= -1
4. 39
5. s=19
6. 22222
7. 10
8. 7
9. 8
10. 5,5
三.改错题
应改为for(i=0;i<5;i++)j++;
应改为int j=0;while(j<10){j++;i=j;} 注while(j<10)后不应有分号
应改为while(j<10); 注while(j<10)后分号不能少
s*=i;i++;应改为{s*=i;i++;}
continue 应改为 break
四.程序设计题
1.
#include
main()
{ int i,j,s=0;
for(i=1,j=1;i<=100;i++,j=j*(-1))
s=s+i*j;
printf("s=%dn",s);
}
1.(另一做法)
#include
main()
{
int i,s;
for(i=1,s=0;i<=100;i++)
if(i%2==0)s=s-i;
else s=s+i;
printf ("%dn",s);
}
2.
#include
main()
{ int i,j,s1=0,s2=0;
for(i=0;i<10;i++)
{scanf("%d",&j);
if(j>0)s1=s1+j;
else s2=s2+j;
}
printf("s1=%d,s2=%dn",s1,s2);
}
3.
#include
main()
{
int i,s;
for(i=6,s=0;i<=96;i=i+1)
if(i%10==6||i/10==6)
s=s+i;
printf ("%dn",s);
}
4.
#include
main()
{
int i,a,b,c;
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)
printf ("%dn",i);}
}
5.
#include
main( )
{
int i,j,k=0;
for (i=1;i<=4;i++)
{
for (j=1;j<=i;j++)
{k++;printf("%d",k%10);}
printf("n");
}
}
6.
#include
main( )
{
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++)
printf("*");
printf("n");}
}
习题六 (P111)
一.单选题
1.D 2.B 3.C 4.C 5.C 6.D 7.A 8.B
二.填空题
1. 20 0 19
2. 数组名
3. 越界
4. 6
5. j==k a[j][k]=1; a[j][k]=0;
三.阅读程序题
1. 6 5 4
3 2 1
2. aaa
bbb
ccc ddd
3. 2,2,1
四.程序设计题
1.
#include
main()
{ 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;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(i==j||i+j==3)s+=a[i][j];
printf("%d",s);
}
2.
#include
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.
#include
#include
main()
{ char a[80];
int i,j=5; /*假设插入位置为5*/
char s='t'; /*假设插入字符为t*/
gets(a);
for(i=strlen(a);i>j;i--)
a[i+1]=a[i];
a[j]='t';
puts(a);
}
4.
#include
main()
{ 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};
for(i=0;i<3;i++)
for(j=0;j<5;j++)
s1[i]+=a[i][ j];
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++)
printf("%6d",a[i][j]);
printf (" |%6dn",s1[i]);}
for(i=0;i<33;i++) printf("-");
printf("n");
for(i=0;i<5;i++) printf("%6d",s2[i]);
printf("n");
}
5.
#include
main()
{ char s[3][80];
int a=0,b=0,c=0,d=0,e=0,i,j;
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++;
else if(s[i][j]==32)d++;
else e++;
printf("%3d%3d%3d%3d%3d",a,b,c,d,e);
}
习题七 (P145)
一.单选题
1.A 2.B 3.C 4.A 5.C 6.D 7.C 8.B
二.填空题
1. 该函数内 局部
2. 整型
3. k<=b
return y;
4. x[i]
return (ave);
fun(a,20)
5. 1;
add(n-1);
add(n);
6. n*f(n-1)
0;
f(i)
三.阅读程序,写出运行结果
1. 10,20,30
2. 64
3. 8
4. hlo
5. sum=55
四.程序设计题
1.
#include
main()
{float add(float, float), sub(float, float);
float aver(float, float),a,b;
9.B 10.C 11.D
scanf("%f,%f",&a,&b);
printf("add=%f, sub=%fn ", add(a,b), sub(a,b));
printf("aver =%f", aver(a,b));
}
float add(float x, float y) {return(x+y);}
float sub(float x, float y) {return(x-y);}
float aver(float x, float y) {return((x+y)/2);}
2.
#include
main()
{ int a,b,c,abmax(int,int);
scanf("%d%d%d",&a,&b,&c);
printf("max=%dn",abmax(abmax(a,b),c));
}
int abmax(int a,int b)
{if(a>b)return a;
else return b;
}
3.
#include
main()
{float x,fun(float, int);
int n;
scanf("%f%d",&x,&n);
printf("%fn", fun(x,n));
}
float fun(float x, int n)
{float y;
if(n==0)y=1;
else y=x*fun(x,n-1);
return y;
}
4.
#include
main()
{long f(int);
int n,k;
scanf("%d",&n);
for(k=1;k<=n;k++)printf("%ld,",f(k));
printf("n");
}
long f(int n)
{long y;
if(n<=2)y=1;
else y=f(n-1)+f(n-2);
return y;
}
5.
#include
#include
main()
{char a[50];
int n;
void fun(char x[ ],int n);
gets(a);n=strlen(a);
fun(a,n);
puts(a);
}
void fun(char a[ ],int n)
{int k,s;
for(k=0;k {s=a[k]; a[k]=a[n-k-1]; a[n-k-1]=s;} } 5. (另一做法) #include #include main() {char a[50]; int n; void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n); puts(a); } void fun(char a[ ],int n) {int k; char b[50]; for(k=0;k b[n-1-k]=a[k]; b[k]=a[k]; strcpy(a,b); } 6. #include #define KK 100 main() {char a[KK]; long sjz(char a[]); int i=0,f1=0; printf("input a data:"); gets(a); for(i=0;a[i]!='0';i++) {if(a[i]>='0'&&a[i]<='9'||a[i]>='A'&&a[i]<='F'||a[i]>='a'&&a[i]<='f') continue; else {f1=1;break;} } a[i]='0'; if(f1==1)printf("Data Error!n"); else printf("result is :%dn",sjz(a)); } long sjz(char a[]) {long n=0,i;; for(i=0;a[i]!='0';i++) {if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0'; if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10; if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10; } return n; } 6.(另一做法) #include #define KK 100 main() {char str[KK],c; long sjz(char a[]); int i=0,f1=0; printf("input a data:"); while((c=getchar())!='n'&&i {if(c>='0'&&c<='9'||c>='A'&&c<='F'||c>='a'&&c<='f') str[i++]=c; else f1=1; } str[i]='0'; if(f1==1)printf("Data Error!n"); else printf("result is :%dn",sjz(str)); } long sjz(char a[]) {long n=0,i;; for(i=0;a[i]!='0';i++) {if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0'; if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10; if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10; } return n; } 习题八 (P181) (注:无答案的题不在本课程讲授范围内) 一.单选题 1.D 2.A 3.C 4.D 5.C 6.B 7.C 8.C 9.C 13.D 14.B 15.A 16.C 17.A 二.填空题 1. 指向 取地址 2. 2 +2 3. 28 6. *(p+5) 7. ABCD A 三.阅读程序题 1. 10 2. 10 3. 0 4. 3,6 5. 1 2 3 4 四.程序填空题 1.a,b,c或者&x,&y,&z max=*b或者max=y 2. ++ =*q ++ ++ 4. int *a,int *b b[j]=a[i] b[i++] 5. *str+=3 *str>’z’&&*str<’a’||*str>’z’ a 6. else 0 t[2*j+1] 五.程序设计题 1. #include main() {int a[10],*p,*q,t; p=a; for(q=a;q for(q=a;q printf("n"); q--; for(;p for(p=a;p printf("n"); } 2. #include max=*c或者max=z #include void main( ) { char a[50],*p1,*p2,t,n; gets(a);n=strlen(a); p1=a; p2=a+n-1; for(; p1 {t=*p1; *p1=*p2; *p2=t;} puts(a); } 另一做法 #include main() {char str[20],*p=str; gets(str); while(*p)p++; p--; while(p>=str) {printf("%c",*p); p--; } printf("n"); } 3. #include main() {int a[10],*p,*max,*min,t; for(p=a;p for(p=a;p printf("n"); max=min=a; for(p=a+1;p {if(*p>*max)max=p; if(*p<*min)min=p;} t=a[0];a[0]=*min;*min=t; t=a[9];a[9]=*max;*max=t;
版权声明:本文标题:C语言程序设计(第二版)答案 内容由热心网友自发贡献,该文观点仅代表作者本人,
转载请联系作者并注明出处:https://m.elefans.com/dongtai/1703524604a59116.html,
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论