c语言第四章的答案

Python011

c语言第四章的答案,第1张

//如果是老谭的,你看看下面是否是你要的。

第三章 3.4

main()

{int a,b,c

long int u,n

float x,y,z

char c1,c2

a=3b=4c=5

x=1.2y=2.4z=-3.6

u=51274n=128765

c1='a'c2='b'

printf("\n")

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

printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z)

printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x)

printf("u=%6ld n=%9ld\n",u,n)

printf("c1='%c'or %d(ASCII)\n",c1,c1)

printf("c2='%c'or %d(ASCII)\n",c2,c2)

}

3.5

57

5 7

67.856400,-789.123962

67.856400,-789.123962

67.86 -789.12,67.856400,-789.123962,67.856400,-789.123962

6.785640e+001,-7.89e+002

A,65,101,41

1234567,4553207,d687

65535,177777,ffff,-1

COMPUTER, COM

3.6

a=3 b=7/

x=8.5 y=71.82/

c1=A c2=a/

3.7

10 20Aa1.5 -3.75 +1.4,67.8/

(空 3)10(空3)20Aa1.5(空1)-3.75(空1)(随意输入一个数),67.8 回车

3.8

main()

{float pi,h,r,l,s,sq,sv,sz

pi=3.1415926

printf("input r,h\n")

scanf("%f,%f",&r,&h)

l=2*pi*r

s=r*r*pisq=4*pi*r*r

sv=4.0/3.0*pi*r*r*r

sz=pi*r*r*h

printf("l=%6.2f\n",l)

printf("s=%6.2f\n",s)

printf("sq=%6.2f\n",sq)

printf("vq=%6.2f\n",sv)

printf("vz=%6.2f\n",sz)

}

3.9

main()

{float c,f

scanf("%f",&f)

c=(5.0/9.0)*(f-32)

printf("c=%5.2f\n",c)

}

3.10

#include"stdio.h"

main()

{char c1,c2

scanf("%c,%c",&c1,&c2)

putchar(c1)

putchar(c2)

printf("\n")

printf("%c%c\n",c1,c2)

}

第四章

4.3

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

4.4

main()

{int a,b,c

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

if(a<b)

if(b<c)

printf("max=%d\n",c)

else

printf("max=%d\n",b)

else if(a<c)

printf("max=%d\n",c)

else

printf("max=%d\n",a)

}

main() {int a,b,c,temp,max

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

temp=(a>b)?a:b

max=(c>temp)?c:temp

printf("max=%d",max)

}

4.5

main()

{int x,y

scanf("%d",&x)

if(x<1)y=x

else if(x<10)y=2*x-1

else y=3*x-11

printf("y=%d",y)

}

4.6

main()

{int score,temp,logic

char grade

logic=1

while(logic)

{scanf("%d",&score)

if(score>=0&&score<=100)logic=0

}

if(score==100)

temp=9

else

temp=(score-score%10)/10

switch(temp)

{case 9:grade='A'break

case 8:grade='B'break

case 7:grade='C'break

case 6:grade='D'break

case 5:

case 4:

case 3:

case 2:

case 1:

case 0:grade='E'

}

printf"score=%d,grade=%c",score,grade)

}

4.7 main()

{long int num

int indiv,ten,hundred,thousand,ten_thousand,place

scanf("%ld",&num)

if(num>9999) place=5

else if(num>999) place=4

else if(num>99) place=3

else if(num>9) place=2

else place=1

printf("place=%d\n",place)

ten_thousand=num/10000

thousand=(num-ten_thousand*10000)/1000

hundred=(num-ten_thousand*10000-thousand*1000)/100

ten=(num-ten_thousand*10000-thousand*1000-hundred*100)/10

indiv=num-ten_thousand*10000-thousand*1000-hundred*100-ten*10

switch(place)

{case 5:printf("%d,%d,%d,%d,%d\n",ten_thousand,thousand,hundred,ten,indiv)

printf("%d,%d,%d,%d,%d\n",indiv,ten,hundred,thousand,ten_thousand)

break

case 4:printf("%d,%d,%d,%d\n",thousand,hundred,ten,indiv)

printf("%d,%d,%d,%d\n",indiv,ten,hundred,thousand)

break

case 3:printf("%d,%d,%d\n",hundred,ten,indiv)

printf("%d,%d,%d\n",indiv,ten,hundred)

break

case 2:printf("%d,%d\n",ten,indiv)

printf("%d,%d\n",indiv,ten)

break

case 1:printf("%d\n",indiv)

printf("%d\n",indiv)

}

}

