c语言程序设计教程第二版p82答案,c语言程序设计第二版第五章答案

本文目录一览:

C语言程序设计教程答案~有追加悬赏100分!

1 【C语言】《C语言程序设计教程(第二版)》习题答案

说 明

1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理

工大学出版社出版的,绿皮。

2 第1章 程序设计基础知识

一、单项选择题(第23页)

1-4.CBBC 5-8.DACA

二、填空题(第24页)

1.判断条件 2.面向过程编程 3.结构化 4.程序 5.面向对象的程序设计语言 7.有穷性 8.直到型循环 9.算法 10.可读性 11.模块化 12.对问题的分析和模块的划分

三、应用题(第24页)

2.源程序:

main()

{int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */

printf(“cock hen chick\n”);

for(i=1;i=20;i++)

for(j=1;j=33;j++)

for(k=1;k=33;k++)

if (i+j+k*3==100i*5+j*3+k==100)

printf(” %d %d %d\n”,i,j,k*3);}

执行结果:

cock hen chick

4 18 78

8 11 81

12 4 84

3.现计算斐波那契数列的前20项。

递推法 源程序:

main()

{long a,b;int i;

a=b=1;

for(i=1;i=10;i++) /*要计算前30项,把10改为15。*/

{printf(“%8ld%8ld”,a,b);

a=a+b;b=b+a;}}

递归法 源程序:

main()

{int i;

for(i=0;i=19;i++)

printf(“%8d”,fib(i));}

fib(int i)

{return(i=1?1:fib(i-1)+fib(i-2));}

执行结果:

1 1 2 3 5 8 13 21 34 55

89 144 233 377 610 987 1597 2584 4181 6765

4.源程序:

#include “math.h”;

main()

{double x,x0,deltax;

x=1.5;

do {x0=pow(x+1,1./3);

deltax=fabs(x0-x);

x=x0;

}while(deltax1e-12);

printf(“%.10f\n”,x);}

执行结果:

1.3247179572

5.源程序略。(分子、分母均构成斐波那契数列)

结果是32.66026079864

6.源程序:

main()

{int a,b,c,m;

printf(“Please input a,b and c:”);

scanf(“%d %d %d”,a,b,c);

if(ab){m=a;a=b;b=m;}

if(ac){m=a;a=c;c=m;}

if(bc){m=b;b=c;c=m;}

printf(“%d %d %d\n”,a,b,c);}

执行结果:

Please input a,b and c:123 456 789

789 456 123

7.源程序:

main()

{int a;

scanf(“%d”,a);

printf(a%21==0?”Yes”:”No”);}

执行结果:

42

Yes

3 第2章 C语言概述

一、单项选择题(第34页)

1-4.BDCB 5-8.AABC

二、填空题(第35页)

1.主 2.C编译系统 3.函数 函数 4.输入输出 5.头 6. .OBJ 7.库函数 8.文本

三、应用题(第36页)

5.sizeof是关键字,stru、_aoto、file、m_i_n、hello、ABC、SIN90、x1234、until、cos2x、s_3是标识符。

8.源程序:

main()

{int a,b,c;

scanf(“%d %d”,a,b);

c=a;a=b;b=c;

printf(“%d %d”,a,b);}

执行结果:

12 34

34 12

4 第3章 数据类型与运算规则

一、单项选择题(第75页)

1-5.DBACC 6-10.DBDBC 11-15.ADCCC 16-20.CBCCD 21-25.ADDBC 26-27.AB

二、填空题(第77页)

1.补码 2.±(10^-308~10^308) 3.int(整数) 4.单目 自右相左 5.函数调用 6.a或b 7.1 8.65,89

三、应用题(第78页)

1.10 9

2.执行结果:

11

12

1

5 第4章 顺序结构程序设计

一、单项选择题(第90页)

1-5.DCDAD 6-10.BACBB

二、填空题(第91页)

1.一 ;2. 5.169000 3.(1)-2002500 (2)I=-200,j=2500 (3)i=-200

j=2500 4.a=98,b=765.000000,c=4321.000000 5.略 6.0,0,3 7.3 8.scanf(“%lf%lf%lf”,a,b,c); 9. 13 13.000000,13.000000 10.a=a^c;c=c^a;a=a^c;(这种算法不破坏b的值,也不用定义中间变量。)

三、编程题(第92页)

1.仿照教材第27页例2-1。

2.源程序:

main()

{int h,m;

scanf(“%d:%d”,h,m);

printf(“%d\n”,h*60+m);}

执行结果:

9:23

563

