第四次上机作业一.docx

上传人:b****8 文档编号:9809618 上传时间:2023-02-06 格式:DOCX 页数:19 大小:17.14KB
下载 相关 举报
第四次上机作业一.docx_第1页
第1页 / 共19页
第四次上机作业一.docx_第2页
第2页 / 共19页
第四次上机作业一.docx_第3页
第3页 / 共19页
第四次上机作业一.docx_第4页
第4页 / 共19页
第四次上机作业一.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

第四次上机作业一.docx

《第四次上机作业一.docx》由会员分享,可在线阅读,更多相关《第四次上机作业一.docx(19页珍藏版)》请在冰豆网上搜索。

第四次上机作业一.docx

第四次上机作业一

第四次上机作业一

第四次上机作业循环

4.1求1+1/2+1/3+……+1/n

程序填空不要改变与输入输出有关的语句。

输入一个正整数reeat(0<reeat<10)做reeat次下列运算:

读入1个正整数n(n<=50)计算并输出1+1/2+1/3+……+1/n(保留3位小数)。

例:

括号内是说明

输入

2(reeat=2)

2

10

输出

1.500

2.929

1#include<stdio.h>

voidmain()

{

intri,reeat;

inti,n;

floatsum;

scanf("%d",&am;reeat);

for(ri=1;ri<=reeat;ri++)

{

scanf("%d",&am;n);

sum=0;

for(i=1;i<=n;i++)

sum=sum+1.0/i;

rintf("%.3f\n",sum);

}

}

4.2求n!

程序填空不要改变与输入输出有关的语句。

输入一个正整数reeat(0<reeat<10)做reeat次下列运算:

读入1个正整数n(n<=50)计算并输出n!

例:

括号内是说明

输入

3(reeat=3)

1

10

5

输出

1

3628800

120

2#include<stdio.h>

voidmain()

{

intri,reeat;

inti,n;

doublefact;

scanf("%d",&am;reeat);

for(ri=1;ri<=reeat;ri++)

{

scanf("%d",&am;n);

fact=1;

for(i=1;i<=n;i++)

fact*=i;

rintf("%.0f\n",fact);

}

}

4.3求x的n次幂

程序填空不要改变与输入输出有关的语句。

输入一个正整数reeat(0<reeat<10)做reeat次下列运算:

读入1个正实数x和1个正整数n(n<=50)计算并输出x的n次幂(保留2位小数)。

例:

括号内是说明

输入

2(reeat=2)

1.52

2.010

输出

2.25

1024.00

3#include<stdio.h>

voidmain()

{

intri,reeat;

inti,n;

doublex,myow;

scanf("%d",&am;reeat);

for(ri=1;ri<=reeat;ri++)

{

scanf("%lf%d",&am;x,&am;n);

myow=1;

for(i=1;i<=n;i++)

myow=myow*x;

rintf("%.2f\n",myow);

}

}

4.4求1-1/2+1/3-1/4+……

程序填空不要改变与输入输出有关的语句。

输入一个正整数reeat(0<reeat<10)做reeat次下列运算:

读入1个正整数n(n<=100)计算并输出1-1/2+1/3-1/4+?

?

的前n项和(保留3位小

数)。

例:

括号内是说明

输入

2(reeat=2)

10

3

输出

0.646

0.833

4#include<stdio.h>

voidmain()

{

intri,reeat;

inti,n,flag;

floatsum;

scanf("%d",&am;reeat);

for(ri=1;ri<=reeat;ri++)

{

scanf("%d",&am;n);

sum=0;

flag=1;

for(i=1;i<=n;i++)

{

sum+=flag*1.0/i;

flag=-flag;

}

rintf("%.3f\n",sum);

}

}

4.5求1+1/3+1/5+1/7+……

程序填空不要改变与输入输出有关的语句。

输入一个正整数reeat(0<reeat<10)做reeat次下列运算:

读入1个正整数n(n<=100)计算并输出1+1/3+1/5+1/7+……的前n项和(保留3位小

数)。

例:

括号内是说明

输入

2(reeat=2)

10

3

输出

2.133

1.533

5#include<stdio.h>

voidmain()

{

intri,reeat;

inti,n,tem;

floatsum;

scanf("%d",&am;reeat);

for(ri=1;ri<=reeat;ri++)

{

scanf("%d",&am;n);

sum=0;

for(i=1;i<=2*n;i+=2)

sum+=1.0/i;

rintf("%.3f\n",sum);

}

}

4.6求1-1/3+1/5-1/7+?

?

程序填空不要改变与输入输出有关的语句。

输入一个正整数reeat(0<reeat<10)做reeat次下列运算:

读入1个正实数es计算并输出1-1/3+1/5-1/7+?

?

直到最后一项的绝对值小于

es(保留6位小数)。

例:

括号内是说明

输入

2(reeat=2)

1E-4

0.1

输出

0.785348

0.834921

6#include<stdio.h>

#include<math.h>

intmain()

{

intri,reeat;

inttem,flag;

doublees,item,sum;

scanf("%d",&am;reeat);

for(ri=1;ri<=reeat;ri++)

{

scanf("%le",&am;es);

flag=1;

tem=1.0;

sum=0;

item=1;

while(fabs(item)>=es)

{

sum=sum+item;

tem=tem+2;

flag=-flag;

item=flag*1.0/tem;

}

rintf("%.6f\n",sum);

}

}

4.7摄氏温度和华氏温度转换表

程序填空不要改变与输入输出有关的语句。

输入一个正整数reeat(0<reeat<10)做reeat次下列运算:

输入2个整数begin和end分别代表摄氏温度的起止值输出该范围内摄氏温度C和华

氏温度F的转换表。

F=32+C*9/5

输出语句:

rintf("%d%10d\n",c,f);

例:

括号内是说明

输入

1(reeat=1)

57

输出

CelsiusFahrenheit

541

642

744

7#include<stdio.h>

voidmain()

{

intri,reeat;

intbegin,c,end,f;

scanf("%d",&am;reeat);

for(ri=1;ri<=reeat;ri++)

{

scanf("%d%d",&am;begin,&am;end);

rintf("CelsiusFahrenheit\n");

for(ri=begin;ri<=end;ri++)

{

c=ri;

f=32+c*9/5;

rintf("%d%10d\n",c,f);

}

}

}

4.8求奇数和

程序填空不要改变与输入输出有关的语句。

输入一个正整数reeat(0<reeat<10)做reeat次下列运算:

读入一批正整数(以零或负数为结束标志)求其中的奇数和。

例:

括号内是说明

输入

2(reeat=2)

139070

87437056101-1

输出

11

116

8#include<stdio.h>

voidmain()

{

intri,reeat;

intx,sum;

scanf("%d",&am;reeat);

for(ri=1;ri<=reeat;ri++)

{

scanf("%d",&am;x);

sum=0;

while(x>0)

{

if(x%2!

=0)

sum=sum+x;

scanf("%d",&am;x);

}

rintf("%d\n",sum);

}

}

4.9求最大值

程序填空不要改变与输入输出有关的语句。

输入一个正整数reeat(0<reeat<10)做reeat次下列运算:

输入一个正整数n,再输入n个整数输出最大值。

例:

括号内是说明

输入

3(reeat=3)

42123-1000

491-18

3135

输出

123

9

5

9#include<stdio.h>

voidmain()

{

intri,reeat;

inti,max,n,x;

scanf("%d",&am;reeat);

for(ri=1;ri<=reeat;ri++)

{

scanf("%d",&am;n);

for(i=1;i<=n;i++)

{

scanf("%d",&am;x);

if(i==1)max=x;

elseif(x>max)max=x;

}

rintf("%d\n",max);

}

}

4.10求整数的位数以及各位数之和

程序填空不要改变与输入输出有关的语句。

输入一个正整数reeat(0<reeat<10)做reeat次下列运算:

输入一个整数输出它的

位数以及各位数之和。

例:

括号内是说明

输入

4(reeat=4)

123456-100-199

输出

number=6,sum=21(123456的位数是6,各位数之和是21)

number=3,sum=1(-100的位数是3,各位数之和是1)

number=1,sum=1(-1的位数是1,各位数之和是1)

number=2,sum=18(99的位数是2,各位数之和是18)

10#include<stdio.h>

voidmain()

{

intri,reeat;

intnumber,sum;

longin;

scanf("%d",&am;reeat);

for(ri=1;ri<=reeat;ri++)

{

scanf("%ld",&am;in);

number=0;

sum=0;

if(in<0)in=-in;

do{

number++;

sum+=(in%10);

}while((in/=10)!

=0);

rintf("number=%d,sum=%d\n",number,sum);

}

}

