C语言课后习题答案_第1页
C语言课后习题答案_第2页
C语言课后习题答案_第3页
C语言课后习题答案_第4页
C语言课后习题答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

P15

一、选择题

1.B2.B3.A4.D5.C

二、填空题

1.输入及修改源程序

2..obj

3..exe

4.build

5.intc;"c=%d\n",c

三、编程题

1

#include"stdio.h"

main()

{

printf(Z/Thisismyfirstprogram!\n");

)

2

Sinclude“stdio.h"

main()

(

printf("请输入数据:”);

scanf(z/%d”,&a);

printf("输入的数据是的d\n”,a);

)

P33

一、选择题答案

l.D2.B3.D4.B5.D6.D7.B8.B9.A10.A

二、填空题答案

1.2

2.120

3.1

4.963

5.21426384

o.寸寸寸寸寸寸寸寸寸寸寸寸寸寸寸寸寸寸寸寸

0

7.3

8.54321

9.100,2021

10.(year%4==0&&year%100!=0)||year%400==0

leap==l

作业:P42

一、选择题答案

1.C2.A3.D4.B5.C

二、填空题

1.12060

2.23451

3.(i+l)%4==0

4.j

n%base

n/base

j=i;j>=l;j-

4、试编写一个程序,其功能是:从键盘输入一个整数,

输出这个数的每位数字之和。例如:输入245789,输出35。

Sincludez,stdio.h〃

main()

(

inta,k,sum=0;

printf(〃请输入一个整数:〃);

scanf(〃%d〃,&a);

while(a)

(

k=a%10;

sum=sum+k;

a=a/10;

)

printf(z/sum=%d\nz,,sum);

6、试编写一个程序,其功能是:从键盘输入一个整数y,然后再输入y个整数,

存入数组中,然后在数组中找出最小数,与第一个数互换位置,在数组中找出最

大数,与最后一个数互换位置,然后将数组输出。例如:输入6238978-2-9

-67,输出-672378-2-989。

ttinclude"stdio.h〃

main()

(

inta[10],y,i,max_i,min_i,t;

printf(〃输入y的值(y<10):〃);

scanf&y);

a[O]=y;

printf(〃输入数组的y个元素的值:〃);

for(i=l;i〈=y;i++)

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

max_i=min_i=l;

for(i=2;i<=y;i++)

if(a[i]<a[min_i])min_i=i;

t=a[l];a[l]=a[min_i];a[min_i]=t;

for(i=2;i<=y;i++)

if(a[i]>a[max_i])max_i=i;

t=a[y];a[y]=a[max_i];a[max_i]=t;

for(i=l;i<=y;i++)

printf("%5d〃,a[i]);

)

5、试编写一个程序,其功能是:从键盘输入两个整数,输出这个两个数之间的

非素数之和。例如:输入2030,输出223(223=20+21+22+24+25+26+27+28+30)。

Sinclude〃stdio.h〃

main()

(

intm,n,i,s=0,j;

printf(〃请输入两个整数:〃);

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

for(i=m;i<=n;i++)

for(j=2;j<i;j++)

if(i%j==O)

{

s+=i;break;

}

printf(,,s=%d\n//,s);

)

选择题P73答案:

P721.A2.C3.D4.C5.A6.D7.B8.A9.C10.D

填空题P73

1.%d%f%s

2.8646

3.”作3d)%8dT3d",&a,&b,&c

4.%09.2f

5.%.2f

选择题答案:

P821-5DABCB6.B7.A8-12AABAC

P1001-5DBABB

填空题答案:

P83

1.-162.263.3.5000004.1

5.x>10&&x<=20||x<0

6.3,727.1,0,48.a,145

填空题答案:P101

1、整型、枚举型和字符型2、表达式的值与CASE后面表达式的值均不相同时,

执行DEFAULT后面的语句。

3、跳出switch语句的执行4、break只能用switch语句或循环语

句,continue语句只能用在循环体中

5、break是结束本层循环,continue是结束本次循环

6、外层循环的执行次数与内层循环的执行次数的积

7.138.break9.continue10.&acontinuecount++

11.1345

12.#&&&&#

#&&&#

#&&#

#&#

##

P1036.求两数的最大公约数和最小公倍数。

方法一:

#include"stdio.h"

main()

{

inta,b,m,n,i;

printf(“请输入两个整数:〃);

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

if(a>b)

{m=a;n=b;}

else

{n=a;m=b;}

for(i=n;i>0;i-)

if((m%i==0)&&(n%i==0))break;

printf("最大公约数=%(3,最小公倍数=%d\n",i,m*n/i);

)

方法二:

#include"stdio.h"

main()

(

inta,b,m,n,i;

printf(“请输入两个整数:”);

scanf(,/%d%d/z,&a,&b);

if(a>b)

{m=a;n=b;}

else

{n=a;m=b;}

for(i=m;i<=m*n;i++)

if((i%m==0)&&(i%n==0))break;

printf(〃最大公约数二%d,最小公倍数二%d\n〃,m*n/i,i);

)

方法三:

#include"stdio.h〃

main()

(

inta,b,m,n,r=l;

printf(〃请输入两个整数:〃);

scanf(〃%d%d〃,&a,&b);

if(a>b)

{m=a;n=b;}

else

{n=a;m=b;}

while(r)

(

r=m%n;

m=n;

n=r;

)

printf(〃最大公约数二%d,最小公倍数二%d\n〃,m,a*b/m);

)

P103

10.搬砖问题:36人搬36块砖,男搬4块,女搬3块,两个小孩搬一块砖,要

求一次全搬完,问男、女、小孩各需要多少人?

Sinclude"stdio.h〃

mainO

{

intx,y,z;

for(x=0;x<9;x++)

for(y=0;y<12;y++)

z=36-x-y;

if(4*x+3*y+z/2=36&&z%2==0)

printf(〃男%d,女%d,小孩%d\nz,,x,y,z);

)

选择题:P117

1-9BCDBADCDB

1、1810

2、1

3、LBLMNP

4、mo

5、SW*

6、Sun:3

Moon:4

7、min=-2,row=2,col=l

8、600

9、t*M

10、7078

9198

11、(1)str[0](2)s

12、j=2;j>=0;j—

P121

三、1.

#include<stdio.h>

voidmain()

{

inti,j,a[2][3],b[3][2];

printf("请给数组a输入6个整数:\n");

for(i=0;i<2;i++)

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

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

for(i=0;i<2;i++)

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

b[j][i]=a[i][j];

for(i=0;i<3;i++)

(

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

printf("%-4d”,b[i][j]);

printf("\rT);

)

)

2.Winclude<stdio.h>

voidmain()

{

inti,j,a[4][5],sum[4]={0};

intmax,min,max_row=0,min_row=0,temp;

printf("请给数组a输入20个整数:\n");

for(i=0;i<4;i++)

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

{scanf(z,%d/z,&a[i][j]);sum[i]=sum[i]+a[i][j];}

max=min=sum[O];

for(i=0;i<4;i++)

(

if(max<sum[i])

{max=sum[i];max_row=i;}

if(min>sum[i])

{min=sum[i];min_row=i;}

)

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

(

temp=a[max_row][j];

a[max_row][j]=a[min_row][j];

a[min_row][j]=temp;

)

for(i=0;i<4;i++)

(

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

printf(〃%-4d〃,a[i][j]);

printf(〃\n〃);

)

选择题答案:P143

l.B2.D3.D4.A5.A6.A7.B8.A9.A10.D11.C12.A

1.10,20,40,402.A+B=93.84.1255.156.5,25

7.1!=1

2!=2

3!=6

4!=24

5!=120

8.7899.3110.j++

11.(1)n=k*k;(2)continue;(3)break;

(4)n/10%10;(5)(x-z)

12.2413.11110

14.(1)n%i==0(2)m*10+n%10;(3)P(convert(i))

P149三、

1.

Sinclude<stdio.h>

intsum(intx,inty,intz)

returnx*100+y*10+z;

voidmain()

{

inta,b,c;

for(a=l;a<=9;a++)

for(b=l;b<=9;b++)

for(c=0;c<=9;c++)

if(sum(a,b,c)+sum(b,c,c)==1334)

printf(,,a=%d,b=%d,c=%d\n,/,a,b,c);

)

pl73

1-11BDDACBCDAAA

二、填空题答案:p1751-16

1.12342.Ab3.10

4.67895.6116.ga

7.Afgd8.69.1357911131517192123252729

10、*p>*s11、*++p

12、(-1)*sn&s,n

13、*strtt,a

14、*q++=*p*cF'\0'

15、*(pa+i)average/naver(a,5)

16、*a++=*b++

P194

一、选择题

1-6ADBDDA

二、填空题

1.99112.Sundef3.#4.#elif#ifdef

5,调试移植

三、

1.#defineLEAP(n)(n)%4==0&&(n)%100!=0||(n)%400==0

2.#defineREMAINDER(a,b)a%b

3.#defineSWAP(a,b)(t=a;a=b;b=t)

、选择题答案:p2111-4CACC5.ACD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论