3.源程序:

main()

{int a[]={-10,0,15,34},i;

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

printf(“%d\370C=%g\370F\t”,a[i],a[i]*1.8+32);}

执行结果:

-10℃=14°F 0℃=32°F 15℃=59°F 34℃=93.2°F

4.源程序:

main()

{double pi=3.14159265358979,r=5;

printf(“r=%lg A=%.10lf S=%.10lf\n”,r,2*pi*r,pi*pi*r);}

执行结果:

r=5 A=31.4159265359 S=49.3480220054

5.源程序:

#include “math.h”;

main()

{double a,b,c;

scanf(“%lf%lf%lf”,a,b,c);

if (a+bca+cbb+ca)

{double s=(a+b+c)/2;

printf(“SS=%.10lf\n”,sqrt(s*(s-a)*(s-b)*(s-c)));}

else printf(“Data error!”);}

执行结果:

4 5 6

SS=9.9215674165

6.源程序:

main()

{int a=3,b=4,c=5;float d=1.2,e=2.23,f=-43.56;

printf(“a=%3d,b=%-4d,c=**%d\nd=%g\ne=%6.2f\nf=%-10.4f**\n”,a,b,c,d,e,f);}

7.源程序:

main()

{int a,b,c,m;

scanf(“%d %d %d”,a,b,c);

m=a;a=b;b=c;c=m;

printf(“%d %d %d\n”,a,b,c);}

执行结果:

5 6 7

6 7 5

8.源程序:

main()

{int a,b,c;

scanf(“%d %d %d”,a,b,c);

printf(“average of %d,%d and %d is %.2f\n”,a,b,c,(a+b+c)/3.);

执行结果:

6 7 9

average of 6,7 and 9 is 7.33

9.不能。修改后的源程序如下:

main()

{int a,b,c,x,y;

scanf(“%d %d %d”,a,b,c);

x=a*b;y=x*c;

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

printf(“x=%d,y=%d\n”,x,y);}

6 第5章 选择结构程序设计

一、单项选择题(第113页)

1-4.DCBB 5-8.DABD

二、填空题(第115页)

1.非0 0 2.k==0

3.if (abs(x)4) printf(“%d”,x);else printf(“error!”);

4.if((x=1x=10||x=200x=210)x1)printf(“%d”,x);

5.k=1 (原题最后一行漏了个d,如果认为原题正确,则输出k=%。)

6. 8! Right!11 7.$$$a=0 8.a=2,b=1

三、编程题(第116页)

1.有错。正确的程序如下:

main()

{int a,b,c;

scanf(“%d,%d,%d”,a,b,c);

printf(“min=%d\n”,ab?bc?c:b:ac?c:a);}

2.源程序:

main()

{unsigned long a;

scanf(“%ld”,a);

for(;a;printf(“%d”,a%10),a/=10);}

执行结果:

12345

54321

3.(1)源程序:

main()

{int x,y;

scanf(“%d”,x);

if (x-5×0)y=x;

if (x=0x5)y=x-1;

if (x=5×10)y=x+1;

printf(“%d\n”,y);}

(2)源程序:

main()

{int x,y;

scanf(“%d”,x);

if(x10) if(x-5) if(x=0) if(x=5)y=x+1;

else y=x-1; else y=x;

printf(“%d\n”,y);}

(3)源程序:

main()

{int x,y;

scanf(“%d”,x);

if(x10) if(x=5)y=x+1;

else if(x=0)y=x-1;

else if(x-5)y=x;

printf(“%d\n”,y);}

(4)源程序:

main()

{int x,y;

scanf(“%d”,x);

switch(x/5)

{case -1:if(x!=-5)y=x;break;

case 0:y=x-1;break;

case 1:y=x+1;}

printf(“%d\n”,y);}

4.本题为了避免考虑每月的天数及闰年等问题,故采用面向对象的程序设计。

现给出Delphi源程序和C++ Builder源程序。

Delphi源程序:

procedure TForm1.Button1Click(Sender: TObject);

begin

edit3.Text:=format(‘%.0f天’,[strtodate(edit2.text) -strtodate(edit1.text)]);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit2.Text:=datetostr(now);

button1click(form1)

end;

C++ Builder源程序:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Edit3-Text=IntToStr(StrToDate(Edit2-Text)-StrToDate(Edit1-Text))+”天”;

}

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Edit2-Text=DateToStr(Now());

Button1Click(Form1);

}

执行结果:(运行于Windows下)

5.源程序:

main()

{unsigned a,b,c;

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

scanf(“%d %d %d”,a,b,c);

if(abca==ba==c)printf(“构成等边三角形\n”);

else if(a+bca+cbb+ca)

if(a==b||a==c||b==c)printf(“构成等腰三角形\n”);

else printf(“构成一般三角形\n”);

else printf(“不能构成三角形\n”);}

执行结果:

请输入三个整数:5 6 5

构成等腰三角形

6.源程序:

main()

{int x,y;

scanf(“%d”,x);

if(x20)y=1;

else switch(x/60)

{case 0:y=x/10;break;

default:y=6;}

printf(“x=%d,y=%d\n”,x,y);}

7.源程序:

main()

{unsigned m;float n;

scanf(“%d”,m);

if(m100)n=0;

else if(m600)n=0.06;

else n=(m/100+0.5)/100;

printf(“%d %.2f %.2f\n”,m,m*(1-n),m*n);}

执行结果:

450

450 429.75 20.25

8. 2171天(起始日期和终止日期均算在内)

本题可利用第4小题编好的程序进行计算。把起始日期和终止日期分别打入“生日”和“今日”栏内,单击“实足年龄”按钮,将所得到的天数再加上1天即可。

9.源程序:

#include “math.h”;

main()

{unsigned long i;

scanf(“%ld”,i);

printf(“%ld %d\n”,i%10,(int)log10(i)+1);}

执行结果:

99887

7 5

10.源程序:

main()

{unsigned long i;unsigned j[10],m=0;

scanf(“%ld”,i);

for(;i;){j[m++]=(i+2)%10;i/=10;}

for(;m;m–)i=i*10+j[m-1];

printf(“%ld\n”,i);}

执行结果:

6987

8109

(注:要加密的数值不能是0或以0开头。如果要以0开头需用字符串而不能是整数。)

7 第6章 循环结构程序设计

一、单项选择题(第142页)

1-4.BCCB 5-8.CBCA

二、填空题(第143页)

1.原题可能有误。如无误,是死循环 2.原题有误。如果把b=1后面的逗号改为分号,则结果是8。 3.20 4.11 5. 2.400000 6.*#*#*#$ 7.8 5 2 8.①d=1.0 ②++k ③k=n 9.①x=0 ②xamin

三、编程题(第145页)

1. 源程序:

main()

{int i=1,sum=i;

while(i101){sum+=i=-i-2;sum+=i=-i+2;}

printf(“%d\n”,sum);}

执行结果:

51

2.源程序:

main()

{double p=0,n=0,f;int i;

for(i=1;i=10;i++)

{scanf(“%lf”,f);

if (f0)p+=f; else n+=f;}

printf(“%lf %lf %lf\n”,p,n,p+n);}

3.源程序:

main()

{unsigned a;

scanf(“%ld”,a);

for (;a;printf(“%d,”,a%10),a/=10);

printf(“\b \n”);}

执行结果:

23456

6,5,4,3,2

4.源程序:

main()

{unsigned long a,b,c,i;

scanf(“%ld%ld”,a,b);

c=a%1000;

for(i=1;ib;i++)c=c*a%1000;

if(c100)printf(“0”);

if(c10)printf(“0”);

printf(“%ld\n”,c);}

执行结果:

129 57

009

5.略

6.原题提供的计算e的公式有误(前面漏了一项1)。正确的公式是e= 1 + 1 + 1/2! + 1/3! + … + 1/n! + …

(1)源程序:

main()

{double e=1,f=1;int n;

for(n=1;n=20;n++){f/=n;e+=f;}

printf(“e=%.14lf\n”,e);}

执行结果:

e=2.71828182845905

(2)源程序:

main()

{double e=1,f=1;int n;

for(n=1;f1e-4;n++){f/=n;e+=f;}

printf(“e=%.4f\n”,e);}

执行结果:

e=2.7183

7.源程序:

main()

{unsigned long a=0,b=1,c=0;int i,d;

scanf(“%d”,d);

for (i=1;i=(d+2)/3;i++)

printf(“%10ld%10ld%10ld”,a,b,(a+=b+c,b+=c+a,c+=a+b));}

本题还可以用递归算法(效率很低),源程序如下:

unsigned long fun(int i)

{return i=3?i:fun(i-1)+fun(i-2)+fun(i-3);}

main()

{int i,d; scanf(“%d”,d);

for(i=1;i=d;i++)

printf(“%10ld”,fun(i));}

执行结果:

15

1 2 3 6 11 20 37 68

125 230 423 778 1431 2632 4841

8.源程序:

main()

{int i;

for(i=1010;i=9876;i+=2)

if(i/100%11i%100%11i/10%100%11i/1000!=i%10i/1000!=i/10%10i/100%10!=i%10)printf(” %d”,i);}

执行结果:

1024 1026 1028 1032 1034 1036 …… …… 9874 9876

9.源程序:

main()

{int i,j,k;

printf(“apple watermelon pear\n”);

for(i=1;i=100;i++)

for(j=1;j=10;j++)

if((k=100-i-j)*2==400-i*4-j*40)

printf(“%4d%7d%9d\n”,i,j,k);}

执行结果:

apple watermelon pear

5 5 90

24 4 72

43 3 54

62 2 36

81 1 18

10.源程序:

#include “stdio.h”;

#define N 4 /* N为阶数,可以改为其他正整数 */

main()

{int m=N*2,i,j;

for(i=1;im;printf(“\n”),i++)

for(j=1;jm;

putchar(N-abs(i-N)=abs(j++-N)?’ ‘:’*’));}

如果把N值改为5,则执行结果如下:

*

***

*****

*******

*********

*******

*****

***

*

作者:宁西贯通 2006-5-7 23:41 回复此发言

——————————————————————————–

8 说明

注意:上面最后一题的输出结果应该是由星号组成的一个菱形,

9 第7章 数 组

一、单项选择题(第192页)

1-4.BBCC 5-8.AABA

二、填空题(第194页)

1.1

2

4

8

16

32

64

128

256

512

2. ①a[age]++ ②i=18;i26

3. ①break ②i==8

4. ①a[i]b[j] ②i3 ③j5

5. ①b[j]=a[j][0] ②b[j]a[j][k] 6.a[k++]=a[j]

三、编程题(第196页)

1.源程序:

main()

{int a[4][4],i,j,s=0;

for(i=0;i4;i++)

for(j=0;j4;j++)

scanf(“%d”,a[i][j]);

for(i=0;i4;i++)

for(j=0;j4;j++)

if(i==j||i+j==3)s+=a[i][j];

printf(“%d\n”,s);} /* 注:5×5矩阵不能照此计算! */

执行结果:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

68

2. 源程序:

main()

{int i,a[36];

a[0]=2;

for(i=1;i=29;i++)a[i]=a[i-1]+2;

for(;i=35;i++)a[i]=a[(i-30)*5+2];

for(i=0;i=35;i++)printf(“%d\t”,a[i]);}

执行结果:

2 4 6 8 10 12 14 16 18 20

22 24 26 28 30 32 34 36 38 40

42 44 46 48 50 52 54 56 58 60

6 16 26 36 46 56

3. 源程序:

#include “stdlib.h”

#include “time.h”

main()

{int a[30],i,m=0;

randomize();

for(i=0;i=29;i++)

{a[i]=rand();

if(ma[i])m=a[i];

printf(“%d\t”,a[i]);}

for(i=0;i=29;i++)if(a[i]==m)a[i]=-1;

printf(“\n—————–\n”);

for(i=0;i=29;i++)

if(~a[i])printf(“%d\t”,a[i]);

printf(“\n”);}

执行结果:

20679 29377 18589 9034 27083 4959 3438 5241 32278 23344

32499 29305 22340 5927 13031 2161 2583 31855 22977 14283

4851 22038 6992 11394 20887 27381 6293 18347 16414 10210

—————–

20679 29377 18589 9034 27083 4959 3438 5241 32278 23344

29305 22340 5927 13031 2161 2583 31855 22977 14283 4851

22038 6992 11394 20887 27381 6293 18347 16414 10210

4.源程序:

main()

{int i,n=0,b[16];

scanf(“%d”,i);

for(;i;i=1)b[n++]=i1;

for(;n;)printf(“%d”,b[–n]);}

执行结果:

9876

10011010010100

本题也可以不用数组。源程序如下:

#include “stdio.h”

main()

{int i,n;

scanf(“%d”,i);

for(n=16;n;n–)

{asm ROL i,1

putchar(i1|48);}

} /* ROL是循环左移的汇编指令 */

5. 源程序:

#include “stdlib.h”

#include “time.h”

#define M 5

#define N 6

main()

