扬州大学C语言上机作业19整理Word文档下载推荐.docx
- 文档编号:20002922
- 上传时间:2023-01-14
- 格式:DOCX
- 页数:30
- 大小:27.12KB
扬州大学C语言上机作业19整理Word文档下载推荐.docx
《扬州大学C语言上机作业19整理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《扬州大学C语言上机作业19整理Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。
hour=a/b;
min=a%b;
hour=%d,min=%d\n"
hour,min);
getch();
}
2.编写程序,输入两个整数(例如1500与350),求出它们得商与余数并进行输出。
inta,b,c,d;
a=1500,b=350;
c=a/b;
d=a%b;
%d,%d"
c,d);
3、编写程序,读入3个整数给分别变量a,b,c,然后将a,b,c得值输出到屏幕,再交换它们中得数值,把a中原来得值给b,把b中原来得值赋给c,把c中原来得值赋给a,然后再次输出a,b,c得值到屏幕。
enterthirdinteger:
c);
a=%d,b=%d,c=%d\n"
a,b,c);
d=c;
c=b;
b=a;
a=d;
a=%d,b=%d,c=%d"
4.编写程序,读入3个双精度数,求它们得平均值输出到屏幕。
doublesum=0;
doublea,b,c,d;
%lf"
sum=a+b+c;
d=sum/3、0;
d=%lf"
d);
5.下列程序中,要求main函数实现如下功能:
从键盘上输入3个正整数,求出它们中得最大值。
请完善程序,并在程序最后用注释得方式给出您得测试数据及在这组测试数据下得运行结果。
{
inta,b,c,d,max;
printf(“Enterthreeintegers:
”);
scanf(“%d%d%d”,&
a,&
b,&
if(a>
b)
max=a;
else
max=b;
if(c>
max)
max=c;
printf(“maxofthethreenumbersis%d”,max);
grtch();
6、请编程序:
对从键盘上输入得x值,根据以下函数关系计算出相应得y值(设x,y均为整型量)。
x值得范围
计算y得公式
x<
0<
=x<
10
x
10<
20
20<
40
-5x+20
intx,y;
x="
&
if(x<
0)
y=0;
elseif(x<
10&
&
x>
=0)
y=x;
elseif(x>
=10&
20)
y=10;
=20&
40)
y=(-5)*x+20;
y);
实验三
1、下列程序想求出满足如下条件得三位数n:
(1)n除以11(整数相除)所得到得商等于n得各位数字得平方与;
(2)n中至少有二位数字相同。
如:
131除以11得商为11,131各位数字得平方与为11,131中有二位数字相同,故131就是所要求出得三位数中得一个;
又如550,也就是满足条件得三位数。
源程序中有些错误,请您改正并最终使程序得到如下得运行结果:
131550900
{intn,a,b,c;
for(n=1;
n<
1000;
n++)
{a=n/100;
b=n/10%10;
c=n%10;
if(n/11==a*a+b*b+c*c&
(a==b||a==c||b==c))
%d\n"
n);
2、请编程序,实现从键盘上输入任意一个整数n,求出n得各位数字之与。
例如,当n为263时,各位数字之与为11。
下面就是一个可以实现逐位数字累加功能得程序段,试理解后应用到自己得程序中。
k=0;
n=263;
do{k+=n%10;
n/=10;
}while(n);
{
intn,k;
n);
k=0;
do{k+=n%10;
n/=10;
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%100*10;
if(a%37==0&
b%37==0)
4.请编程序利用下列公式求π得近似值。
公式为:
要求:
先求出前2n项得π值,再求出2n+2项得π值,直至二者之差小于10-5为止。
{intn;
floata,b;
a=1,b=4、0/3;
n=1;
while(b-a>
=1e-5)
{a=b;
n++;
b=b*4*n*n/(2*n-1)/(2*n+1);
%f,%f"
2*a,2*b);
5、请编程序求出满足如下条件得四位数n:
(1)n得范围为[5000,8000];
(2)n千位上得数减百位上得数减十位上得数减个位上得数大于零。
编程要求:
以每行5个输出满足条件得数及该类数得个数。
{intn,a,b,c,d,k=0;
for(n=5000;
=8000;
{a=n/1000;
b=n/100%10;
c=n/10%10;
d=n%10;
if((a-b-c-d)>
{printf("
%5d"
k++;
if(k%5==0)printf("
\n"
k=%d"
6.请编程序求出满足如下条件得一个四位整数,它得9倍恰好就是其反序数(例如,1234与4321互为反序数)。
{intn,e,a,b,c,d;
for(n=1000;
=9999;
{a=n/1000;
b=n/100%10;
c=n/10%10;
d=n%10;
e=d*1000+c*100+b*10+a;
if(9*n==e)
7.请编程序求出从键盘上输入得两个正整数a与b得最大公约数与最小公倍数。
voidmain()
{
intm,n,r,x;
m,&
x=m*n;
while(n!
=0)
r=m%n;
m=n;
n=r;
}
%d%d"
m,x/m);
8.请编程序计算1!
+2!
+3!
+…+n!
得前10项之与。
longsum,k;
inti,j;
sum=0;
for(i=1;
i<
=10;
i++)
for(j=1,k=1;
j<
=i;
j++)
{
k*=j;
sum+=k;
%ld\n"
sum);
实验四
1、反序数。
例如,123得反序数就是321。
请设计程序,从键盘上输入一个整数,求其反序数并输出。
#include"
stdio、h"
main()
{intn,k;
n="
{k=k*10+n%10;
2、完备数。
完备数就是一些特殊得自然数,它所有得真因子(即除了自身以外得约数)之与恰好等于该数本身。
例如,6=1+2+3,故6就是一个完备数。
请设计程序,找出500以内得所有完备数。
{intn,i,k;
=500;
for(i=1;
=n-1;
{if(n%i==0)
k+=i;
if(n==k)
3、回文数。
一个数如果正读与倒读(即反序数)相同,称该数就是回文数。
例如,121、1331均为回文数。
请设计程序,找出200~300之间得所有回文数,并以每行8个数输出至屏幕。
{intn,k,i,m=0;
for(n=200;
=300;
{k=0;
i=n;
while(i!
{k=k*10+i%10;
i/=10;
if(n==k)
{m++;
%8d"
if(m%8==0)printf("
}
4、回文质数。
一个数如果就是回文数,同时又就是质数,则该数被称为回文质数。
请设计程序,找出100~500之间得所有回文质数,并以每行5个输出至屏幕。
math、h"
{intn,k,i,m;
{k=k*10+i%10;
{for(m=2;
m<
=sqrt(n);
m++)
{if(n%m==0)
break;
if(m>
sqrt(n))
%4d"
account++;
if(account%5==0)
printf(“\n”);
5、绝对质数。
如果一个数与其反序数均为质数,则该数被称为绝对质数。
如,13就是质数,其反序数31也为质数,则13与31就是一对绝对质数。
请设计程序,找出200以内得绝对质数。
{intn,k,i,m,a;
for(n=1;
=200;
{for(a=2;
a<
a++)
{if(n%a==0)
{i=n,k=0;
for(m=2;
=sqrt(k);
{if(k%m==0)
break;
sqrt(k))
6、平方镜反数。
如果一个数得平方数,就是其反序数得平方数得反序数,则称该数与其反序数就是一对平方镜反数。
例如,12得平方数就是144,其反序数为21,21得平方数就是441,其反序数就是12得平方数144,故12与21就是一对平方镜反数。
请设计程序找出200以内得所有平方镜反数对。
{intn,k,i,a,b;
{
a=k*k;
b=0;
while(a!
{b=b*10+a%10;
a/=10;
if(b==(n*n))
7.黑洞数。
黑洞数又称陷阱数,就是类具有奇特转换特性得整数。
任何一个数字不全相同整数,经有限“重排求差”操作,总会得到某个数,这些数即为黑洞数。
“重排求差”操作即把组成该数得数字重排后得到得最大数减去重排后得到得最小数。
随便造一个四位数,如a1=1231,先把组成部分1231得四个数字由大到小排列得到a2=3211,再把1231得四个数字由小到大排列得a3=1123,用大得减去小得a2-a1=3211-1123=2088。
把2088按上面得方法再作一遍,由大到小排列得8820,由小到大排列得288,相减8820-288=8532。
把8532按上面得方法再作一遍,由大到小排列得8532,由小到大排列得2358,相减8532-2358=6174。
如果再往下做,奇迹就出现了!
7641-1467=6174,又回到6174。
6174便就是一个4位黑洞数。
请编写程序,用上述方法找出3位黑洞数。
暂无答案
实验五
1、有一张足够大得纸,厚0、09毫米,问将它对折多少次后可以达到珠穆朗玛峰得高度(8848米)?
{doublea=9e-2;
intn=0;
while(a<
=8848)
{a=a*2;
a=%d"
2、请设计程序采用递推法计算下列级数得近似值,当n取某一值使得|x(2n+1)/n!
|<
0、000001时停止计算(x从键盘输入)。
级数如下:
{doublesum,x,p,n,q,m,k;
sum=x;
p=x;
m=1;
q=1;
k=1;
while(fabs(p/n)>
=1、0e-6)
{m=-m;
p*=(x*x);
q+=2;
k++;
n*=k;
sum+=((m*p)/(q*n));
3、请设计程序,根据下列公式计算cos(x)得近似值。
精度要求:
当通项得绝对值小于等于10-6为止。
cos(x)=1-x2/2!
+x4/4!
-x6/6!
+……+(-1)nx2n/(2n)!
{doublex,k,sum,term,a,b,m;
sum=1;
m=1;
a=0;
k=1;
b=1;
term=1;
while(fabs(term)>
1、0e-6)
{k*=(x*x);
m=-m;
a+=2;
b*=(a*(a-1));
sum+=((m*k)/b);
term=(m*k)/b;
cos(x)=%lf"
4、请设计程序采用递推法计算得值。
即求-+…+得值。
其中x为键盘输入得一个任意得单精度实数。
{inti,p;
floatx,m,q,sum;
%f"
m=x;
p=1;
{m*=(x*x);
p=-p;
q*=i;
sum+=(p*m/q);
5、请设计程序,根据下列公式计算表达式得值。
计算公式如下:
当通项绝对值小于等于10-6时停止累加。
sum=(-1)*sum*cos(x)/x;
sum+=3、14/2;
实验六
3、水仙花数就是指一个3位数,其各位数字得立方与等于该数本身。
请完善下列程序中得函数intdaffodil(intn),其功能就是判断整数n就是否为水仙花数,如就是,则该函数返回值1,否则返回值0。
注意,不能更改main函数。
intdaffodil(intn)
{intk=0,m;
m=n;
do
{k+=(m%10)*(m%10)*(m%10);
m/=10;
}while(m);
return1;
elsereturn0;
{intm,i=0;
for(m=100;
if(daffodil(m)==1)
{printf("
m);
i++;
if(i%5==0)printf("
4、请编写程序,找出满足如下条件得整数m:
(1)该数在[11,999]之内;
(2)m、m2、m3均为回文数。
例如m=11,m2=121,m3=1331,11、121、1331皆为回文数,故m=11就是满足条件得一个数。
请设计函数intvalue(longm),其功能就是判断m就是否就是回文数,如就是,该函数返回值1,否则返回值0。
编写main函数,求出[11,999]内满足条件得所有整数。
intvalue(longm)
{longs,n;
s=0;
n=m;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 扬州 大学 语言 上机 作业 19 整理