资源描述
二级C语言程序设计教程课后习题答案(高教版)
刊登日期:3月3日 已经有4929位读者读过此文
第一章
【1-1】.exe【1-2】.c .obj .exe 【1-3】次序,分枝(选用),循环
第二章
【2-1】B 【2-2】D【2-3】B【2-4】A【2-5】C【2-6】A【2-7】B【2-8】B
【2-9】A【2-10】C【2-11】B【2-12】B【2-13】A
【2-14】11,12【2-15】4.2,4.2【2-16】{,},定义阐明,执行语句
【2-17】关键字,顾客标识符【2-18】int,float,double
【2-19】float a=b=1;【2-20】存贮单元【2-21】3.5
【2-22】a*b/c,a/c*b,b/c*a【2-23】把10赋予变量s【2-24】bit,0/1
【2-25】8,127,01111111,-128,10000000(补码)
【2-26】32767,-32768,1111,0000【2-27】8,10,16
【2-28-1】(错误)
#include stdio.h;
main() / * main function * /
float r,s;/*/*r is radius*/,/* s is area of circular */*/
r=5.0;
s=3.14159*r*r;
printf("%f\n",s)
【2-28-2】(对旳)
#include stdio.h;
main() /* main function */
{float r,s;/* r is radius,s is area of circular */
r=5.0;
s=3.14159*r*r;
printf("%f\n",s);
}
【2-29-1】(错误)
#include stdio.h
main /* main function */
{ float a,b,c,v;/* a,b,c are sides,v is volume of cube */
a=2.0;b=3.0;c=4.0
v=a*b*c;
printf("%f\n",v)
}
【2-29-2】(对旳)
#include <stdio.h>
main() /* main function */
{ float a,b,c,v;/* a,b,c are sides,v is volume of cube */
a=2.0;b=3.0;c=4.0;
v=a*b*c;
printf("%f\n",v);
}
第三章
【3-1】C 【3-2】C 【3-3】D 【3-4】C 【3-5】D 【3-6】B 【3-7】C
【3-8】D 【3-9】A 【3-10】B 【3-11】C 【3-12】D 【3-13】D
【3-14】C 【3-15】C 【3-16】C 【3-17】C 【3-18】A 【3-19】C
【3-20】B 【3-21】(1)-200 2500(2)i=-200,j=2500(3)i=-200//(换行)j=2500
【3-22】12,0,0【3-23】一条语句,;【3-24】;
【3-25】100 25.81 1.89234,100//25.81//1.89234,100//25.81 1.89234
【3-26】x=127,x= 127,x= 177,x= 7f,x= 127
【3-27】x=127,x=127 ,x=$127 ,x=$000127,x=%06d
【3-28】a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500
【3-29-1】(错误)
main
{ double a,b,c,s,v;
printf(input a,b,c:\n);
scanf("%d %d %d",a,b,c);
s=a*b;
v=a*b*c;
printf("%d %d %d",a,b,c);
printf("s=%f\n",s,"v=%d\n",v);
}
【3-29-2】(对旳)
main()
{ float a,b,c,s,v;
printf("input a,b,c:");
scanf("%f %f %f:",&a,&b,&c);
s=a*b;
v=a*b*c;
printf("a=%f,b=%f,c=%f\n",a,b,c);
printf("s=%f,v=%f\n",s,v);
}
【3-30】
main()
{ int h,m;
h=560/60;
m=560%60;
printf("%dh:%dm",h,m);
getch();
}
【3-31】
main()
{ int m,n;
printf("input m & n:");
scanf("%d%d",&m,&n);
printf("\n%d,%d\n",m/n,m%n);
getch();
}
【3-32】
main()
{ double x,y,z,s;
printf("input x,y,z:");
scanf("%lf%lf%lf",&x,&y,&z);
s=(x+y+z)/3.0;
printf("\nAverage=%6.1lf\n",s);
getch();
}
【3-33】
main()
{ int a,b,c,t;
printf("Input a,b,c:");
scanf("%d%d%d",&a,&b,&c);
t=c;
c=b;
b=a;
a=t;
printf("\na,b,c=%d,%d,%d\n",a,b,c);
getch();
}
第四章
【4-1】A【4-2】A【4-3】A【4-4】D【4-5】C【4-6】A【4-7】B【4-8】A
【4-9】D【4-10】A【4-11】非零,零【4-12】<,>,<=,>= ==,!=
【4-13】!,&&,|| 【4-14】!,关系运算符,&&,|| 【4-15】!
【4-16】(A)a==b||a<c(B)fabs(x)>4【4-17】1【4-18】x<=0,1【4-19】3,2,2
【4-20】*#
【4-21】
main()
{ int a,m;
printf("input a:");
scanf("%d",&a);
switch(a/10)
{ case 0:
case 1:
case 2:m=1 ;break;
case 3:m=2 ;break;
case 4:m=3 ;break;
case 5:m=4 ;break;
default:m=5;
}
printf("a,m=%d,%d",a,m );
getch();
}
【4-22】
main()
{ int age,y0,m0,d0,y1,m1,d1;
printf("\ninput a stedent\' birthday (yy-mm-dd):");
scanf("%d-%d-%d",&y0,&m0,&d0);
printf("\ninput today\' date (yy-mm-dd):");
scanf("%d-%d-%d",&y1,&m1,&d1);
if ((m1>m0)||(m1==m0)&&(d1>=d0)) age=y1-y0;
else age=y1-y0-1;
printf("\nThe student\' age is %d",age);
getch();
}
【4-23】
main()
{ int m;
printf("\ninput a integer:");
scanf("%d",&m);
if (m%2==0) printf("\n%d is event.",m);
else printf("\n%d is ord.",m);
getch();
}
【4-24】
main()
{ int a,b,c,max;
printf("\ninput a,b,c:");
scanf("%d%d%d",&a,&b,&c);
max=a;
if (b>max) max=b;
if (c>max) max=c;
printf("max is %d",max);
getch();
}
【4-25-1】
main()
{ int x,y;
printf("\ninput x:");
scanf("%d",&x);
if((x>-5)&&(x<0)) y=x;
if (x==0) y=x-1;
if ((x>0)&&(x<10)) y=x+1;
printf("\nx is %d ,y is %d",x,y);
getch();
}
【4-25-2】
main()
{ int x,y;
printf("\ninput x:");
scanf("%d",&x);
if((x>-5)&&(x<10))
{ if (x<0) y=x;
if (x==0) y=x-1;
if (x>0) y=x+1;
printf("\nx is %d ,y is %d",x,y);
}
else printf("input x is error !%c",'\007');
getch();
}
【4-25-3】
main()
{ int x,y;
printf("\ninput x:");
scanf("%d",&x);
if ((x>-5)&&(x<0)) y=x;
else if (x==0) y=x-1;
else if ((x>0)&&(x<10)) y=x+1;
printf("\nx is %d ,y is %d",x,y);
getch();
}
【4-25-4】
main()
{ int x,y;
printf("\ninput x:");
scanf("%d",&x);
switch(x)
{ case -4:
case -3:
case -2:
case -1:y=x;break;
case 0 :y=x-1;break;
case 1 :
case 2 :
case 3 :
case 4 :
case 5 :
case 6 :
case 7 :
case 8 :
case 9 :y=x+1;break;
default :printf("Input x error !%c",7);
}
printf("\nx is %d ,y is %d",x,y);
getch();
}
第五章
【5-1】D【5-2】C【5-3】B【5-4】C【5-5】C【5-6】B【5-7】D【5-8】A
【5-9】D【5-10】D【5-11】5,4,6【5-12】死循环【5-13】-1【5-14】11
【5-15】d=1,k++,k<n【5-16】x>=0,x<amin
【5-17】
main()
{ int i,s=1,k=-1;
for (i=1;i<=50;i++)
{ s=s+k*(2*i+1);
k=-k;
}
printf("s=%d",s);
getch();
}
【5-18-1】
main()
{ int i=1;
double e=1.0,s=1.0;
for(i=1;i<=50;i++)
{s=s*i;
e=e+1/s;
}
printf("e=%lf",e);
getch();
}
【5-18-2】
main()
{ int i=1;
float e=1.0,s=1.0;
while (1/s>=1e-04) /* 8 times */
{s=s*i;
i++;
e=e+1/s;
}
printf("e=%10.6f",e);
getch();
}
【5-19】
main()
{ int y,k=0;
for(y=1000;y<=;y++)
{ if (y%4==0&&y%100!=0||y%400==0) {printf("%10d",y);k++;}
if (k%3==0) printf("\n");
}
getch();
}
【5-20】
#include <stdio.h>
main()
{int i,j,n;
printf("Input n (1--10):");
do scanf("%d",&n);
while (n<1||n>10);
for (i=1;i<=n;i++)
{for (j=1;j<=40-i;j++)
printf(" ");
for (j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
for (i=n+1;i<=2*n-1;i++)
{ for (j=1;j<=40-2*n+i;j++)
printf(" ");
for (j=1;j<=4*n-1-2*i;j++)
printf("*");
printf("\n");
}
getch();
}
第六章
【6-1】B【6-2】D【6-3】A【6-4】A【6-5】B【6-6】D【6-7】D【6-8】B
【6-9】A【6-10】A【6-11】C【6-12】26【6-13】1【6-14】ctype.h
【6-15】1 【6-16】10A20B30C40D【6-17】7.29 101.298AB
【6-18】A7.29B101.298【6-19】A B C
【6-20】
#include <stdio.h>
main()
{ int k=0;char ch;
while((ch=getchar())!=10)
{ k++;
printf("%4c%4d",ch,ch);
if(k%3==0) printf("\n");
}
getch();
}
【6-21】
#include <stdio.h>
main()
{ long k=0;char ch;
while((ch=getchar())!=EOF)
{ if (ch>='0'&&ch<='9')
{ ch=ch-'0';
k=k*10+ch;
}
}
printf("%ld",k);
getch();
}
【6-22】
#include <stdio.h>
main()
{ int flag,k=0;char ch;
while((ch=getchar())!=EOF)
{ if (ch==10) { k++;flag=0;}
else flag=1;
}
if (flag==1) k++;
printf("\n The line number is %d\n",k);
getch();
}
【6-23】
#include <stdio.h>
main()
{ int k=0;char ch;
while((ch=getchar())!=10)
if (ch>='a'&&ch<='z') k++;
printf("\n The lower letter number is %d\n",k);
getch();
}
【6-24】
#include <stdio.h>
main()
{ int i,j,n;
printf("Input line number :");
scanf("%d",&n);
for(i=1;i<=n;i++)
{ for (j=1;j<=40-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("%c",64+i);
printf("\n");
}
getch();
}
第七章
【7-1】C【7-2】C【7-3】B【7-4】C【7-5】A【7-6】D【7-7】A【7-8】12
【7-9】9.000000【7-10】4【7-11】n=1,s【7-12】<=y,z*x【7-13】1,s*i,0,f(k)
【7-14-1】(错误)
main()
{int m;
printf("Input a number:");
scanf("%d",&m);
m=fun(m);
if (m==1)
printf("\nThis number is a primer !\n");
else
printf("\nThis number is not a primer !\n");
getch();
}
fun(int n)
{ int k,yes;
for (k=2;k<=n/2;k++)
if (n%k==0) yes=0;
else yes=1;
return yes;
}
【7-14-2】(对旳)
main()
{int m;
printf("Input a number:");
scanf("%d",&m);
m=fun(m);
if (m==1)
printf("\nThis number is a primer !\n");
else
printf("\nThis number is not a primer !\n");
getch();
}
fun(int n)
{ int k,yes=1;
for (k=2;k<=n/2;k++)
if (n%k==0) yes=0;
return yes;
}
【7-15】
main()
{int a,b;
printf("Input a & b:");
scanf("%d%d",&a,&b);
printf("\n%d%%%d=%d",a,b,mymod(a,b));
getch();
}
mymod(int a,int b)
{int z;
z=a%b;
return z;
}
【7-16】
float fun(int n)
{return (1.0/n);}
main()
{int i,n,k=1;
float s=0.0;
printf("Input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{s+=k*fun(i);
k=-k;
}
printf("\ns=%8.6f",s);
getch();
}
【7-17】
float f(int m)
{ float t=1.0;
int i;
for (i=2;i<=m;i++)
t-=1.0/(i*i);
return t;
}
main()
{int n;
printf("Input n:");
scanf("%d",&n);
printf("\nt=%8.6f",f(n));
getch();
}
【7-18】
#include <math.h>
float f(float x)
{ float z;
z=x*x-5*x+4;
return z;
}
main()
{float x,y1,y2,y3;
printf("Input x:");
scanf("%f",&x);
y1=f(2);
y2=f(x+15);
y3=f(sin(x));
printf("y1=%10.4f\n",y1);
printf("y2=%10.4f\n",y2);
printf("y3=%10.4f\n",y3);
printf("\n**** END ****");
getch();
}
第八章
【8-1】A【8-2】B【8-3】B【8-4】C【8-5】B【8-6】B【8-7】C【8-8】D
【8-9】B【8-10】C【8-11】C【8-12】C【8-13】110【8-14】7 1
【8-15】char *p=ch;,p=&ch;,scanf(“%c”,p);,p=’a’;,printf(“%c”,p);
【8-16】s=p+3;,s-=2,50,*(s+1),2,10 20 30 40 50
【8-17-1】
fun(x,y)
int *x,*y;
{int z1,z2;
z1=*x+*y;
z2=*x-*y;
*x=z1;*y=z2;
}
main()
{int *a,*b,A,B;
a=&A,b=&B;
printf("input two numbers:");
scanf("%d%d",a,b);
printf("a,b=%d,%d\n",*a,*b);
printf("before call function:\n");
printf("a=%d b=%d\n",*a,*b);
fun(a,b);
printf("after call function:\n");
printf("a=%d b=%d\n",*a,*b);
getch();
}
【8-17-2】
fun(x,y)
float *x,*y;
{float z1,z2;
z1=*x+*y;
z2=*x-*y;
*x=z1;*y=z2;
}
main()
{float *a,*b,A,B;
a=&A;b=&B;
printf("input two real numbers:");
scanf("%f%f",a,b);
printf("a,b=%f,%f\n",*a,*b);
printf("before call function:\n");
printf("a=%f b=%f\n",*a,*b);
fun(a,b);
printf("after call function:\n");
printf("a=%f b=%f\n",*a,*b);
getch();
}
【8-18】
fun(int *a,int *b,int *c)
{ int max,min;
max=*a;min=*a;
if (*b>*a) max=*b;
if (*b<*a) min=*b;
if (*c>max) max=*c;
if (*c<min) min=*c;
*a=max;*c=min;
}
main()
{int a,b,c;
printf("Input a,b,c:");
scanf("%d%d%d",&a,&b,&c);
printf("before call function:\n");
printf("a=%d b=%d c=%d\n",a,b,c);
fun(&a,&b,&c);
printf("after call function:\n");
printf("max=%d min=%d\n",a,c);
getch();
}
第9章
【9-1】D【9-2】A【9-3】A【9-4】A【9-5】C【9-6】A【9-7】B【9-8】D
【9-9】C【9-10】C【9-11】C【9-12】D【9-13】D【9-14】A,C(?)
【9-15】A【9-16】A【9-17】C【9-18】C【9-19】9,0【9-20】6【9-21】12
【9-22】3【9-23】2721【9-24】-850,2,0【9-25】k=p,(k)
【9-26】c=getchar(),c-65
【9-27】
#include <ctype.h>
main()
{ char *s,a[100];
int i,k=0,num[10]={0};
s=a;
printf("Input an number string:");
scanf("%s",s);
while(*s!='\0')
{ if (isdigit(*s)&&(*s>'0'))
num[*s-49]++;
if (*s==48) num[9]++;
s++;
}
for (i=0;i<9;i++)
printf("%2d-->%3d\n",i+1,num[i]);
printf(" 0-->%3d\n",num[9]);
printf("***** TOTAL *****\n");
for (i=0;i<=9;i++) k+=num[i];
printf(" %d ",k);
getch();
}
【9-28】
move(int a[10],int n)
{int i;
for (i=n;i<10;i++)
a[i-1]=a[i];
a[9]=0;
}
main()
{int x[10],i,n;
printf("input 10 number:");
for(i=0;i<10;i++)
scanf("%d",&x[i]);
printf("\ninput the N:");
scanf("%d",&n);
move(x,n);
printf("\nAfter move tne member list is :\n");
for (i=0;i<10;i++)
printf("%d ",x[i]);
getch();
}
【9-29】
main()
{int a[100]={0},b[100]={0},i,j;
printf("\nInput the number list (end with 32767) :\n ");
for(i=0;i<100;i++)
{scanf("%d",&a[i]);
if ( a[i]==32767) break;
}
i--;
odd(a,b,i);
printf("\narray B :\n");
for (i=0;i<100;i++)
if (b[i]!=0) printf("%d ",b[i]);
else break;
getch();
}
odd(int a[100],int b[100],int n)
{ int i,j=0;
for(i=0;i<=n;i++)
if(a[i]%2!=0) b[j++]=a[i];
}
【9-30】
#include <string.h>
sort(char s[],int n)
{int i,j,p,t;
for(j=0;j<(n-1);j++)
{p=j;
for(i=j+1;i<n;i++)
if(s[p]<s[i]) p=i;
if(p!=j) { t=s[j];s[j]=s[p];s[p]=t;}
}
}
main()
{char *s;
int n;
printf("\nInput s:");
scanf("%s",s);
n=strlen(s);
sort(s,n);
printf("\nthe sorted string is %s \n",s);
getch();
}
【9-31】
main()
{int a[100],n,*p,i=1;
a[0]=-32768;p=a+1;
printf("\nInput an number list (end with 32767) :\n");
do
{scanf("%d",&a[i]);
if (a[i]>=a[i-1]) i++;
}
while(a[i-1]!=32767);
printf("\nInput inserted number:");
scanf("%d",&n);
p=a;
insert(p,n);
p=a+1;
printf("\nOutput array a:\n");
do
if (*p!=32767) printf("%d ",*p++);
while (*p!=32767);
getch();
}
insert( int *q,int n)
{ int *k;
k=q;
while (*q!=32767) q++;
*(q+1)=*q;
while(q>k)
{ if (n>*(q-1)) { *q=n;break;}
else {q--;*(q+1)=*q;}
}
}
【9-32】
main()
{int n,a[16]={0},*p;
printf("\nInput an number:");
scanf("%d",&n);
p=a;
change(a,n,p);
printf("n=%d\n",n);
while(p<=a+15)
printf("%d",*p++);
}
change(x,n,p)
int x[16],n,*p;
{
p=x+15;*p=0;
if(n==0) return(0);
while(n!=0)
{*p=n%2;
p--;
n/=2;
}
}
【9-33】
#include <stdio.h>
main()
{int a[15],*p,i;
p=a;
frandm(a);
printf("\nThe array a is:");
for(i=0;i<15;i++)
printf("%d ",*p++);
}
frandm( a[]);
{int k=0,i,x,*q;
for (i=0;i<15;i++) a[i]=20;
while(k<15)
{x=rand()%20;
for (i=0;i<15;i++)
if (a[i]==x ) continue;
else a[k++]=x;
}
}
【9-34】
#define N 20
main()
{int a[N][N],x[N]={0},y[N]={0},i,j,m,sum=0;
printf("\n Input N (<20) :");
scanf("%d",&m);
printf("\n Input array a[%d][%d]:\n",m,m);
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{ scanf("%d",&a[i][j]);
x[i]+=a[i][j];y[j]+=a[i][j];
if (i==j ) sum+=a[i][i];
}
printf("\n After compute :\n");
for (i=0;i<m;i++)
{ for (j=0;j<m;j++)
printf("%5d",a[i][j]);
printf("%5d\n",x[i]);
}
for (i=0;i<m;i++)
printf("%5d",y[i]);
printf("\n\nSum=%d\n",sum);
getch();
}
【9-35】
#define N 20
main()
{int a[N][N],b[N][N],c[N][N],m,n,i,j;
printf("\n Input m,n (<20) :");
scanf("%d%d",&m,&n);
printf("\n Input array A[%d][%d]:\n",m,n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{ scanf("%d",&a[i][j]);
}
printf("\n Input array B[%d][%d]:\n",m,n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{ scanf("%d",&b[i][j]);c[i][j]=a[i][j]+b[i][j];
}
printf("\n After compute array C:\n");
for (i=0;i<m;i++)
{ for (j=0;j<n;j++)
printf("%5d",c[i][j]);
printf("\n");
}
getch();
}
【9-36】
main()
{int i,j,k;
printf("\n ** A MULTIPLICATION TABLE **\n");
printf(" ");
for(i=1;i<10;i++) printf("(%3d)",i);
printf("\n --------------------------------------------\n");
for(i=1;i<10;i++)
{ for(j=0;j<10;j++)
if(j==0) printf("( %d)",i);
else printf("%5d",i*j);
printf("\n");
}
printf("\n --------------------------------------------\n");
getch();
}
【9-37】
#include "stdio.h"
#include "stdlib.h"
main()
{static int
展开阅读全文