C语言课后习题参考答案Word格式.docx
- 文档编号:398134
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:30
- 大小:22.89KB
C语言课后习题参考答案Word格式.docx
《C语言课后习题参考答案Word格式.docx》由会员分享,可在线阅读,更多相关《C语言课后习题参考答案Word格式.docx(30页珍藏版)》请在冰点文库上搜索。
8.55或'
7'
9.x=4;
y=6;
z=3;
m=463
2.3改错题(略)
习题3
3.1单选题
BDABCADCACBBA
3.2填空题
1.3
2.261
3.10
4.2,1;
互换a,b的值
5.6.6
6.003
7.7
8.5.0,4,3<
Enter>
9.i=10,j=20<
10.
(1)65
(2)65,A
(3)3.14,123.46
(4)3.141600e+000,1.234560e+002
(5)8765.432100
(6)8.765432e+003
11.a=2b=5x=8.8y=76.34c1=65c2=97
12.%d/%d;
%d/%d=%.2f\n
3.3改错题(略)
3.4编程题
{
intx,y;
scanf("
%d%d"
&
x,&
y);
printf("
\t\tx\ty\n"
十进制数\t%d\t%d\n"
x,y);
八进制数\t%o\t%o\n"
十六进制数\t%X\t%x\n"
charch;
请输入一个大写英文字母"
%c"
ch);
大写英文字母是%c\n"
ch);
它的前导字符是%c\n"
ch-1);
它的后续字符是%c\n"
ch+1);
3.答:
main()
{
intx,a,b,c,y;
请输入一个三位整数\n"
%d"
x);
a=x/100;
b=(x-a*100)/10;
c=x%10;
y=c*100+b*10+a;
反向输出该整数:
%d\n"
y);
}
4.答:
{inthour;
doublesalary,salaryday;
%d,%lf"
&
hour,&
salaryday);
salary=hour*salaryday-hour*salaryday*0.1;
%8.2lf\n"
salary);
5.答:
inta,b,c,t;
请输入三个整数\n"
%d%d%d"
a,&
b,&
c);
交换前a=%d,b=%d,c=%d\n"
a,b,c);
t=a;
a=c;
c=b;
b=t;
交换后a=%d,b=%d,c=%d\n"
习题4
4.1单选题
BADDDACBBBBA
4.2填空题
1.1
2.
(1)a>
0||b>
0
(2)x>
0&
&
x<
=10
(3)a==1.5&
b==1.5&
c==1.5(4)p<
a||p<
b||p<
c
3.
(1)0
(2)1(3)1(4)0(5)1
4.c=1
5.-4
6.1
7.5,0,3
8.5
9.123
10.(cvb=='
y'
||cvb=='
Y'
)&
(work>
=3||college=='
||college=='
age<
=35
4.3改错题(略)
4.4编程题
1.答
math.h"
doublea,b,c,p,area;
scanf("
%lf%lf%lf"
三角形的三边为:
%.llf,%.1lf,%.1lf\n"
if(a+b>
c&
a+c>
b&
b+c>
a)
{p=(a+b+c)/2;
area=sqrt(p*(p-a)*(p-b)*(p-c));
三角形的面积为%.2lf\n"
area);
else
不能构成三角形\n"
{intx,y;
%d,%d"
if(x*x+y*y>
1000)
(x*x+y*y)/100);
x+y);
{doublex,y;
%lf"
if(x<
-2)
y=x*x-sin(x);
elseif(x<
=2)
y=pow(2,x)+x;
y=sqrt(x*x+x+1);
x=%.2lfy=%.2lf\n"
main()
{longge,shi,qian,wan,x;
%ld"
wan=x/10000;
qian=x%10000/1000;
shi=x%100/10;
ge=x%10;
if(ge==wan&
shi==qian)/*个位等于万位并且十位等于千位*/
printf("
thisnumberisahuiwen\n"
else
printf("
thisnumberisnotahuiwen\n"
{floatp,w,s,d,f;
%f,%,%f"
p,s,w);
if(s>
3000)d=0.15
elseif(s>
=2000)d=0.1;
elseif(s>
=1000)d=0.08;
=500)d=0.05;
=250)d=0.02;
elsed=0
f=p*w*s*(1-d);
%f"
f);
6.答:
{intyear,money;
charx;
是否是本公司产品(y/n):
"
if(x=='
||x=='
)
{printf("
产品使用的年限:
year);
if(year<
=1)money=0;
elseif(year<
8)money=50;
elsemoney=100;
产品保修额是:
money);
else
{money=200;
不是本公司产品,产品保修额是:
7.答:
{intmoney,num1,num2;
请输入取款额(≤2000):
money);
if(money>
2000)printf("
请输入取款额数≤2000!
\n"
if(money%50==0)
{num1=money/100;
num2=(money-num1*100)/50;
printf("
需支付100元:
%d张\n"
num1);
需支付50元:
num2);
}
输入钱数必须是50的倍数!
习题5
5.1单选题
CDABAABDDBDBCB
5.2填空题
1.20
2.333
3.
(1)i<
10或i<
=9
(2)j%3!
=0
4.
(1)flag*(float)k/(k+1)或1.0*flag*k/(k+1)
(2)flag=-flag
5.
(1)max=x
(2)x!
=-1(3)scanf("
x)
6.
(1)x<
=9或x<
10
(2)y=9-x
5.3改错题(略)
5.4编程题
(1)for循环,其他略
{inti,s=0;
for(i=1;
i<
=100;
i++)
s+=i*i;
s);
(2)for循环,其他略
{inti=1,p=1;
doubles=1;
do
s+=1.0/p;
p*=++i;
}while(1.0/p>
1e-6);
{intm,n,t,a,b;
m,&
n)
;
if(m<
n)
{t=m
m=n
n=t
a=m;
b=n;
t=m%n
while(t)
{m=n
n=t
t=m%n;
n);
{intx,y,s=1;
y);
for(;
y>
0;
y--)s*=x;
%d,%d,%d\n"
s%10,s/10%10,s/100%10);
{intx,y,z;
for(x=1;
20;
x++)
for(y=1;
y<
33;
y++)
{z=100-x-y;
if((z%3)==0&
(5*x+3*y+z/3)==100)
x=%d,y=%d,z=%d\n"
x,y,z);
}
(a)
{intj,k;
for(j=1;
j<
=4;
j++)
{for(k=1;
k<
=4-j;
k++)printf("
"
****"
);
(b)
{intj,k
for(j=1
=4
{for(k=1;
for(k=1
=2*j-1
k++)
*"
)
程序分析:
利用for循环控制在100~999之间,对每个数分解出个位、十位、百位。
#include<
stdio.h>
inti,j,k,n;
waterflower'
numberis:
for(n=100;
n<
1000;
n++)
{
i=n/100;
/*分解出百位*/
j=n/10%10;
/*分解出十位*/
k=n%10;
/*分解出个位*/
if(n==i*i*i+j*j*j+k*k*k)
{
printf("
%-5d"
intx;
for(x=1000;
x>
=3;
x--)
if(x%3==1&
x%5==2&
x%7==3)
该校的学生人数是:
%d人\n"
x);
break;
8.答:
intx=12,i=1;
while
(1)
{if((x+20+i)==2*(x+i))break;
i++;
小明母亲在%d年后比小明的年龄大一倍\n"
i);
那时小明年龄是:
%d岁,小明母亲年龄是:
%d岁\n"
x+i,x+20+i);
习题6
6.1单选题
DBCCBBDC
6.2填空题
1.c
2.60
3.100010
4.16
6.3编程题
#defineF(a)a*a+sqrt(3*a*a+2*a+1)
{floatx,f;
x);
f=4.5/F(exp(x))+F(cos(x))+F(sqrt(x))/F(x*x);
%f\n"
f);
习题7
7.1单选题
BCADACCCDABCBDB
7.2填空题
1.
(1)2345
(2)10010(3)QuickC
(4)10000
01000
00100
00010
00001
(5)Language(6)LanguageProgramming
2.
(1)j+=2
(2)a[i]>
a[j]
3.
(1)i=1
(2)x[i-1]
7.3改错题(略)
7.4编程题
#defineN10
main()
{inta[N]={1,2,3,4,5,6,7,8,9,10,osum=0,qsum=0,j;
for(j=0;
10;
if(j%2)qsum+=a[j];
elseosum+=a[j];
osum=%d,qsum=%d\n"
osum,qsum);
#defineN10
{inta[N]={10,20,30,40,50,60,70,80,90},j,k,x;
N;
if(x<
a[j])break;
if(j==N)a[N-1]=x;
else
{for(k=N-1;
k>
j;
k--)
a[k]=a[k-1];
a[j]=x;
%d"
a[j]);
#defineM3
{inta[M][M]={{1,2,3},{2,4,5},{3,5,6}},j,k,flag=1;
for(j=0;
M;
for(k=0;
if(a[j][k]!
=a[k][j]){flag=0;
break;
if(flag)printf("
ok"
elseprintf("
NO"
string.h"
{charc1[10],c2[10],j;
gets(c1);
gets(c2);
(c1[j]==c2[j])&
c1[j]&
c2[j];
j++);
if(c1[j]>
c2[j])printf("
1);
if(c1[j]<
-1);
if(c1[j]==c2[j])printf("
0);
#defineN80
{chara[M][N],j,k,n[5]={0};
gets(a[j]);
a[j][k];
if(a[j][k]>
='
A'
&
a[j][k]<
Z'
)n[0]++;
elseif(a[j][k]>
a'
z'
)n[1]++;
0'
9'
)n[2]++;
elseif(a[j][k]=='
'
)n[3]++;
else
n[4]++;
for(j=0;
5;
%4d"
n[j]);
习题8
8.1单选题
DBDACBACCC
8.2填空题
1.
(1)2,1
(2)10#30#(3)FOUR,P(4)60
1,1,1,1,1
3,3,3,3,3
10001
01010
00100
2.
(1)49
(2)2(3)2
(4)(5)
8.3改错题(略)
8.4编程题
{intn1,n2,n3,t;
int*p1,*p2,*p3;
pleaseinput3number:
n1,n2,n3:
%d,%d,%d"
n1,&
n2,&
n3);
p1=&
n1;
p2=&
n2;
p3=&
n3;
if(*p1>
*p2){t=*p1;
*p1=*p2;
*p2=t;
*p3){t=*p1;
*p1=*p3;
*p3=t;
if(*p2>
*p3){t=*p2;
*p2=*p3;
thesortednumbersare:
%d,%d,%d\n"
n1,n2,n3);
#defineN3
{inta[N],*p=a;
for(;
p-a<
p++)
p);
p=a+N-1;
p-a>
=0;
p--)
*p);
{inta[10];
intj,minl=0,maxl=0;
a+j);
{if(a[maxl]<
*(a+j))maxl=j;
if(a[minl]>
*(a+j))minl=j;
j=a[0];
a[0]=a[minl];
a[minl]=j;
j=a[9];
a[9]=a[maxl];
a[maxl]=j;
*(a+j));
输入阵列如下:
1234
5678
9101112
输出阵列如下:
1211109
8765
4321
#defineN4
{inta[M][N]={1,2,3,4,5,6,7,8,9,10,11,12},k,j,*p=&
a[0][0],t;
for(k=0,j=M*N-1;
k++,j--)
{t=*(p+k);
*(p+k)=*(p+j);
*(p+j)=t;
for(k=0
M
{for(j=0
N
%4d"
a[k][j]);
intlen;
charstr[20],*p=str;
pleaseinputastring:
%s"
str);
len=0;
while(*p!
\0'
len++;
p++;
thestringhas%dcharacters.\
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课后 习题 参考答案