admin管理员组

文章数量:1534891

2023年12月26日发(作者:)

c

语言程序设计教程第二版课后习题答

篇一:

c

语言程序设计教程

_李含光

_

郑关胜

_清华大学

出版社习题答案习题答案

[完美打印版

]】

1.单项选择题

(1)a

(2)c(3)d

(4)c

(5)b 2.填空题 (1)函数

(2)主函数(

main

) (3)

printf()

scanf()

2

章习题参考答案

1

.单项选择题

1-5 cbccc 6-10 cdcdc 11-13 dbb 2

.填空题

(1)1(2)26

(3)6

4

2

(4)10 , 6

(5)3.000000

(6) 双精度(

double

)(

7)9

(8)字母 ,数字 ,下划线(

9)

13.700000

(10)11(11)((

m/10

)%10

)*100+

(m/100

*10+m%10

(12)

0

(13)

10

,9

,11(15)

(x0y0)||(x0z0)||(y0||z0)

16

)double

(17)x==0

(18)

sqrt(fabs(a-b))/(3*(a+b))

19

sqrt((x*x+y*y)/(a+b))

3

章习题参考答案

1

.单项选择题

1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2

.填空题

(1)用;表示结束(

2){ }

(3

y=x0?1:x==0?0:-1

(4)

y%4==0y%100!=0||y%400==0

5)上面未配对(

6)

default

标号 (

7)while

do while

for

(8)do while

(9)本次(

10) 本层

3.阅读程序,指出结果

(1)yes

(2)*(3)abother

(4)28 70

(5)2,0(6)8(7)

36

(8)1(9)3,1,-1,3,1,-1(10)a=12

,y=12

(11)i=6

k=4

(12)1,-2 4

.程序填空

(1)x:y

u

:z

(2)m=n

m

=0

m=m/10

3)

teps , t*n/(2*n+1) , printf( n”“,%2*lsf )

4)

m%5==0

printf(

%nd”

,k)(

5)cx=getchar() , cx!=front , cx

(6)double s=0, 1.0/k , %lf

(7)s=0 , sgmin, 5

.编程题

(1).

#include stdio.h int main() {

double x,y; scanf(%lf,x); if(x1) y=x;

else if(x=1.0x10) y=2*x-11; else y=3*x-11;

printf(%lfn,y); return 0; }

(

2

).

#include stdio.h int main() { double x,y,z,min;

scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz) min=z;

printf(min=%lfn,min); return 0; }

(

3

).

#include stdio.h int main() { int y,m,d,flag,s=0,w,i;

scanf(%d%d%d,y,m,d); flag=(y%4==0y%100!=0||y%400==0); w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7; for(i=1;i=m;i++)

{ switch(i) {

case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case

4:s=90+d;break; case 5:s=120+d;break; case 6:s=151+d;break; case

7:s=181+d;break; case 8:s=212+d;break; case 9:s=243+d;break; case

10:s=273+d;break; case 11:s=304+d;break; case 12:s=334+d;break;

}

}

s=(w+s)%7; if(s==0) printf(

星期日

n); else printf(

星期

%dn,s); return 0; }

(4).

#include stdio.h int main() {

float p,r;

scanf(%f,p); if(p=10) r=p*0.1;

else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)

r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)

r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;

else if(p60p=100) r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015;

else if(p100) r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%fn,r); return 0; }

(

5).

#include stdio.h int main() { char c;

while((c=getchar())!=n) {

if(c=ac=z) c=c-32; putchar(c);

}

return 0; }

(

6

).

#includestdio.h int main() { int m,k=2;

printf(

输入一个正整数

:n); scanf(%d,m); while(km) if(m%k==0)

{

printf(%4d,k); m=m/k; } else k++; printf(%4dn,m); return 0; }

(

7

).

#includestdio.h int main() {

int a,n,s=0,p=0,i;

scanf(%d %d,n,a); for(i=1;i=n;i++) { p=p*10+a; s=s+p; }

printf(%dn,s); return 0; }

(

8

).

#includestdio.h int main()

{

int i,j,k; for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)

printf(%5d,100*i+10*j+k); return 0; }

(9) .

#includestdio.h #includemath.h int main() { float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b- 4)*b+3)*b)-6; do { x=(a+b)/2;

f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;

f1=f; }

}while(fabs(f)=1e-6); printf(%6.2fn,x); return 0; }

