软件学院高级语言作业参考答案12Word文件下载.docx
- 文档编号:980269
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:97
- 大小:275.03KB
软件学院高级语言作业参考答案12Word文件下载.docx
《软件学院高级语言作业参考答案12Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件学院高级语言作业参考答案12Word文件下载.docx(97页珍藏版)》请在冰点文库上搜索。
%d除以%d:
%f\n"
m,n,(float)m/n);
%d除以%d的余数:
%d\n"
m,n,m%n);
}
2.8已知摄氏温度C与华氏温度F的转换关系是
编写一个摄氏温度与华氏温度转换的程序,输入C,输出F.
floatf,c;
请输入摄氏温度的值:
\n"
%f"
c);
//输入33
//f=9*c/5+32;
//结果为91.4
f=9.0/5*c+32;
//f=9/5*c+32;
//结果为65
转换为华氏温度是:
f);
第三章分支程序设计
P61:
3.2,3.8,3.9,3.10,练习题1
3.2编写程序,输入一个字母,若其为小写字母,将其转换成相应的大写字母,然后输出。
charc1;
请输入一个小写字母:
%c"
c1);
if(c1>
=97&
&
c1<
=122)//if(c1>
='
a'
z'
)
{
c1=c1-32;
//c2=c1-('
-'
A'
printf("
该字母对应的大写字母是:
%c\n"
c1);
}
else
该字符不是小写字母\n"
程序运行结果:
3.8编写程序,判断给定的3位数是否为Armstrong数,Armstrong数是指其值等于它本身每位数字立方和的数,如153就是一个Armstrong数。
math.h>
intdata;
//变量声明,用来存储输入的三位整数
intbit0,bit1,bit2;
//变量声明,分别用来存储每一位上的数字
inttmp0;
//临时变量
请输入一个三位整数:
%d"
data);
if(data>
999||data<
100)//检验数据
{
输入数据错误.\n"
return;
//退出当前函数
bit0=data%10;
tmp0=data/10;
bit1=tmp0%10;
bit2=tmp0/10;
if(pow(bit2,3)+pow(bit1,3)+pow(bit0,3)==data)
%d是Armstrong数.\n"
data);
%d不是Armstrong数.\n"
3.9编写程序,读入一个点的X、Y,计算
#defineEPS1e-6
floatx,y,z;
请输入x和y的值:
%f%f"
x,&
y);
if(fabs(x)<
EPS||fabs(y)<
EPS)
输入错误,该点在坐标轴上.\n"
if(x>
0)
if(y>
0)//第一象限
z=log(x)+log(y);
else//第四象限
z=tan(x+y);
0)//第二象限
z=sin(x)+cos(x);
else//第三象限
z=exp(2*x)+exp(3*y);
z=%f\n"
z);
3.10编程序,输入一个整数,判断它能否被3、5、7整除,并输出如下信息。
A.能同时被3、5、7整除;
B.能同时被两个数整除,并指明是哪两个数;
C.能被一个数整除,并指明是哪个数;
D.不能被所有数整除。
参考答案1:
#include"
stdio.h"
voidmain(){
intn;
inta,b,c;
pleaseinputn:
"
a=b=c=0;
//important!
if(n%3==0)a=1;
if(n%5==0)b=1;
if(n%7==0)c=1;
switch(a+b+c){
case3:
3,5,7"
break;
case2:
if(a==0)printf("
5,7"
if(b==0)printf("
3,7"
if(c==0)printf("
3,5"
case1:
if(a==1)printf("
only3"
if(b==1)printf("
only5"
if(c==1)printf("
only7"
break;
default:
printf("
nevercanbe!
参考答案二:
Pleaseinputaninteger:
if(n%3==0)
if(n%5==0)
{
if(n%7==0)
printf("
3,5,7\n"
else
3,5\n"
}
else
3,7\n"
3\n"
5,7\n"
5\n"
7\n"
Allnot.\n"
参考答案3:
(需要数组知识)
intdata,i,count=0;
charch[3];
请输入一个整数:
if(data%3==0){ch[count]='
3'
;
count++;
if(data%5==0){ch[count]='
5'
if(data%7==0){ch[count]='
7'
能被其中的%d个数整除,分别是:
count);
for(i=0;
i<
count;
i++)
%c"
ch[i]);
练习题1:
编程序,当输入数值月份时,显示相应英文月份名称。
例如当输入1时输出January,当输入5时输出May,等等。
intx;
Pleaseinputthenumber:
scanf("
x);
switch(x)
case1:
January\n"
break;
case2:
February\n"
case3:
March\n"
case4:
April\n"
case5:
May\n"
case6:
June\n"
case7:
July\n"
case8:
August\n"
case9:
September\n"
case10:
October\n"
case11:
November\n"
case12:
December\n"
default:
Wrongnumber!
参考答案2:
(需要字符数组相关知识)
string.h"
charmonth[20];
intx;
switch(x){
case1:
strcpy(month,"
January"
break;
case2:
strcpy(month,"
February"
case3:
March"
case4:
April"
case5:
May"
case6:
June"
case7:
July"
case8:
August"
case9:
Septemberv"
case10:
Octoberv"
case11:
Novemberv"
case12:
December"
default:
Wrong"
}
%s\n"
month);
//输出的是英文单词
第四章循环程序设计
P83:
4.1,4.8,4.12,4.16,4.18,4.20,4.21
4.1利用展开式
计算
,分别:
到第100项;
到第n项小于
(1)到100项:
inti=0;
floatx,result=1.0,item=1.0;
请输入x的值:
while(i<
=99)
i++;
item=item*x/i;
result+=item;
theresultis%g\n"
result);
(2)到第n项小于
:
#defineEPS1e-8
do
item=item*x/i;
}while(fabs(item)>
EPS);
4.8编写程序,打印所有小于100的可以被11整除的自然数。
voidmain(){
inti;
100;
if(i%11==0)
printf("
i);
参考答案2:
for(i=1;
=9;
i*11);
4.12编写程序,打印所有3位的Armstrong数,Armstrong数是指其值等于它本身每位数字立方和的数,如153就是一个Armstrong数。
#include<
{inti,bit0,bit1,bit2,tmp0;
for(i=100;
999;
bit0=i%10;
tmp0=i/10;
bit1=tmp0%10;
bit2=tmp0/10;
if(bit0*bit0*bit0+bit1*bit1*bit1+bit2*bit2*bit2==i)
}
{intbit0,bit1,bit2,tmp0;
for(bit2=1;
bit2<
bit2++)
for(bit1=0;
bit1<
bit1++)
for(bit0=0;
bit0<
bit0++)
if(bit0*bit0*bit0+bit1*bit1*bit1+bit2*bit2*bit2==bit0+bit1*10+bit2*100)
printf("
bit0+bit1*10+bit2*100);
4.16编程序,打印下图形式的数字金字塔。
1
121
12321
1234321
123454321
…………
…………………
1234567890987654321
inti,j,k,l;
for(i=1;
=10;
i++)//控制行数
for(j=1;
j<
=10-i;
j++)//打印左边黑色部分
"
for(k=1;
k<
=i;
k++)
if(k==10)//第10行
%2d"
k-10);
k);
for(l=i-1;
l>
0;
l--)//打印右边蓝色部分
l);
4.18牛顿迭代法
#defineEPS1e-9
floata,b,x;
请输入x的值:
b=10;
do{
a=b;
b=(a+x/a)/2.0;
while(fabs(a-b)>
b);
运行结果:
4.20爱因斯坦阶梯问题。
设有阶梯,不知其数,但知:
每步跨2阶,最后剩1阶;
每步跨3阶,最后剩2阶;
每步跨5阶,最后剩4阶;
每步跨7阶,正好到楼顶。
编程序求最少共有多少阶。
while循环
n=1;
while((n%2!
=1)||(n%3!
=2)||(n%5!
=4)||(n%7!
=0))
n++;
%d!
\n"
n);
for循环
for(i=0;
!
(i%2==1&
i%3==2&
i%5==4&
i%7==0);
i+=7)
;
//空语句
%d!
\n"
4.21100匹马驮100担货,大马驮3担;
中马驮2担;
小马驮0.5担。
编程序,计算大、中、小马的数量。
分析:
3*big+2*mid+0.5*sm=100
big+mid+sm=100
#defineSUM100
#defineB3
#defineM2
#defineS0.5
intbig,mid,sm;
for(big=0;
big<
=SUM/B;
big++)
for(mid=0;
mid<
=SUM/M;
mid++)
sm=SUM-big-mid;
if(big*B+mid*M+sm*S==SUM)
big=%d,\tmid=%d,\tsmall=%d\n"
big,mid,sm);
练习1:
某国的货币单位为Y,共有4种不同面值的硬币,分别为:
1Y、2Y、5Y、1X,其中1X等于10Y,问1X单位的货币可以兑换成多少种不同组合的硬币,请编程实现。
1*i+2*j+5*k=10
inti,j,k;
1X单位的货币可以兑换成如下组合的硬币:
for(j=0;
=5;
j++)
for(k=0;
=2;
{
if(i*1+j*2+k*5==10)
%d个1Y+%d个2Y+%d个5Y\n"
i,j,k);
练习2:
求解非线型方程f(x)=0的牛顿迭代法的迭代公式是
编写程序,用此方法求方程
在
附近的根。
#defineesp1e-6
floatx0,x1;
//迭代法三要素:
1.初值
x0=0.0;
x1=-1.0;
//2.迭代公式
x0=x1;
x1=x0-(x0*x0*x0*(pow(x0,38)+1)+1)/(x0*x0*(41*pow(x0,38)+3));
while(fabs(x1-x0)>
esp);
//3.精度
x=%f\n"
x1);
练习3:
古印度有一位十分有趣的国王要奖励为他发明国际象棋的宰相达依尔,问他要什么。
达依尔回答:
“陛下,只要在国际象棋的第一个格子中放1粒麦子,第二个格子中放2粒麦子,第三个格子中放4粒麦子,第四个格子中放8粒麦子……依此类推,以后每个格子中都放其前一个格子中麦子数的两倍,这样放满棋盘的64个格子为止即可。
”国王觉得这件事很容易,于是开始奖赏,没想到一袋麦子很快就用完了。
下一袋麦子也很快就用完了。
最后一算,全印度的麦子全部用上也不够。
编写程序,计算所需麦子的体积(1m3麦子约1.4×
108粒)。
//#include<
{doublesum=0;
doubleadd=1;
for(inti=1;
=64;
{sum+=add;
add*=2;
//add=pow(2,i);
//不好
thetotalvolumeis%f\n"
sum/1.4e8);
第五章模块化程序设计——函数
P97:
5.1,5.2,5.3,5.6.5.7,5.8
5.1编写程序计算
其中:
//函数定义
floatf(floatv,floatw)
{return(w+v)/(7*v);
floatp(floatu)
{return(f(u*0.3,u)+u/2)/(2*u);
floaty(floatx)
{return(p(x)*p(x)+5*x)*p(x+2)/(p(x+5)-sqrt(x));
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 学院 高级 语言 作业 参考答案 12