线性代数课后习题答案文档格式.docx

上传人:b****6 文档编号:22266663 上传时间:2023-02-03 格式:DOCX 页数:17 大小:29.68KB
下载 相关 举报
线性代数课后习题答案文档格式.docx_第1页
第1页 / 共17页
线性代数课后习题答案文档格式.docx_第2页
第2页 / 共17页
线性代数课后习题答案文档格式.docx_第3页
第3页 / 共17页
线性代数课后习题答案文档格式.docx_第4页
第4页 / 共17页
线性代数课后习题答案文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

线性代数课后习题答案文档格式.docx

《线性代数课后习题答案文档格式.docx》由会员分享,可在线阅读,更多相关《线性代数课后习题答案文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

线性代数课后习题答案文档格式.docx

B

D

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

二、填空题

1.

255

2.

a/(b*c)

3.

4.

1.0

5.

x==0或(x==0)?

1:

6.

x<

-5||x>

7.

97或字符‘a’

8.

9.

2.5

10.

3.5

11.

12.

9,11,9,10

13.

a+=a;

24,a-=2;

10,a*=2+3;

60,a%=(n%=2);

0,a/=a+a;

0,a+=a-=a*=a;

0

14.

15.

习题3(参考答案)

1.编程实现:

用字符输入/输出函数输入3个字符,将它们反向输出。

参考代码(尽量运用本章所学知识)

#include<

stdio.h>

main( 

{charc1,c2,c3;

c1=getchar();

c2=getchar();

c3=getchar();

putchar(c3);

putchar(c2);

putchar(c1);

}

2.编程实现:

用格式输入/输出函数输入3个字符,将它们反向输出并输出它们的ASCII值。

scanf("

%c%c%c"

&

c1,&

c2,&

c3) 

;

printf("

%c%d,%c%d,%c%d"

c3,c3,c2,c2,c1,c1) 

3.变量k为float类型,调用函数:

scanf("

%d"

k);

不能使变量k得到正确数值的原因是:

中的格式控制类型与变量k的定义类型不匹配,应将%d改为%f.

习题4答案

选择题

1.B2.A3.B4.B5.C6.B

阅读程序,写结果

7.128.139.*0**2*

if(s>

=90)

m=4;

elseif(s>

=80)

m=3;

=70)

m=2;

=60)

m=1;

else

m=0;

11.输入4个整数a,b,c,d,编写程序,将它们按从大到小顺序输出。

#include<

main()

{inta,b,c,d,t;

%d%d%d%d"

&

a,&

b,&

c,&

d);