(10) .

#includestdio.h #includemath.h int main() { int n=2;

double eps,t,s=0,x;

scanf(%lf %lf,x,eps); t=x; s=t; while(fabs(t)=eps) { t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; } printf(%d,%lfn,n,s); return

0; }

(11) .

#includestdio.h int main() { unsigned long s,t=0,p=1;

scanf(%u,s); while(s!=0) {

if((s%10)%2!=0) { t=t+(s%10)*p; p=p*10; } s=s/10; } printf(%un,t); return 0; }

4

章习题参考答案

1

.单项选择题

1-5 dddbd 6-10 badcd 11-14 bdab 2

.填空题

(1)

2(2)嵌套, 递归

3)全局变量 , 局部变量 , 静态变量 , 动态变量

4

)auto , static , register , extern

5)外部变量(

6)编译 ,运行

3.阅

读程序,指出结果 (1)15(

2)

5(3)5,

4,3

(4)

i=5

i=2 i=2 i=4 i=2

(5)求水仙花数(

6)-5*5*5

(7)30

(8)

0 10 1 11 2 12

4.程序填空

(1)

float fun(float , float)

x+y,x-y, z+y,z-y

(2)

x

x*x+1

(3)

s=0 , a=a+b 5

.编程题

(1).

while(s!=0) #includestdio.h { unsigned int fun(unsigned int); p=p+s%10; int main() s=s/10; { } unsigned int

s; return p; scanf(%u,s); } printf(%un,fun(s));

2

).

return 0;

#includestdio.h } #includestdlib.h unsigned int fun(unsigned int

s) #includemath.h { void f1(float,float,float,float); unsigned

int p=0; void f2(float,float,float,float);

【篇二:《

c

语言程序设计》课后习题答案

(第四版

)谭浩

强】

t>1.1

什么是计算机程序

1

1.2

什么是计算机语言

1

1.3c

语言的发展及其特点

3

1.4

最简单的

c

语言程序

5

1.4.1

最简单的

c

语言程序举例

6

1.4.2c

语言程序的结构

10

1.5

运行

c

程序的步骤与方法

12

1.6

程序设计的任务

14 1-5 #include stdio.h

int main ( )

{ printf ( **************************nn); printf( very

good!nn);

printf ( return 0;

n);

}

1-6#include stdio.h

int main()

{int a,b,c,max; printf(please input a,b,c:n);

scanf(%d,%d,%d,a,b,c); max=a;

if (maxb) max=b;

if (maxc) max=c;

printf(the largest number is %dn,max); return 0;

}

2

章算法 —— 程序的灵魂

16

2.1

什么是算法

16

2.2

简单的算法举例

17

2.3

算法的特性

21

2.4

怎样表示一个算法

22

2.4.1

用自然语言表示算法

22

2.4.2

用流程图表示算法

22

2.4.3

三种基本结构和改进的流程图

26

2.4.4

n?s

流程图表示算法

28

2.4.5

用伪代码表示算法

31

2.4.6

用计算机语言表示算法

32

2.5

结构化程序设计方法

34

习题

36

第章最简单的

c

程序设计 —— 顺序程序设计

37

3.1

顺序程序设计举例

37

3.2

数据的表现形式及其运算

39

3.2.1

常量和变量

39

3.2.2

数据类型

42

3.2.3

整型数据

44

3.2.4

字符型数据

47

3.2.5

浮点型数据

49

3.2.6

怎样确定常量的类型

51

3.2.7

运算符和表达式

52

3.3c

语句

57

3.3.1c

语句的作用和分类

57

3.3.2

最基本的语句 —— 赋值语句

59

3.4

数据的输入输出

65

3.4.1

输入输出举例

65

3.4.2

有关数据输入输出的概念

67

3.4.3

printf

函数输出数据

68

3.4.4

scanf

函数输入数据

75

3.4.5

字符数据的输入输出

78

习题

82

3-1 #include stdio.h

#include math.h

int main()

{float p,r,n;

r=0.1;

n=10;

p=pow(1+r,n);

printf(p=%fn,p);

return 0;

}

3-2-1

#include stdio.h

#include math.h

int main()

