习题参考答案.docx
- 文档编号:9238756
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:81
- 大小:35.77KB
习题参考答案.docx
《习题参考答案.docx》由会员分享,可在线阅读,更多相关《习题参考答案.docx(81页珍藏版)》请在冰豆网上搜索。
习题参考答案
习题参考答案
第1章
1.a=%d,b=%d
2.
【程序代码如下:
】
#include
intmain()
{
printf(“*\n”);
printf(“***\n”);
printf(“*****\n”);
printf(“*******\n”);
return0;
}
【程序运行结果如下:
】
3.Theresultis95
第2章
1.a=3,b=-27
2.假设圆柱的底面积半径为r(=2.5),高为h(=3.5),编写求体积(体积=底面积*
高)的程序。
【程序代码如下:
】
#include
#definePI3.1415926
intmain()
{
doubler=2.5;
doubleh=3.5;
doublev=0;
v=(PI*r*r)*h;
printf(“v=%lf\n”,v);
return0;
}
【程序运行结果如下:
】
3.将下面的数学公式转换成C语言的表达式,并用程序验证转换后的表达式是否与
原数学公式是一致的。
数学公式如下:
ba
ba
ba
ba
a
+
−
+
−
+−
4
2
4
2
设a=3,b=5。
【程序代码如下:
】
#include
intmain()
{
doublea=3,b=5;
doubleresult=(-2*a+(4*a–b)/(2*a+b))/((a-4*b)/(a+b));
printf(“%lf\n”,result);
return0;
}
【程序运行结果如下:
】
4.编写程序,从键盘输入两个字符分别存放在变量x和y中,要求通过程序交换它们
的值。
【程序代码如下:
】
#include
intmain()
{
charx,y;
chartmp;
printf(“Inputtwocharacters:
”);
scanf(“%c%c”,&x,&y);
printf(“Beforeswap:
x=%c,y=%c\n”,x,y);
tmp=x;
x=y;
y=tmp;
printf(“Afterswap:
x=%c,y=%c\n”,x,y);
return0;
}
【程序运行结果如下:
】
5.Writeaprogramtoevaluatethepolynomialshownhere:
forx=2.55.
3x3-5x2+6.
【程序代码如下:
】
#include
#include
intmain()
{
doublea=3,b=-5,c=2;
doublex=2.55;
doubleroot1,root2;
doubledelt;
delt=b*b–4*a*c;
root1=(-b+sqrt(delt))/(2*a);
root2=(-b-sqrt(delt))/(2*a);
printf(“Thetworootsare:
\n”);
printf(“root1=%lf\nroot2=%lf\n”,root1,root2);
return0;
}
【程序运行结果如下:
】
第3章
1.1010110
2.某市不同车牌的出租车3公里的起步价和计费分别为:
夏利7元/公里,3公里以外
2.1元/公里;富康8元/公里,3公里以外2.4元/公里;桑塔纳9元,3公里以外2.7元/公里。
编程:
从键盘输入乘车的车型及公里数,输出应付的车资。
【程序代码如下:
】
#include
intmain()
{
intcarType;//车型。
1代表夏利;2代表富康;3代表桑塔纳
doublexiali=2.1;//每公里价格
doublefukang=2.4;
doublesangtana=2.7;
doubledistance;//距离
doubletotalMoney;//总的收费
printf("请输入您乘坐的车型:
1代表夏利;2代表富康;3代表桑塔纳:
");
scanf("%d",&carType);
printf("请输入您乘车的总路程:
");
scanf("%lf",&distance);
if(carType==1)//夏利
{
if(distance<3)
totalMoney=7.0;
else
totalMoney=7+xiali*(distance–3);
}
elseif(carType==2)//富康
{
if(distance<3)
totalMoney=8.0;
else
totalMoney=8+fukang*(distance–3);
}
elseif(carType==3)//富康
{
if(distance<3)
totalMoney=9.0;
else
totalMoney=9+sangtana*(distance–3);
}
printf("(四舍五入)您的车费为:
%.0lf\n",totalMoney);
return0;
}
【程序运行结果如下:
】
3.Writeaprogramthataskstheusertotypeintwointegervaluesattheterminal.Test
thesetwonumbertodetermineifthefirstisevenlydivisiblebythesecond,andthendisplayan
appropriatemessageattheterminal.
【程序代码如下:
】
#include
intmain()
{
intnum1,num2;
printf(“Inputtwointegers:
”);
scanf(“%d%d”,&num1,&num2);
if(0==num1%num2)
printf(“%dcanbeevenlydivisibleby%d\n”,num1,num2);
else
printf(“%dcannotbeevenlydivisibleby%d\n”,num1,num2);
return0;
}
【程序运行结果如下:
】
第4章
1.65B
2.c=J
3.编写程序,从键盘输入两个数字字符并分别存放在字符型变量x和y中,要求通过
程序将这两个字符对应的数字相加后输出。
【程序代码如下:
】
#include
intmain()
{
charx,y;
printf(“Inputtwocharacters:
”);
scanf(“%c%c”,&x,&y);
if(x>=’0’&&x<=’9’&&y>=’0’&&y<=’9’)
printf(“%d\n”,x-'0'+y-'0');
return0;
}
【程序运行结果如下:
】
4.编写程序,从键盘上输入一个小写字母,将其转化为大写字母。
【程序代码如下:
】
#include
intmain()
{
charlower;
printf(“Inputaloweralpha:
”);
scanf(“%c”,&lower);
if(lower>=’a’&&lower<=’z’)
printf(“%c\n”,lower-32);
return0;
}
【程序运行结果如下:
】
5.Writeaprogramthattakesanintegerkeyedinfromtheterminalandextractsand
displayseachdigitoftheintegerinEnglish.So,iftheusertypes932,theprogramshoulddisplay
“ninethreetwo”.
【程序代码如下:
】
#include
intmain()
{
intnum;
intiDigit;//每一位上的数字
printf(“Pleasseinputaninteger:
”);
scanf(“%d”,&num);
while(num)//当该数不为0时,继续提取其个位上的数字
{
iDigit=num%10;//提取个位
switch(iDigit)
{
case0:
printf(“Zero“);break;
case1:
printf(“One“);break;
case2:
printf(“Two“);break;
case3:
printf(“Three“);break;
case4:
printf(“Four“);break;
case5:
printf(“Five“);break;
case6:
printf(“Six“);break;
case7:
printf(“Seven“);break;
case8:
printf(“Eight“);break;
case9:
printf(“Night“);break;
}
num/=10;//去掉该数的个位
}
printf(“\n”);
return0;
}
【程序运行结果如下:
】
第5章
1.C2.B3.C4.C5.B6.A7.A
8.错误。
9.正确。
10.void
11.编写程序,用有参有返回值函数实现判断三个数是否能构成三角形。
函数原型可声
明为:
“intisTriangle(doublea,doubleb,doublec);”,其中,a,b,c为三角形的三条边,
返回值为0或1,0代表不能构成三角形,1代表能构成三角形。
请在主函数中调用该函数
完成程序的功能。
【程序代码如下:
】
#include
intisTriangle(doublea,doubleb,doublec);//函数声明
intmain()
{
doubleea,eb,ec;//三角形的三条边
intresult;//是否是三角形的判断结果
printf(“Pleaseinputthethreeedgesofatriangle:
”);
scanf(“%lf%lf%lf”,&ea,&eb,&ec);
result=isTriangle(ea,eb,ec);//函数调用
if(0==result)
printf(“这组边长不能构成三角形\n”);
else
printf(“这组边长可以构成三角形\n”);
return0;
}
intisTriangle(doublea,doubleb,doublec)//函数定义
{
if(a>0&&b>0&&c>0&&a+b>c&&b+c>a&&c+a>b)
//三角形任意边长大于0,且任意两边之和大于第三边
return1;//可以构成三角形
else
return0;//不能构成三角形
}
【程序运行结果如下:
】
12.Writeafunctioncalledprimethatreturns1ifitsargumentisaprimenumberandreturns
0otherwise.
【程序代码如下:
】
#include
#include
intprime(intn);//函数声明
intmain()
{
intnum;
intisPrime;
printf(“Pleaseinputaninteger:
”);
scanf(“%d”,&num);
isPrime=prime(num);//函数调用
if(1==isPrime)
printf(“%disaprime\n”,num);
else
printf(“%disnotaprime\n”,num);
return0;
}
intprime(intn)//函数定义
{
inti;
for(i=2;i<=sqrt(n);++i)
if(n%i==0)break;
if(i>sqrt(n))
return1;
else
return0;
}
【程序运行结果如下:
】
第6章
1.A2.B3.D4.C5.D6.C7.A8.A9.A
10.511.3
12.编写程序。
功能:
从读入的整数数据中,统计大于零的整数个数和小于零的整数个
数。
用输入零来结束输入,程序中用变量i统计大于零的整数个数,用变量j统计小于零的
整数个数。
【程序代码如下:
】
#include
intmain()
{
intnum;//输入的整数
intiCount=0;//大于0的整数的计数变量
intjCount=0;//小于0的整数的计数变量
printf(“请输入多个整数:
(以0结束输入)”);
scanf(“%d”,&num);
while(num)//while(num!
=0)
{
if(num>0)++iCount;
elseif(num<0)++jCount;
scanf(“%d”,&num);
}
printf(“大于0的个数:
%d\n”,iCount);
printf(“小于0的个数:
%d\n”,jCount);
return0;
}
【程序运行结果如下:
】
13.编写程序。
功能:
以每行5个数来输出300以内能被7或17整除的偶数,并求出
其和。
【程序代码如下:
】
#include
intmain()
{
intn;//300以内的数
intcount=0;//满足条件的数的统计变量
intsum=0;//求和变量
for(n=1;n<=300;++n)
{
if(n%2==0&&(n%7==0||n%17==0))//是偶数,且能被7或17整除
{
sum+=n;//求和
printf(“%5d”,n);//输出n值
++count;
if(count%5==0)//某行够5个数了,则换行
printf(“\n”);
}
}
printf(“\n”);
return0;
}
【程序运行结果如下:
】
14.编写程序。
功能:
输出100到1000之间的各位数字之和能被15整除的所有数,输
出时每10个数一行。
【程序代码如下:
】
#include
intmain()
{
intn;//100到1000之间的整数
inttmpn;//临时存储n
intsum;//统计n的各位数字之和
intcount=0;//输出数的个数
for(n=100;n<=1000;++n)
{
tmpn=n;//将n临时存储到tmpn中
sum=0;//每个n要重新计算各位数字之和
while(tmpn)//当tmpn不为0时
{
sum+=tmpn%10;
tmpn/=10;
}
if(sum%15==0)//如果n满足指定的条件
{
printf(“%5d”,n);//输出当前n值
++count;
if(count%10==0)//一行输出了10个整数,则换行
printf(“\n”);
}
}
printf(“\n”);
return0;
}
【程序运行结果如下:
】
15.编写程序。
功能:
分别求出一批非零整数中的偶数、奇数的平均值,用零作为终止
标记。
【程序代码如下:
】
#include
intmain()
{
intn;//整数
inteSum=0;//奇数的和
intoSum=0;//偶数的和
inteCount=0;//奇数的个数
intoCount=0;//偶数的个数
printf(“请输入若干个整数(以0结束输入):
”);
scanf(“%d”,&n);
while(n)//当n不为0
{
if(n%2)//n为奇数
{eSum+=n;++eCount;}
else//否则,n为偶数
{oSum+=n;++oCount;}
scanf(“%d”,&n);//输入下一个整数
}
printf(“奇数平均值:
%f\n”,1.0*eSum/eCount);
printf(“偶数平均值:
%f\n”,1.0*oSum/oCount);
return0;
}
【程序运行结果如下:
】
16.编写程序。
功能:
计算并输出500以内最大的10个能被13或17整除的自然数之
和。
【程序代码如下:
】
#include
intmain()
{
intn;//500-1之间的整数
intsum=0;//求和变量
intcount=0;//满足条件的数的个数
for(n=500;n>0;--n)
{
if(n%13==0||n%17==0)
{
sum+=n;
++count;
if(count>=10)//有10个满足条件的整数,提前结束循环
break;
}
}
printf(“sum=%d\n”,sum);
return0;
}
【程序运行结果如下:
】
第7章
1.B
2.编写程序。
功能:
百马百担问题:
有100匹马,驮100担货,大马驮三担,中马驮
2担,两匹小马驮一担,求大、中、小马各多少匹?
【程序代码如下:
】
#include
intmain()
{
intbigHorse,midHorse,littleHorse;//大、中、小马的数量
for(bigHorse=0;bigHorse<=33;++bigHorse)
for(midHorse=0;midHorse<=50;++midHorse)
{
littleHorse=100–bigHorse–midHorse;//小马数量
if(littleHorse%2==0&&(3*bigHorse+2*midHorse+littleHorse/2
==100))//小马数量是偶数,且三种马驮的货是100担
printf(“大马:
%d,中马:
%d,小马:
%d\n”,bigHorse,midHorse,
littleHorse);
}
return0;
}
【程序运行结果如下:
】
3.编写程序。
功能:
百鸡问题:
100元买100只鸡,公鸡一只5元钱,母鸡一只3元钱,
小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只?
【程序代码如下:
】
#include
intmain()
{
intcock,hen,chick;//公鸡、母鸡、小鸡的数量
for(cock=0;cock<=20;++cock)
for(hen=0;hen<=33;++hen)
{
chick=100–cock–hen;//小鸡数量
if(chick%3==0&&(5*cock+3*hen+chick/3==100))//小鸡
数量是3的倍数,且三种鸡的总钱数是100
printf(“公鸡:
%d,母鸡:
%d,小鸡:
%d\n”,cock,hen,chick);
}
return0;
}
【程序运行结果如下:
】
4.编写程序。
功能:
在屏幕上用*输出一个漏斗状的图形。
【程序代码如下:
】
#include
voidprintFunnel(intn);//函数声明
intmain()
{
intn;//上半部的总行数
printf(“请输入漏斗上半部的总行数:
”);
scanf(“%d”,&n);
printFunnel(n);//调用函数打印漏斗形
return0;
}
voidprintFunnel(intn)
{
introw;//行号
intstarCount;//某行上星号的数量
intspaceCount;//某行上空格的数量
for(row=1;row<=n;++row)
{
for(spaceCount=1;spaceCount<=row–1;++spaceCount)
printf(““);//打印出某行上星号前的空格
for(starCount=1;starCount<=2*(n–row)+1;++starCount)
printf(“*“);//打印出某行上的所有星号
printf(“\n”);//换行
}
//打印下半部分(可看成一个n-2行的三角形
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 参考答案