4.8

main()

{long i

float bonus,bon1,bon2,bon4,bon6,bon10

bon1=100000*0.1

bon2=bon1+100000*0.075

bon4=bon2+200000*0.05

bon6=bon4+200000*0.03

bon10=bon6+400000*0.015

scanf("%ld",&i)

if(i<=1e5)bonus=i*0.1

else if(i<=2e5)bonus=bon1+(i-100000)*0.075else if(i<=4e5)bonus=bon2+(i-200000)*0.05

else if(i<=6e5)bonus=bon4+(i-400000)*0.03

else if(i<=1e6)bonus=bon6+(i-600000)*0.015

else bonus=bon10+(i-1000000)*0.01

printf("bonus=%10.2f",bonus)

}

main()

{long i

float bonus,bon1,bon2,bon4,bon6,bon10

int branch

bon1=100000*0.1

bon2=bon1+100000*0.075

bon4=bon2+200000*0.05

bon6=bon4+200000*0.03

bon10=bon6+400000*0.015

scanf("%ld",&i)

branch=i/100000

if(branch>10)branch=10

switch(branch)

{case 0:bonus=i*0.1break

case 1:bonus=bon1+(i-100000)*0.075break

case 2:

case 3:bonus=bon2+(i-200000)*0.05break

case 4:

case 5:bonus=bon4+(i-400000)*0.03break

case 6:

case 7

case 8:

case 9:bonus=bon6+(i-600000)*0.015break

case 10:bonus=bon10+(i-1000000)*0.01

}

printf("bonus=%10.2f",bonus)

}

4.9

main()

{int t,a,b,c,d

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

if(a>b){t=aa=bb=t}

if(a>c){t=aa=cc=t}

if(a>d){t=aa=dd=t}

if(b>c){t=bb=cc=t}

if(b>d){t=bb=dd=t}

if(c>d){t=cc=dd=t} printf("%d %d %d %d\n",a,b,c,d)

}

4.10

main()

{int h=10

float x,y,x0=2,y0=2,d1,d2,d3,d4

scanf("%f,%f",&x,&y)

d1=(x-x0)*(x-x0)+(y-y0)*(y-y0)

d2=(x-x0)*(x-x0)+(y+y0)*(y+y0)

d3=(x+x0)*(x+x0)+(y-y0)*(y-y0)

d4=(x+x0)*(x+x0)+(y+y0)*(y+y0)

if(d1>1&&d2>1&&d3>1&&d4>1)h=0

printf("h=%d",h)

}

while (--lim >0 &&(c=getchar()) != EOF &&c!= '\n')

这一句的 --lim >0 // 这个是最大长度呀。这里是#define MAXLINE 1000 /* 定义接受输入的最大行数*/

--lim >0 // 对读取的总长度进行限制,以免访问数组越界。

(c=getchar()) != EOF // 是否读取到文件末尾,文件读完毕,即使没有读到最大长度也结束了。

c!= '\n') // 是否是换行,读取到换行也意味着结束。

这是《C Primer Plus》第四章编程练习(第六版)4.8.5的练习题:

参考代码如下:

#include <stdio.h>

int main(void){

float downloadSpeed,fileSize

printf("Please input your download speed(Mb/s):")

scanf("%f",&downloadSpeed)

printf("Please input you file size(Mb):")

scanf("%f",&fileSize)

printf("At %.2f megabits per second, a file of %.2f megabytes\n",downloadSpeed,fileSize)

printf("download in %.2f seconds.\n",fileSize*8/downloadSpeed)

}

执行结果如下: