热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c语言程序设计教程课本答案,案例c语言程序设计课本答案

本文目录一览:1、C语言程序设计教程答案~有追加悬赏100分!

本文目录一览:


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


  • 2、c语言程序设计教程答案


  • 3、c语言程序设计教程 第四版 课后答案 (李丽娟).pdf


  • 4、跪求《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-5x0)y=x;

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

if (x=5x10)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语言程序设计教程答案

#includestdio.

void main()

{

    int x,y,z;

    float ave;

    printf("4,4,1:\n");

    scanf("%d,%d,%d",x,y,z);

    ave=(x+y+z)/3;

    printf("3:ave=%f",ave);

}

c语言程序设计教程 第四版 课后答案 (李丽娟).pdf

您要c语言程序设计教程

第四版

课答案

(李丽娟).pdf我已发送请按照步骤进行操作采纳我前进力记评采纳互相帮助c语言程序设计教程

第四版

课后答案

(李丽娟).pdf

跪求《C语言程序设计》课本习题答案!!!

习题1参考答案

一、选择题 1. A 2. D

二、填空题

1. BASIC、FORTRAN、AL_GOL60和COBOL 2. 8

3. 关键字

4. 编辑、编译、链接和运行

三、简答题 1.答:

(1)C语言具有结构化的控制语句。C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。

(2)C语言具有丰富的数据结构类型。C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。C语言还提供了与地址密切相关的指针类型。此外,用户还可以根据需要自定义数据类型。 (3)C语言具有丰富的运算符。C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。

(4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。

(5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。它既是成功的系统描述语言,又是通用的程序设计语言。 (6)C语言与汇编语言相比,可移植性好。

(7)功能强大。C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。现在许多系统软件都用C语言来描述,可以大大提高了编程效率。

2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。 3.答:

(1)操作系统的设计与实现。C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。


推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文介绍了如何在C#中启动一个应用程序,并通过枚举窗口来获取其主窗口句柄。当使用Process类启动程序时,我们通常只能获得进程的句柄,而主窗口句柄可能为0。因此,我们需要使用API函数和回调机制来准确获取主窗口句柄。 ... [详细]
  • Splay Tree 区间操作优化
    本文详细介绍了使用Splay Tree进行区间操作的实现方法,包括插入、删除、修改、翻转和求和等操作。通过这些操作,可以高效地处理动态序列问题,并且代码实现具有一定的挑战性,有助于编程能力的提升。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 本实验主要探讨了二叉排序树(BST)的基本操作,包括创建、查找和删除节点。通过具体实例和代码实现,详细介绍了如何使用递归和非递归方法进行关键字查找,并展示了删除特定节点后的树结构变化。 ... [详细]
  • 文件描述符、文件句柄与打开文件之间的关联解析
    本文详细探讨了文件描述符、文件句柄和打开文件之间的关系,通过具体示例解释了它们在操作系统中的作用及其相互影响。 ... [详细]
author-avatar
小甜甜小小郭
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有