C语言程序设计(张淑华、朱丽莉版)课后习题参考答案_c语言课后习题及答案

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

C语言程序设计(张淑华、朱丽莉版)课后习题参考答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言课后习题及答案”。

C语言程序设计(张淑华、朱丽莉主编)课后习题解答

(仅供参考)

一、选择题

1.B

2.D

3.B

4.A

5.B 6.C

7.C

二、填空题

1..obj

2.函数

3./* */

4.#include

int a,b;

a,b

三、简答题(略)

一、选择题

1.B

2.B

3.A

4.D

5.A 6.C

7.C

8.A

9.C

10.B 11.A

12.A

13.C

14.A

15.C

二、填空题

1.变量

2.存储数据的单元

3.非0、0

4.(1)a>=0

(2)0 5.1

6.1

7.-30

8.38

9.4 , 7 10.-6 177772

11.9.9

12.7

三、写出下列程序的运行结果

1.0,0,5

2.18

3.64

512

4.5 5.d4,c

四、编程题

1.#include

#define PI 3.1415926

void main()

{

float r,s;

printf(“Please input circinal radiin”);

scanf(“%f”,&r);

s=PI*r*r;

printf(“r=%.2f,s=%.2fn”,r,s);

} 2.#include

void main()

{

char c1,c2;

printf(“Please input a majusculen”);

scanf(“%c”,&c1);

c2=c1>’A’&&c1

printf(“%cn”,c2);

} 3.#include

void main()

{

int a=0,b;

scanf(“%c”,&b);

b=b&a;

printf(“b=%dn”,b);

}

一、选择题

1.C

2.C

3.A

4.C

5.D 6.原题第2行应为 c=(c-=a-5),(a=b,b+3);答案为B 否则输出结果为5,0,5 7.D

8.C

9.A

10.B

二、填空题

1.-50 300、a=-50,b=300

a=-50

b=300 2.10 20 30、10,20,30、a=10,b=20,c=30 3.15、0、0

三、写出下列程序的运行结果

1.a=789.654321,a= 789.65,a= 789.65432100,a=789.654321 2.b=15,b=17,b=f

3.c=1,x=0,y=0,z=1

4.21

20,20 5.在TC环境下为216,125

在VC环境下为 216,180 6.a=A,b=d,c=F

7.8.x=4.500000,y=4,x+y=8.500000

四、编程题

1.#include

void main()

{

printf(“**********************************n”);

printf(“

HAPPY NEW YEAR!

n”);

printf(“**********************************n”);

} 2.

9,4,12,12

(1)#include

void main()

{

int a=5,b=8,c=10,m,max;

m= a>b?a:b;

max=c>m?c:m;

printf(“max=%dn”,max);

}

(2)#include

void main()

{

int a,b,c,m,max;

scanf(“%d,%d,%d”,&a,&b,&c);

max=a>b?a:(b>c?b:c);

printf(“max=%dn”,max);

}

一、选择题

1.D

2.D

3.C

6.A

7.C

8.C

二、填空题

1.6、5、5

2.(a%3==0||a%7==0)

三、写出下列程序的运行结果

1.4

2.64

3.a=7,b=4

四、编程题

1.另见填空题3

#include

void main(){ float a,b,c,t;

scanf(“%f,%f,%f”,&a,&b,&c);

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;}

printf(“%.2f,%.2f,%.2fn”,a,b,c);

} 2.#include

void main()

4.A

9.D 3.(1)a>b

4.46

5.D

10.B

(2)a=c;(3)a,b,c

5.*#

{

int a,b;

scanf(“%d,%d”,&a,&b);

if(a%b==0)

printf(“%d is divisible by %dn”,a,b);

else

printf(“%d is not divisible by %dn”,a,b);

} 3.(1)#include

void main()