4.11求2/1+3/2+5/3+8/5+...

程序填空不要改变与输入输出有关的语句。

输入一个正整数reeat(0<reeat<10)做reeat次下列运算:

输入一个正整数n输出2/1+3/2+5/3+8/5+...的前n项之和保留2位小数。

(该序列从第

2项起每一项的分子是前一项分子与分母的和分母是前一项的分子)

例:

括号内是说明

输入

3(reeat=3)

1520

输出

2.00(第1项是2.00)

8.39(前5项的和是8.39)

32.66(前20项的和是32.66)

11#include<stdio.h>

voidmain()

{

intri,reeat;

inti,n;

floata,b,s,t;

scanf("%d",&am;reeat);

for(ri=1;ri<=reeat;ri++)

{

scanf("%d",&am;n);

a=2;

b=1;

s=0;

for(i=0;i<n;i++)

{

s+=a/b;

t=b;

b=a;

a+=t;

}

rintf("%.2f\n",s);

}

}

4.12求a+aa+aaa+aa?

a

程序填空不要改变与输入输出有关的语句。

输入一个正整数reeat(0<reeat<10)做reeat次下列运算:

输入2个正整数a和n,求a+aa+aaa+aa?

a(n个a)之和。

例:

括号内是说明

输入

2(reeat=2)

23(a=2,n=3)

85(a=8,n=5)

输出

246(2+22+222)

98760(8+88+888+8888+88888)

12#include<stdio.h>

voidmain()

{

intri,reeat;

inti,n;

longinta,sn,tn;

scanf("%d",&am;reeat);

for(ri=1;ri<=reeat;ri++)

{

scanf("%ld%d",&am;a,&am;n);

tn=a;

sn=0;

for(i=1;i<=n;i++)

{

sn+=tn;

tn=10*tn+a;

}

rintf("%ld\n",sn);

}

}

4.13判断素数

程序填空不要改变与输入输出有关的语句。

输入一个正整数reeat(0<reeat<10)做reeat次下列运算:

输入一个正整数m如果它是素数输出"YES"否则输出"NO"(素数就是只能被1和

自身整除的正整数1不是素数2是素数)。

例:

括号内是说明

输入

4(reeat=4)

12917

输出

NO(1不是素数)

YES(2是素数)

NO(9不是素数)

YES(17是素数)

13#include<stdio.h>

#include<math.h>

voidmain()

{

intri,reeat;

intflag,i,m,n;

scanf("%d",&am;reeat);

for(ri=1;ri<=reeat;ri++)

{

scanf("%d",&am;m);

if(m==1)flag=0;

elseif(m==2)flag=1;

else

{

for(i=2;i<m;i++)

if(m%i==0)

{

flag=0;

break;

}

elseflag=1;

}

if(flag)rintf("YES\n");

elserintf("NO\n");

}

}

4.14统

计字符

程序填空不要改变与输入输出有关的语句。

输入一个正整数reeat(0<reeat<10)做reeat次下列运算:

输入一行字符分别统计出其中的英文字母、空格、数字和其他字符的个数。

例:

括号内是说明

输入

2(reeat=2)

Reoldbuildingroom123.

rogrammingisfun

输出

letter=17,blank=3,digit=3,other=1

letter=16,blank=2,digit=0,other=0

14#include<stdio.h>

voidmain()

{

intri,reeat;

intblank,digit,letter,other;

charc;

scanf("%d",&am;reeat);

/*getchar();此处getchar应删去否则会影响第一个字符的录入*/不需要删除。

此处的getchar()就是为了接收输入完reeat之后的回车。

而后面的c=getchar();是进入循环的初值。

你的while循环条件要改为c!

='\n'循环体中再加一条c=getchar();即可!

for(ri=1;ri<=reeat;ri++)

{

c=getchar();

blank=0;

digit=0;

letter=0;

other=0;

while((c=getchar())!

='\n')

{

if(c>='A'&am;&am;c<='Z'||c>='a'&am;&am;c<='z')letter++;

elseif(c=='')blank++;

elseif(c>='0'&am;&am;c<='9')digit++;

elseother++;

}

rintf("letter=%d,blank=%d,digit=%d,other=%d\n",letter,blank,digit,other);

}

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1