{int a[M][N],i,j,t[M];

randomize();

/*生成M行N列随机数*/

for(i=0;iM;printf(“\n”),t[i++]=0)

for(j=0;jN;j++)

printf(“%4d”,a[i][j]=random(50));

/*找出每行的最小数,t[M]是第M行的最小数所在的列数*/

for(i=0;iM;i++)

for(j=0;jN;j++)

if(a[i][t[i]]a[i][j])t[i]=j;

/*比较每个最小数在其所在的列上是否也是最小*/

for(j=0;jM;j++)

for(i=0;iM;i++)

{if(i==j)continue;

if(a[j][t[j]]a[i][t[j]])

{t[j]=-1;break;}

}

printf(“——————-\n”);

/*输出在行和列上均为最小的数*/

for(i=0;iM;i++)

if(t[i]!=-1)

printf(“a[%d,%d]=%d\n”,i,t[i],a[i][t[i]]);

}

执行结果:

13 19 13 20 0 1

20 41 6 16 35 30

3 5 37 8 23 15

6 36 24 29 18 1

1 5 28 21 46 34

——————-

a[0,4]=0

a[1,2]=6

a[3,5]=1

a[4,0]=1

6. 源程序:

#include “stdlib.h”

#include “time.h”

#define M 5

#define N 7

main()

{int a[M][N],i,j,t=0;

randomize();

for(i=0;iM;i++)

{a[i][N-1]=0;

for(j=0;jN-1;j++)

{printf(“%4d”,a[i][j]=random(91)+10);

a[i][N-1]+=a[i][j];}

printf(“%4d\n”,a[i][N-1]);}

for(i=1;iM;i++)

if(a[i][N-1]a[t][N-1])t=i;

if(t)for(j=0;jN;j++)

{i=a[0][j];a[0][j]=a[t][j];a[t][j]=i;}

printf(“—————–\n”);

for(i=0;iM;printf(“\n”),i++)

10 第7章 数 组

for(j=0;jN;j++)

printf(“%4d”,a[i][j]);

}

执行结果:

89 17 32 95 35 20 288

39 48 22 27 73 22 231

51 87 39 71 84 46 378

84 94 97 77 27 26 405

69 50 56 89 37 46 347

—————–

84 94 97 77 27 26 405

39 48 22 27 73 22 231

51 87 39 71 84 46 378

89 17 32 95 35 20 288

69 50 56 89 37 46 347

7. 源程序:

#include “stdlib.h”

#include “time.h”

#define M 5

#define N 6

main()

{int a[M][N],i,j;

struct data{int value,x,y;}max,min;

max.value=0;min.value=100;

randomize();

for(i=0;iM;printf(“\n”),i++)

for(j=0;jN;j++)

{printf(“%4d”,a[i][j]=random(100)+1);

if(max.valuea[i][j])

{max.value=a[i][j];max.x=i;max.y=j;}

if(min.valuea[i][j])

{min.value=a[i][j];min.x=i;min.y=j;}

}

printf(“—————–\n”);

i=a[0][N-1];a[0][N-1]=max.value;a[max.x][max.y]=i;

i=a[M-1][0];a[M-1][0]=min.value;a[min.x][min.y]=i;

for(i=0;iM;printf(“\n”),i++)

for(j=0;jN;j++)

printf(“%4d”,a[i][j]);

}

执行结果:

51 53 74 65 30 40

30 26 50 6 61 27

47 16 54 58 76 19

57 74 44 92 71 48

73 57 60 32 73 67

—————–

51 53 74 65 30 92

30 26 50 73 61 27

47 16 54 58 76 19

57 74 44 40 71 48

6 57 60 32 73 67

9. 源程序:

main()

{char s[255];int i,j,b=1;

printf(“Input a string:”);

scanf(“%s”,s);

i=strlen(s);

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

b=b(s[j-1]==s[i-j]);

printf(b?”Yes\n”:”No\n”);}

执行结果:

Input a string:level

Yes

10. 源程序:

main()

{char s[255],t,max=0,min=0,l,i;

printf(“Input a string(length4):”);

gets(s);

l=strlen(s);

for(i=0;il;i++)

{if(s[max]s[i])max=i;if(s[min]s[i])min=i;}

t=s[1];s[1]=s[max];s[max]=t;if(min==1)min=max;

t=s[l-2];s[l-2]=s[min];s[min]=t;

printf(“%s\n”,s);}

执行结果:

Input a string(length4):C++Builder

Cu+Beild+r

11. 源程序:

main()

{char m[13][10]={“****”,”January”,”February”,”March”,

“April”,”May”,”June”,”July”,”August”,”September”,

“October”,”November”,”December”};

int i,j,k,a,s,n;

printf(“Please input an integer(100..999):”);

scanf(“%d”,n);

printf(“%d:%d+%d+%d=%d, %d%%13=%d, %s\n”, n,i,j,k,s,s,a,m[a=((s=(i=n/100)+(j=n/10%10)+(k=n%10))%13)]);}