{float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;

p=1000;

r5=0.0585;

r3=0.054;

r2=0.0468;

r1=0.0414;

r0=0.0072;

p1=p*((1+r5)*5);//

一次存

5

年期

p2=p*(1+2*r2)*(1+3*r3); //

先存

2

年期,到期后将本息再存

p3=p*(1+3*r3)*(1+2*r2); //

先存

3

年期,到期后年

3

将本息再存

p4=p*pow(1+r1,5); //

1

年期,到期后将本息1

年期,连 存活期存款。活期利息存再存 续存

5

p5=p*pow(1+r0/4,4*5); //

度结算一次

每一季

printf(p1=%fn,p1); //

输出按第

printf(p2=%fn,p2); //

1

方案得到的本息和

输出按第

printf(p3=%fn,p3);

2

方案得到的本息和

3

方案得到的本息和

//

输出按第

printf(p4=%fn,p4); //

输出4

方案得到的本息和

按第

printf(p5=%fn,p5); //

5

方案得到的本息和

输出按第

return 0;

}

3-2-2

#include stdio.h

int main()

{double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;

p=1000;

r5=0.0585;

r3=0.054;

r2=0.0468;

r1=0.0414;

r0=0.0072;

p1=p*((1+r5)*5);//

一次存

5

年期

p2=p*(1+2*r2)*(1+3*r3); //

先存

2

年期,到期后将本息再存

3

年期

p3=p*(1+3*r3)*(1+2*r2); //

先存

3

年期,到期后将本息再存

2

年期

p4=p*pow(1+r1,5); //

1

年期,到期后将本息存再存

1

年期,连 续存

5

p5=p*pow(1+r0/4,4*5); //

存活期存款。活期利息每一季 度结算一次

printf(p1=%fn,p1);

输出按第

1

方案得到的// printf(p2=%fn,p2);

本息和 输出按第

2

方案// printf(p3=%fn,p3);

得到的本息和 输出按第

// printf(p4=%fn,p4);

3

方案得到的本息和 输// printf(p5=%fn,p5);

出按第

4

方案得到的本// return 0;

息和 输出按第

5

方案得}

3-2-3

#include stdio.h #include math.h int main()

{float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;

p=1000;

r5=0.0585;

r3=0.054;

r2=0.0468;

r1=0.0414;

r0=0.0072;

p1=p*((1+r5)*5);//

一次存

5

年期

p2=p*(1+2*r2)*(1+3*r3); //

先存

2

年期,到期后将本息再存

3

年期

p3=p*(1+3*r3)*(1+2*r2); //

先存

3

年期,到期后将本息再存

2

年期

p4=p*pow(1+r1,5); //

1

年期,到期后将本息存再存

1

年期,连

续存

5

p5=p*pow(1+r0/4,4*5);

存活期存款。活期利息//

度结算一次

每一季

printf(p1=%10.2fn,p1); //

输出按第

printf(p2=%10.2fn,p2); //

输出1

方案得到的本息和

按第

printf(p3=%10.2fn,p3); //

输2

方案得到的本息和

出按第

printf(p4=%10.2fn,p4); //

输出按第

printf(p5=%10.2fn,p5);

3

方案得到的本息和

4

方案得到的本息和

//

输出按第

return 0;

}

3-3.

#include stdio.h

#include math.h

int main()

{float d=300000,p=6000,r=0.01,m; m=log10(p/(p-d*r))/log10(1+r);

printf(m=%6.2fn,m);

return 0;

}

3-4

#include stdio.h?

int main()

{int c1,c2;

c1=197;

c2=198;

printf(c1=%c,c2=%cn,c1,c2); printf(c1=%d

c2=%dn,c1,c2);

return 0;

}

3-5

#include stdio.h

int main()

{int a,b;

float x,y;

char c1,c2;

scanf(a=%d b=%d,a,b); scanf(%f %e,x,y);

scanf(%c%c,c1,c2);

printf(a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn,a,b,x,y,c1,c2);

return 0;

}

3-6

#include stdio.h

int main()

{char c1=c,c2=h,c3=i,c4=n,c5=a;

c1=c1+4;

c2=c2+4;

c3=c3+4;

c4=c4+4;

c5=c5+4;

printf(passwor is %c%c%c%c%cn,c1,c2,c3,c4,c5); return 0;

}

3-7

#include stdio.h

int main ()