if(a<

b){t=a;

a=b;

b=t;

c){t=a;

a=c;

c=t;

d){t=a;

a=d;

d=t;

if(b<

c){t=b;

b=c;

d){t=b;

b=d;

if(c<

d){t=c;

c=d;

printf("

%4d%4d%4d%4d"

a,b,c,d);

12.据所输入的3条边长值,判断它们能否构成三角形,如能构成,再判断是等腰三角形、直角三角形还是一般三角形?

源程序:

#include"

math.h"

{floata,b,c,s,area;

%f%f%f"

c);

if((a+b>

c)&

&

(a+c>

b)&

(b+c>

a)&

(fabs(a-b)<

(fabs(a-c)<

(fabs(b-c)<

a))

{

if(a==b&

b==c)

等边三角形"

);

elseif(a==b||b==c||a==c)

等腰三角形"

elseif((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))

直角三角形"

elseprintf("

一般三角形"

}

elseprintf("

不能组成三角形"

13.输入一个整数,如果能被3,4,5同时整除,则输出“YES”,否则输出“NO”。

{intt,flag;

scanf("

%d"

t);

if(t%3==0&

t%4==0&

t%5==0)

YES"

else

NO"

14.输入年号,判断是否为闰年。

判别闰年的条件是:

能被4整除但不能被100整除,或者能被400整除。

{intyear;

inputtheyear:

"

year);

if(year%4==0&

year%100!

=0||year%400==0)

%disleapyear\n"

year);

else

printf("

%dis'

tleapyear\n"

15.编写程序。

根据以下函数关系,对输入的每个x值进行计算,并输出相应的y值。

x

y

x>

3x+10

1<

x≤10

x(x+2)

x≤1

x2-3x+10

{doublex,y;

%lf"

x);

if(x>

10)y=3*x+10;

elseif(x>

1)y=x*x+2*x;

elsey=x*x-3*x+10;

%lf\n"

y);

习题5答案

1.A2.A3.D4.C5.D

6.A7.D8.D9.B10.C

11.1-212.2013.***

14.2,4,6,8,10,15.46.00000016.852

17.利用近似公式

求π的值,直到最后一项的绝对值小于10-6为止。

math.h>

{doublepi=0,i=1,j=1,k;

do

{

k=i/j;

pi=pi+k;

i=-i;

j=j+2;

}while(fabs(k)>

1.0e-6);

piis%lf"

4*pi);

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

最大公约数:

用大数整除小数,得到余数1;

再用小数整除余数1,得到余数2;

再用余数1整除余数2,……直到余数为0。

最小公倍数:

两数相乘再除以最大公约数。

{intm,n,r,x,y;

scanf("

%d%d"

m,&

n);

x=m;

y=n;

if(m<

n){r=m;

m=n;

n=r;

while((r=m%n)!

=0)

{m=n;

n=r;

themaxcommondivisoris%d,themincommonmultipleis%d"

n,x*y/n);

19.从3个红球、5个白球、6个黑球中任意取出6个球,且其中必须有白球,编程输出所有可能的组合。

inti,j,k;

\nhongbaihei\n"

for(i=0;

i<

=3;

i++)

for(j=1;

j<

=5;

j++)

{k=6-i-j;

if(k>

=0)printf("

%3d%3d%3d\n"

i,j,k);

}

20.如果一个数等于其所有真因子(不包括该数本身)之和,则该数为完数。

例如:

6的真因子有1、2、3,且6=1+2+3,故6为完数。

求[2,1000]内的:

(1)最大的完数;

(2)完数数目。

{inta,i,m,number=0,max=0;

for(a=1;

a<

=1000;

a++)

{m=0;

for(i=1;

=a/2;

if(a%i==0)m=m+i;

if(m==a){number++,max=m;

numberis%d,maxis%d\n"

number,max);

 

习题6答案

1.C2.A3.A4.D5.A6.A7.C

8.B9.B10.C11.B12.B13.A14.D

15.C16.C17.C18.C19.A20.D21.B

22.B23.C24.A25.C26.D27.C28.D

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

1.72.123.94.8,175.56

6.8,87.369128.109.7

5

10.645411.30012.613.2

三、编程题(以下各题均用函数实现)

1.超级素数:

一个素数依次从低位去掉一位、两位……若所得的数依然是素数,如239就是超级素数。

试求100~9999之内:

(1)超级素数的个数;

(2)所有超级素数之和;

(3)最大的超级素数。

解:

(1)spn=30

(2)sps=75548(3)spm=7393

{inti,s=0,k=0,m,max=100;

for(i=9999;

i>

=100;

i--)

{m=i;

while(m>

1)

if(fun(m))m=m/10;

elsebreak;

if(m<

if(max<

i)max=i;

k++;

s=s+i;

超级素数的个数为:

%5d,所有超级素数之和为:

%5d,最大的超级素数为%5d\n"

k,s,max);

intfun(intn)

intk,i;

k=sqrt(n);

for(i=2;

=k;

if(n%i==0)break;

if(i>

=k+1)return1;

elsereturn0;

2.其平方等于某两个整数平方和的正整数称为弦数,例如因52=32+42,故5是弦数,求(121,130)这间的弦数个数以及最大和最小的弦数。

n=4max=130min=122

参考程序1(用函数方法实现):

intk,maxnum,minnum;

k=count(121,130);

maxnum=max(121,130);

minnum=min(121,130);

弦数的个数为:

%d,最大的弦数为:

%d,最小的弦数为:

%d\n"

k,maxnum,minnum);

intcount(intm,intn)

{inti,j,k,t=0,flag;

for(i=m;

=n;

{flag=0;

for(j=1;

i;

for(k=j;

k<

k++)

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

{

flag=1;

printf("

%4d,%4d,%4d\n"

j,k,i);

//显示出不重复的弦数的组合情况

if(flag==1)t++;

returnt;

intmin(intm,intn)

{inti,j,k,t=0;

最小的弦数为:

%4d\n"

i);

returni;

intmax(intm,intn)

for(i=n;

=m;

最大的弦数为:

3.有一个8层灯塔,每层所点灯数都等于该层上一层的两倍,一共有765盏灯,求塔底的灯数。

384

main()

inti,t;

t=fun(8);

8;

t=t*2;

t=%d\n"

t);

intfun(intm)

inti,j,n=1,sum;

=765;

{sum=i;

n=i;

m;

{n=n*2;

sum=sum+n;

if(sum==765)break;

4.编写程序,求

的结果。

4037913

参考程序1:

inti;

longs=0;

=10;

s=s+fun(i);

s=%ld\n"

s);

longfun(intn)

intj;

longt=1;

t=t*j;

参考程序2(递归算法):

longt;

if(n==1)t=1;

elset=n*fun(n-1);

5.已知y=

,其中,f(x,n)=1x2/2!

+x4/4!

(1)nx2n/(2n)!

(n≥0),当x=5.6,n=7时,求y的值。

0.007802

doublefun(doublex,intn)

{

inti,t=1,m=1;

doubles=1.0,w=1.0;

=2*n;

{

w=w*x;

t=t*i;

if(i%2==0)

{m=-m;

s=s+m*w/t;

returns;

doublex=5.6;

intn=7;

doublep,q,t,s;

p=fun(x,n);

q=fun(x+2.3,n);

t=fun(x-3.2,n+3);

s=p/(q+t);

%lf\n"

6.编写程序,求三个数的最小公倍数。

intfun(intx,inty,intz)

{intj,t,m,n;

j=1;

t=j%x;

m=j%y;

n=j%z;

while(t!

=0||m!

=0||n!

{j=j+1;

m=j%y;

n=j%z;

returnj;

intx1,x2,x3,j;

Inputx1x2x3:

"

%d%d%d"

x1,&

x2,&

x3);

x1=%d,x2=%d,x3=%d\n"

x1,x2,x3);

j=fun(x1,x2,x3);

Theminimalcommonmultipleis:

%d\n"

j);

7.已知:

,编写程序,求S的值。

例如,当k为10时,S的值应为:

1.533852。

doublefun(intk)

intn;

doubles,w,p,q;

n=1;

s=1.0;

while(n<

=k)

{w=2.0*n;

p=w-1.0;

q=w+1.0;

s=s*w*w/p/q;

n++;

%f\n"

fun(10));

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

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

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

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