执行结果:

Please input an integer(100..999):539

539:5+3+9=17, 17%13=4, April

11 第8章 函 数

一、单项选择题(第241页)

1-5.BCCAA 6-10.CCDDD 11-15.ACACB

二、填空题(第243页)

1.看不出原题的意图。因为要计算1~n的累加和,n应是一个≥1的正整数。可是题目中却出现了n=0的情况。除非另加规定当n=0时1~n的累加和为0,或者把原题中的计算式改为计算0~n的累加和。据此猜测,原题应填为:①return(0) ②return(n+sum(n-1))

根据题意,如下程序较为合理:

int sum(int n)

{if(n=0)return(-1); /* -1是出错标志 */

else if(n==1)return(1);

else return(n+sum(n-1));}

2. ①return(1) ②return(n*facto(n-1))

三、编程题(第244页)

3.源程序:

main()

{int i,a,b,c;

for(i=100;i999;i++)

if((a=i/100)*a*a+(b=i/10%10)*b*b+(c=i%10)*c*c==i)

printf(“%d\t”,i);}

执行结果:

153 370 371 407

8.源程序(非递归算法):

#define P 13 /* P可以改为其他正整数 */

main()

{int a[P],r,c;

for(r=0;r=P;r++)

{a[r]=1;

for(c=r-1;c=1;a[c–]+=a[c-1]);

printf(“%*d”,(P-r)*3+1,a[0]);

for(c=1;c=r;printf(“%6d”,a[c++]));

printf(“\n”);}

}

执行结果:

(应该排列成一个三角形,是贴吧造成现在这个样子的,不是程序有问题)

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

1 7 21 35 35 21 7 1

1 8 28 56 70 56 28 8 1

1 9 36 84 126 126 84 36 9 1

1 10 45 120 210 252 210 120 45 10 1

1 11 55 165 330 462 462 330 165 55 11 1

1 12 66 220 495 792 924 792 495 220 66 12 1

1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1

9.源程序(递归算法):

#include “stdio.h”

void printOCT(unsigned long n)

{unsigned long i;

if(i=n3)printOCT(i);

putchar((n7)+48);}

main()

{unsigned long i;

scanf(“%ld”,i);

printOCT(i);}

执行结果:

1234567890

11145401322

本题也可以不用递归算法,源程序请参考第7章第三题4。

12 回复:【C语言】《C语言程序设计教程(第二版)》习题答案

但是不同时间印刷的版本课后题不太一样呢,象我们的是1999年12月第2版,2005年12月第69次印刷的。没有选择填空,应用题和楼主不知道有多少相同的,因为看不到原题。这个比较麻烦呢。

作者:210.77.204.* 2006-5-9 18:38 回复此发言

——————————————————————————–

13 回复:【C语言】《C语言程序设计教程(第二版)》习题答案

你对照一下主编和出版社,看看对吗?(见说明的第一条。)

我不是说叫你有问题另发帖子吗?

14 第9章 指 针

一、单项选择题(第276页)

1-5.DCDAC 6-10.CCABC 11-16.AABBB 16-20.DCDBD

二、填空题(第278页)

1.①int * ②*z

2.*p++

3.①’\0′ ②++

4.①q=p+1 ②qp+10 ③*qmax ④*qmin

三、编程题(第280页)

7.源程序:

main()

{int i=0;char c[20];

do{scanf(“%s”,c);i++;}

while(strcmp(c,”stop”));

printf(“%d\n”,i);}

执行结果:

This car ran form Nanyang

to Luoyang without a stop

10

9.源程序:

main()

{char s[255],c[255]={0};int i;

gets(s);

for(i=0;s[i];c[s[i++]]++);

for(i=0;i255;i++)

if(c[i])printf(“%c=%d\t”,i,c[i]);}

执行结果:

abcedabcdcd

a=2 b=2 c=3 d=3 e=1

谭浩强《c语言程序设计》P82页第一题第一问的答案(在《学习辅导》上)是不是给出的是错的

这时基本的利率公式,你可以查下数学书.我也觉得他错了。不可能是年在括号外面。他的意思是P 本金×5 ×(1+利率)这不是很下吓人吗?我1000块钱,存到银行5年以后变5千多,可能吗?你仔细看看他的括号视乎是没有用的,第三个边括号是印刷错误。我是这样觉得的。还有好多人说谭某的书启蒙实在不怎么样?建议看看其他书《c语言程序》,以及《c primer plus》.

