C语言课后习题参考答案.docx

上传人:b****1 文档编号:208459 上传时间:2023-04-28 格式:DOCX 页数:30 大小:22.89KB
下载 相关 举报
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_第6页
第6页 / 共30页
C语言课后习题参考答案.docx_第7页
第7页 / 共30页
C语言课后习题参考答案.docx_第8页
第8页 / 共30页
C语言课后习题参考答案.docx_第9页
第9页 / 共30页
C语言课后习题参考答案.docx_第10页
第10页 / 共30页
C语言课后习题参考答案.docx_第11页
第11页 / 共30页
C语言课后习题参考答案.docx_第12页
第12页 / 共30页
C语言课后习题参考答案.docx_第13页
第13页 / 共30页
C语言课后习题参考答案.docx_第14页
第14页 / 共30页
C语言课后习题参考答案.docx_第15页
第15页 / 共30页
C语言课后习题参考答案.docx_第16页
第16页 / 共30页
C语言课后习题参考答案.docx_第17页
第17页 / 共30页
C语言课后习题参考答案.docx_第18页
第18页 / 共30页
C语言课后习题参考答案.docx_第19页
第19页 / 共30页
C语言课后习题参考答案.docx_第20页
第20页 / 共30页
亲,该文档总共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,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

1,1,1,1,1

3,3,3,3,3

10001

01010

00100

01010

10001

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]);

printf("\n");

}

}

5.答:

#include"stdio.h"

main()

{

intlen;

charstr[20],*p=str;

printf("pleaseinputastring:

\n");

scanf("%s",str);

len=0;

while(*p!

='\0')

{

len++;

p++;

}

printf("thestringhas%dcharacters.\

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2