《C语言程序设计》课后习题答案谭浩强.docx

上传人:b****3 文档编号:3882651 上传时间:2023-05-06 格式:DOCX 页数:62 大小:26.06KB
下载 相关 举报
《C语言程序设计》课后习题答案谭浩强.docx_第1页
第1页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第2页
第2页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第3页
第3页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第4页
第4页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第5页
第5页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第6页
第6页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第7页
第7页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第8页
第8页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第9页
第9页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第10页
第10页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第11页
第11页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第12页
第12页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第13页
第13页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第14页
第14页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第15页
第15页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第16页
第16页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第17页
第17页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第18页
第18页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第19页
第19页 / 共62页
《C语言程序设计》课后习题答案谭浩强.docx_第20页
第20页 / 共62页
亲,该文档总共62页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《C语言程序设计》课后习题答案谭浩强.docx

《《C语言程序设计》课后习题答案谭浩强.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》课后习题答案谭浩强.docx(62页珍藏版)》请在冰点文库上搜索。

《C语言程序设计》课后习题答案谭浩强.docx

《C语言程序设计》课后习题答案谭浩强

第1章程序设计和C语言1

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

intmain()

{printf("**************************\n\n");

printf("VeryGood!

\n\n");

printf("**************************\n");

return0;

}

1-6#include

intmain()

{inta,b,c,max;

printf("pleaseinputa,b,c:

\n");

scanf("%d,%d,%d",&a,&b,&c);

max=a;

if(max

max=b;

if(max

max=c;

printf("Thelargestnumberis%d\n",max);

return0;

}

第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

#include

intmain()

{floatp,r,n;

r=0.1;

n=10;

p=pow(1+r,n);

printf("p=%f\n",p);

return0;

}

3-2-1

#include

#include

intmain()

{floatr5,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方案得到的本息和

return0;

}

3-2-2

#include

#include

intmain()

{doubler5,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方案得到的本息和

return0;

}

3-2-3

#include

#include

intmain()

{floatr5,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);//输出按第1方案得到的本息和

printf("p2=%10.2f\n",p2);//输出按第2方案得到的本息和

printf("p3=%10.2f\n",p3);//输出按第3方案得到的本息和

printf("p4=%10.2f\n",p4);//输出按第4方案得到的本息和

printf("p5=%10.2f\n",p5);//输出按第5方案得到的本息和

return0;

}

3-3.

#include

#include

intmain()

{floatd=300000,p=6000,r=0.01,m;

m=log10(p/(p-d*r))/log10(1+r);

printf("m=%6.2f\n",m);

return0;

}

3-4

#include

intmain()

{intc1,c2;

c1=197;

c2=198;

printf("c1=%c,c2=%c\n",c1,c2);

printf("c1=%d,c2=%d\n",c1,c2);

return0;

}

3-5

#include

intmain()

{inta,b;

floatx,y;

charc1,c2;

scanf("a=%db=%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);

return0;

}

3-6

#include

intmain()

{charc1='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("passworis%c%c%c%c%c\n",c1,c2,c3,c4,c5);

return0;

}

3-7

#include

intmain()

{floath,r,l,s,sq,vq,vz;

floatpi=3.141526;

printf("请输入圆半径r,圆柱高h∶");

scanf("%f,%f",&r,&h);//要求输入圆半径r和圆柱高h

l=2*pi*r;//计算圆周长l

s=r*r*pi;//计算圆面积s

sq=4*pi*r*r;//计算圆球表面积sq

vq=3.0/4.0*pi*r*r*r;//计算圆球体积vq

vz=pi*r*r*h;//计算圆柱体积vz

printf("圆周长为:

l=%6.2f\n",l);

printf("圆面积为:

s=%6.2f\n",s);

printf("圆球表面积为:

sq=%6.2f\n",sq);

printf("圆球体积为:

v=%6.2f\n",vq);

printf("圆柱体积为:

vz=%6.2f\n",vz);

return0;

}

3-8-1

#include

intmain()

{

intc1,c2;//整型定义

printf("请输入两个整数c1,c2:

");

scanf("%d,%d",&c1,&c2);

printf("按字符输出结果:

\n");

printf("%c,%c\n",c1,c2);

printf("按ASCII码输出结果为:

\n");

printf("%d,%d\n",c1,c2);

return0;

}

3-8-2

#include

intmain()

{

charc1,c2;//定义字符型变量

inti1,i2;//定义整型变量

printf("请输入两个字符c1,c2:

");

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

i1=c1;//赋值给整型变量

i2=c2;

printf("按字符输出结果:

\n");

printf("%c,%c\n",i1,i2);

printf("按整数输出结果:

\n");

printf("%d,%d\n",c1,c2);

return0;

}

3-8-3

#include

intmain()

{

charc1,c2;//定义为字符型

inti1,i2;//定义为整型

printf("请输入两个整数i1,i2:

");

scanf("%d,%d",&i1,&i2);

c1=i1;//将整数赋值给字符变量

c2=i2;

printf("按字符输出结果:

\n");

printf("%c,%c\n",c1,c2);

printf("按整数输出结果:

\n");

printf("%d,%d\n",c1,c2);

return0;

}

3-8

#include

intmain()

{

charc1,c2;

printf("请输入两个字符c1,c2:

");

c1=getchar();

c2=getchar();

printf("用putchar语句输出结果为:

");

putchar(c1);

putchar(c2);

printf("\n");

printf("用printf语句输出结果为:

");

printf("%c%c\n",c1,c2);

return0;

}

第4章选择结构程序设计85

4.1选择结构和条件判断85

4.2用if语句实现选择结构87

4.2.1用if语句处理选择结构举例87

4.2.2if语句的一般形式89

4.3关系运算符和关系表达式91

4.3.1关系运算符及其优先次序91

4.3.2关系表达式92

4.4逻辑运算符和逻辑表达式92

4.4.1逻辑运算符及其优先次序93

4.4.2逻辑表达式94

4.4.3逻辑型变量96

4.5条件运算符和条件表达式97

4.6选择结构的嵌套99

4.7用switch语句实现多分支选择结构102

4.8选择结构程序综合举例105

习题111

4-4-1

#include

intmain()

{

inta,b,c;

printf("请输入三个整数:

");

scanf("%d,%d,%d",&a,&b,&c);

if(a

if(b

printf("max=%d\n",c);

else

printf("max=%d\n",b);

elseif(a

printf("max=%d\n",c);

else

printf("max=%d\n",a);

return0;

}

4-4-2

#include

intmain()

{inta,b,c,temp,max;

printf("请输入三个整数:

");

scanf("%d,%d,%d",&a,&b,&c);

temp=(a>b)?

a:

b;/*将a和b中的大者存入temp中*/

max=(temp>c)?

temp:

c;/*将a和b中的大者与c比较,取最大者*/printf("三个整数的最大数是%d\n",max);

return0;

}

4-5-2

#include

#include

#defineM1000

intmain()

{

inti,k;

printf("请输入一个小于%d的整数i:

",M);

scanf("%d",&i);

while(i>M)

{printf("输入的数不符合要求,请重新输入一个小于%d的整数i:

",M);

scanf("%d",&i);

}

k=sqrt(i);

printf("%d的平方根的整数部分是:

%d\n",i,k);

return0;

}

4-5

#include

#include

#defineM1000

intmain()

{

inti,k;

printf("请输入一个小于%d的整数i:

",M);

scanf("%d",&i);

if(i>M)

{printf("输入的数不符合要求,请重新输入一个小于%d的整数i:

",M);

scanf("%d",&i);

}

k=sqrt(i);

printf("%d的平方根的整数部分是:

%d\n",i,k);

return0;

}

4-6.

#include

intmain()

{intx,y;

printf("输入x:

");

scanf("%d",&x);

if(x<1)/*x<1*/

{y=x;

printf("x=%3d,y=x=%d\n",x,y);

}

elseif(x<10)/*1=

{y=2*x-1;

printf("x=%d,y=2*x-1=%d\n",x,y);

}

else/*x>=10*/

{y=3*x-11;

printf("x=%d,y=3*x-11=%d\n",x,y);

}

return0;

}

4-7-1

#include

intmain()

{

intx,y;

printf("enterx:

");

scanf("%d",&x);

y=-1;

if(x!

=0)

if(x>0)

y=1;

else

y=0;

printf("x=%d,y=%d\n",x,y);

return0;

}

4-7-2

#include

intmain()

{

intx,y;

printf("pleaseenterx:

");

scanf("%d",&x);

y=0;

if(x>=0)

if(x>0)y=1;

elsey=-1;

printf("x=%d,y=%d\n",x,y);

return0;

}

4-8

#include

intmain()

{floatscore;

chargrade;

printf("请输入学生成绩:

");

scanf("%f",&score);

while(score>100||score<0)

{printf("\n输入有误,请重输");

scanf("%f",&score);

}

switch((int)(score/10))

{case10:

case9:

grade='A';break;

case8:

grade='B';break;

case7:

grade='C';break;

case6:

grade='D';break;

case5:

case4:

case3:

case2:

case1:

case0:

grade='E';

}

printf("成绩是%5.1f,相应的等级是%c\n",score,grade);

return0;

}

4-9

#include

#include

intmain()

{

intnum,indiv,ten,hundred,thousand,ten_thousand,place;

位,万位和位数

printf("请输入一个整数(0-99999):

");

scanf("%d",&num);

if(num>9999)

place=5;

elseif(num>999)

place=4;

elseif(num>99)//分别代表个位,十位,百位,千

place=3;

elseif(num>9)

place=2;

elseplace=1;

printf("位数:

%d\n",place);

printf("每位数字为:

");

ten_thousand=num/10000;

thousand=(int)(num-ten_thousand*10000)/1000;

hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;

ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;

indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);

switch(place)

{case5:

printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);

printf("\n反序数字为:

");

printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);

break;

case4:

printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);

printf("\n反序数字为:

");

printf("%d%d%d%d\n",indiv,ten,hundred,thousand);

break;

case3:

printf("%d,%d,%d",hundred,ten,indiv);

printf("\n反序数字为:

");

printf("%d%d%d\n",indiv,ten,hundred);

break;

case2:

printf("%d,%d",ten,indiv);

printf("\n反序数字为:

");

printf("%d%d\n",indiv,ten);

break;

case1:

printf("%d",indiv);

printf("\n反序数字为:

");

printf("%d\n",indiv);

break;

}

return0;

}

4-10-1

#include

intmain()

{

inti;

doublebonus,bon1,bon2,bon4,bon6,bon10;

bon1=100000*0.1;

bon2=bon1+100000*0.075;

bon4=bon2+100000*0.05;

bon6=bon4+100000*0.03;

bon10=bon6+400000*0.015;

printf("请输入利润i:

");

scanf("%d",&i);

if(i<=100000)

bonus=i*0.1;

elseif(i<=200000)

bonus=bon1+(i-100000)*0.075;

elseif(i<=400000)

bonus=bon2+(i-200000)*0.05;

elseif(i<=600000)

bonus=bon4+(i-400000)*0.03;

elseif(i<=1000000)

bonus=bon6+(i-600000)*0.015;

else

bonus=bon10+(i-1000000)*0.01;

printf("奖金是:

%10.2f\n",bonus);

return0;

}

4-10-2

#include

intmain()

{

inti;

doublebonus,bon1,bon2,bon4,bon6,bon10;

intbranch;

bon1=100000*0.1;

bon2=bon1+100000*0.075;

bon4=bon2+200000*0.05;

bon6=bon4+200000*0.03;

bon10=bon6+400000*0.015;

printf("请输入利润i:

");

scanf("%d",&i);

branch=i/100000;

if(branch>10)branch=10;

switch(branch)

{case0:

bonus=i*0.1;break;

case1:

bonus=bon1+(i-100000)*0.075;break;

case2:

case3:

bonus=bon2+(i-200000)*0.05;break;

case4:

case5:

bonus=bon4+(i-400000)*0.03;break;

case6:

case7:

case8:

case9:

bonus=bon6+(i-60000

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2