济南大学c语言实验答案DOCWord文档格式.docx
《济南大学c语言实验答案DOCWord文档格式.docx》由会员分享,可在线阅读,更多相关《济南大学c语言实验答案DOCWord文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
![济南大学c语言实验答案DOCWord文档格式.docx](https://file1.bdocx.com/fileroot1/2022-12/7/84665189-6c2d-4f23-bd8e-451400c6d067/84665189-6c2d-4f23-bd8e-451400c6d0671.gif)
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。
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位,输入输出时要有文字说明。
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。
#defineM(6*pow(10,24))
#defineR(6.371*pow(10,6))
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;
\nThehighis%lf"
h);
实验3选择结构程序设计
1.编写程序,输入一个正整数,判断该数是奇数还是偶数,并输出判断结果。
intm;
printf(“\nPleaseinputtheinteger(>
0):
scanf(“%d”,&
m);
printf(“\nTheintegeris%d”,m);
if(m%2==0)
printf(“\nThisisaeven!
else
printf(“\nThisisaodd!
2.有一函数:
编写一个程序,用scanf函数输入x的值,输出y值。
注意表达式的书写方法。
floatx,y;
printf(“\nPleaseinputthex:
x);
if(x<
-1)
y=pow(x,3)-1;
elseif(x<
=1)
y=-x*x+1;
elseif(x<
=10)
y=3*x+5;
y=5*x+3*log(2*x*x-1)-13;
printf(“\ny=%f”,y);
3.编写程序,输入年号,判断并输出该年是否闰年。
intyear;
printf(“\nPleaseinputtheyear:
year);
if(year%4==0&
&
year%100!
=0||year%400==0)
printf(“\n%disaleapyear!
”,year);
else
printf(“\n%disnotaleapyear!
4.简单选择界面的编程。
从键盘输入整数,输出不同的字符串:
输入1,输出Goodmorning;
输入2,输出Goodafternoon;
输入3,输出Goodevening;
输入4,输出Goodnight;
输入其他数字,输出Byebye。
intn;
\nPleaseinputanumber:
%d"
n);
switch(n)
{
case1:
printf("
Goodmorning"
break;
case2:
Goodafternoon"
case3:
Goodevening"
case4:
Goodnight"
default:
Byebye"
}
5.已知从银行贷款月利率为:
期限一年,为0.90%;
期限2年,为1%;
期限3年,为1.11%;
三年以上为1.2%。
从键盘输入贷款金额和期限,计算到期后应归还银行本金和利息合计为多少钱。
floatbase,rate,sum;
clrscr();
\nEnterthebaseandtheyear:
%f%d"
base,&
switch(year)
rate=0.009;
rate=0.01;
rate=0.0111;
rate=0.012;
sum=base*pow(1+rate,year);
sumis%.2f\n"
sum);
6.输入一个不多于5位的正整数,要求:
①求出它是几位数;
②分别打印出每一位数字;
③按逆序打印出各位数字。
要准备以下测试数据:
1位正整数
2位正整数
3位正整数
4位正整数
5位正整数
除此之外,程序还应当对不合法的输入作必要的处理,如负数或超过5位的正整数。
inta,b,c,d,e,m;
printf(“\nPleaseinputainteger:
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!
printf(“\nThisisa4integer!
printf(“\nTheintegeris%d%d%d%d!
”,b,c,d,e);
printf(“\nTheinverseis%d%d%d%d!
”,e,d,c,b);
elseif(c!
printf(“\nThisisa3integer!
printf(“\nTheintegeris%d%d%d!
”,c,d,e);
printf(“\nTheinverseis%d%d%d!
”,e,d,c);
elseif(b!
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结束,判断并输出其中最大的数。
intn,max;
printf(“Pleaseinputsomeintegers(endingin‘0’):
max=n;
while(n!
if(n>
=max)
scanf(“%d”,&
printf(“Themaxintegeris%d\n”,max);
2.输入一行字符,以回车键作为结束标志,分别统计出大写字母、小写字母、空格、数字和其它字符的个数。
#include“stdio.h”
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’&
=’z’)
alpha++;
elseif(ch>
=’0’&
=’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!
)。
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位数,各位数字立方和等于该数本身。
inti,j,k,n;
n=100;
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)
%4d"
n);
n++;
\n"
5.有一分数序列:
求出这个数列的前20项之和。
inti,m=2,n=1,t,sum=0;
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均由键盘输入。
ints,sum=0;
inti,n,a;
printf(“Pleaseinputthea,n:
scanf(“%d%d”,&
a,&
s=a;
=n;
sum=sum+s;
s=s*10+a;
7.编写函数,求和:
n在主函数中由键盘输入,被调函数返回sum的值。
floatfun(intn)
inti,s=0;
floatsum=0;
s=s+i;
sum=sum+1.0/s;
return(sum);
floatsum;
printf(“\nPleaseinputn:
sum=fun(n);
printf(“\nThesumis%f”,sum);
8.
floatf2(intn)
inti;
floats=1;
for(i=2;
s=s*i;
return(s);
floatf1(intx,intn)
floats=x;
s=x*s;
main()
{
floatexp=1.0;
intx,n;
&
exp+=x;
for(n=2;
n<
20;
n++)
exp+=f1(x,n)/f2(n);
\nexp(%d)=%.4f\n"
x,exp);
9.从3个红球、5个白球、6个黑球中任意取出8个作为一组,要求在每组中可以没有黑球,但必须有红球和白球。
输出这样的组合数有多少?
并且输出每组中的红、白、黑球数。
intball(intm,intn,ints)
inti,j,k,sum;
printf(“\nredwhiteblack:
=m;
for(j=1;
j<
j++)
k=s-i-j;
sum++;
printf(“\n%2d%2d%2d”,i,j,k);
intred=3,white=5,black=6,s=8;
intsum;
sum=ball(red,white,s);
printf(“\nThetotalis%d”,sum);
实验5函数编程
1.编写函数,判断指定的字符是否是数字字符,如果是返回1,不是则返回0。
在主函数中输入该字符,调用函数判断该字符并输出是否是数字字符。
intnumber(charch)
if(ch>
='
0'
9'
)
n=1;
n=0;
return(n);
\nPleaseinputachar:
%c"
n=number(ch);
if(n==1)
\nItisanumber!
\nItisnotanumber!
2.编写一个函数,求1!
+…+n!
要求:
n在主函数中输入,并在主函数中输出计算结果。
floatsum=0,s=1;
intn;
floatsum;
printf(“\nInputn:
printf(“\n1!
+…+%d!
=%f”,n,sum);
3.编写一个函数,计算一个整数m的n次幂,在主函数中输入m和n,并在主函数中输出计算结果。
doublepower(intm,intn)
doubleresult=1;
for(i=0;
n;
result=result*m;
return(result);
intm,n;
doubleresult;
\nPleaseinputm,n:
\nm="
\nn="
result=power(m,n);
\nTheresultis%lf"
result);
4.编写函数,求和:
floatsum=0,s=0;
5.
voidmain()
6.从3个红球、5个白球、6个黑球中任意取出8个作为一组,要求在每组中可以没有黑球,但必须有红球和白球。
intball(inta,intb,intc,ints)
=a;
=b;
fo