{ int x,y;

scanf(“%d”,&x);

if(x>-5&&x

y=x;

printf(“y=%dn”,y);

else if(x==0)

y=x-1;

printf(“y=%dn”,y);

else if(x>0&&x

y=x+1;

printf(“y=%dn”,y);

else

printf(“Data out of rangen”);

}(2)#include

void main(){ int x,y;

scanf(“%d”,&x);

switch(x)

{

case-1:

case-2:

case-3:

case-4:y=x;printf(“y=%dn”,y);break;

case 0:y=x-1;printf(“y=%dn”,y);break;

case 1:

case 2:

case 3:

case 4:

case 5:

case 6:

case 7:

case 8:

case 9:y=x+1;printf(“y=%dn”,y);break;

default: printf(“Data out of rangen”);

} 4.#include

void main(){

long num;

int indiv,ten,hundred,thousand,tenthousand,place;/*分别代表个位、十位、百位、千位、万位和位数*/

printf(“Please Input a integer(0~99999):”);

scanf(“%ld”,&num);

if(num>9999)

place=5;

else if(num>999)

place=4;

else if(num>99)

place=3;

else if(num>9)

place=2;

else

place=1;

printf(“place=%dn”,place);

printf(“For each digit:”);

tenthousand=num/10000;

thousand=(int)(num-tenthousand*10000)/1000;hundred=(int)(num-tenthousand*10000-thousand*1000)/100;ten=(int)(num-tenthousand*10000-thousand*1000-hundred*100)/10;indiv=(int)(num-tenthousand*10000-thousand*1000-hundred*100-ten*10);

switch(place)

{

case 1:printf(“%d”,indiv);break;

case 2:printf(“%d,%d”,ten,indiv);break;

case 3:printf(“%d,%d,%d”,hundred,ten,indiv);break;

case 4:printf(“%d,%d,%d,%d”,thousand,hundred,ten,indiv);break;

case 5:printf(“%d,%d,%d,%d,%d”,tenthousand,thousand,hundred,ten,indiv);

} }

一、选择题

1.D

2.C

3.D

4.B

5.C 6.B

7.C

8.B

9.B

10.B

二、填空题

1.(1)x>=0 或!(x

(2)x

(2)j%3 或 j%3!=0 3.(1)pi

(2)fabs(t)

(3)4

三、写出下列程序的运行结果

1.1

2.y=-1

3.4

4.a=2,b=8

5.*7 6.45

7.1

8.s=0

四、编程题

1.#include

void main(){

int i,j,k;for(i=1;i

printf(“ “);/*输出*号前面的空格*/

for(k=1;k

printf(“*”);/*输出*号*/

printf(“n”);/*输出完一行*号后换行*/ }

} 2.

#include “stdio.h” void main(){

int num,n1,n2,p=1;

scanf(“%d”,&num);while(num){ n1=num/10;

n2=num%10;

p*=n2;

num=n1;}

printf(“num=%d,p=%dn”,num,p);} 3.

#include “stdio.h” void main(){

int i;

float s1,s2,s3,s4,s5,sum,avg;

for(i=1;i

{

printf(“Please enter a five subjects scoren”);

scanf(“%f,%f,%f,%f,%f”,&s1,&s2,&s3,&s4,&s5);

sum=0;

sum+=s1+s2+s3+s4+s5;

avg=sum/5;

printf(“%d individuals,the average score is %.2fn”,i,avg);

} }

一、选择题

1.D

2.C

3.D

4.D

5.B 6.A

7.C

8.D

9.A

二、填空题

1.地址常量

2.非0

3.3.(1)j=9

(2)j>=0

4.(1)0

(2)6 5.(1)gets(temp);

(2)strcpy(temp,str);

6.(1)i

(2)a[i][i] 7.(1)&a[i]

(2)i%4==0

(3)printf(“n:”);

8.(1)s[i]>=48 && s[i]='0' && s[i]

(2)d[j]=0;或d[j]='';

三、写出下列程序的运行结果

1.13715

2.s=15

3.58

4.11

5.7 0 6.how

7.max=9,row=1,col=0

8.6,4,3,2,are you? I am fine

四、编程题

1.#include

#define N 10

void main(){ int a[32],x,k,r,i;

printf(“Please input an integer:“);

k=-1;

do

{ r=x%2;

a[++k]=r;

x/=2;

}

while(x>=1);

for(i=k;i>=0;i--)printf(“%1d”,a[i]);printf(“n”);

} 2.#include

#define N 10

void main(){ int a[N+1]={10,20,30,40,50,60,70,80,90,100};

int t1,t2,num,i,j;

printf(“array a:n”);for(i=0;i

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

printf(“n”);

printf(“Insert data:”);

scanf(“%d”,&num);

if(num>a[N-1])

a[N]=num;

else

{ for(i=0;i

{ if(a[i]>num)

{ t1=a[i];

a[i]=num;

for(j=i+1;j

{ t2=a[j];a[j]=t1;t1=t2;}

break;

}

}

}

printf(”Current array a:n”);for(i=0;i

#define N 6

void main(){ int i,j,a[N][N];for(i=1;i

a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=1;i

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

printf(”n”);

} } 4.

#include “stdio.h”

void main()

{ char s[80],t[80],d;

int i,j;

printf(“Please enter a string:n”);

gets(s);

printf(“delete?n”);

d=getchar();

for(i=j=0;s[i]!='';i++)

if(s[i]!=d){ t[j]=s[i];j++;} t[j]='';printf(“%sn”,t);

} 5.#include “stdio.h”

#define N 8

void main()

{

int s[N][3],i,j,k,m,t1;

float a[N],sum,t2;

for(i=0;i

{

printf(“Please enter the %d-th three subjects scoren”,i);

sum=0;

for(j=0;j

{

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

sum+=s[i][j];

}

a[i]=sum/3;

}

for(i=0;i

{

k=i;

for(j=i+1;j

if(a[k]

if(k!=i)

{ for(m=0;m

{ t1=s[i][m];s[i][m]=s[k][m];s[k][m]=t1;} /*交换整行的值*/

t2=a[i];a[i]=a[k];a[k]=t2;

}

}

for(i=0;i

{

printf(“%d-th ”,i);

for(j=0;j

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

}

printf(“%.2fn”,a[i]);

}

一、选择题

1.C

2.A

3.B

4.B

5.A 6.D

7.C

8.D

9.C

10.C

二、填空题1.struct STRU t[20];

2.x.x、x.y、x.z.y、x.z.z

3.4,8

三、写出下列程序的运行结果

1.6

2.0

3.4E5S

4.21

5.Zhao,m,85,90

四、编程题

1.#include “stdio.h”

#define N 45

struct student

{

char name[20];

char sex[7];

int age;

int score;

}std[N];

void main()

{

int i,max=0,rowi;

for(i=0;i

{

printf(“Please enter the data of the %d-th student:n”,i);

printf(“name:”);

scanf(“%s”,std[i].name);

printf(“sex:”);

scanf(“%s”,std[i].sex);

printf(“age:”);

scanf(“%d”,&std[i].age);

printf(“score:”);

scanf(“%d”,&std[i].score);

if(max

{

max=std[i].score;

rowi=i;

}

}

printf(“name:%s ”,std[rowi].name);

printf(“sex:%s ”,std[rowi].sex);

printf(“age:%d ”,std[rowi].age);

printf(“score:%dn”,std[rowi].score);

} 2.#include “stdio.h”

#define N 5

struct student {

char name[20];

char sex[7];

int score;}std[N];void main(){

int i,ml=0,fml=0;

float sum=0,avg;

for(i=0;i

{

printf(“Please enter the data of the %d-th student:n”,i);

printf(“name:”);

scanf(“%s”,std[i].name);

printf(“sex:”);

scanf(“%s”,std[i].sex);

if(std[i].sex[0]=='m'||std[i].sex[0]=='M')

ml+=1;else

fml+=1;

printf(“score:”);

scanf(“%d”,&std[i].score);

sum+=std[i].score;}

avg=sum/N;

printf(“The number of male students:%dn”,ml);

printf(“The number of female students are:%dn”,fml);} printf(“The average scores are:%.2fn”,avg);

一、选择题

1.A

2.C

3.D

4.A

5.C 6.A

7.D

二、填空题

1.(1)high=mid-1

(2)low=mid+1

2.(1)int m

(2)m%i==0

(3)return s 3.(1)max=x[i][j]

(2)max

三、写出下列程序的运行结果

1.625

2.Qian,p,95,92

3.2

4.12

5.h=8

四、编程题

1.#include “stdio.h”

void main()

{

int prime(int);

int x;

printf(“nPlease input an integer:”);

scanf(“%d”,&x);

if(prime(x))

printf(“n%d is prime.n”,x);

else

printf(“n%d is not prime.n”,x);} int prime(int n){

int flag=1,i;

if(n%i==0)

for(i=2;i

flag=0;

return(flag);

} 2.#include “stdio.h”

void delask(char a[])

{ int i,j;

char b[80];

for(i=j=0;a[i]!='';i++)

if(a[i]!='*')

{

while(a[i]!=''){

b[j]=a[i];

j++;

i++;}

break;

}

b[j]='';

for(i=0;b[i]!='';i++)

a[i]=b[i];

a[i]='';

}

void main()

{

char s[80];

printf(“Please enter a string:n”);

scanf(“%s”,s);

delask(s);

printf(“%sn”,s);

}

3.#include “stdio.h”

struct date

{

int day;

int month;

int year;

};

int days(struct date dt)

{

int y,m,d,ds[12]={31,28,31,30,31,30,31,31,30,31,30,31},i,s=0;

y=dt.year;

m=dt.month;

d=dt.day;

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

ds[1]=29;

/* 计算每月的天数是本年第几天 */

switch(m)

{ case 1:for(i=0;i

s+=ds[i];

s+=d;

break;

case 2:for(i=0;i

s+=ds[i];

s+=d;

break;

case 3:for(i=0;i

s+=ds[i];

s+=d;

break;

case 4:for(i=0;i

s+=ds[i];

s+=d;

break;

case 5:for(i=0;i

s+=ds[i];

s+=d;

break;

case 6:for(i=0;i

s+=ds[i];

s+=d;

break;

case 7:for(i=0;i

s+=ds[i];

s+=d;

break;

case 8:for(i=0;i

s+=ds[i];

s+=d;

break;

case 9:for(i=0;i

s+=ds[i];

s+=d;

break;

case 10:for(i=0;i

s+=ds[i];

s+=d;

break;

case 11:for(i=0;i

s+=ds[i];

s+=d;

break;

case 12:for(i=0;i

s+=ds[i];

s+=d;

break;

}

return(s);

}

void main()

{

struct date ymd;

int dys;

printf(“Input year month and dayn”);

scanf(“%d,%d,%d”,&ymd.year,&ymd.month,&ymd.day);

dys=days(ymd);

printf(“Today is the first %d days in the middle of this year.n”,dys);

}

一、选择题

1.A

2.D

3.A

4. D

5.B

二、写出下列程序的运行结果

1.10

2.9

3.***

4.12 6. 1

三、编程题

1.#include “stdio.h”

#define N 10

float fmax=0,fmin=0;

float average(float fscore[],int n)

{

int i;

float faver,fsum=fscore[0];

fmax=fmin=fscore[0];

for(i=1;i

{

if(fscore[i]>fmax)

6.A

5.8

fmax=fscore[i];

else if(fscore[i]

fmin=fscore[i];

fsum+=fscore[i];

}

faver=fsum/n;

return(faver);

}

void main()

{

float fave,fnumb[N];

int i;

for(i=0;i

scanf(“%f”,&fnumb[i]);

fave=average(fnumb,N);

printf(“max=%.2f min=%.2f average=%.2fn”,fmax,fmin, fave);

} 2.此题有误,用宏定义较难实现。以下程序仅供参考 #include “stdio.h” void main(){

char strg[30]=“C Language Program”,c;

int i=0;

while((c=strg[i])!='')

{

i++;

if(c>='a' && c

c=c-32;

else

if(c>='A' && c

c=c+32;

printf(“%c”,c);

}

printf(“n”);} 3.#include “stdio.h”

#include “math.h”

#define S(a,b,c)((a+b+c)/2)

#define AREA(a,b,c)sqrt(S(a,b,c)*(S(a,b,c)-a)*(S(a,b,c)-b)*(S(a,b,c)-c))

void main()

{

float a,b,c;

printf(“Please input a,b,c:”);

scanf(“%f,%f,%f”,&a,&b,&c);

if(a+b>c && a+c>b && b+c>a)

printf(“%.2fn”,AREA(a,b,c));

else

printf(“It is not a triangle!n”);

}

十一、选择题

1.B

2.D

3.D

4.D

5.C 6.A

7.A

8.C

9.D

10.A 11.A

12.B

13.C

14.A

15.C

二、写出下列程序的运行结果

1.2

2.0

3.105.CBADGFE

6.30,30

7.The data:

i=5

c=B

三、编程题

1.#include

#include

void fun(char *s,int *a,int *b)

{

while(*s!='')

{

if(*s>=65 && *s

*a+=1;

/* 可用(*a)++;*/

if(*s>=97 && *s

*b+=1;

/* 可用(*b)++;*/

s++;

}

}

void main()

{

char s[100];

int upper=0,lower=0;

printf(“请输入一串字符:n”);

gets(s);

fun(s,&upper,&lower);

printf(“upper=%d,lower=%dn”,upper,lower);

}

2.#include

void fun(int *p1,int *p2)

{

int p;

p=*p1;

*p1=*p2;

*p2=p;

}

void main()

{

int a,b,*p11,*p22;

4.8 8.4 4 4 45 6 7 8 9 10

scanf(“%d,%d”,&a,&b);

p11=&a;p22=&b;

if(a

printf(“%d,%dn”,a,b);

}

十一

一、选择题

1.B

2.D

3.B

4.C

5.C 6.C

7.C

8.A

9.D

10.B

二、写出下列程序的运行结果

1.1,2,3,0,0,1,2,3,0,0,2.this_is_a_test20.010000

三、编程题

1.#include “stdio.h”

#include “stdlib.h”

void main()

{

FILE *fp;

char ch;

if((fp=fopen(“test”,“w”))==NULL)

{

printf(“Cannot open the file!n”);

exit(0);

}

printf(“Input a string:n”);

while((ch=getchar())!='!')

{

if(ch>='a' && ch

ch=ch-32;

fputc(ch,fp);

}

fclose(fp);

/* 以下是从文件中读出数据,并在屏幕上显示。在本题中可不写 */

fp=fopen(“test”,“r”);

while((ch=fgetc(fp))!=EOF)

putchar(ch);

printf(“n”);

fclose(fp);

} 2.#include “stdio.h”

#include “stdlib.h”

#define N 5

struct student

{

char num[10];

char name[9];

int score[3];

float avg;

}stu[N];

void main()

{

int i,j,sum;

FILE *fp;

for(i=0;i

{

printf(“Please input the data of the %d-th studentsn”,i);

printf(“studentID:”);

scanf(“%s”,stu[i].num);

printf(“name:”);

scanf(“%s”,stu[i].name);

sum=0;

for(j=0;j

{

printf(“score %d:”,j);

scanf(“%d”,&stu[i].score[j]);

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

}

stu[i].avg=sum/3.0;

}

/* 将数据写入文件 */

fp=fopen(“stud”,“w”);

for(i=0;i

if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)

printf(“File write error!n”);

fclose(fp);

/* 以下是从文件中读出数据,并在屏幕上显示。在本题中可不写 */

fp=fopen(“stud”,“r”);

for(i=0;i

{

fread(&stu[i],sizeof(struct student),1,fp);

printf(“%-10s %-10s”,stu[i].num,stu[i].name);

for(j=0;j

printf(“%8d ”,stu[i].score[j]);

printf(“%6.2fn”,stu[i].avg);

}

fclose(fp);

}

C语言程序设计教程课后习题答案

C语言程序设计教程课后习题答案第一章 C语言程序设计概述 -习题答案1 算法的描述有哪些基本方法?答1、自然语言2、专用工具2 C语言程序的基本结构是怎样的?举一个例子说明。答1......

c语言程序设计课后习题答案 第五章

/*练习5-3*/ #include int prime(int m) {int i;for(i=2;iif(m%i==0)break;if(i==m)return 1;elsereturn 2; } main() {int i,m,n,sum=0,a=0;printf("enter m and n:(1scan......

C语言程序设计(郑莉)课后习题答案

C++语言程序设计(清华大学郑莉)课后习题答案第 一 章 概述1-1 简述计算机程序设计语言的发展历程。解:迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言......

c语言程序设计课后习题答案 第7章

/*练习7-1*/ #include main() { int a[10],n,sum=0,i; float ave; printf("enter n:\n"); scanf("%d",&n); printf("enter %d ge zheng shu:\n",n); for(i=0;......

《C语言程序设计》课后习题参考答案

高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案――武汉大学出版社习题1参考答案一、选择题 1.A 2.D二、填空题1.BASIC、FORTRAN、AL_GOL60和COBOL 2.8 3......

《C语言程序设计(张淑华、朱丽莉版)课后习题参考答案.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
C语言程序设计(张淑华、朱丽莉版)课后习题参考答案
点击下载文档
相关专题 c语言课后习题及答案 课后 习题 参考答案 c语言课后习题及答案 课后 习题 参考答案
[其他范文]相关推荐
[其他范文]热门文章
下载全文