c语言程序设计教程第三版课后习题参考答案张敏霞版.docx

上传人:b****7 文档编号:25298735 上传时间:2023-06-07 格式:DOCX 页数:30 大小:27.61KB
下载 相关 举报
c语言程序设计教程第三版课后习题参考答案张敏霞版.docx_第1页
第1页 / 共30页
c语言程序设计教程第三版课后习题参考答案张敏霞版.docx_第2页
第2页 / 共30页
c语言程序设计教程第三版课后习题参考答案张敏霞版.docx_第3页
第3页 / 共30页
c语言程序设计教程第三版课后习题参考答案张敏霞版.docx_第4页
第4页 / 共30页
c语言程序设计教程第三版课后习题参考答案张敏霞版.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

c语言程序设计教程第三版课后习题参考答案张敏霞版.docx

《c语言程序设计教程第三版课后习题参考答案张敏霞版.docx》由会员分享,可在线阅读,更多相关《c语言程序设计教程第三版课后习题参考答案张敏霞版.docx(30页珍藏版)》请在冰豆网上搜索。

c语言程序设计教程第三版课后习题参考答案张敏霞版.docx

c语言程序设计教程第三版课后习题参考答案张敏霞版

附录F课后题参考答案

习题1

1.1填空题

1.函数

2.主函数main();主函数main()

3.主函数main()

4.函数首部;函数体

5.{;}

6.顺序结构;选择结构;循环结构

7..c;.obj;.exe

1.2思考题

1.答:

结构化程序设计是指,为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。

顺序结构,选择结构,循环结构

2.答:

算法是对具体问题求解步骤的一种描述。

计算机算法的表达工具通常采用以下几种方法:

①用自然语言表示算法;②用流程图表示算法;③用伪代码表示算法;④用程序设计语言表示算法。

3.略

4.略

5.略

1.3编程题

1.答:

#include"stdio.h"

main()

{floata=10,b=20,h=5,s;

s=(a+b)*h/2;

printf("s=%f",s);

}

2.答:

#include"stdio.h"

main()

{printf("******************************");

printf("*helloworld*");

printf("******************************");

}

习题2

2.1单选题

DBDCADCABBCA

2.2填空题

1.2.000000

2.1;0.500000

3.9;2

4.6

5.100;d

6.

(1)20

(2)0(3)60

7.

(1)10;6;4

(2)6;9;15(3)3;60;83

8.55或'7'

9.x=4;y=6;z=3;m=463

2.3改错题(略)

习题3

3.1单选题

BDABCADCACBBA

3.2填空题

1.3

2.261

3.10

4.2,1;互换a,b的值

5.6.6

6.003

7.7

8.5.0,4,c=3

9.i=10,j=20

10.

(1)65

(2)65,A

(3)3.14,123.46

(4)3.141600e+000,1.234560e+002

(5)8765.432100

(6)8.765432e+003

11.a=2b=5x=8.8y=76.34c1=65c2=97

12.%d/%d;%d/%d=%.2f\n

3.3改错题(略)

3.4编程题

1.答:

#include"stdio.h"

main()

{

intx,y;

scanf("%d%d",&x,&y);

printf("\t\tx\ty\n");

printf("十进制数\t%d\t%d\n",x,y);

printf("八进制数\t%o\t%o\n",x,y);

printf("十六进制数\t%X\t%x\n",x,y);

}

2.答:

#include"stdio.h"

main()

{

charch;

printf("请输入一个大写英文字母");

scanf("%c",&ch);

printf("大写英文字母是%c\n",ch);

printf("它的前导字符是%c\n",ch-1);

printf("它的后续字符是%c\n",ch+1);

}

3.答:

#include"stdio.h"

main()

{

intx,a,b,c,y;

printf("请输入一个三位整数\n");

scanf("%d",&x);

a=x/100;

b=(x-a*100)/10;

c=x%10;

y=c*100+b*10+a;

printf("反向输出该整数:

%d\n",y);

}

}

4.答:

#include"stdio.h"

main()

