C语言程序设计第三版谭浩强课后习题答案完整版同名3156Word文档格式.docx
《C语言程序设计第三版谭浩强课后习题答案完整版同名3156Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第三版谭浩强课后习题答案完整版同名3156Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
printf(“\t\b%c%c\n”,c4,c5);
}
3.9.1
{
doublex=2.5,y=4.7,z;
inta=7;
z=x+a%3*(int)(x+y)%2/4;
该表达式的值为:
%f"
z);
3.9.2
inta=2,b=3;
floatx=3.5,y=2.5,z;
z=(float)(a+b)/2+(int)x%(int)y;
4.5
inta=5,b=7;
doublex=67.8564,y=-789.124;
charc='
A'
;
longn=1234567;
unsignedu=65535;
%d%d\n"
a,b);
%3d%3d\n"
%f,%f\n"
x,y);
%-10f,%-10f\n"
%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n"
x,y,x,y,x,y);
%e,%10.2e\n"
%c,%d,%o,%x\n"
n,n,n);
%ld,%lo,%x\n"
%u,%o,%x,%d\n"
u,u,u,u);
printf("
请输入r,h的值:
%f,%f"
r,&
h);
l=2*pi*r;
s1=pi*r*r;
s2=4*s1;
v1=4/3*pi*r*r*r;
v2=s1*h;
圆周长为:
%.2f\n"
l);
圆面积为:
s1);
圆球表面积为:
s2);
圆球体积为:
v1);
圆柱体积为:
v2);
}
5.5#include<
floatx,y;
请输入x的值:
x);
if(x<
1)
y=x;
else
if(x>
=1&
&
x<
10)
y=2*x-1;
y=3*x-11;
x与y的值分别为:
\n%f,%f"
5.6#include<
floatb;
inta;
请输入该同学的成绩:
b);
while(b<
0||b>
100)
输入有误,请重新输入:
a=int(b/10);
if(a<
6)a=5;
switch(a)
{
case10:
case9:
该同学为等级:
A"
break;
case8:
B"
case7:
C"
case6:
D"
case5:
E"
}
math.h>
intx,y,m,n,i=1,j=0;
请给出一个不多于5位的正整数:
%d"
while(x<
=0||x>
=100000)
{printf("
输入有误\n请给出一个不多于5位的正整数:
for(n=0;
n<
5;
n++)
y=int(x/pow(10,n));
if(y>
0&
y<
10)
m=n+1;
它是%d位数\n"
m);
从高到低位依次为\n"
do
printf("
%d"
int(x/pow(10,m-i))%10);
i++;
while(m-i>
=0);
\n逆序输出为\n"
do
{
printf("
int(x/pow(10,j))%10);
j++;
}
while(j-m<
0);
6.1输入两个正整数m和n,求其最大公约数和最小公倍数。
intm,n,i,j;
请分别输入m,n的值:
%d,%d"
m,&
n);
for(i=1;
i<
=m;
i++)
if(m%i==0&
n%i==0)
j=i;
这两个整数的最大公约数是:
j);
for(i=j;
if(i%m==0&
i%n==0)break;
这两个整数的最小公倍数数是:
i);
6.2题目:
输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
inti=0,j=0,k=0,x=0;
charc;
请输入一行字符串:
while((c=getchar())!
='
\n'
)
if(c>
c<
Z'
||c>
a'
z'
)i++;
elseif(c=='
'
)j++;
elseif(c>
0'
9'
)k++;
elsex++;
英文字母、空格、数字、其他字符的个数分别为:
%d,%d,%d,%d,"
i,j,k,x);
6.3求Sn=a+aa+aaa+…+aa…a之值,其中a是一个数字。
例如:
2+22+222+2222+22222(此时n=5),n由键盘输入。
#include<
{
inti,n;
intsum=0,s=0;
请输入n的值:
while(n<
请重新输入n的值:
for(i=0;
n;
s+=pow(10,i);
sum+=2*s;
sum=%d\n"
sum);
}
6.8题目:
有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20项之和。
inta=1,b=1,i;
floatsum=0.0;
20;
a=a+b;
b=a-b;
sum+=(float)a/b;
这个数列前二十项之和为:
\n%f"
7.2
{inti,j,t,a[10];
请输入十个整数:
10;
scanf("
a[i]);
for(j=1;
j<
j++)
10-j;
if(a[i]<
a[i+1])
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
这十位数从大到小排列为:
%5d"
a[i]);
7.3
inti,j,m,n,a[3][3];
请输入3*3的整形矩阵\n"
3;
i++)
for(j=0;
j++)
a[i][j]);
m=a[0][0]+a[1][1]+a[2][2];
n=a[0][2]+a[1][1]+a[2][0];
3*3的整形矩阵对角线元素之和为:
m,n);
7.4
staticinta[10]={1,5,6,10,20,24,55,58,64};
inti,t;
请输入一个数:
a[9]);
for(i=9;
i>
0;
i--)
a[i-1])
t=a[i-1];
a[i-1]=a[i];
a[i]=t;
}
%4d"
7.8
inta[5][5],b[5],c[5],d[5][5];
inti,j,k,l;
请输入5*5的整型数组\n"
j++)
d[i][j]);
a[i][j]=d[i][j];
for(i=0,k=0;
i++,k++)
4;
if(a[i][j]>
=a[i][j+1])
b[k]=a[i][j+1]=a[i][j];
else
b[k]=a[i][j+1];
for(j=0,l=0;
j++,l++)
if(a[i][j]<
=a[i+1][j])
c[l]=a[i+1][j]=a[i][j];
c[l]=a[i+1][j];
if(d[i][j]-b[k]==0)
if(d[i][j]-c[l]==0)
鞍点为d[%d][%d]=%d\n"
i,j,d[i][j]);
没有鞍点\n"
}
7.10
string.h>
inti,j=0,k=0,l=0,m=0,n=0;
charstr0[301],str1[100],str2[100],str3[100];
gets(str1);
gets(str2);
gets(str3);
strcat(str0,str1);
strcat(str0,str2);
strcat(str0,str3);
str0[i]!
\0'
if(str0[i]>
str0[i]<
elseif(str0[i]>
)l++;
elseif(str0[i]=='
)m++;
elsen++;
大写字母、小写字母、数字、空格以及其他字符的个数依次为:
%5d%7d%5d%6d%4d\n"
j,k,l,m,n);
7.14
inti=0,resu;
chars1[100],s2[100];
\n请输入string1:
"
gets(s1);
\n请输入string2:
gets(s2);
while(s1[i]==s2[i]&
s1[i]!
)
i++;
if(s1[i]=='
s2[i]=='
)resu=0;
elseresu=s1[i]-s2[i];
\nresult:
%d\n"
resu);
8.1
intmaxgy(intm,intn);
intmingb(into,intp);
inta,b;
请输入两个正整数:
a,b\n"
while(a<
=0||b<
=0)
注:
这两个数的最大公约数是:
maxgy(a,b));
这两个数的最小公倍数是:
mingb(a,b));
intmaxgy(intm,intn)
inti,k;
k=i;
returnk;
intmingb(into,intp)
intj;
for(j=o;
if(j%o==0&
j%p==0)
break;
returnj;
8.3
intjudss(intm);
请输入一个正整数:
a);
judss(a);
intjudss(intm)
inti;
for(i=2;
m;
if(m%i==0)break;
if(i<
m)
returnprintf("
这个数不是素数"
这个数是素数"
8.5
{
charfx(charstr1[100]);
charstr0[100];
请输入一个字符串:
gets(str0);
fx(str0);
puts(str0);
charfx(charstr1[100])
{inti,j,k=strlen(str1);
charstr2[100];
strcpy(str2,str1);
for(i=0,j=k-1;
j>
-1;
i++,j--)
str1[i]=str2[j];
returnstr1[100];