#C语言第二谭浩强习题解答Word文档下载推荐.docx
- 文档编号:18064447
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:30
- 大小:24.19KB
#C语言第二谭浩强习题解答Word文档下载推荐.docx
《#C语言第二谭浩强习题解答Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《#C语言第二谭浩强习题解答Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。
10=(51013>
8=(520B>
3.4略
3.5字符常量是一个字符,用单引号括起来。
字符串常量是由0个或若干个字符组合而成,用双引号把它们括起来,存储时自动在字符串最后加一个结束符号‘0’。
3.6运行结果为:
aabb
cc
abc
AN
3.7
main(>
{charc1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’。
c1+=4。
c2+=4。
c3+=4。
c4+=4。
c5+=4。
printf(“密码是%c%c%c%c%c\n”,c1,c2,c3,c4,c5>
3.8可以。
因为在可输出的字符范围内,用整型和用字符型作用相同。
3.9<
1)2.5<
2)3.5
3.10结果为:
9,11,9,10
3.12
<
1)24 <
2)10 <
3)60
4)0 <
5)0 <
6)0
第三章
第四章要点:
1、C语句分类
2、赋值语句的用法
3、数据输入输出的语句的用法。
特别注意格式输入、输出语句的用法,要看到语句能写出输入、输出结果,给出输入、输出结果能写出语句。
4、顺序程序的概念、结构。
4.3不把输入输出作为C语言提供的语句的目的是使C语言编译系统简单,因为将语句翻译成二进制的指令是在编译阶段完成的,没有输入输出语句就是可以避免在编译阶段处理与硬件有关的问题,可以使编译系统简化,而且通用性强,可移植性好,对各种型号的计算机都适用,便于在各种计算机上实现。
4.4
{inta,b,c。
longintu,n。
floatx,y,z。
charc1,c2。
a=3。
b=4。
c=5。
x=1.2。
y=2.4。
z=-3.6。
u=51274。
n=128765。
c1=’a’。
c2=’b’。
printf(“\n”>
printf(“a=%2db=%2dc=%2d\n”,a,b,c>
printf(“x=%8.6f,y=%8.6f,z=%9.6f\n”,x,y,z>
printf(“x+y=%5.2fy+z=%5.2fz+x=%5.2f\n”,x+y,y+z,,z+x>
printf(“u=%6ldn=%9ld\n”,u,n>
printf(“c1=’%c’or%d(ASCII>
\n”,c1,c1>
printf(“c2=’%c’or%d(ASCII>
\n”,c2,c2>
4.5
57
□□5□□7
67.856400,-789.124000
67.856400□,-789.124000
□□□67.86,□-789.12,67.8564,-789.1240,67.856400,-789.124000
6.785640e+01,□-7.89e+02
A,65,101,41
1234567,4553207,d687
65535,177777,ffff,-1
COMPUTER,□□COM
4.8
{floatpi,h,r,l,s,sq,vq,vz。
pi=3.14
printf(inputr,h\n”>
scanf(“%f,%f”,&
r,&
h>
l=2*pi*r。
s=r*r*pi。
sq=4*pi*r*r。
vq=3.0/4.0*pi*r*r*r。
z=pi*r*r*h。
printf(“l=%6.2f\n”,l>
printf(“s=%6.2f\n”,s>
printf(“sq=%6.2f\n”,sq>
printf(“sv=%6.2f\n”,sv>
printf(“sz=%6.2f\n”,sz>
4.9
{floatc,f。
printf(“请输入一个华氏温度:
\n”>
scanf(“%f”,&
f>
c=(5.0/9.0>
*(f-32>
printf(“摄氏温度为:
%5.2\n”,c>
4.10
#include“stdio.h”
{charc1,c2。
printf(“inputc1,c2\n”>
scanf(%c,%c”,&
c1,&
c2>
putchar(c1>
putchar(c2>
printf(“%c%c\n”,c1,c2>
第5章
第五章要点:
1、关系运算符和关系运算式;
2、逻辑运算符和逻辑运算式;
3、IF语句的三种形式;
4、条件运算符;
5、switch语句的用法;
5.3
1)0
<
2)1
3)1
4)0
5)1
5.4
{inta,b,c,t,max。
printf(“inputa,b,c:
”>
scanf(“%d,%d,%d”,&
t=(a>
?
a:
b。
max=(t>
t:
c。
printf(“max=%d”,max>
}
5.5
{floatx,y。
printf(“inputx:
x>
if(x<
1>
y=x。
elseif(x<
10>
y=2*x-1。
else
y=3*x-11。
printf(“x=%f,y=%f\n”,x,y>
5.6
{intscore,t,logic。
chargrade。
logie=1。
while(logic>
{printf(“inputscore:
scanf(“%d”,&
score>
if((score>
100||score<
0>
printf(“\error”>
elselogic=0。
if(score==100>
t=9。
elset=(int>
(score/10>
switch(t>
{case9:
grade=’A’。
break。
case8:
grade=’B’。
case7:
grade=’C’。
case6:
grade=’D’。
case5:
case4:
case3:
case2:
case1:
case0:
grade=’E’。
}
5.8
1)用if语句
{longi。
floatbonus,bon1,bon2,bon4,bon6,bon10。
bon1=100000*0.1。
/*利润为10万元时的奖金*/
bon2=bon1+100000*0.075。
/*利润为20万元时的奖金*/
bon4=bon2+200000*0.05。
/*利润为40万元时的奖金*/
bon6=bon4+200000*0.03。
/*利润为60万元时的奖金*/
bon10=bon6+40000*0.015。
/*利润为100万元时的奖金*/
scanf(%ld”,&
i>
if(i<
1e5>
bonus=i*0.1。
elseif(i<
=2e5>
bonus=bon1+(i-100000>
*0.075。
elseif(I<
=4e5>
bonus=bon2+(i-200000>
*0.05。
=6e5>
bonus=bon4+(i-400000>
*0.03。
=1e6>
bonus=bon6+(i-600000>
*0.015。
else
bonus=bon10+(i-100000>
*0.01。
printf(“bonus=%10.2f”,bonus>
用switch编写
floatt,bonus,bon1,bon2,bon4,bon6,bon10。
intc。
c=i/100000。
if(c>
c=10。
switch(c>
{case0:
break。
case1:
bonus=bon1+(i-100000>
case2:
case3:
bonus=bon2+(i-200000>
case4:
case5:
bonus=bon4+(i-400000>
case9:
bonus=bon6+(i-600000>
case10:
bonus=bon10+(i-1000000>
5.9
{intt,a,b,c,d。
scanf(“%d,%d,%d,%d”,&
c,&
d>
printf(“\na=%d,b=%d,c=%d,d=%d\n”,a,b,c,d>
if(a>
{t=a。
a=b。
b=t。
a=c。
c=t。
a=d。
d=t。
if(b>
{t=b。
b=c。
b=d。
if(c>
{t=c。
c=d。
printf(“%d%d%d%d\n”,a,b,c,d>
5.10
{inth=10。
floatx,y,x0=2,y0=2,d1,d2,d3,d4。
printf(“inputx,y:
scanf(“%f,%f”,&
x,&
y>
d1=(x-x0>
*(x-x0>
+(y-y0>
*(y-y0>
d2=(x-x0>
+(y+y0>
*(y+y0>
d3=(x+x0>
*(x+x0>
d4=(x+x0>
if(d1>
1&
&
d2>
d3>
d4>
h=0。
printf(“h=%d”,h>
第6章
第6章要点:
1、实现循环的语句。
2、几种循环的比较
3、读程序写结果。
常见问题的程序设计。
6.1
#include<
stdio.h>
{inta,b,n1,n2,t。
printf(“inputa,b\n”>
scanf(“%d,%d”,&
n1,&
n2>
if(n1>
{t=n1。
n1=n2。
n2=t。
a=n1。
b=n2。
while(b!
=0>
{t=a%b。
printf(“最大公约数为:
%d\n”,a>
printf(“最小公倍数为:
%d\n,n1*n2/a>
6.2
#include<
{charc。
intletters=0,space=0,digit=0,other=0。
printf(“输入一行字符:
while((c=getchar(>
!
=’\n’>
{
if(c>
=’a’&
c<
=’z’||c>
=’A’&
=’Z’>
letters++。
elseif(c==’’>
space++。
elseif(c>
=’0’&
=’9’>
digit++。
elseother++。
printf(“l%d,%d,%d,%d\n”,letters,space,digit,other>
6.3
{inta,n,count=1,sn=0,tn=0。
scanf(“%d,%d,”,&
n>
printf(“a=%dn=%d\n”,a,n>
while(count<
=n>
{tn=tn+a。
sn=sn+tn。
a=a*10。
++count。
printf(“a+aa+aaa+…=%d\n”,sn>
6.4
{floatn,s=0,t=1。
for(n=1。
n<
=20。
n++>
{t=t*n。
s=s+t。
printf(“1!
+2!
+3!
+…+20!
=%e\n”,s>
6.5
{intn1=100,n2=50,n3=10。
floatk。
floats1=0,s2=0,s3=0。
for(k=1。
k<
=n1。
k++>
s1=s1+k。
=n2。
s2=s2+k*k。
=n3。
s3=s3+1/k。
printf(“sum=%8.2\n”,s1+s2+s3>
6.6
{inti,j,n。
printf(“水仙花数是:
for(n=100。
1000。
{i=n/100。
j=n/10-i*10。
k=n%10。
If(i*100+j*10+k==i*i*i+j*j*j+k*k*k>
printf(“%d”,n>
6.7
{staticintk[10]。
inti,j,n,s。
for(j=2。
j<
=1000。
j++>
{n=0。
s=j。
for(i=1。
i<
j。
i++>
if((j%i>
==0>
{n++。
s=s-i。
k[n]=i。
if(s==0>
{printf(“%5d是个完数,它的因子是:
”,j>
=n。
printf(“%d”,k[i]>
6.8
{floata=2,b=1,s=0。
intn,t,number=20。
=number。
{s=s+a/b。
t=a。
a=a+b。
printf(“sum=%9.6f\n”,s>
6.9
{intn。
floatsn=100,hn=sn/2。
for(n=2。
=10,n++>
{sn=sn+2*hn。
hn=hn/2。
printf(“第10次落地时共经过:
%fM\n”,sn>
printf(“第10次反弹%fM\n”,hn>
6.10
{intday,x1,x2。
day=10。
x2=1。
while(day>
x1=(x2+1>
*2。
/*前1天的桃子数是当天桃子数加1后的2倍*/
x2=x1。
day--。
printf(“桃子总数=%d\n”,x1>
6.11
math.h>
{floata,x0,x1。
printf(“inputn\n”>
a>
x0=a/2。
x1=(x0+a/x0>
/2。
do{
x0=x1。
}while(fabs(x0-x1>
=1e-5>
printf(“%5.2f的平方根=%8.5f\n”,a,x1>
6.12
牛顿迭代法又称牛顿切线法。
它采用以下的方法求根:
先任意设定一个与其真实的根接近的值x0作为第一次近似根,由x0求出f(x0>
,过(x0,f(x0>
点做f(x>
的切线,交x轴于x1,把它作为第二次近似根;
再由x1求出f(x1>
,过(x1,f(x1>
的切线,交x轴于x2,求出f(x2>
;
再作切线……如此继续下去,直到足够接近真正的根x*为止。
f’(x0>
=f(x0>
/(x1-x0>
x1=x0-f(x0>
/f’(x0>
这就是牛顿迭代公式。
{floatx,x0,f,f1。
x=1.5。
do{
x0=x。
f=((2*x0-4>
*x0+3>
*x0-6。
f1=(6*x0-8>
*x0+3。
x=x0-f/f1。
}while(fabs(x-x0>
printf(方程的根=%6.2f\n”,x>
6.13
二分法的思路如下:
先指定一个区间[x1,x2],如果函数f(x>
在此区间是单调变化的,则可以根据f(x1>
和f(x2>
是否同号来确定方程f(x>
=0在区间[x1,x2]内是否有一个实根。
若f(x1>
不同号,则f(x>
=0在[x1,x2]内必有一个<
且只有一个)实根;
如果f(x1>
同号,则则f(x>
=0在[x1,x2]内无实根,要重新改变x1和x2的值。
当确定f(x>
在[x1,x2]内有一个实根后,可采取二分法将[x1,x2]一分为二,再判断在哪一个小区间有实根。
如此不断进行下去,直到小区间足够小为止。
{floatx0,x1,x2,fx0,fx1,fx2。
x1,&
x2>
fx1=x1*((2*x1-4>
*x1+3>
-6。
fx2=x2*((2*x2-4>
*x2+3>
-6
}while(fx1*fx2>
x0=(x1+x2>
fx0=x0*((2*x0-4>
if(fx0*fx1<
x2=x0。
fx2=fx0。
else{
x1=x0。
fx1=fx0。
}while(fabs(fx0>
printf(“x=%6.2f\n”,x0>
6.14
{inti,j,k。
=4。
i++>
{for(j=1。
=4-i。
printf(“”>
for(k=1。
=2*i-1。
printf(“*”>
printf(“\n”>
=3。
=i。
=7-2*i。
6.15
开始设计程序时,并不知道A、B、C与X、Y、Z中的哪一个进行比赛,可以假设:
A与i比赛,B与j比赛,C与k比赛。
说明:
整个执行部分只有一个语句,所以只在语句的最后有一个分号。
{chari,j,k。
for(i=’X’。
=’Z’。
for(j=’X’。
j++>
if(i!
=j>
for(k=’X’。
if(i!
=k&
j!
=k>
if(i!
=’X’&
k!
printf(“A--%c\tB--%c\tC--%c\n”,i,j,k>
第九章指针
9.1
{intn1,n2,n3。
int*p1,*p2,*p3。
n2,&
n3>
p1=&
n1。
p2=&
n2。
p3=&
n3。
swap(p1,p2>
swap(p1,p3>
if(n2>
swap(p2,p3>
%d,%d,%d\n"
n1,n2,n3>
int*p1,*p2。
{intp。
p=*p1。
*p1=*p2。
*p2=p。
9.2
{char*str1[20],*str2[20],*str3[20]。
charswap(>
%s"
str1>
str2>
str3>
if(strcmp(str1,str2>
swap(str1,str2>
if(strcmp(str1,str3>
swap(str1,str3>
if(strcmp(str2,str3>
swap(str2,str3>
%s\n%s\n%s\n"
str1,str2,str3>
charswap(p1,p2>
char*p1,*p2。
{char*p[20]。
strcpy(p,p1>
strcpy(p1,p2>
strcpy(p2,p>
9.3
{intnumber[10]。
input(number>
max_min_value(number>
output(number>
i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第二 谭浩强 习题 解答
![提示](https://static.bdocx.com/images/bang_tan.gif)