济南大学c语言实验答案DOC.docx
- 文档编号:4685563
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:33
- 大小:48.68KB
济南大学c语言实验答案DOC.docx
《济南大学c语言实验答案DOC.docx》由会员分享,可在线阅读,更多相关《济南大学c语言实验答案DOC.docx(33页珍藏版)》请在冰豆网上搜索。
济南大学c语言实验答案DOC
实验2顺序结构程序设计
1.编写程序,从键盘输入一个大写字母,将它转换为对应的小写字母后输出。
参考程序:
#include"stdio.h"
voidmain()
{
charch;
printf(“\nPleaseinputacapitalcharacter:
”);
scanf(“%c”,&ch);
ch=ch+32;
printf(“\nThesmallletteris%c”,ch);
}
2.编写程序,输入圆半径r,求圆周长、圆面积、圆球体积。
参考程序:
#include
#include
#definePI3.14
voidmain()
{
floatr,c,area,v;
printf(“\nPleaseinputther:
”);
scanf(“%f”,&r);
c=2*PI*r;
area=PI*r*r;
v=4.0/3*PI*pow(r,3);
printf(“\nThecircle’sperimeteris%.2f”,c);
printf(“\nThecircle’sareais%.2f”,area;
printf(“\nThecircle’svolumeis%.2f”,v);
}
3.输入一个华氏温度,要求输出摄氏温度。
公式为:
输出要有文字说明,取2位小数。
参考程序:
#include
voidmain()
{
floatf,c;
printf(“\nPleaseinputaFtemperature:
”);
scanf(“%f”,&f);
c=5.0/9*(f-32);
printf(“\nThetemperatureis%.2f”,c);
}
4.有3个电阻r1、r2、r3并联,编写程序计算并输出并联后的电阻r。
已知电阻并联公式为:
参考程序:
#include
voidmain()
{
floatr,r1,r2,r3;
printf(“\nPleaseinputr1、r2、r3:
”);
scanf(“%f%f%f”,&r1,&r2,&r3);
r=1.0/r1+1.0/r2+1.0/r3;
r=1.0/r;
printf(“\nTheresultis%.2f”,r);
}
5.编写程序,输入三角形的三条边,计算并输出三角形的面积。
(注意输入的三条边必须要能构成一个三角形)
求三角形的面积公式为:
其中s=(a+b+c)/2。
参考程序:
#include
#include
voidmain()
{
floata,b,c,s,area;
printf(“\nPleaseinputa,b,c:
”);
scanf(“%f%f%f”,a,b,c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“\nTheareais%f”,area);
}
6.编写程序,输入梯形的上底和下底,计算并输出梯形的面积。
精确到小数点后2位,输入输出时要有文字说明。
参考程序:
#include
voidmain()
{
floatx,y,h,area;
printf(“\nPleaseinputthex,y,h:
”);
scanf(“%f,%f,%f”,&x,&y,&h);
area=(x+y)*h/2;
printf(“Theareais%.2f”,area);
}
7.周期为T秒的人造卫星离地面的平均高度H的计算公式为:
其中:
M=6×1024kg是地球质量,R=6.371×106m是地球半径。
编写程序,输入人造卫星的周期T,计算并输出人造卫星离地面的高度H。
参考程序:
#include
#include
#definePI3.14
#defineM(6*pow(10,24))
#defineR(6.371*pow(10,6))
voidmain()
{
doublet,h,temp;
printf("\nPleaseinputtheT:
");
scanf("%lf",&t);
temp=(6.67*pow(10,-11)*M*t*t)/(4*PI*PI);
h=pow(temp,1.0/3)-R;
printf("\nThehighis%lf",h);
}
实验3选择结构程序设计
1.编写程序,输入一个正整数,判断该数是奇数还是偶数,并输出判断结果。
参考程序:
#include"stdio.h"
voidmain()
{
intm;
printf(“\nPleaseinputtheinteger(>0):
”);
scanf(“%d”,&m);
printf(“\nTheintegeris%d”,m);
if(m%2==0)
printf(“\nThisisaeven!
”);
else
printf(“\nThisisaodd!
”);
}
2.有一函数:
编写一个程序,用scanf函数输入x的值,输出y值。
注意表达式的书写方法。
参考程序:
#include
#include
voidmain()
{
floatx,y;
printf(“\nPleaseinputthex:
”);
scanf(“%f”,&x);
if(x<-1)
y=pow(x,3)-1;
elseif(x<=1)
y=-x*x+1;
elseif(x<=10)
y=3*x+5;
else
y=5*x+3*log(2*x*x-1)-13;
printf(“\ny=%f”,y);
}
3.编写程序,输入年号,判断并输出该年是否闰年。
参考程序:
#include
voidmain()
{
intyear;
printf(“\nPleaseinputtheyear:
”);
scanf(“%d”,&year);
if(year%4==0&&year%100!
=0||year%400==0)
printf(“\n%disaleapyear!
”,year);
else
printf(“\n%disnotaleapyear!
”,year);
}
4.简单选择界面的编程。
从键盘输入整数,输出不同的字符串:
输入1,输出Goodmorning;
输入2,输出Goodafternoon;
输入3,输出Goodevening;
输入4,输出Goodnight;
输入其他数字,输出Byebye。
参考程序:
#include
voidmain()
{
intn;
printf("\nPleaseinputanumber:
");
scanf("%d",&n);
switch(n)
{
case1:
printf("Goodmorning");break;
case2:
printf("Goodafternoon");break;
case3:
printf("Goodevening");break;
case4:
printf("Goodnight");break;
default:
printf("Byebye");
}
}
5.已知从银行贷款月利率为:
期限一年,为0.90%;期限2年,为1%;期限3年,为1.11%;三年以上为1.2%。
从键盘输入贷款金额和期限,计算到期后应归还银行本金和利息合计为多少钱。
参考程序:
#include
#include
voidmain()
{
intyear;
floatbase,rate,sum;
clrscr();
printf("\nEnterthebaseandtheyear:
");
scanf("%f%d",&base,&year);
switch(year)
{
case1:
rate=0.009;break;
case2:
rate=0.01;break;
case3:
rate=0.0111;break;
default:
rate=0.012;
}
sum=base*pow(1+rate,year);
printf("sumis%.2f\n",sum);
}
6.输入一个不多于5位的正整数,要求:
①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字。
要准备以下测试数据:
1位正整数
2位正整数
3位正整数
4位正整数
5位正整数
除此之外,程序还应当对不合法的输入作必要的处理,如负数或超过5位的正整数。
参考程序:
#include
voidmain()
{
inta,b,c,d,e,m;
printf(“\nPleaseinputainteger:
”);
scanf(“%d”,&m);
if(m>=0&&m<=99999)
{
a=m/10000;
b=m/1000-a*10;
c=m/100-a*100-b*10;
d=m/10-a*1000-b*100-c*10;
e=m%10000;
if(a!
=0)
{
printf(“\nThisisa5integer!
”);
printf(“\nTheintegeris%d%d%d%d%d!
”,a,b,c,d,e);
printf(“\nTheinverseis%d%d%d%d%d!
”,e,d,c,b,a);
}
elseif(b!
=0)
{
printf(“\nThisisa4integer!
”);
printf(“\nTheintegeris%d%d%d%d!
”,b,c,d,e);
printf(“\nTheinverseis%d%d%d%d!
”,e,d,c,b);
}
elseif(c!
=0)
{
printf(“\nThisisa3integer!
”);
printf(“\nTheintegeris%d%d%d!
”,c,d,e);
printf(“\nTheinverseis%d%d%d!
”,e,d,c);
}
elseif(b!
=0)
{
printf(“\nThisisa2integer!
”);
printf(“\nTheintegeris%d%d!
”,d,e);
printf(“\nTheinverseis%d%d!
”,e,d);
}
else
{
printf(“\nThisisa1integer!
”);
printf(“\nTheintegeris%d”,m);
}
}
else
printf(“\nNottheeffectinteger!
”);
}
实验4循环结构程序设计
1.从键盘输入若干整数,以0结束,判断并输出其中最大的数。
参考程序:
#include"stdio.h"
voidmain()
{
intn,max;
printf(“Pleaseinputsomeintegers(endingin‘0’):
”);
scanf(“%d”,&n);
max=n;
while(n!
=0)
{
if(n>=max)
max=n;
scanf(“%d”,&n);
}
printf(“Themaxintegeris%d\n”,max);
}
2.输入一行字符,以回车键作为结束标志,分别统计出大写字母、小写字母、空格、数字和其它字符的个数。
参考程序:
#include“stdio.h”
voidmain()
{
charch;
intcapital=0,alpha=0,space=0,number=0,other=0;
printf(“Pleaseinputsomechars(endingin‘\n’):
”);
while(ch=getchar()!
=’\n’)
{
if(ch>=’A’&&ch<=’Z’)
capital++;
elseif(ch>=’a’&&ch<=’z’)
alpha++;
elseif(ch>=’0’&&ch<=’9’)
number++;
elseif(ch==‘’)
space++;
else
other++;
}
printf(“\ncapital:
%d,alpha:
%d,number:
%d,space:
%d,other:
%d”,capital,alpha,number,space,other);
}
3.计算
。
(即求1!
+2!
+3!
+…+20!
)。
参考程序:
#include
voidmain()
{
intsum=0,i,m=1;
for(i=1;i<=20;i++)
{
m=m*i;
sum=sum+m;
}
printf(“1!
+2!
+3!
+…+20!
=%d”,sum);
}
4.输出所有的水仙花数。
水仙花数是指一个3位数,各位数字立方和等于该数本身。
参考程序:
#include
voidmain()
{
inti,j,k,n;
n=100;
printf("Thenumbersofshui-xian-huaare:
");
while(n<1000)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%4d",n);
n++;
}
printf("\n");
}
5.有一分数序列:
求出这个数列的前20项之和。
参考程序:
#include
voidmain()
{
inti,m=2,n=1,t,sum=0;
for(i=1;i<=20;i++)
{
sum=sum+1.0*m/n;
t=m;
m=m+n;
n=t;
}
printf(“\nThesumis%d”,sum);
}
6.求
的值,其中a是一个数字,如2+22+222+2222+22222(此时a=2,n=5),a和n均由键盘输入。
参考程序:
#include
voidmain()
{
ints,sum=0;
inti,n,a;
printf(“Pleaseinputthea,n:
”);
scanf(“%d%d”,&a,&n);
s=a;
for(i=1;i<=n;i++)
{
sum=sum+s;
s=s*10+a;
}
printf(“\nThesumis%d”,sum);
}
7.编写函数,求和:
n在主函数中由键盘输入,被调函数返回sum的值。
参考程序:
#include
floatfun(intn)
{
inti,s=0;
floatsum=0;
for(i=1;i<=n;i++)
{
s=s+i;
sum=sum+1.0/s;
}
return(sum);
}
voidmain()
{
intn;
floatsum;
printf(“\nPleaseinputn:
”);
scanf(“%d”,&n);
sum=fun(n);
printf(“\nThesumis%f”,sum);
}
8.
参考程序:
#include
#include
floatf2(intn)
{
inti;
floats=1;
for(i=2;i<=n;i++)
s=s*i;
return(s);
}
floatf1(intx,intn)
{
inti;
floats=x;
for(i=2;i<=n;i++)
s=x*s;
return(s);
}
main()
{
floatexp=1.0;
intx,n;
scanf("%d",&x);
exp+=x;
for(n=2;n<20;n++)
exp+=f1(x,n)/f2(n);
printf("\nexp(%d)=%.4f\n",x,exp);
}
9.从3个红球、5个白球、6个黑球中任意取出8个作为一组,要求在每组中可以没有黑球,但必须有红球和白球。
输出这样的组合数有多少?
并且输出每组中的红、白、黑球数。
#include
intball(intm,intn,ints)
{
inti,j,k,sum;
printf(“\nredwhiteblack:
”);
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
k=s-i-j;
sum++;
printf(“\n%2d%2d%2d”,i,j,k);
}
}
return(sum);
}
voidmain()
{
intred=3,white=5,black=6,s=8;
intsum;
sum=ball(red,white,s);
printf(“\nThetotalis%d”,sum);
}
实验5函数编程
1.编写函数,判断指定的字符是否是数字字符,如果是返回1,不是则返回0。
在主函数中输入该字符,调用函数判断该字符并输出是否是数字字符。
参考程序:
#include
intnumber(charch)
{
intn;
if(ch>='0'&&ch<='9')
n=1;
else
n=0;
return(n);
}
voidmain()
{
charch;
intn;
printf("\nPleaseinputachar:
");
scanf("%c",&ch);
n=number(ch);
if(n==1)
printf("\nItisanumber!
");
else
printf("\nItisnotanumber!
");
}
2.编写一个函数,求1!
+2!
+…+n!
。
要求:
n在主函数中输入,并在主函数中输出计算结果。
参考程序:
#include“stdio.h”
floatfun(intn)
{
inti;
floatsum=0,s=1;
for(i=1;i<=n;i++)
{
s=s*i;
sum=sum+s;
}
return(sum);
}
voidmain()
{
intn;
floatsum;
printf(“\nInputn:
”);
scanf(“%d”,&n);
sum=fun(n);
printf(“\n1!
+2!
+3!
+…+%d!
=%f”,n,sum);
}
3.编写一个函数,计算一个整数m的n次幂,在主函数中输入m和n,并在主函数中输出计算结果。
参考程序:
#include“stdio.h”
doublepower(intm,intn)
{
inti;
doubleresult=1;
for(i=0;i { result=result*m; } return(result); } voidmain() { intm,n; doubleresult; printf("\nPleaseinputm,n: "); printf("\nm="); scanf("%d",&m); printf("\nn="); scanf("%d",&n); result=power(m,n); printf("\nTheresultis%lf",result); } 4.编写函数,求和: n在主函数中由键盘输入,被调函数返回sum的值。 参考程序: #include floatfun(intn) { inti; floatsum=0,s=0; for(i=1;i<=n;i++) { s=s+i; sum=sum+1.0/s; } return(sum); } voidmain() { intn; floatsum; printf(“\nPleaseinputn: ”); scanf(“%d”,&n); sum=fun(n); printf(“\nThesumis%f”,sum); } 5. 参考程序: #include floatf2(intn) { inti; floats=1; for(i=2;i<=n;i++) s=s*i; return(s); } floatf1(intx,intn) { inti; floats=x; for(i=2;i<=n;i++) s=x*s; return(s); } voidmain() { floatexp=1.0; intx,n; scanf("%d",&x); exp+=x; for(n=2;n<20;n++) exp+=f1(x,n)/f2(n); printf("\nexp(%d)=%.4f\n",x,exp); } 6.从3个红球、5个白球、6个黑球中任意取出8个作为一组,要求在每组中可以没有黑球,但必须有红球和白球。 输出这样的组合数有多少? 并且输出每组中的红、白、黑球数。 参考程序: #include intball(inta,intb,intc,ints) { inti,j,k,sum; printf(“\nredwhiteblack: ”); for(i=1;i<=a;i++) { for(j=1;j<=b;j++) { fo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 济南 大学 语言 实验 答案 DOC
![提示](https://static.bdocx.com/images/bang_tan.gif)