大学C语言课本课后习题相应答案及详细解答_大学课本课后习题答案

2020-02-28 其他范文 下载本文

大学C语言课本课后习题相应答案及详细解答由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“大学课本课后习题答案”。

5-1

#include“stdio.h” void main(){ char c1,c2;printf(“c1:”);c1=getchar();if(c1>='a'&&c1='A'&&c1%cn“,c2);}

5-2 #include”stdio.h“ void main(){ char c;printf(”c:“);c=getchar();if(c>='A'&&c

if(c=='A')printf(”没有前面的字母!“);

else if(c=='Z')printf(”没有后面的字母!“);

else printf(”前面的字母=%c,后面的字母=%c“,c-1,c+1);printf(”n“);}

5-3 #include”stdio.h“ void main(){ int s;char g;printf(”s:“);scanf(”%d“,&s);if(s>=0&&s

switch(s/10){

case 9:

case 10: g='A';break;

case 8: g='B';break;

case 7: g='C';break;

case 6: g='D';break;

default: g='E';

}

printf(”g=%cn“,g);} else printf(”成绩不在百分制范围内!n“);}5-4 #include”stdio.h“ void main(){ int y,m,d,dok;int yy,mm,dd;printf(”y,m,d:“);scanf(”%d,%d,%d“,&y,&m,&d);

switch(m){

case 1: case 3: case 5: case 7: case 8: case 10: case 12:

if(d>0&&d

else dok=0;

break;

case 4: case 6: case 9: case 11:

if(d>0&&d

else dok=0;

break;

case 2: if(y%4==0&&y%100!=0||y%400==0)

if(d>0&&d

else dok=0;

else

if(d>0&&d

else dok=0;

break;

default: dok=0;

}

if(dok==0)printf(”月份或日期不对!n“);

else{

switch(dok){

case 1: if(d==28){yy=y;dd=1;mm=m+1;}

else{yy=y;dd=d+1;mm=m;}

break;

case 2:if(d==29){yy=y;dd=1;mm=m+1;}

else{yy=y;dd=d+1;mm=m;}

break;

case

3:if(d==30){yy=y;dd=1;mm=m+1;}

else{yy=y;dd=d+1;mm=m;}

break;

case 4:if(d==31)

if(m==12){yy=y+1;dd=1;mm=1;}

else {yy=y;dd=1;mm=m+1;}

else{yy=y;dd=d+1;mm=m;}

break;

}

printf(”Tomorrow:%d年%d月%d日n“,yy,mm,dd);

} }

5-5

#include”stdio.h“ void main(){ int a,b,c,t;printf(”a,b,c:“);scanf(”%d,%d,%d“,&a,&b,&c);if(a+b>c&&b+c>a&&a+c>b){

if(a>b){t=a;a=b;b=t;}

if(a>c){t=a;a=c;c=t;}

if(b>c){t=b;b=c;c=t;}

if(a==b&&b==c)printf(”等边三角形.“);

else if(a==b||b==c||a==c)printf(”等腰角形.“);

else if(c*c==a*a+b*b)printf(”直角三角形.“);

else printf(”任意三角形.“);

printf(”n“);} else printf(”不能构成三角形!n“);}6-1 #include”stdio.h“ void main(){ int a,b,m,n,k;printf(”m,n:“);scanf(”%d,%d“,&m,&n);

a=m;b=n;k=a%b;while(k){

a=b;

b=k;

k=a%b;} printf(”%dn“,(m*n/b));}

6-2 #include”stdio.h“ void main(){ int n;int i,j,s;printf(”n=“);scanf(”%d“,&n);for(i=1;i

s=0;

for(j=1;j

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

if(s==i){

printf(”%d:“,i);

for(j=1;j

if(i%j==0)printf(”%d “,j);

printf(”n“);

} } } 6-3

#include”stdio.h“ #include”math.h“ void main(){ double x,y,zd,zx,x1,x2;zd=zx=50;for(x=0;x

