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

更新时间:2023-10-02 00:41:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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))*100+(m/100)*10+m(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==0y0!=0||y@0==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(“%lf\\n”,2*s) (4)m%5==0 , printf(“%d\\n”,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==0y0!=0||y@0==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(M,k); m=m/k; } else k++; printf(M\\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(],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)%2!=0) {

t=t+(s)*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; 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 (**************************\\n); return 0; }

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年期2年期

p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次

printf(p1=%f\\n,p1); // 输出按第1方案得到的本息和 printf(p2=%f\\n,p2); // 输出按第2方案得到的本息和 printf(p3=%f\\n,p3); // 输出按第3方案得到的本息和 printf(p4=%f\\n,p4); // 输出按第4方案得到的本息和 printf(p5=%f\\n,p5); // 输出按第5方案得到的本息和 return 0; }

3-2-2

#include stdio.h #include math.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=%f\\n,p1); // 输出按第1方案得到的本息和 printf(p2=%f\\n,p2); // 输出按第2方案得到的本息和 printf(p3=%f\\n,p3); // 输出按第3方案得到的本息和 printf(p4=%f\\n,p4); // 输出按第4方案得到的本息和 printf(p5=%f\\n,p5); // 输出按第5方案得到的本息和 return 0; }

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=.2f\\n,p1); // 输出按第1方案得到的本息和 printf(p2=.2f\\n,p2); // 输出按第2方案得到的本息和 printf(p3=.2f\\n,p3); // 输出按第3方案得到的本息和 printf(p4=.2f\\n,p4); // 输出按第4方案得到的本息和 printf(p5=.2f\\n,p5); // 输出按第5方案得到的本息和 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;

}

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、专用工具 2

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

1、c语言程序由函数构成;

2、“/*”与“*/”之间的内容构成c语言程序的注释部分;

3、用预处理命令#include、#define可以包含有关文件或预定义信息;

4、大小写字母在c语言中是有区别的;

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

c语言有什么特点? 答

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

2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化; 3、运算符丰富,包含的范围很广; 4、数据类型丰富;

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

6、限制不太严格,程序设计自由度大,这样使c语言能够减少对程序员的束缚;

7、生成的目标代码质量,程序执行效率高,同时c语言编写的程序的可移植性好。 4

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

说明下列turbo c热键的功能。 答

f2:源文件存盘 f10:调用主菜单 f4:程序运行到光标所在行(用于调试程序) ctrl+f9:编译并链接成可执行文件 alt+f5:将窗口切换到 dos 下,查看程序运行结果。

6

说明下列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语法规定的。 答 2

请找出下列程序中的错误,改正后写出程序运行结果。 ①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=?=\\\\end\\n,a,b);

printf(a?%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?%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

本文来源:https://www.bwwdw.com/article/t8td.html

Top