吉林大学 软件学院 C语言 作业参考答案文档格式.docx
《吉林大学 软件学院 C语言 作业参考答案文档格式.docx》由会员分享,可在线阅读,更多相关《吉林大学 软件学院 C语言 作业参考答案文档格式.docx(54页珍藏版)》请在冰豆网上搜索。
,m,n,m+n);
%d-%d=%d\n"
m,n,m-n);
%d*%d=%d\n"
m,n,m*n);
%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);
第三章分支程序设计
3.2编写程序,输入一个字母,若其为小写字母,将其转换成相应的大写字母,然后输出。
charc1;
请输入一个小写字母:
%c"
c1);
if(c1>
='
a'
&
c1<
z'
)//if(c1>
=97&
=122)
{
c2=c1-('
-'
A'
//c1=c1-32;
printf("
该字母对应的大写字母是:
%c\n"
c1);
}
else
该字符不是小写字母\n"
程序运行结果:
3.9编写程序,读入一个点的X、Y,计算
参考答案1:
math.h>
#defineEPS1e-6
floatx,y,z;
请输入x和y的值:
%f%f"
x,&
y);
if(fabs(x)<
EPS||fabs(y)<
EPS)
{
输入错误,该点在坐标轴上.\n"
return;
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);
参考答案2:
intk
;
if(y>
0)k=1;
//第一象限
elsek=4;
//第四象限
0)k=2;
//第二象限
elsek=3;
//第三象限
switch(k){
case1:
z=log(x)+log(y);
break;
case2:
z=sin(x)+cos(x);
case3:
z=exp(2*x)+exp(3*y);
break;
case4:
z=tan(x+y);
}
printf("
3.10编程序,输入一个整数,判断它能否被3、5、7整除,并输出如下信息。
A.能同时被3、5、7整除;
B.能同时被两个数整除,并指明是哪两个数;
C.能被一个数整除,并指明是哪个数;
D.不能被所有数整除。
参考答案0:
#include"
stdio.h"
voidmain(){
intn;
inta,b,c;
pleaseinputn:
"
%d"
a=b=c=0;
//important!
if(n%3==0)a=3;
if(n%5==0)b=5;
if(n%7==0)c=7;
switch(a+b+c){
case15:
3,5,7"
case12:
5,7"
case10:
3,7"
case8:
3,5"
case7:
only7"
break;
case5:
only5"
case3:
only3"
default:
nevercanbe!
if(n%3==0)a=1;
if(n%5==0)b=1;
if(n%7==0)c=1;
switch(a+b+c){
case3:
break;
case2:
if(a==0)printf("
if(b==0)printf("
if(c==0)printf("
case1:
if(a==1)printf("
if(b==1)printf("
if(c==1)printf("
break;
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];
请输入一个整数:
data);
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时输出January,当输入5时输出May,等等。
voidmain(){
intx;
Pleaseinputthenumber:
scanf("
x);
switch(x){
January\n"
break;
February\n"
March\n"
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!
(枚举类型)
enumTMonth{January,February,March,April,May,June,July,August,September,October,November,December,Wrong}month;
//声明枚举类型的变量
intx;
switch(x){
case1:
month=January;
case2:
month=February;
case3:
month=March;
case4:
month=April;
case5:
month=May;
case6:
month=June;
case7:
month=July;
case8:
month=August;
case9:
month=September;
case10:
month=October;
case11:
month=November;
case12:
month=December;
default:
month=Wrong;
}
month);
//输出的是month的数值,而不是英文单词
参考答案3:
(字符数组)
string.h"
charmonth[20];
strcpy(month,"
January"
February"
March"
April"
May"
June"
July"
August"
Septemberv"
strcpy(month,"
Octoberv"
Novemberv"
December"
Wrong"
%s\n"
//输出的是英文单词
第四章循环程序设计
4.1利用展开式
计算
,分别:
到第100项;
到余项小于
(考虑当0<
x<
1;
0;
x>
1时应该如何计算)。
(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)到余项小于
:
(
)
#defineeps1e-8
#defineE3//e=2.71828182845904...
{inti=0;
doublex,result=1.0,item=1.0;
doubleRn;
//余项
%lf"
if(x<
=0)//余项中exp(x)中的x取0
Rn=item*x/i;
elseif(x>
0&
=1)//余项中exp(x)中的x取1
Rn=E*item*x/i;
else//x>
1
Rn=pow(E,x)*item*x/i;
while(fabs(Rn)>
eps)
{
if(x<
=0)
Rn=item*x/i;
elseif(x>
=1)
Rn=E*item*x/i;
else
Rn=pow(E,x)*item*x/i;
};
theresultis%.20g\n"
4.8
略(简单)
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)
printf("
i);
}
{intbit0,bit1,bit2,tmp0;
for(bit2=1;
bit2<
9;
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编程序,打印下图形式的数字金字塔。
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>
l--)//打印右边蓝色部分
l);
4.18
第五章模块化程序设计――函数
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));
{floatx,result;
Pleaseenterx:
result=y(x);
//函数调用
Theresultis:
5.2编写程序,输入实数a,b,c的值,计算并输出以下算式的值。
#defineN4.25
floatf(float);
//函数的声明
{floata,b,c,tmp,result;
Pleaseenterthevalueofa,b,c:
%f%f%f"
a,&
b,&
tmp=a+b;
result=(N*tmp+f(tmp))/(N+f(c));
//函数的调用
floatf(floatm)//函数的定义
{returnlog(m+sqrt(m)+1/m);
5.6分别编写函数,检测一个字符是否为空格、数字、元音字母。
boolisSpace(charc)
{if(c=='
'
returntrue;
returnfalse;
boolisDigital(charc)
{if(c>
'
0'
c<
9'
boolisVowel(charc)
||c=='
e'
i'
o'
u'
E'
I'
O'
U'
{charvar;
Pleaseenteraletter:
var);
if(isSpace(var))//函数调用
%cisaspace.\n"
var);
elseif(isDigital(var))
%c