当前位置:文档之家› c语言程序设计教程第二版课后习题答案

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

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

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(%lf\n,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=%lf\n,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( 星

期%d\n,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(%f\n,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(%4d\n,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(%d\n,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.2f\n,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,%lf\n,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 (%u\n,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(%u\n,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 ( **************************\n\n); printf( very

good!\n\n);

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 %d\n,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=%f\n,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 年期

将本息再存

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=%f\n,p1); // printf(p2=%f\n,p2); // printf(p3=%f\n,p3); // printf(p4=%f\n,p4); // printf(p5=%f\n,p5); // return 0; }

3-2-3

#include stdio.h #include math.h int main() p4=p*pow(1+r1,5); // 存 1 年期,到期后将本息存再存 续存 5 次 p5=p*pow(1+r0/4,4*5); //

度结算一次 printf(p1=%f\n,p1); // 输出

按第 printf(p2=%f\n,p2); // 输出按第 printf(p3=%f\n,p3); // 输出按第

printf(p4=%f\n,p4); // 输出按第 printf(p5=%f\n,p5); // 输出按第 return 0;

}

3-2-2

#include stdio.h 1 年期,

连 存活期存款。活期利息每一季

1 方案得到的本息和

2 方案得到的本息和

3 方案得到的本息和

4 方案得到的本息和

5 方案得到的本息和

输出按第 1 方案得到的

本息和 输出按第 2 方案得到的本息和 输出按第 3 方案得到的本息和 输出按第 4 方案得到的本息和 输出按第 5 方案得

{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.2f\n,p1); // 输出按

第 printf(p2=%10.2f\n,p2); // 输出按第 printf(p3=%10.2f\n,p3); // 输出按第 printf(p4=%10.2f\n,p4); //

输出按第 printf(p5=%10.2f\n,p5); // 输出按第 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.2f\n,m);

return 0;

}

3-4

#include stdio.h?

int main()

{int c1,c2;

c1=197;

c2=198;

printf(c1=%c,c2=%c\n,c1,c2); printf(c1=%d , c2=%d\n,c1,c2); return 0;

}

存活期存款。活期利息每一季 1 方案得到的本息和 2 方案得到的本息和 3 方案得到的本息和

4 方案得到的本息和

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=%c\n,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%c\n,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:%d\n,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=%d\n,aver);

}

② void main()

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

int a=3.5,b=a

printf(a=%db=\\end\n,a,b);

printf(a%cb%c\bc%c\tabc\n,c1,c2,c3); } 答main()

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

x=7;

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

printf(aver=%d\n,aver);

}

运行结果:aver=5

②main()

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

int a=3,b=a;

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

printf(a%cb%c\bc%c\tabc\n,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

相关主题
文本预览
相关文档 最新文档