{float h,r,l,s,sq,vq,vz;

float pi=3.141526;

printf(

请输入圆半径

r,圆柱高

h∶

);

scanf(%f,%f,r,h);//

要求输入圆半径

r

和圆柱高

hl=2*pi*r; //

计算圆 周长

l

【篇三:

c

语言程序设计教程课后习题答案】

txt>

第一章

c

语言程序设计概述

-习题答案

1

算法的描述有哪些基本方法?

1、自然语言

2、专用工具

c

语言程序的基本结构是怎样的?举一个例子说明

1、

c

语言程序由函数构成;

2、“

/*

与”“*/之”间的内容构成

c

语言程序的注释部分;

3

、用预处理命令

#include

、#define

可以包含有关文件或预定义信 息;

4

、大小写字母在

c

语言中是有区别的;

5

、除

main()

函数和标准库函数外,用户也可以自己编写函数,应 用程序一般由多个函数组成,这些函数指定实际所需要做的工作。

c

语言有什么特点?

1

、具有结构语言的特点,程序之间很容易实现段的共享;

2

、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,

独立地编译代码,以实现程序的模块化;

3

、运算符丰富,包含的范围很广;

4

、数据类型丰富;

5

、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语 言的大部分功能;

6

、限制不太严格,程序设计自由度大,这样使

c

语言能够减少对程 序员的束缚;

7

、生成的目标代码质量,程序执行效率高,同时

c

语言编写的程序

的可移植性好。

4

★指出合法与不合法的标识符命名

5

说明下列

turbo c

热键的功能。

f2:

源文件存盘

f10:

调用主菜单

f4:

程序运行到光标所在行(用于调 试程序)

ctrl+f9:

编译并链接成可执行文件

alt+f5:

将窗口切换到

dos

下,查看程序运行结果。

说明下列

turbo c

方式下输入并运行下列程序,记录下运行结果。

main()

{printf(**

n);

printf( welcome you n);

printf( very good n);

printf(

n);

}

②main()

{ int a,b,c,t;

printf(please input three numbers;); scanf(%d,%d,%d,a,b,c); /*

教材

s

是错误的

*/

t=max(max(a,b),c);

printf(max number is:%dn,t);

int max(int x, int y)

{ int z;

if(xy)z=x;

else z=y;

return(z);

}}

答 运行结果:

welcome you

very good

运行结果:

please input three numbers;3,1,4 /*

左侧下划线内容为键盘输入

*/

max number is:4

7

一个

c

程序是由若干个函数构成的,其中有且只能有一个___函 数。

main()

8

turbo c

环境下进行程序调试时,可以使用

run

下拉菜单的__ _命令或按___键转到用户屏幕查看程序运行结果。

1、

user screen

2、alt+f5

9

★c

语言对标识符与关键字有些什么规定?

1

、标识符用来表示函数、类型及变量的名称,它是由字母、下划线 和数字组成,但必须用字母或下划线开头。

2

、关键字是一种语言中规定具有特定含义的标识符,其不能作为变 量或函数名来使用,用户只能根据系统的规定使用它们。

10

c

源程序输入后是如何进行保存的?

是以

c

为扩展名保存的纯文本文件。

第二章

c

语言程序的基本数据类型与表达式 -习题答案

1

★指出下列常数中哪些是符合

c

语法规定的。

请找出下列程序中的错误,改正后写出程序运行结果。

void main()

{int x,y=z=5,aver;

x=7

aver=(x+y+z)/3

printf(aver=%dn,aver);

}

void main()

{ char c1=a;c2=b;c3=c;

int a=3.5,b=a

printf(a=%db=endn,a,b);

printf(a%cb%cbc%ctabcn,c1,c2,c3);

main()

{int x,y=5,z=5,aver;

x=7;

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

}

printf(aver=%dn,aver);

}

运行结果:

aver=5

②main()

{ char c1=a, c2=b, c3=c;

int a=3,b=a;

printf(a=%d,b=%cendn,a,b);

printf(a%cb%cbc%ctabcn,c1,c2,c3);

}

运行结果:

a=3,b=aend aabcc abc

3

写出下列赋值的结果,表格中写了数值的是要将它赋给其他类型的 变量,将所有的空格填上赋值后的数据(实数保留到小数点后两 位)。

int

99 -1 char h unsigned int

66 float

55.78 long int

68

int 99 104 66

55

68

-1 char c h b

本文标签: 语言程序函数结果