谁有 c语言程序设计教程第二版答案 叶东毅主编

直接下载qq旋风和迅雷协来助下载,可以在百度或者搜狗浏览器里面搜索

c语言程序设计教程第二版答案 叶东毅主编,点击右键就可以下载需要的资源

C语言程序设计教程(第二版) 周宇 课后答案

二、 1. I love China! printf(“we are students.\n”) 2. 6 项目实训题参考答案 1.编写一个C程序,输出以下信息: * * * * * * * * * * * * * * * * * * * * I am a student! * * * * * * * * * * * * * * * * * * * * main() { printf(“********************\n”); printf(” I am a student!\n “); printf(“********************\n”); } 2222....已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。 解: main() { int a,b,c,v; a=10; b=20; c=15; v=a*b*c; printf(“v=%d”,v); } 本程序运行结果为: v=3000 第第第第2章章章章 编制编制编制编制C程序的基础知识程序的基础知识程序的基础知识程序的基础知识 一 选择题 C B A B A C C 二 操作题 2 21. 3,2,-8,2 3.000000,2.500000,-8.000000 2. ABC DE FGH why is 21+35 equal 52 3. 3 1 4 3 2 3 1 2 4. aa bb cc abc A N 项目实训题 1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。 #define M 5 main() { int n,c; n=2; c=M*n; printf(“%d\n”,c); } 2.编程求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7; (2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。 (1)main() { int a=7; float x=2.5,y=4.7; printf(“%f\n”,x+a%3*(int)(x+y)%2/4); } (2)main() { int a=2,b=3; float x=3.5,y=2.5; printf(“%f\n”,(float)(a+b)/2+(int)x%(int)y); 第三章第三章第三章第三章 顺序结构程序设计顺序结构程序设计顺序结构程序设计顺序结构程序设计 一 选择题 A C D C C 二 操作题 1. x=3,a=2,b=3 2. z=12.700000 3. 1 2 1 a 2 1 2 三三三三....编程题 编程题编程题编程题编程题 1. 某工种按小时计算工资,每月劳动时间(小时)×每小时工资=总工资,总工资中扣除10%公积金,剩余的为应发工资。编写一个程序从键盘输入劳动时间和每小时工资,打印出应发工资。 解: #include stdio.h main() { float sj,gz,yfgz; printf(“time,salary:”); scanf(“%f,%f”,sj,gz); yfgz=sj*gz*0.9; printf(“total salary:%f\n”,yfgz); } 本程序运行结果为: time,salary:4,3CR total salary:10.800000 2.编写一个程序求出任意一个输入字符的ASCII码 解: #include stdio.h main() { char c; printf(“Input a string:”); scanf(“%c”,c); printf(“%c ASCII is %d\n”,c,c); } 本程序运行结果为: Input a string:aCR a ASCII is 97 3、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付第四章第四章第四章第四章 选择结构程序设计选择结构程序设计选择结构程序设计选择结构程序设计 一、略 二、B B A B C B A 三、1. 1 0 2. 2 3 2 2 3. 10 20 0 4. ch=’A’ch=’Z’||ch=’a’ch=’z’ ch=’0’ch=’9’ ch==’ ’ 5. -1 四、上机操作 1. 从键盘输入一个英文字母,如果是大写字母,则将它变为小写字母输出;如果是小写字母,则将其变为大写字母输出。 #includestdio.h main() {char ch; ch=getchar(); if(ch=’A’ch=’Z’) ch+=32; else if(ch=’a’ch=’z’) ch-=32; putchar(ch); putchar(‘\n’); } 2. 根据输入的x值依据下列表达式,计算y的值。 2x (x-1) y = 3 (x=-1) 4+x (x-1) 解: main() { float x,y; scanf(“%f”,x); if(x-1) y=2*x; else if(x==1) y=3; else y=4+x; printf(“y=%f”,y); } 本程序运行结果为: -2CR y=2.000000 3.编写程序,输入一个整数,判断它是奇数还是偶数,若是奇数,输出“Is Odd“;若是偶数,输出“Is Even“。 main() { int x; scanf(“%d”,x); if(x%2==0) printf(“Is Even\n”); else printf(“Is Odd\n”); } 4.设计应用程序,求二次方程ax2+bx+c=0的解。 #includemath.h main() { float a,b,c,disc,x1,x2,p,q; scanf(“%f,%f,%f”,a,b,c); if(fabs(a)=1e-6) printf(” The equation is not a quadratic\n”); else { disc=b*b-4*a*c; if(fabs(disc) 1e-6) printf(“x1=x2=%8.4f\n”,-b/(2*a)); else if(disc1e-6) {x1=(-b+sqrt(disc)/(2*a)); x2=(-b-sqrt(disc)/(2*a)); printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2); } else { p=-b/(2*a); q=sqrt(-disc/(2*a)); printf(“%8.4f+%x8.4fi\n”,p,q); printf(“%8.4f-%8.4fi\n”,p,q);} } } 5555....按托运规则,行李不超过50公斤时,运费为0.15元/公斤,如超过50公斤,超过部分的运费为0.22元/公斤,现有行李w公斤,编写一个程序计算运费。 解: #include stdio.h main() { float w,f,x; printf(“weight:”); scanf(“%f”,w); if(w=50) x=0.15*w; else x=0.15*50+0.22*(w-50); printf(“money:%6.2f yuan\n”,x); } 本程序运行结果为: weight:20CR money:3.00 yuan weight:60CR money:9.70 yuan 6. 某商场给与顾客购物的折扣率如下: 购物金额200元 不打折 500元购物金额=200元 9折 1000元购物金额=500元 8折 购物金额=1000元 7.5折 输入一个购物金额,输出打折率、购物实际付款金额。 #includestdio.h main() { float x,y,realx; scanf(“%f”,x); if(x=0) { printf(“Error! You input a worry number!\n”); y=0;} else { if(x200) y=1.0; else if(x500) y=0.9; else if(x1000) y=0.8; else y=0.75;} if(y!=0) {realx=x*y; printf(“y=%f, the realx=%5.2f\n”, y,realx);} } 第五章第五章第五章第五章 循环结构程序设计循环结构程序设计循环结构程序设计循环结构程序设计 一、选择题 C C A A D D第六章第六章第六章第六章 数组数组数组数组 、选择题 D A D A A C C A D 二、程序阅读题 13 13 13 13 13 13第七章第七章第七章第七章 函数函数函数函数 一、选择题 B D C B B D A A D第第第第8888章章章章 指针指针指针指针 一、选择题 D A C C(D) D C D 二、填空题 1. m 2. 指针数组名 3. ABCDCD 4.49 5. 25

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/197112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-03 13:27
下一篇 2024-12-03 13:27