y=2*pow(x,3)-3*pow(x,4)+6*pow(x,5)-4*x+50;

if(y>zd){ zd=y;x1=x;}

if(y

6-4

#include”stdio.h“ void main(){ double x,sum=0,a,b,c;int i;printf(”x=“);scanf(”%lf“,&x);a=x;b=1.0;c=1.0;for(i=1;i

sum=sum+a/(b*c);

a=a*x*x;

b=b+2;

c=c*i;} printf(”y(%.2lf)=%lfn“,x,sum);} 7-1 /*选择排序*/ #include”stdio.h“ void main(){ int i,j,n,k,temp;int a[10];printf(”n(

k=i;

for(j=i+1;j

if(a[j]?*/

if(k!=i){

temp=a[i];

a[i]=a[k];

a[k]=temp;

} } printf(“Ordered:”);for(i=0;i

7-2 #include“stdio.h” void main(){ int a[3][3];int i,j,s=1;printf(“Input:n”);for(i=0;i

for(j=0;j

scanf(“%d”,&a[i][j]);

if(i==j)s=s*a[i][j];

} printf(“s=%dn”,s);} 7-3

/*杨辉三角*/ #include“stdio.h” void main(){ int x[7][7];int i,j;for(i=0;i

x[i][0]=1;

x[i][i]=1;} for(i=2;i

for(j=1;j

x[i][j]=x[i-1][j]+x[i-1][j-1];for(i=0;i

for(j=0;j

printf(“%3d”,x[i][j]);

printf(“n”);}

}

7-4

#include #include void main(){ char str[21];int i,j;printf(“str:”);gets(str);for(i=0,j=strlen(str)-1;i

if(str[i]!=str[j])break;if(i>j)printf(“%s是回文n”,str);else printf(“%s不是回文n”,str);} 7-5 /*输入一维数组的10个元素,并将最小值与第1个数交换,最大值与最后一个数交换,然后输出交换后的结果*/ #include void main(){ int a[10],i,zx,zd;

printf(“Input:n”);zx=zd=0;for(i=0;i

scanf(“%d”,&a[i]);

if(a[i]

if(a[i]>a[zd])zd=i;} if(zx!=0){

int t;

t=a[0];

a[0]=a[zx];

a[zx]=t;} if(zd!=9){

int t;

t=a[9];

a[9]=a[zd];

a[zd]=t;} for(i=0;i

printf(“%d ”,a[i]);printf(“n”);}

8-2

#include“stdio.h”

double xexp(double x,int n){ double c;if(n==0)c=1.0;else c=x*xexp(x,n-1);return c;}

void main(){ int n;double x;

printf(“x:”);scanf(“%lf”,&x);printf(“n:”);scanf(“%d”,&n);printf(“Result=%gn”,xexp(x,n));}

8-3

#include“stdio.h”

int find(int x[],int n,int y){ int i,pos=-1;for(i=0;i

if(x[i]==y)pos=i;return pos;}

void main(){ int a[10]={11,1,13,15,18,7,19,27,3,8};int i,y,pos;

for(i=0;i

printf(“ny:”);scanf(“%d”,&y);pos=find(a,10,y);if(pos==-1)printf(“Not found!n”);else printf(“Position=%dn”,pos);}

8-1 #include“stdio.h”

#include“conio.h”

//getch()#include“stdlib.h” //srand(),rand(),system(“cls”)#include“time.h”

//time()void main(){ void init(int a[][5],int m,int n);void input(int a[][5],int m,int n);

void output(int a[][5],int m,int n);int min(int b[][5],int m,int n);int a[5][5],ch='0';while(1){

system(“cls”);//清屏

printf(“1.初始化

2.键盘输入

0.结束程序:”);

ch=getch();//头文件conio.h

printf(“n”);

if(ch=='0')break;

else if(ch=='1'){

init(a,5,5);

output(a,5,5);

}

else if(ch=='2'){

input(a,5,5);

output(a,5,5);

}

else printf(“Error!n”);

printf(“Min element:%dn”,min(a,5,5));

printf(“按任意键继续!n”);

getch();} } void init(int a[][5],int m,int n){ int i,j;srand(time(0));//time(0)表示以当前的时间做种子,增加每次运行的随机性

for(i=0;i

for(j=0;j

a[i][j]=rand()%100;//随机数范围:0~32767,将它控制在0~99的范围

}

void input(int a[][5],int m,int n){

int i,j;printf(“Input Array 5X5:n”);for(i=0;i

for(j=0;j

scanf(“%d”,&a[i][j]);}

void output(int a[][5],int m,int n){ int i,j;printf(“Output Array 5X5:n”);for(i=0;i

for(j=0;j

printf(“%2d ”,a[i][j]);

printf(“n”);} }

int min(int b[][5],int m,int n){ int i,j,zx;zx=b[0][0];for(i=0;i

for(j=0;j

if(i==j&&b[i][j]

8-4 #include“stdio.h” float pave,nave;void saver(float a[],int n){ int i,z,f;float psum,nsum;psum=nsum=0.0;z=f=0;for(i=0;i

if(a[i]

else if(a[i]>0){psum=psum+a[i];f++;}

else continue;pave=(z!=0?psum/z:0.0);nave=(f!=0?nsum/f:0.0);} void main(){ float a[10]={1.0,11.0,3.0,-1.5,-5.5,-2};

saver(a,10);printf(“pave=%.1f,nave=%.2fn”,pave,nave);}

8-5

#include“stdio.h” #include“math.h” void p1(int a,int b){

printf(“has two equal roots:%8.4fn”,-b/(2*a));}

void p2(int a,int b, int disc){ float x1,x2;x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf(“Has distant real roots:%8.4f and %8.4fn”,x1,x2);}

void p3(int a,int b, int disc){ float real,image;real=-b/(2*a);image=sqrt(-disc)/(2*a);printf(“Has complex roots:n”);printf(“%8.4f+%8.4fin”,real,image);printf(“%8.4f-%8.4fin”,real,image);}

void main()

{

int a,b,c,disc;printf(“a,b,c:”);scanf(“%d,%d,%d”,&a,&b,&c);

disc=b*b-4*a*c;if(fabs(disc)1e-6)p2(a,b,disc);else p3(a,b,disc);}

8-6 #include“stdio.h” #include“stdlib.h” #include“conio.h” #include“time.h” void main(){ void printaverage(int score[][5],int m,int n);

void printname(int score[][5],int m,int n);int score[10][5];int i,j;srand(time(0));for(i=0;i

for(j=0;j

score[i][j]=50+rand()%50+1;printf(“Output Students' score:n”);printf(“Course 1

5n”);printf(“-------------------------n”);for(i=0;i

printf(“No.%2d:”,i+1);

for(j=0;j

printf(“%3d ”,score[i][j]);

printf(“n”);} printaverage(score,10,5);printname(score,10,5);} void printaverage(int score[][5],int m,int n){ int i,j,sum;printf(“nAverage score:n”);for(i=0;i

sum=0;

for(j=0;j

sum=sum+score[i][j];

printf(“No.%d:%.1fn”,i+1,sum/5.0);} } void printname(int score[][5],int m,int n){ int i,j,max0,row0;

for(j=0;j

max0=score[0][j];

for(i=0;i

if(score[i][j]>max0){

max0=score[i][j];

row0=i;

}

printf(“Course %d,max score=%d,student:No.%dn”,j+1,max0,row0+1);} }

《大学C语言课本课后习题相应答案及详细解答.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
大学C语言课本课后习题相应答案及详细解答
点击下载文档
相关专题 大学课本课后习题答案 大学 课后 习题 大学课本课后习题答案 大学 课后 习题
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文