扬州大学C语言上机作业9整理Word下载.docx
《扬州大学C语言上机作业9整理Word下载.docx》由会员分享,可在线阅读,更多相关《扬州大学C语言上机作业9整理Word下载.docx(33页珍藏版)》请在冰豆网上搜索。
scanfC*%dH,&
w);
scanfC^d*1,&
c=a+b;
a=c;
printf(na=%d,b=%d\nM,atb);
6•从键盘输入整数x的值,根据公式y=x3+3x2+x-10求y的值,输出x和y的值。
intx,y;
"
);
x);
y=x*x*x+3*x*x+x-10;
printffx=%d,y=%d\n,,,x1y);
实验二
1.编写程序,从键盘上输入一个整数(例如560)表示分钟,将其换算成用小时和分
钟表示,然后输出至屏幕。
#inelude<
inta,b,hour,min;
scanf(”%d”,&
b=60;
hour=a/b;
min=a%b;
printf(Mhour=%d,min=%d\n,,1hour1min);
2.编写程序,输入两个整数(例如1500和350),求出它们的商和余数并进行输岀。
#include<
inta,bfc,d;
a=1500,b=350;
c=a/b;
d=a%b;
printf(H%d,%dH,c,d);
3•编写程序,读入3个整数给分别变量abc,然后将abc的值输出到屏幕,再交换它们中的数值,把a中原来的值给b,把b中原来的值赋给c,把c中原来的值赋给a,然后再次输出a,b,c的值到屏幕。
voidniain()
inta,b.c.d;
scanf(,'
%d,\&
scanf(H%dM,&
printf(Henterthirdinteger:
scanf(H%dH,&
c);
printf(Ma=%d.b=%d,c=%d\n,\a,bx);
d=c;
c=b;
b=a:
a=d;
printf(Ha=%d,b=%d,c=%<
i"
a,b,c);
4.编写程序,读入3个双精度数,求它们的平均值输岀到屏幕。
doublesum=0;
doublea,b,c,d;
enterfirstinteger:
scanf(H%lf\&
printf^entersecondinteger:
scanfCW.&
printf(”enterthirdinteger:
sum=a+b+c;
d=sum/3.0;
printf(,td=%lfH,d);
5.下列程序中,要求main函数实现如下功能:
从键盘上输入3个正整数,求出它们中的最大值。
请完善程序,并在程序最后用注释的方式给岀你的测试数据及在这组测试数据下的运行结果。
^include<
inta,b,c,d.max:
prmtf(fcEntertlireeintegers:
^);
scan!
T%d%d%cr,&
a・&
b.&
if(a>
b)
max=a;
else
max=b;
if(c>
max)
max=c;
printf(fcniaxofthethreenumbersis%d\niax);
grtch();
6.请编程序:
对从键盘上输入的x值,根拯以下函数关系计算出相应的y值(设x,y均为整型量九
讣算y的公式
x
10
-5x+20
x值的范用x<
00<
=x<
1010<
2020<
40#include<
voidmain()
printf(Hx=M);
scanf(”%d”,&
if(x<
0)
y=o;
elseif(x<
10&
&
x>
=0)
y=x;
elseif(x>
=10&
x<
20)y=io;
=20&
40)y=(-5)*x+20;
printf(H%dM,y);
getch();
实验三
1.下列程序想求出满足如下条件的三位数n:
(l)n除以11(整数相除)所得到的商等于n的并位数字的平方和;
(2)n中至少有二位数字相同。
如:
131除以11的商为11,131各位数字的平方和为11,131中有二位数字相同,故131是所要求出的三位数中的一个:
又如550,也是满足条件的三位数。
源程序中有些错误,请你改正并最终使程序得到如下的运行结果:
131550900
stdio.h>
voidmainO
{intn,a,b,c;
for(n=l;
n<
1000;
n十+)
{a=n/100;
b=n/10%10;
c=n%10;
if(n/1l==a十b*b+c*c&
(a==ba==cb=c))
printf(z,%d\nz\n);
}
getchO;
2.请编程序,实现从键盘上输入任意一个整数n,求出n的各位数字之和。
例如,当n为263时,各位数字之和为11。
下而是一个可以实现逐位数字累加功能的程序段,试理解后应用到自己的程序中。
k=0;
n=263;
do{k+=n%10;
n/=10:
}while(n):
voidmain(){intn,k;
n);
n/=10;
}while(n);
printf(M%dM,k);
3.试找岀符合下列条件的正整数:
(1)该数是一个三位数:
(2)该数是37的倍数;
(3)该数循环左移后得到的另两个数也是37的倍数。
例如148是37的倍数,481和814也是37的倍数。
intn,a,b;
for(n=100;
n<
n++)
if(n%37==0)
{a=n/10+n%10*100;
b=n/100+n%100M0;
if(a%37==0&
b%37==0)
%d\nM,n);
4•请编程序利用下列公式求n的近似值。
公式为:
兀2244662/72n
—=—x—x—x—x—x—X・・・Xx
21335572”一12n+\
要求:
先求出前2n项的h值,再求出2n+2项的n值,直至二者之差小于10节为止。
{intn;
floata,b;
a=1.b=4.0/3j
n=1;
while(b-a>
=1e-5)
{a=b;
n++;
b=b*4*n*n/(2*n-1)/(2*n+1);
printf(M%f,%f\2*a,2*b);
5.请编程序求出满足如下条件的四位数n:
(l)n的范囤为[5000.8000];
(2)n千位上的数减百位上的数减十位上的数减个位上的数大于零。
编程要求:
以每行5个输出满足条件的数及该类数的个数。
#include<
{intnab・C・d.k=0;
for(n=5000:
=8000;
{a=n/1000;
b=ii/100%10;
c=n/10%10;
d=n%10;
if((a-b-c-d)>
{printf(”%5d”,n);
k++;
if(k%5=0)printf(n\nM);
printf(,,k=%d,\k);
6-谙编程序求出满足如下条件的一个四位整数,它的9倍恰好是其反序数(例如,1234与4321互为反序数)。
#include<
{intn,e,a,b,c,d;
for(n=1000;
=9999;
b=n/100%10;
e=d*1000+c*100+b*10+a;
if(9*n==e)
printf(%T,n);
7.请编程序求出从键盘上输入的两个正整数a和b的最大公约数和最小公倍数。
intm,n,r,x;
scanf(”%d,%cT、&
m.&
x=m*n;
while(n!
r=m%n;
ni=n;
n=r;
printf(w%d%dN,m,x/m);
8•请编程序计算l!
+2!
+3!
+…+n啲前10项之和。
longsum,k;
inti.j;
sum=0;
for(i=1;
i<
=10;
i++)
forG=1,k=1;
j<
=i;
j++)
{3;
sum+=k;
printf(H%ld\nM,sum);
实验四
1•反序数.例如,123的反序数是321。
请设计程序,从键盘上输入一个整数,求其反序数并输出。
#include“stdio.h”
main()
{intn,k;
printf(Mn=M);
scanf(,>
%du,&
k=0;
=0){k=k*10+n%10;
n/=10;
}printf(Hk=%d\k);
2•完备数。
完备数是一些特殊的自然数,它所有的真因子(即除了自身以外的约数)之和恰好等于该数本身。
例如,6=1+2+3,故6是一个完备数。
请设计程序,找岀500以内的所有完备数。