相关推荐

  • MQTT使用教程

    MQTT是一种轻量级的消息传输协议,适用于物联网领域中的设备与云端、设备与设备之间的数据传输。本文将介绍使用MQTT实现设备与云端数据传输的方法和注意事项。 一、准备工作 在使用M…

    编程 2025-04-29
  • Python3.6.5下载安装教程

    Python是一种面向对象、解释型计算机程序语言。它是一门动态语言,因为它不会对程序员提前声明变量类型,而是在变量第一次赋值时自动识别该变量的类型。 Python3.6.5是Pyt…

    编程 2025-04-29
  • Deepin系统分区设置教程

    本教程将会详细介绍Deepin系统如何进行分区设置,分享多种方式让您了解如何规划您的硬盘。 一、分区的基本知识 在进行Deepin系统分区设置之前,我们需要了解一些基本分区概念。 …

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Qt雷达探测教程

    本文主要介绍如何使用Qt开发雷达探测程序,并展示一个简单的雷达探测示例。 一、环境准备 在开始本教程之前,需要确保你的开发环境已经安装Qt和Qt Creator。如果没有安装,可以…

    编程 2025-04-29
  • 猿编程python免费全套教程400集

    想要学习Python编程吗?猿编程python免费全套教程400集是一个不错的选择!下面我们来详细了解一下这个教程。 一、课程内容 猿编程python免费全套教程400集包含了从P…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29
  • Python烟花教程

    Python烟花代码在近年来越来越受到人们的欢迎,因为它可以让我们在终端里玩烟花,不仅具有视觉美感,还可以通过代码实现动画和音效。本教程将详细介绍Python烟花代码的实现原理和模…

    编程 2025-04-29
  • 使用Snare服务收集日志:完整教程

    本教程将介绍如何使用Snare服务收集Windows服务器上的日志,并将其发送到远程服务器进行集中管理。 一、安装和配置Snare 1、下载Snare安装程序并安装。 https:…

    编程 2025-04-29
  • 学堂云Python语言程序设计答案

    学堂云Python语言程序设计是一门重要的计算机专业课程。它涵盖了Python语言及其应用,包括基础语法、函数、文件处理、数据结构、图形界面和网络编程等内容。在学习中,我们经常会需…

    编程 2025-04-29

发表回复

登录后才能评论