C语言课后作业题参考答案
- 格式:doc
- 大小:388.50 KB
- 文档页数:45
C语言课后作业及参考答案
1 C语言课后作业题参考答案
第二章
2.2 用赋值表达式表示下列计算
1) cbaxy
2) 2/5262)(lnedax
3) yXaXXsincos2
4)
RRRR1111123
5)232)4(7)2(5)2(31xxxxxy
参考答案:
1) y=pow(x,a+pow(b,c))
或者:
exp((a+exp(c*log(b)))*log(x))
2) x=pow(log(sqrt(a+d*d))-exp(26),5.0/2)
或者:
exp(5.0/2*log(log(sqrt(a+d*d))-exe(26)))
3) y=sin(x)/(a*x)+fabs(cos(3.1415926*x/2))
4) R=1.0/(1.0/R1+1.0/R2+1.0/R3)
5) y=x/(1+(x/(3+(pow(2*x,2)/5+(pow(2*x,3)/(7+pow(4*x,2)))))))
2.6 编写程序,输入两个整数,分别求它们的和、差、积、商、余数并输出。
参考答案:
#include
void main()
{
int m,n;
printf("请输入2个整数\n");
scanf("%d%d",&m,&n);
printf("%d+%d=%d\n",m,n,m+n); C语言课后作业及参考答案
2 printf("%d-%d=%d\n",m,n,m-n);
printf("%d*%d=%d\n",m,n,m*n);
printf("%d除以%d:%f\n",m,n,(float)m/n);
printf("%d除以%d的余数:%d\n",m,n,m%n);
}
2.9 已知摄氏温度C与华氏温度F的转换关系是)32(95FC,编写一个摄氏温度与华氏温度转换的程序,输入C,输出F.
参考答案:
#include
void main()
{
float f,c;
printf("请输入摄氏温度的值:\n");
scanf("%f",&c); //输入33
//f=9*c/5+32; //结果为91.4
f=9.0/5*c+32; //结果为91.4
//f=9/5*c+32; //结果为65
printf("转换为华氏温度是:%f\n",f);
}
第3章 分支程序设计
3.3 编写程序,输入一个字母,若其为小写字母,将其转换成相应的大写字母,然后输出。
参考答案:
#include
void main()
{
char c1;
printf("请输入一个小写字母:\n");
scanf("%c",&c1);
if(c1>=97&&c1<=122) // if(c1>='a'&&c1<='z')
{
c1=c1-32; // c2=c1-('a'-'A');
printf("该字母对应的大写字母是:%c\n",c1);
}
else
printf("该字符不是小写字母\n");
}
程序运行结果: C语言课后作业及参考答案
3
3.9编写程序,判断给定的3位数是否为Armstrong数,Armstrong数是指其值等于它本身每位数字立方和的数,如153就是一个Armstrong数。
333351153
参考答案:
#include
#include
void main()
{
int data; //变量声明,用来存储输入的三位整数
int bit0,bit1,bit2; //变量声明,分别用来存储每一位上的数字
int tmp0; //临时变量
printf("请输入一个三位整数:\n");
scanf("%d",&data);
if(data>999||data<100) //检验数据
{
printf("输入数据错误.\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)
printf("%d是Armstrong数.\n",data);
else
printf("%d不是Armstrong数.\n",data);
}
程序运行结果:(运行3次)
C语言课后作业及参考答案
4
程序改进:
#include
#include
void main()
{
int data; //变量声明,用来存储输入的三位整数
int bit0,bit1,bit2; //变量声明,分别用来存储每一位上的数字
int tmp0; //临时变量
int flag=1; //flag用来控制是否继续输入其他3位数
while(flag==1)
{
printf("\n请输入一个三位整数:\n");
scanf("%d",&data);
while(data>999||data<100) //检验数据
{
printf("输入数据错误,请重新输入:\n");
scanf("%d",&data);
}
bit0=data%10;
tmp0=data/10;
bit1=tmp0%10;
bit2=tmp0/10;
if(pow(bit2,3)+pow(bit1,3)+pow(bit0,3)==data)
printf("%d是Armstrong数.\n",data);
else
printf("%d不是Armstrong数.\n\n",data);
printf("\n是否继续输入?1:继续;其他数字:退出:\n");
scanf("%d",&flag);
}
}
程序运行结果:(运行一次) C语言课后作业及参考答案
5
参考程序2:
#include
#include
void main()
{
int bit0,bit1,bit2; //变量声明,分别用来存储每一位上的数字
printf("请输入3个一位整数,分别表示该三位数的百位、十位和个位上的数字(百位上数字不能为0):\n");
scanf("%d%d%d",&bit2,&bit1,&bit0);
while(bit2>9||bit2<=0||bit1>9||bit1<0||bit0>9||bit0<0) //检验数据
{ printf("输入数据错误,请重新输入3个一位正整数:\n");
scanf("%d%d%d",&bit2,&bit1,&bit0);
}
if(pow(bit2,3)+pow(bit1,3)+pow(bit0,3)==bit2*100+bit1*10+bit0)
printf("%d是Armstrong数.\n",bit2*100+bit1*10+bit0);
else
printf("%d不是Armstrong数.\n",bit2*100+bit1*10+bit0);
}
程序运行结果:
C语言课后作业及参考答案
6
3.10编写程序,读入一个点的X、Y,计算
在第四象限当在第三象限当在第二象限当在第一象限当YXYXYXYXYXYXYXZYX,),(tan,,ee,,sinsin,,lnln32
参考答案:
#include
#include
#define EPS 1e-6
void main()
{
float x,y,z;
printf("请输入x和y的值:\n");
scanf("%f%f",&x,&y);
if(fabs(x)
{
printf("输入错误,该点在坐标轴上.\n");
return;
}
if(x>0)
{
if(y>0)//第一象限
z=log(x)+log(y);
else//第四象限
z=tan(x+y);
}
else
{
if(y>0)//第二象限
z=sin(x)+cos(x);
else//第三象限
z=exp(2*x)+exp(3*y);
}
printf("z=%f\n",z);
}
3.11 编程序,输入一个整数,判断它能否被3 、5 、7整除,并输出如下信息。
A. 能同时被3 、5 、7整除;
B. 能同时被两个数整除,并指明是哪两个数;
C. 能被一个数整除,并指明是哪个数;
D. 不能被所有数整除。