C語言程序設(shè)計(jì)課后答案羅朝盛_第1頁
C語言程序設(shè)計(jì)課后答案羅朝盛_第2頁
C語言程序設(shè)計(jì)課后答案羅朝盛_第3頁
C語言程序設(shè)計(jì)課后答案羅朝盛_第4頁
C語言程序設(shè)計(jì)課后答案羅朝盛_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第1章習(xí)題參考答案

I.(略)

2判斷題

12345

VXJXV

3填空題

(1)main

(2)函數(shù)的首部、函數(shù)體

⑶{、}

(4)inaiiHiiuiin

(5)語句、分號(;)

4選擇題

12345

CCCAB

5選擇題

(1)

#include<stdio.h>

main()

(

inta,b,s;

floatt;

printfC'EnterA,B=?\nu);

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

s=a+b:

t=a*b:

printf(,,s=%d,t=%f\n",s,t);

}

(2)

#include<stdio.h>

main()

printf("=================\n");

printfC1'Hello!\n");

printf(uHowdoyoudo\n");

,,

printf(=================\n");

(3)

#include<stdio.h>

main()

{

intr,h;

floatv;

printf("EnterR.H=?\n");

scanf("%d%d",&r,&h);

v=3.l4l5926*r*r*h;

printf("v=%f\nn,v);

第2章習(xí)題參考答案

(略)

二.填空題

(1)a+---------

b+—-—

y/lab

(2)2.5

(3)16

(4)10

(5)16、16、11

(6)4、10、6

(7)18、3、3

(8)sin(65*3.14/180)+2*(3.1415926+exp(y))/(x-y)

(9)25、25

(10)27

(11)4

(12)0

三、選擇題

123456789101112

DDCBDADBCDAB

四、編程題

#include<stdio.h>

main()

intx,a,b,c;

printf("Enteraintgernumberx=?\n");

scanf("%d",&x);

a=x/IOO;

b=x%100/10;

c=x%10;

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

I

2.

#include<sldio.h>

main()

(

unsigneda,b.rl,r2,r3;

scanf("%u%u",&a,&b);

rl=a&b;

r2=a|b;

r3=aAb;

printf("rl=%u,r2=%u,r3=%u\n",rl,r2,r3);

getch();

3.

#include<stdio.h>

main()

{

floata,b,h,s;

scanf("%f%f?%f',&a,&b,&h);

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

printf("s=%f\n',s);

)

第3章習(xí)題參考答案

一、判斷題

123456

XXXVVX

2填空題

3語句

4表達(dá)式語句

5{}

6函數(shù)

7由“%”和格式字符

8&

9getchar()

1027,33,1b

11x(1)=23.14x(2)=-78.32

125+6

3程序閱讀題

1、

p=3.14

p=3.1416

p=3.14

p=3.1416

p=3.14

p=31416

2、

a--ASCII:97

a--ASCII:97

a--ASCII:97

4編程題

1、

#include<stdio.h>

main()

{

inta,b;

floatrl,r2;

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

r2=a+b;

rl=a*b/r2;

printf("rl=%O.2f,r2=%O.2f\n'\rl,r2);

)

2、

#include<stdio.h>

inain()

{

floatc,f;

printfClnputC=");

scanfC'%r,&c);

f=9.0/5*c+32;

prin(f(*,F=%f\n;f);

}

3、

#includc<stdio.h>

voidmain()

{

floatcl,c2,c3,ver,s;

printfC'lnputa,bandc:");

scanf("%f%f%f,&cl.&c2,&c3);

S=cl+c2+c3;

ver=s/3;

printf("totals=%f,ver=%f\n",s,ver);

第4章習(xí)題參考答案

1判斷題

123456

XXJJXJ

2選擇題

12345678

BBBBDABB

3程序閱讀題

(1)105

(2)a=8

(3)abcl23DEF

a

BBB

ccccc

DDDDDDD

(4)EEEEEEEEE

4程序填空題

(1)chch==)'count—count==0count>0

(2)div=ndiv——

(3)min:markmin=markmax=marksum+=niark

5編程題

(1)

#include<stdio.h>

voidmain()

{intx,y;

printf("EnlertheX,Y=?\n");

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

if(x>0&&y>0)

primf("(%d,%d)是第一像限\n",x,y);

elseif(x>0&&y<0)

printf("(%d,%d)是第四像限\n”,x,y);

elseif(x<0&&y>0)

printf("(%d,%d)是第三像限\n",x,y);

elseif(x<0&&y<0)

prin情("(%d,%d)是第二像限\r^,x,y);

elseif(x>0&&y==0)

prinlf("(%d,%d)在X軸正方向\n”,x,y);

elseif(x<0&&y==0)

printf("(%d,%d)在X軸負(fù)方向\n”,x,y);

elseif(x==0&&y>0)

printf("(%d.%d)在Y軸正方向\n”,x,y);

elseif(x==0&&y<0)

primf("(%d,%d)在丫軸負(fù)方向\n”,x,y);

else

p^iIHf("(%d,%d)為坐標(biāo)原點(diǎn)\n”,x,y);

(2)

#inckide<stdio.h>

#include<math.h>

main()

(

floata,b,c,x,s;

printf("Inpula,bandc:");

scanf("%f%f%r,&a,&b,&c);

if(a+b<=c||a+c<=b||b+c<=a)

printfC'ErrorJVn");

else{

x=(a+b+c)/2;

s=sqrt(x*(x-a)*(x-b)*(x-c));

printf(',area=%f\n",s);

I

)

(3)

程序代碼如下:

#include<stdio.h>

voidinain()

{floatsalary,tax;

intntax;

printf("\nPleaseenterasalary=");

scanf("%f',&salary);

ntax=salar)7500;

if(ntax>=10)ntax=l();

switch(ntax)

{case0:caseI:

tax=0;break;

case2:

tax=(salary-1000)*0.05;break;

case3:case4:

tax=500*0.05+(salary-l500)*0.1;break;

case5:casc6:

tax=500*0.05+1000*0.1+(salary-2500)*0.15;break;

case7:case8:case9:

tax=500*0.05+1000*0.1+1000*0.15+(salary-3500)*0.20;break;

case10:

tax=500*0.05+l000*0.1+1000*0.15+15OO*O.2O+(salary-5OOO)*O.3O;

}

printf("\nThetax=%10.2f\n",tax);

)

(4)方法一

#inckide<stdio.h>

#include<ma(h.h>

main()

inti=l;

floatt=-l,s=0;

do{

t=-t/i;

s=s+t;

i=i+l;

}while(fabs(t)>1e-6):

printf(,,s=%f\n',s);

}

方法二

#include<stdio.h>

voidmain()

(

inti=l,sign=l;

floatt=1.0,s=0.0;

while(1.0/t>le-6)

(

t=t*i;

s=s+sign/l;

i=i+I;

sign二-sign;

prin(f(1,s=%iAn',s);

)

(5)方法一:

#include<stdio.h>

main()

{

inri,a,h,e;

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

(

a=i/IOO;

b=i/l()%10;

c=i%10;

if(i==a*a*a4-b*b*b+c*c*c)printf("%d\n",i);

)

)

方法二:

#include<stdio.h>

voidinain()

(

inti,a,b,c;

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

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

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

{i=a*100+b*10+c;

if(i==a*a*a+b*b*b+c*c*c)prinif("%d\n",i);

}

1

(6)

#include<s(dio.h>

main。

{

inti,j;

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

(

for(j=l;j<=6-i;j++)putcharC');

for(j=l;j<=i*2-l;j++)

printf(n%c",65+i-l);

prinlf("'n”);

}

for(i=3;i>=l;i-)

{

for(j=1;j<=6-i;j++)putcharC');

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

prirnf("%c”,65+i-l);

printf("\n");

(7)

#include<stdio.h>

main()

{

inta,b,c;

fnr(a=O;a<=2(ha++)

for(b=0;b<=33;b++)

{

c=10O-a-b;

if(a*5+b*3+c/3.O==l()O)

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

)

)

(8)

#include<stdio.h>

#includc<math.h>

main()

floatx,xO,a;

scanf(H%f;&a);

x=a;

do{

xO=x;

x=2/3.O*xOia/(3*xO*xO);

|while(fabs(x-xO)>1e-6);

printf("x=%f\n'\x);

)

(9)

#inckide<stdio.h>

#include<inath.h>

main()

(

floatpi,piO:

inti=l

pi=2;

do{

piO=pi;

pi=pi*(2.0*V(2.0*i-l))*(2.0*i/(2.0*i+l));

i=i+I;

}while(fabs(pi-pi())>le-6);

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

(10)

#include<stdio.h>

voidmain()

{inti,j,s;

for(i=6;i<=1000;iii)

{S=l;

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

if(i%j==O)s+=j;

if(s==i)/*判斷是否是合數(shù)力

{printf("%d=r,,i);/*打印輸出合數(shù)及=1*/

for(j=2;j<=i/2;j++)/*打印輸出各因子*/

if(i%j==O)printf(,r+%d",j);

printf("\n");

(H)

#include<stdio.h>

#include<math.h>

voidmain()

{

intx,y,z,k;

k=sqn(2023);

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

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

for(z=0;z<=k;z-H-)

if(x*x+y*y+z*z==2()23)

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

第5章習(xí)題參考答案

1判斷題

123456789101112131415

JXJXXJXXXXXXXXX

2填空題

(1)32

(2)4

(3)strl[7]=W

(4)for(i=l;i<=6;i+-)gets(a[i]);

(5)strcpy(wcb,".com");

(6)int*p=a;

(7)5

(8)I

(9)*(p+6)或*(s+6)

3選擇題

I23456789101112131415

BCBABCBACDBDBAD

4程序閱讀題

(1)6

(2)str

(3)60

(4)bcdcfga

cdefgab

defgabc

(5)ale2

5程序填空題

(1)#include<math.h>scanf("%F‘,&a[i])s=0;x=a[01fabs(a[i]-s)

(2)scanf("%d'\&n)a[i][ij=la[i-i][j-l]printf("\n")

(3)b[i]!='\0'strcpyputs(b)

(4)p=al()];或p=&a[0][0];

六、編程題

1、使用數(shù)組和指針2種方法來解決。

方法一(使用數(shù)組)

#includc<stdio.h>

voidmain()

{inti=0,a[101,t;

printf("Enterthe1()number=\n");

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

scanf("%d'\&a[i]);

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

{t=a[i];a[i]=a[9-i];a[9-i]=t;}

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

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

printf("\n,');

)

方法二(使用指針)

#include<s(dio.h>

voidmain()

{inti=0,a[10],t,*p,*q;

printf("En(er(he10number=\n");

for(p=a;p<a+10;p++)

scanf("%d",p);

p=a;

q=a+9;

for(;p<q;p++,q-)

{t=*p;*p=*q:*q=t;}

for(p=a;p<a+10;p++)

prinlf("%d

printfCXn");

2、

#include<stdio.h>

main()

intij,I,n,a[ll]={0,1,2,3,4,5,6,7,8.9,IO};

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

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

printf("\n");

printfC'EntertheMoven=?");

scanf(,,%d';&n);

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

(

t=a[10];

for(j=9;j>=0j-)a|j+l]=a[j];

a[O]=t;

)

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

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

getch();

)

3、#include<stdio.h>

#include<stdlib.h>

main()

inta[100],b[100],i,j,p,n=0,t;

randomizeO;

for(i=0;i<l(X);i++)

(

ci[i]=random(100);

if(a[i]%2==0)b[n++]=a[i];

)

for(i=0;i<n-l;i++)

{

P=i;

for(j=i+l;j<n;j++)

if(b[j]>b[p])p=j;

t=b[p];b[p]=b[i];b[i]=t;

)

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

{

printf("%d",b[i]);

if(i%10==9)printfCXn");

I

getch();

}

#include<stdio.h>

#inckide<stdlib.h>

#defineN50

main()

(

inta[N],i,j,p,t;

randomizeO;

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

(

afi]=random(100);

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

if(alij==a[j])

{i-;

break;

)

}

for(i=0;i<N-l;i++)

(

P=i;

for(j=i+l;j<N;j++)

if(a[j]>a[p])p=j;

t=a[p];a[p]=a|i];a[i]=t;

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

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

if(i%IO==9)primf("\n');

1

}

4,

#inckide<stdio.h>

#defineN10

voidrnain()

(

inti;

floata[N],s=0.0,x0=0.0;

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

{scanf("%f',&a[i]);

x0+=a[il;

}

xO/=N;

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

s+=(a[i]-x0)*(a[i]-x0);

printf("%10.6f;s);

5,

#defineN4

#defineM3

voidmain()

{inti,j,sum,a[N][M+l],max,p;

printf("inputscorc\n");

for(i=0;i<N;i++)/*i代表學(xué)生序號*/

{sum=0;/*每位學(xué)生成績輸入前,其總成績賦初值0*/

for(j=();j<M;j++)/*j代表課程代號列

{scanfC'%d",&a[i][j]);/*輸入第i號學(xué)生第j門課程的成績*/

sum=sum+a[i][j];/*累加求總成績*/

J

a[iJlMJ=sum;/*求第i個學(xué)生的總成績放到

max=a[0][M];

P=O;

for(i=l;i<N;i++)/*查找總成績最高的學(xué)生*/

if(a[i][M]>max)p=i;

printf("No.%dTotalscore:%d\n",p+1,a[p][M]);

7、

#inckide<stdio.h>

voidmain()

inta[5][6];

inti,j,mi,mj;

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

for(j=0;j<6;jii)

{

prinlfC'inputa[%d][%d]:",i,j);

scanf(n%d",&a[i][jj);

}

mi=O;mj=O;

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

(

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

(

if(a[i][j]<a[mi][mj]){mi=i;mj=j;}

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

}

printfC'Xn");

I

printf("inin=%d",a[mi][mj]);

#include<sidio.h>

#include<math.h>

voidmain()

{

floata[5][6];

inti,j,max;

printf("Enterarraya=?\n");

for(i=0;i<5:i++)

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

scanf("%f'.&afi]fj]);

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

{max=a[il[()];

for(j=0;j<6;j++)/*查找第i行中絕充值最大的元素*/

if(fabs(a[i][j])>fabs(max))max=a[i][j];

forG=0;j<6;j++)/*第i行中所有元素除以絕對值最大的元素*/

printf("%8.4",a[i][j]);

}

prinlf("-----max=%8.4\n",max);

#include<stdio.h>

#include<string.h>

#defineN20

main()

(

charstr[N][l5],st[15],*p=st;

inti,j;

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

scanf("%s'\str[ij);

for(i=0;i<N:i++)

for(j=0;j<N-i-l;j++)

if(strcmp(str[jJ,str[j+1])>())

(

strcpy(p,str[j]);

strcpy(str(j],str[j+ll);

strcpy(str[j+|],p);

)

for(i=0;i<N:i++)

printf("%s\n",str[i]);

}

10、程序如下:

#include<stdio.h>

main()

inta[10],b[10],t;

intn=0,m=0,i.j.f;

prin(f("InpulArraya,endwith-1:");

scanf("%dn,&t);

vvhilc(n<10&&t!="l)

{a[n++]=t;scanf("%d",&t);}

prin(f("InpulArrayb,endwith-1:");

scanf("%d",&t);

while(m<10&&t!=-l)

{b[m++]=l;scanf("%d",&t);}

for(i=0;i<n;i++)/*打印只在數(shù)組a中出現(xiàn)的元素*/

(

f=l;

for(j=0;j<m:j++)

if(a[i]==b(j]){f=0;break;}

if(f)printf(M%d",a[i]);

)

for(i=0;i<m;i++)/*打印只在數(shù)組b中出現(xiàn)的元素*/

{

f=l;

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

if(b[i]==a[j]){f=0;break;}

if(f)prinlf("%d",b[i]);

11、

#include<stdio.h>

main()

(

charstr[81];

inti=-l;

printf("lnput:");

scanf(,,%s",str);

while(++i<80&&str[i]!='\0')

if(str[i]=='$1)str[i]='S';

puts(str);

)

12、

#include<stdio.h>

voidmain()

{charx[8O],y[26];inti,j,ny=O;

gcts(x);

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

if(xIil>='A'&&x[i]<=,Z,){

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

if(yU]==x[i])break;

if(j==ny){y[ny]=x[i];ny++;}

)

for(i=();i<ny;i++)

printf("%c",y[i]);

printf("\n");

)

13、

#inclnde<stdioh>

voidinain()

{intm,bin[32],j;

scanfC%d”,&m);

for(j=0;m!=0;j++)

(

bin[j]=m%2;

m=m/2;

)

for(:j!=0;j-)

printf("%d",bin[j-l]:l;

)

14、

#include<stdio.h>

#inckide<string.h>

#include<ctype.h>

voidmain()

{chars[80j;

inti=0;

gets(s);

while(s[i]!='\0')

if(isdigit(s[ij))strcpy(s+i,s+i+1);

elsei++;

puts(s);

)

15、

voidrnain()

(

inta,b,c;

int*pl,*p2,*p3,*t;

printf("\nPlcascinputthreeintcgcrs:\n");

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

p1=&a,p2=&b.p3=&c;

if(*pl>*p2)

t=pl,pi=p2,p2=t;

if(*pl>*p3)

(=pl,pl=p3,p3=t;

if(*p2>*p3)

t=p2,p2=p3,p3=t;

piintf("neworder:\n");

pnntf("%d,%d,%d';*p1?p2?p3);

}

16、

voidmain()

(

char.st[80J.ss[70],spl20J,*a=st,*h=ss,*t=sp;

inti,n,m,p=-l;

printf("\nPleaseinputtwostring:\n");

gets(a);gets(b);

n=strlen(a);

m=stilen(b):

for(i=0;i<=n-m+1;i++)

(

a=st+i;

strncpy(t,a,m);/*將字符指針a指向的字符串取前m個字符復(fù)制到t所指的字符串中

if(strcmp(b,()==O)

{p=i;

break;}

)

if(p==-1)

printf("%d",p);

else

printf("%d';p+l);/*因數(shù)組下標(biāo)從0開始,所以輸出p+l*/

gctch();

1

17、

#include<slring.h>

voidrnain()

(

charst[8O],*p=st,ch;

printf("Enterastring\n");

gets(p);

while(*p!-\0')

{ch=*p;

if(ch>='A'&&ch<=Z)

ch='A'+('Z,-ch);

elseif(ch>='a'&&ch<='z')

ch="a'+('z'-ch);

*p=ch;/*轉(zhuǎn)換后的字符替換原字符*/

p++;/*指針指向下一個字符字/

/*指針指向字符串首字符*/

p=st;

puts(p);

getch();

)

18、

#include<string.h>

voidmain()

(

charst[8O],*p=st,ch;

longk=O:

printf("Entcrastring\nu);

gets(p);

strupr(p);

while(*p!='\0,)

{ch=*p;

if(ch>='O'&&ch<='9'||ch>='A'&&ch<='F')

p++;

else

strcpy(p,p+1);/*濾去所有的非十六進(jìn)制字符*/

}

p=st;

while(*p!='\0')/*將十六制數(shù)轉(zhuǎn)換成十進(jìn)數(shù)*/

{ch=*p;

if(ch>='O'&&ch<='9')

k=16*k+(ch-,0,);

elseif(ch>='A'&&ch<='F')

k=l6*k+(10+ch-'A');

P++;

}

printf("%ld\n",k);

第6章習(xí)題參考答案

6判斷題

12345678910

XXJVXVXXXX

7選擇題

12345

cBACD

8填空題

(1)char*printch(int,char);

(2)intstrlen<char*);

(3)intmin(int*);

(4)intrandom<void);

(5)intdigits{double,int);

9程序閱讀題

(1)(127)10=(7F)16

(2)30

(3)a=64,b=64

(4)(3,6)

10程序填空題

(1)random(10)+'O's,N,ca[I]-'0z

(2)int*mx<v[k]v[k+l]

(3)sign=-ldigit=0digit=digit*10+(s[k]-'O')

(4)(1.1,2.2,3.3,4.4,5.5)floatx,floatintnreturny

11編程題

(1)

#include<stdio.h>

intjfnum(intn);

main()

{inti;

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

if(judge(i))printf(n%d\n",i);

}

intjudge(intn)

{intnl,n2,n3zflag;

if(n<100||n>999)printf("error!?');

else

{nl=n%10;

n2=(n/10)%10;

n3=n/100;

if(n==nl*nl*nl+n2*n2*n2+n3*n3*n3)flag=l;

elseflag=O;

}

return(flag);

)

(2)

floatmysqr(floata,floateps)

{floatxO,xl,t;

if(a<0)printf("error!u);

else

{xO=a/2.0;

do

{xl=(x3+a/x0)/2.0;

t=fabs(xl-xO);

x0=xl;

}while(t>eps);

)

return(xl);

)

(3)

voidcode(chars[],intn)

inti;

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

ifCA*<=s[i]&&s[1]<=*Z*11*<=s[i]&&s[i]<=,z)

{s[i]=s[i]+5;

if(s[i]>>zf||s[i]>>Z*&&s[i]<,a)

s[i]=s[i]-26;

}

}

voidrecode(chars[],intn)

{inti;

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

if(>AJ<=s[i]&&s[i]<=,Z'||'a'<=s[i]&&s[i]〈=,z')

{s[i]=s[i]-5;

if(s[i]<A1||s[i]<a&&s[i]yZ')

s[i]=s[i]+26;

}

)

(4)

intleapyear(intyear);

mainO

{intyear;

printf("Inputyearnumber:,z);

scanf(飛d”,&year);

if(leapyear(year)-1)printf(〃\n防disleapyear\n",year);

elseprintf("\n%disnotleapyear\n",year);

}

intleapyear(intyear)

if(year%4==0&&ycar%100]=0year%400==0)return(1);

elsereturn(0);

}

(5)

#include<stdio.h>

char*?parch(charcharc)

{intflag;

flag=0;

while(*s!=’\0')

{if(*s==c){flag=l;break;)

s++;

)

if(flag==l)return(s);

elsereturn(NULL);

)

(6)

#include<stdio.h>

voidmaxmin(inta,intb,intc,int*max,int*min);

main()

inta,b,c,max,min;

printf(〃\nPleaseinputthreeintegers:\n,/);

scan%d,/d”,&a,&b,&c);

maxmin(a,b,c,&max,&min);

printf(/,max=%d,min=%d”,max,min);

}

voidmaxmin(inta,intb,intc,int*max,int*min)

{if(a>b){*max=a;*min=b;}

if(c>*max)*max=c;

if(c<*min)*min=c;

)

(7)

#include<stdio.a>

#include<stdlib.h>

voidgetdata(inta[],intn);/*隨機(jī)生成數(shù)據(jù)函數(shù)的原型聲明*/

voidprintdata(inta[],intn);/*輸出數(shù)據(jù)函數(shù)原型聲明*/

voidsort(inta[],intn);/*排序函數(shù)原型聲明*/

floataverage(inta[]zintn);/*求平均值函數(shù)原型聲明*/

voidcount(inta[],intn,floatxzintb[]);/*記錄函數(shù)原型聲明”/

main()

{inta[20],b[3];

floatx;

getclatd(a,20);

printf(*'\nInitialize:\n'*);

printdata(a,20);

sort(a,20);

printf(n\nSort:\n");

printdota(□,20);

x=average(a,20);

printf(H\nAverage:%f\n",x);

count(a,20,x,b);

printf(n\n>=<:\nn);

printdata(b,3);

)

voidgetdata(inta[],intn)

{inti;

randomize();

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

a[i]=(rand()%90)+10;

)

voidprintdata(inta[]zintn)

{inti;

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

{if(i%5==0)printf(n\nu);

printf("Zd",a[i]);

)

voidsort(inta[],intn)

{inti,j,k,t;

for(i=0;i<n-l;i++)

{k-i;

for(j=i+l;j<n;j++)

if(a[k]>a[j])k=j;

t=a[i];

a[i]=a[k];

a[k]=t;

)

)

floataverage(inta[],intn)

{floats;

inti;

s=0.0;

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

s=s+a[i];

return(s/n);

)

voidcount(inta[],intn,floatx,intb[])

{inti;

b[0]=b[l]=b[2]=0;

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

if(a[i]>x)b[0]++;

elseif(a[i]==x)b[1]++;

elseb[2]++;

)

(8)

#include"stiing.h"

voidinvert(char*string)

{intn;

char*h,*t,c;

n=strlen(string);

h=string;

t=h+n-1;

while(h<t)

{c=*h;

*h=*t;

*t=c;

h++;

(9)

voidniystrcpy(char*s1,char*s2Jntm)

{s2=s2+m-l;

while(*s2!=,\0')

s2++;

*sl='\0';

(10)

intf(intn)

{if(n<0)printf("error");

else

{if(n==O)return0;

elseif(n==l)returnI;

elsereturnf(n-2)+f(n-l);

)

}

(11)

方法一、使用循環(huán)

#include"stdio.h"

#include"math.h'^

floatyx(floatx)

{floatyO,y1;

if(x<0)printf("error");

else

{yO=sqrt(x);

yl=sqrt(x+yO);

while(fabs(yl-y0)>0,00001)

{yO=yl;

yl=sqrt(x+yO);

}

)

returny1;

}

方法二:使用遞歸方法

#includc<stdio.h>

#include<math.h>

doublefunc(intxcount,doublex)/*xcount是根號的個數(shù)*/

{

doubley=0;

if(xcount==l)y=sqrt(x);

elsey=sqrt(func(xcount-i,x)+x);

returny;

voidmain()

intxcount;doubleresult.x;

scanf("%d%lf',&xcount,&x);

if(x<=0)/*x小于0犯錯*/

prin(f("DateError!");

else

printf(',%lf',func(xcount,x));

getch();

)

(12)

#include"stdio.h"

voidmaxa(inta[3][4]);

voidvcrsc(inta[3][4J);

voidmain()

{inti,j,a[3][4];

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

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

scanf(M%d",&a[i]|j]);

maxa(a);

verse(a);

getch();

voidmaxa(inta[3][4])

{inti,j,iniax=0,jmax=0;

for(i=0;i<3;iI?)

for(j=0:j<4;j++)

if(a[i][j]>a[imaxl[jmax]){imax=i;jmax=j;}

printf("Thcmaxnumberisa[%dj[%d]=%d\n",imax,jmax,alimaxj[jmax]);

}

voidverse(inta[3][4])

{inti,j,imax=0,jmax=0;

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

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

printf("%d';a[i][j]);

printf("\n");

}

)

第7章習(xí)題參考答案

1.判斷題

123456

VXXVXX

2.選擇題

123456

BBCDBA

3.填空題

(1)程序編譯之前

(2)#include"myhead.h"

(3)c=c-32

(4)2

(5)531

(6)z=0

4.編程題

(1)

#includc<stdio.h>

#defineRN(x)if(x%4=0&&x%100!=100||x%400==0)printf("YES");elseprintf("NO");

voidmain()

(

intn;

scanf("%d",&n);

RN(n)

)

(2)

#include<stdio.h>

#defineMIN(x,y,z)printf(',%d",(x<y?x:y)<z?(x<y?x:y):z);

voidrnain()

inta,b,c;

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

MIN(a,b,c)

)

(3)

#includc<stdio.h>

#defineINPUT(a,n)for(i=0;i<n;i++)scanf("%f\&a[i]);

#defineAVERAGE(a,n,ave)for(i=0;i<n;i++)ave+=a[i];

voidmain()

(

floata[5],ave=0;inti;

INPUT(a,5)

AVERAGE(a,5,ave)

printf("%『,ave/10);

}

第8章習(xí)題參考答案

1.思考題

(略)

2.判斷題:

123456

VXXX

3.選擇題

12345678

ADDBDADD

4.程序閱讀

(1)2,4,6,8,1(),。

(2)10987654321

(3)_Sheno

(4)18

(5)

I

5.程序填空

(1)p->next!=NULLinfop=p->next;

(2)pl->next!=NULLpO->next=pl;pO->next=NULL;

(3)s[k].avers[k].aver>s[maxsub].avermaxsub二k

(4)max=i;min=i;stud[max],name,stud[max],score

stud[min],name,stud[min],score

(5)headn++p->next

6.編程題

(1)

structcomplx{intreakintim;};

main()

{structcomplxcI,c2,c3;

scanf("%d+%di

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論