{inthour;

doublesalary,salaryday;

scanf("%d,%lf",&hour,&salaryday);

salary=hour*salaryday-hour*salaryday*0.1;

printf("%8.2lf\n",salary);

}

5.答:

#include"stdio.h"

main()

{

inta,b,c,t;

printf("请输入三个整数\n");

scanf("%d%d%d",&a,&b,&c);

printf("交换前a=%d,b=%d,c=%d\n",a,b,c);

t=a;a=c;c=b;b=t;

printf("交换后a=%d,b=%d,c=%d\n",a,b,c);

}

习题4

4.1单选题

BADDDACBBBBA

4.2填空题

1.1

2.

(1)a>0||b>0

(2)x>0&&x<=10

(3)a==1.5&&b==1.5&&c==1.5(4)p

3.

(1)0

(2)1(3)1(4)0(5)1

4.c=1

5.-4

6.1

7.5,0,3

8.5

9.123

10.(cvb=='y'||cvb=='Y')&&(work>=3||college=='y'||college=='Y')&&age<=35

4.3改错题(略)

4.4编程题

1.答

#include"stdio.h"

#include"math.h"

main()

{

doublea,b,c,p,area;

scanf("%lf%lf%lf",&a,&b,&c);

printf("三角形的三边为:

%.llf,%.1lf,%.1lf\n",a,b,c);

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

{p=(a+b+c)/2;

area=sqrt(p*(p-a)*(p-b)*(p-c));

printf("三角形的面积为%.2lf\n",area);

}

else

printf("不能构成三角形\n");

}

2.答:

#include"stdio.h"

main()

{intx,y;

scanf("%d,%d",&x,&y);

if(x*x+y*y>1000)

printf("%d\n",(x*x+y*y)/100);

else

printf("%d\n",x+y);

}

3.答:

#include"stdio.h"

#include"math.h"

main()

{doublex,y;

scanf("%lf",&x);

if(x<-2)

y=x*x-sin(x);

elseif(x<=2)

y=pow(2,x)+x;

else

y=sqrt(x*x+x+1);

printf("x=%.2lfy=%.2lf\n",x,y);

}

4.答:

#include"stdio.h"

main()

{longge,shi,qian,wan,x;

scanf("%ld",&x);

wan=x/10000;

qian=x%10000/1000;

shi=x%100/10;

ge=x%10;

if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/

 printf("thisnumberisahuiwen\n");

else

printf("thisnumberisnotahuiwen\n");

}

5.答:

#include"stdio.h"

main()

{floatp,w,s,d,f;

scanf("%f,%,%f",p,s,w);

if(s>3000)d=0.15

elseif(s>=2000)d=0.1;

elseif(s>=1000)d=0.08;

elseif(s>=500)d=0.05;

elseif(s>=250)d=0.02;

elsed=0

f=p*w*s*(1-d);

printf("%f",f);

}

6.答:

#include"stdio.h"

main()

{intyear,money;

charx;

printf("是否是本公司产品(y/n):

");

scanf("%c",&x);

if(x=='y'||x=='Y')

{printf("产品使用的年限:

");

scanf("%d",&year);

if(year<=1)money=0;

elseif(year<8)money=50;

elsemoney=100;

printf("产品保修额是:

%d\n",money);

}

else

{money=200;

printf("不是本公司产品,产品保修额是:

%d\n",money);

}

}

7.答:

#include"stdio.h"

main()

{intmoney,num1,num2;

printf("请输入取款额(≤2000):

");

scanf("%d",&money);

if(money>2000)printf("请输入取款额数≤2000!

\n");

else

if(money%50==0)

{num1=money/100;

num2=(money-num1*100)/50;

printf("需支付100元:

%d张\n",num1);

printf("需支付50元:

%d张\n",num2);

}

else

printf("输入钱数必须是50的倍数!

\n");

}

习题5

5.1单选题

CDABAABDDBDBCB

5.2填空题

1.20

2.333

3.

(1)i<10或i<=9

(2)j%3!

=0

4.

(1)flag*(float)k/(k+1)或1.0*flag*k/(k+1)

(2)flag=-flag

5.

(1)max=x

(2)x!

=-1(3)scanf("%d",&x)

6.

(1)x<=9或x<10

(2)y=9-x

5.3改错题(略)

5.4编程题

1.答:

(1)for循环,其他略

#include"stdio.h"

main()

{inti,s=0;

for(i=1;i<=100;i++)

s+=i*i;

printf("%d\n",s);

}

(2)for循环,其他略

#include"stdio.h"

main()

{inti=1,p=1;

doubles=1;

do

{

s+=1.0/p;

p*=++i;

}while(1.0/p>1e-6);

printf("%lf",s);

}

2.答:

#include"stdio.h"

main()

{intm,n,t,a,b;

scanf("%d,%d" ,&m,&n) ;

if(m

{t=m ;m=n ;n=t ;}

a=m;

b=n;

t=m%n ;

while(t)

{m=n ;n=t ;t=m%n;}

printf("%d",n);

}

3.答:

#include"stdio.h"

main()

{intx,y,s=1;

scanf("%d,%d",&x,&y);

for(;y>0;y--)s*=x;

printf("%d,%d,%d\n",s%10,s/10%10,s/100%10);

}

4.答:

#include"stdio.h"

main()

{intx,y,z;

for(x=1;x<20;x++)

for(y=1;y<33;y++)

{z=100-x-y;

if((z%3)==0&&(5*x+3*y+z/3)==100)

printf("x=%d,y=%d,z=%d\n",x,y,z);

}

}

5.答:

(a)

#include"stdio.h"

main()

{intj,k;

for(j=1;j<=4;j++)

{for(k=1;k<=4-j;k++)printf("");

printf("****");

printf("\n");

}

}

(b)

#include"stdio.h"

main()

{intj,k ;

for(j=1 ;j<=4 ;j++)

{for(k=1;k<=4-j;k++)printf("");

for(k=1 ;k<=2*j-1 ;k++)

printf("*") ;

printf("\n") ;

}

}

6.答:

程序分析:

利用for循环控制在100~999之间,对每个数分解出个位、十位、百位。

#include

main()

{

inti,j,k,n;

printf("waterflower'numberis:

");

for(n=100;n<1000;n++)

{

i=n/100;/*分解出百位*/

j=n/10%10;/*分解出十位*/

k=n%10;/*分解出个位*/

if(n==i*i*i+j*j*j+k*k*k)

{

printf("%-5d",n);

}

}

printf("\n");

}

7.答:

#include

main()

{

intx;

for(x=1000;x>=3;x--)

if(x%3==1&&x%5==2&&x%7==3)

{

printf("该校的学生人数是:

%d人\n",x);

break;

}

}

8.答:

#include

main()

{

intx=12,i=1;

while

(1)

{if((x+20+i)==2*(x+i))break;

i++;

}

printf("小明母亲在%d年后比小明的年龄大一倍\n",i);

printf("那时小明年龄是:

%d岁,小明母亲年龄是:

%d岁\n",x+i,x+20+i);

}

习题6

6.1单选题

DBCCBBDC

6.2填空题

1.c

2.60

3.100010

4.16

6.3编程题

1.答:

#include"stdio.h"

#include"math.h"

#defineF(a)a*a+sqrt(3*a*a+2*a+1)

main()

{floatx,f;

scanf("%f",&x);

f=4.5/F(exp(x))+F(cos(x))+F(sqrt(x))/F(x*x);

printf("%f\n",f);

}

习题7

7.1单选题

BCADACCCDABCBDB

7.2填空题

1.

(1)2345

(2)10010(3)QuickC

(4)10000

01000

00100

00010

00001

(5)Language(6)LanguageProgramming

2.

(1)j+=2

(2)a[i]>a[j]

3.

(1)i=1

(2)x[i-1]

7.3改错题(略)

7.4编程题

1.答:

#defineN10

#include"stdio.h"

main()

{inta[N]={1,2,3,4,5,6,7,8,9,10,osum=0,qsum=0,j;

for(j=0;j<10;j++)

if(j%2)qsum+=a[j];

elseosum+=a[j];

printf("osum=%d,qsum=%d\n",osum,qsum);

}

2.答:

#defineN10

#include"stdio.h"

main()

{inta[N]={10,20,30,40,50,60,70,80,90},j,k,x;

scanf("%d",&x);

for(j=0;j

if(x

if(j==N)a[N-1]=x;

else

{for(k=N-1;k>j;k--)

a[k]=a[k-1];

a[j]=x;}

for(j=0;j

printf("%d",a[j]);

}

3.答:

#defineM3

#include"stdio.h"

main()

{inta[M][M]={{1,2,3},{2,4,5},{3,5,6}},j,k,flag=1;;

for(j=0;j

for(k=0;k

if(a[j][k]!

=a[k][j]){flag=0;break;}

if(flag)printf("ok");

elseprintf("NO");

}

4.答:

#include"stdio.h"

#include"string.h"

main()

{charc1[10],c2[10],j;

gets(c1);gets(c2);

for(j=0;(c1[j]==c2[j])&&c1[j]&&c2[j];j++);

if(c1[j]>c2[j])printf("%d\n",1);

if(c1[j]

if(c1[j]==c2[j])printf("%d\n",0);

}

5.答:

#include"stdio.h"

#include"string.h"

#defineM3

#defineN80

main()

{chara[M][N],j,k,n[5]={0};

for(j=0;j

gets(a[j]);

for(j=0;j

for(k=0;a[j][k];k++)

if(a[j][k]>='A'&&a[j][k]<='Z')n[0]++;

elseif(a[j][k]>='a'&&a[j][k]<='z')n[1]++;

elseif(a[j][k]>='0'&&a[j][k]<='9')n[2]++;

elseif(a[j][k]=='')n[3]++;

else

n[4]++;

for(j=0;j<5;j++)

printf("%4d",n[j]);

}

习题8

8.1单选题

DBDACBACCC

8.2填空题

1.

(1)2,1

(2)10#30#(3)FOUR,P(4)60

2.

(1)49

(2)2(3)2

(4)(5)

8.3改错题(略)

8.4编程题

1.答:

#include"stdio.h"

main()

{intn1,n2,n3,t;

int*p1,*p2,*p3;

printf("pleaseinput3number:

n1,n2,n3:

");

scanf("%d,%d,%d",&n1,&n2,&n3);

p1=&n1;

p2=&n2;

p3=&n3;

if(*p1>*p2){t=*p1;*p1=*p2;*p2=t;}

if(*p1>*p3){t=*p1;*p1=*p3;*p3=t;}

if(*p2>*p3){t=*p2;*p2=*p3;*p3=t;}

printf("thesortednumbersare:

%d,%d,%d\n",n1,n2,n3);

}

2.答:

#include"stdio.h"

#defineN3

main()

{inta[N],*p=a;

for(;p-a

scanf("%d",p);

p=a+N-1;

for(;p-a>=0;p--)

printf("%d",*p);

}

3.答:

#include"stdio.h"

main()

{inta[10];

intj,minl=0,maxl=0;

for(j=0;j<10;j++)

scanf("%d",a+j);

for(j=0;j<10;j++)

{if(a[maxl]<*(a+j))maxl=j;

if(a[minl]>*(a+j))minl=j;

}

j=a[0];a[0]=a[minl];a[minl]=j;

j=a[9];a[9]=a[maxl];a[maxl]=j;

for(j=0;j<10;j++)

printf("%d",*(a+j));

}

4.答:

输入阵列如下:

1234

5678

9101112

输出阵列如下:

1211109

8765

4321

#defineM3

#defineN4

#include"stdio.h"

main()

{inta[M][N]={1,2,3,4,5,6,7,8,9,10,11,12},k,j,*p=&a[0][0],t;

for(k=0,j=M*N-1;k

{t=*(p+k);*(p+k)=*(p+j);*(p+j)=t;}

for(k=0 ;k

{for(j=0 ;j

printf("%4d",a[k][j]);

XX文库-让每个人平等地提升自我printf("\n");

}

}

5.答:

#include"stdio.h"

main()

{

intlen;

charstr[20],*p=str;

printf("pleaseinputastring:

\n");

scanf("%s",str);

len=0;

while(*p!

='\0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1