全国计算机等级考试二级教程C语言程序设计课后习题答案.docx
《全国计算机等级考试二级教程C语言程序设计课后习题答案.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级教程C语言程序设计课后习题答案.docx(47页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级教程C语言程序设计课后习题答案
《全国计算机等级考试二级教程∙∙C语言程序设计》课后习题答案
第一章
1.1EXE
1.2COBJEXE
1.3顺序选择循坏
第二童
一・选择題
2.1B2.2D2.3B2.4A2.5C2.6A2.7B
2.8B2.9D2.10C2.11B2.12B2.13A
二•填空題
2.141112
2.154.24.2
2.16(}定义执行语句
2.17关键字用户标识符
2.18intfloatdouble
2.19floatal=l;floata2=l;
2.20存储单元
2.213.5
2.22(a*b)∕ca*b∕ca∕c*b
2.23把常虽10賦给变虽S
2.24位1或0
2.258127OlllllI-128IOOOOOOO
2.2632767-32768IOOOoOoOOOOOOOOO
2.2710816
三•上机改错題
2.28
^includeStdiO.h;删除行尾的;
main();/*mainfunction*/删除?
后的;•注释中的也耍紧靠购应为和"厂
函数开始处遗失了一个“{”
floatGS;∕*∕*risradius*∕√*SisareaOfCircuilar*/*/注释符右不可嵌套使用
r=5.0;
s=3.14159*r*r;
Printf(%Λ∩,s)行尾遗失了“广
函数结束处遗失了一个“尸
2.29
^includeStdiO.h
main∕*mainfunction*/main后遗失了“()”
floatazbrczv;/*a∕b,caresides,VisVOIUmeOfCUbe*/
W;行尾遗失rMa=2.0;b=3.0;c=4.0
v=a*b*c;
Printf(%Λ∩,V)行尾遗失了“广
}
第三章
-•选择題
3.1C3.2C3.3D3.4C3.5D3.6B3.7C3.8D3.9A3.10B
3.11C3.12D3.13D3.14A3.15C3.16C3.17C3.18无答案3.19C3.20B
二•填空題
3.21(l)-2002500
(2)i=-200rj=2500
⑶i=-200
j=2500
3.221200
3.23一条语句;
3.24;
3.25l∞,25.81z1.8923410025.811.8923410025.811.89234
3.26x=127zx=127rx=177rx=7f,×≈127
3.27x=127zx=127ZX=$127ZX=S000127zx=d
3.28a=513.789215za=513.79,a=513.789215∞,a=513.78921500
三.編程題和改错题
3.29修改后的程序如下:
main()
{
doublea,bzczszv;
Pnntf(inputazb,c:
);
SCanf(%lf%lf%lfz&a,8ibz&c);
S=a*b;
v=a*b*c;
Printf(a=%tb=%ξc=%f∖n,a,b,c);
Printf(S=%tv=%f∖∩∕Szv);
}
3.30
^include
main()
{
inta=560zb=60;
Printf(.0minuteis%dhourand%dminute.∖n,a∕bza%b);
}
3.31
^include
main()inta,b;
a=1500;b=350;
Printf(adivbis:
%d∖nza∕b);
Printf(amodbis:
%d∖nza%b);
}
3.32
^include
main()
{
doubleazbzc,ave;
PlIntf(input3doublenUmber:
∖n);
SCanf(%lf%lf%lf,&a,&b,&c);
Pnntf(%.lf∖∩∕(a+b+c)∕3);
}
3.33
^include
Voidmain()
{
intazbzczt;
轴淺睛龙请依次输入整数a,bzc:
);
SCanf(%d%d%d,&a,&b,&(:
);
Printf(∖
你输入的值是:
a=%dzb=%d,c=%d∖nzazbzc);t=b;b=a;a=c;c=t;
抽i⅞B⅛M交换Z后的值½ιa=%dzb=%d,c=%d∖n,a,bzc);}
第四堂
一•选择題
4.1A4.2A4.3A4.4D4.5C4.6A4.7B4.8C4.9D4.10C
二•填空題
4.11非00
4.12<>>=<=[∏J级==!
=同级
4.131&&H
4.15!
4.16a==b∣∣a4∣∣x<-4
4.171
4.18X<=01>0
4.19322
4.20*#
三・编程題
4.21賂
4.22
^include
/*检查口期的介法性7
intCheCkdate(intyear;intmonth,intday)
{
if(year<1900∣∣year>2005)
{
抽⅛β⅛M输入的年份无效!
∖n);
return0;
}
elseif(month<0&&month>12)
{
轴SBS½输入的月份无效!
∖n);
return0;
}
elseif(dayV=O&&day>31)
{
轴建晴龙输入的日期无效!
∖n);
return0;
}
else
{
SWitCh(month)
{
CaSe4:
CaSe6:
CaSe9:
CaSe11:
if(day>30)
{
轴建晴龙输入的日期无效!
∖n);
return0;
}
break;
CaSe2:
if((year%4==0&&year-XOOlO-O!
=0)∣∣year@0==0)
{
if(day>29)
{
轴SBS½输入的日期无效!
∖n);
return0;
else
{
if(day>28)
{
轴建晴龙输入的出生日期无效!
∖n);
return0;
}
}
break;
}ΓendOfSWitCh(mθ)*/
}
return1;
}
VOiClmain()
{
intyθ,mθ,do;Γ±0*/
inty‰ml,dl;Γ当前日期*/
intyearsfmonths,days;∕*实足年龄*/抽潼晴龙请输入学生的生口:
);
scanf(%d%d%dr&yO,&mO,&dO);
if(checkdate(yθzmθ,dθ))
{
抽⅛B⅛Mi⅛输入肖前口期:
);
SCanf(%d%d%dz&yl,&ml,&dl);
广当前日期介法性检査37
if(!
checkdate(ylzmlzdl))
{
return;
}
elseif(yθ>yl)
{
轴i⅞B⅛M出生年份比当前年份晚!
∖n);
return;
}
elseif(yθ==yl)
{
if(mθ>ml)
轴潼睛推出生年月比当前年月晚!
∖n);
return;
}
elseif(mθ==ml)
{
if(dθ>dl)
{
抽i⅞B⅛M岀生年月口比肖前年月口晚!
∖n);
return;
广计算实足年龄7
years=yl・yθ;
months=ml・mθ;
days=dl-dθ;
广修正实足年龄天数*/
if(days<0)
{
months-;
SWitCh(ml)
{
CaSe1:
CaSe5:
CaSe7:
CaSe10:
CaSe12:
days+=30;
break;
CaSe2:
CaSe4:
CaSe6:
CaSe8:
CaSe9:
CaSe11:
days+=31;
break;
CaSe3:
if((yl%4==0&&yl-x0010-0I=0)∣∣yl@0==0)days+=29;
else
days+=28;
}
break;
}∕*endOfSWitCh(ml)*/
}∕*endOfif(days<0)*/
广修正实足年龄月数*/
if(months{
months+=12;
years-;
}∕*endOfif(months抽潼暗龙出生口期:
%d年%d月%d口∖n,yθrmθzdθ);
抽潼昭龙肖前口期:
%d年%d月%dEl∖n,ylzml,dl);
抽i⅞∣∣⅛M实足年龄:
%d年%d丿j%dEl∖n,years,months,days);return;
}
4.23
^include
VOielmain()
{
inta;
抽潼昭?
请输入一个整数:
);
SCanf(%dz&3);
if(a%2==0)
{
Pnntf(%d是偶数∖nra);
}
else
{
Printf(%d是奇数∖nfa);
4.24
^include
VOidmain()
inta,bzc,temPrmax;
抽潼昭?
请输入三个整数:
);
SCanf(%d%d%d,&a,&b,&c);temp=(a>b)?
a:
b;
max=(temp>c)?
temp:
c;
Printf(∖
);
轴潼睛?
你输入的数中最大的是%d.∖n,max);}
4.25
(1)不嵌套的if语句
^include
VOiClmain()
{
intx,y;
Printf(inputX:
);
SCanf(%d,&x);
if(x>-5&&x<0)
{
Printf(yis%d∖nfy=x);
}
if(X==O)
{
Printf(yis%d∖nzy=x-l);
}
if(x>0&&x<10)
{
Printf(yis%d∖n,y=x+l);
}
if(x>=10Hx<=-5)
{
Printf(error∖n);
}
}
(2)嵌套的if语句
^include
VOidmain()intx,y;
Pnntf(inputX:
);
SCanf(%d,8ιx);
Pnntf(∖
);
if(x{
if(x>-5)
{
Printf(yis%d.∖nzy=x);
}
else
{
Pnntf(error!
∖n);
}
}
if(0==x)
{
Printf(yis%d.∖nZy=X-1);
}
if(x>0)
{
if(x<10)
{
Printf(yis%d.∖n,y=x+l);
}
else
{
Pnntf(error!
∖n);
(3)∣Lelse语句
^include
VOielmain()
{
intx,y;
Printf(inputX:
);
SCanf(%d,&x);
if(x>-5&&x<0)
{
Printf(yis%d.∖nzy=x);
}
elseif(x==0)
Printf(yis%d.∖n,y=x∙l);
}
elseif(x>0&&x{
Printf(yis%d.∖n,y=x+l);
}
else
{
Printf(error!
∖n);
}
}
(4)SWitCh语句
#include
VOidmain()
{
intxfy;
Printf(inputX:
);scanf(%dz‰x);
SWitCh(x)
{
CaSe-4:
CaSe-3:
CaSe-2:
CaSe-1:
Printf(yis%d.∖n,y=x);break;
CaSeO:
Printf(yis%d.∖n,y=x∙l);break;
CaSe1:
CaSe2:
CaSe3:
CaSe4:
CaSe5:
CaSe6:
CaSe7:
CaSe8:
CaSe9:
Printf(yis%d.∖n,y=x+l);break;
default:
Printf(error!
∖n);
第五童・
-・选择題
5・1D5.2C5.3B5.4C5.5C5.6B5.7D5.8A5.9D5.10D
二•填空題
5.11546
5.12死循环
5.13-1
5.1411
5.15d=1.0k++k<=n
5.16x>=0x
三.編程題
5.17
^include
VOidmain()
{
inti;
intSig=1;
intSUm=0;
Mi=l;i<=101;i÷÷ri++)
{
SUm+=引『i;
Sig*=-1;
}
Printf(SUm=%d∖nzsum);
}
5.18
(1)
^include
VOidmain()
{
inti;
doublem=1.0;
doublee=1.0;
for(i=l;i<50;i++)
e÷=1/m;
}
Printf(e=%Λnfe);
}
(2)
^include
VOielmain()
{
inti=l;
doublem=1.0;
doublee=1.0;
WhiIe(I/m>=0.0004)
{
m#=i;
e+=1/m;
i++;
}
Printf(e=%f∖nze);
}
5.19
^include
VOidmain()
{
intyear;
intCOl=O;
for(year=1600;year<=2000;year++)
{
if((year%4==O&&year_XOOIO-O!
=O)∣∣year@O==O)
{
Printf(%d∖t,year);
col++;
if(col%5==O)
{
Printf(∖
);
}
Printf(∖
);
5.20
#include
#defineN7
VOidmain()
{
inti;
intj;
intm;
intk≡N/2;
for(i=0;i{
m=i∙k;
if(m<0)
{
mJ-1;
}
for(j=0;j<
Printf();
}
forO=0;j<2^(k-m)+l;j++)
{
Printfc);
}
Printf(∖
);
笫六章
一・选择題
6.1B6.2D6.3A6.4A6.5B6.6D6.7D6.8B6.9A6.10A6.11C
二•填空Jfi
6.12-1
6.131
6.14CtyPe.h
6.151
6.16IOA20B30C40D
6.177.29101.298AB
6.18A7.29B101.298
6.19ABC(每个字符后有三个空格)
三・編程題
6.20
^include
#defineN80
VOielmain()
{
Charstr[N];
intiL∞p=0;
gθts(str);
while(str[iLoop])
{
Printf(%c-%d∖tfstr[iL∞p]zstr[iLoop]);
iL∞p+÷;
if(iLoop%3==0)
{
Printf(∖
);
Printf(∖
);
}
6.21
^include
^defineN80
VOiClmain()
{
Charstr[N];
intnum=0;
intiL∞p=O;
gθts(str);
While(Str[iLoop])
{
if(str[iLoop]>=,0'&&str[iL∞p]<=,9,)
{
num=10*num+(str[iL∞p]・O);
}
iL∞p+÷;
}
Printf(%d∖nznum);
6.22
^include
^include
^defineN80
VOielmain()
{
Charstr[N];
intnum=-1;
do
{
gθts(str);
num++;
}while(strcmp(stηEOF));
抽潼暗龙您输入了%d行字符!
∖nznum);
}
6.23
^include
#defineN80
VOidmain()
{
Charstr[N];
intiL∞p=0;
intnum=0;
gθts(str);
While(Str[iLoop]&&iL∞p{
if(str[iLoop]>=,a,&&str[iL∞p]<='z,)
{
num++;
}
iL∞p++;
}
抽潼晒龙您输入了字符中冇%d个小写字母!
∖n,num);
}
6.24
^include
VOiclmain()
intline;
intiL∞pl;
intiL∞p2;
抽SBS⅛iS输入图案的行数(不大于26):
);
scanf(%d,&line);
for(iL∞pl=0;iL∞pl{
for(iLoop2=0;iL∞p2{
Pnntf();
}
for(iL∞p2=0;iL∞p2<2*iLoopl+l;iLoop2++)
{
Printf(%cfiLoopl+TV);
}
Printf(∖
);
第七章
一・选择題
7.1C7.2C7.3B7.4C7.5A7.6D7.7A
二•填空題
7.812
7.99.000000
7.104
7.11n=lS
7.12<=yz*x
7.131Sr0f(k)
三•程序调试和编程题
7.14
fun(intn)
{intkzyes;
for(k=2;k<=n∕2;k++)
{
if(n%k==0){yes=0;break;}elseyes=1;
returnyes;
}
7.15
intmymod(intafintb)
{
returna%b;
}
7.16
doublefun(intn)
{
doubleSUm=O;
intiL∞p;
int=-1;
for(iL∞p=l;iL∞p<=n;iLoop++)
{
Sig*=-1;
SUm+=Sigarl.0∕iLoop;
}
returnsum;
}
7.17
doublefun(intn)
{
doublet=1.0;
intiL∞p;
IOngtmp;
for(iL∞p=2;iL∞p<=n;iLoop++){
tmp=iL∞p*iL∞p;
t-=1.0/tmp;
}
returnt;
}
7.18
^include
^include
doublefun(doublex)
{
returnx*x+5*x+4;
}
VOidmain()
intx=2;
Pnntf(yl=%f∖∩/fun(x));
Pnntf(y2=%f∖∩/fυn(x+15));
Printf(y3=%f∖∩/fun(sin(x)));
}
第八章
选择題
8.1A8.2B8.3B8.4C8.5B8.6B8.7C8.8D8.9B8.10C8.11C8.12C
二•填空題
8.13110
8.1471
8.15(IXhar*p=&ch;
(2)P=&ch;(3)scanf(%czp);(4)*p=,A';(5)Printf(%cz*p);
8.16(I)S=P+3;
(2)s=s-2(3)50(4)*(s+l)(5)2(6)1020304050
三•编程題
8.17
VOielfun(doubleXrdoubley,double*sumzdouble*div)
{
*sum=x÷y;
*div=x・y;
return;
}
8.18
VOielfun(doubleXZdoubleyrdoubleZzdouble*maxzdouble*min)
{
*max=x;
*min=x;
if(*max{
*max=y;
}
if(*max{
*max=z;
}
if(*min>y)
{
*min=y;
}
if(*min>Z)*min=z;
}return;
第九章
一∙选择題
9.1D9.2A9.3A9.4C9.5C9.6A9.7B9.8D9.9C9.10C
9.11C9.12D9.13D9.14A9.15A9.16A9.17C9.18C
填空题・二
9.1990
9.206
9.2112
9.223
9.232721
9.24-850z2r0
9.25k=pk
9.26(c=getchar())c-,A'
三•编程題
9.27
^include
^defineN81
intmain()
{
intCOUnter[10]={0};
intiL∞p=O;
Charstr[N];
gθts(str);
while(str[iLoop])
{
if(str[iLoop]>=,0,&&str[iL∞p]<=,9,)
{
COUnter[str[iL∞p]・,0,]++;
}
iL∞p++;
}
for(iL∞p=0;iL∞p<10;iLoop++)
{
Printf(%d・%d∖nziL∞p,COUnter[iLoop]);
}
returnO;
}
9.28
VOidfun(intarray[]zintarτaysizezintStart)
{
intiL∞p;