实验四 循环结构【带答案】

  • 格式:doc
  • 大小:67.50 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
scanf("%d",&n);
for(i=1;i<=n;【1】)
{
【2】;
for(j=1;【3】; j++)
item=item*j;
sum+=item;
}
printf("n=%d,s=%ld\n",n,sum);
}
第1处:i+=2或i=i+2
第2处:item=1
第3处:j<=i
程序设计
1、从键盘输入n的值,计算如下公式的值。
}
第1处:getchar()
第2处:‘\n’
第3处:c>=’0’&& c<=’9’
第4处:count3++
3、给定程序的功能是:计算1!+3!+5!+……+n!的和(n代表任意奇数)。
#include<stdio.h>
voidmain()
{
longitem=1,sum=0;
int i,j,n;
printf(“请输入一个奇数:”);
/**********FOUND**********/
while(fabs(t)<1e-6)
{
/**********FOUND**********/
sum=sum+t;
p=-p;
i=i+2;
/**********FOUND**********/
t=p/i;
}
printf("pi=%f\n",s*4);
}
第1处:doublesum=0,t;改为doublesum=0,t=1;
第2处:while(fabs(t)<1e-6)改为while(fabs(t)>=1e-6)
第3处:t=p/i;改为t=-1*p/i;或t=(double)p/i;或t=p/(double)i;或t=(double)p/(double)i;
if(n%i)
{
printf("%5d",i);
j++;
/************found************/
if(i%5==0)
printf("\n");
}
}
printf("\n");
}第1处:for(i=1,i<=n;i++)改为for(i=1;i<=n;i++)
第2处:if(n%i)改为if(n%i==0)
scanf("%d",&n);
/************found************/
for(i=1;【1】;i++)
{
printf("n(%d)=",i);
scanf("%d",&num);
/************found************/
if(【2】)
c1++;
else
ave+=num;
}
/************found************/
printf("number of odd is:%d,average of even is:%.2f\n",c1,【3】);
}
第1处:i<=n
第2处:num%2==0
第3处:ave/(n-c1)
2、给定程序的功能是:读入一行字符,分别统计其中英文字符的个数、数字字符的个数和其它字符的个数。
}
}
}
for(i=1;i<=n; i++)
{
item=1 ;
for(j=1; j<=i ; j++)
item=item*j;
item=item*sign;
sum+=1.0/item;
sign=-sign;
}
printf("n=%d,s=%lf\n",n,sum);
}
2、从键盘输入任意整数k,计算其各个位上的数字之和。
测试数据:
1)若n=3,则s=0.666667
2)若n=5,则s=0.633333
参考答案:
#include<stdio.h>
void main()
{
long item=1;
double sum=0;
int i,j,n,sign=1;
printf("Please enter n:");
scanf("%d",&n);
while(n>0)
{
sum+=n%10;
n=n/10;
}
printf("sum=%d\n",sum);
}
3、从键盘输入若干个整型数(以零或负数作为结束输入的标记),输出其中能被3整除的奇数,并统计其个数。
测试数据:
1)输入:12 4 15 27 8 13 9 24 0回车
输出:15 27 9
能被3整除的奇数共有:3个
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include "stdio.h"
#include "math.h"
voidmain()
{
int i=1,p=1;
/**********FOUND**********/
doublesum=0,t;
实验四
【实验目的】
1.掌握while、do…while和for三种循环控制语句的使用
2.掌握循环条件的设置,理解循环条件与循环次数的关系
3.掌握break和continue语句的使用
4.熟悉switch多分支语句的使用
【实验内容】
程序改错
1、给定程序的功能是:用下面的和式求圆周率 的近似值,直到最后一项的绝对值小于 。
{
if(n%2!=0 && n%3==0)
count++;
scanf("%d",&n);
}
printf("\n能被3整除的奇数共有:%d个\n",count);
}
4、以每行5个数的方式输出100以内能被3或7整除的偶数,并计算符合条件的所有偶数的和。
正确输出结果:
6 12 14 18 24
28 30 36 42 48
count1++;
/************found************/
else if(【3】)
count2++;
else
【4】;
c=getchar();
}
printf("character:%5d, number:%5d, other:%5d\n",count1,count2,count3);
#include <stdio.h>
void main()
{
int n, i,j=0;
printf("Please enter n:");
scanf("%d",&n);
/************found************/
for(i=1,i<=n;i++)
{
/************found************/
#include<stdio.h>
void main()
{
char c;
int count1=0,count2=0,count3=0;
/************found************/
c=【1】;
/************found************/
for(c!=【2】; )
{
if(c>='a' && c<='z' || c>='A' && c<='Z')
2、给定程序中的功能是:输出一个整数n的所有因子,如果因子个数较多,要求每行输出5个因子。
例如:n=65,则其因子为:1,5,13,65
n=24,则其因子为:1,2,3,4,6
8,12,24
请改正函数fun中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
第3处:if(i%5==0)改为if(j%5==0)
程序填空
1、给定程序的功能是:从键盘获取n个数,统计其中奇数的个数,并计算n个数中所有偶数的平均值(保留2位小数)。
#include<stdio.h>
void main()
{
int n,c1=0,num,i;
float ave=0;
printf("Please enter n:");
2)输入:1 2 3 4 5 6 7 8 9 10 -1回车
输出:3 9
能被3整除的奇数共有2个
#include<stdio.h>
void main()
{பைடு நூலகம்
int n,sum=0,count=0;
printf("Please enter numbers:");
scanf("%d",&n);
while(n>0)
{
count++;
sum+=i;
printf("%5d",i);
if(count%10==0)
printf("\n");
}
}
printf("\n100内能被3或7整除的偶数之和为:%d\n",sum);
}
5、输出100以内(包括100)的最大素数(m>2,其值从键盘输入)。
提示:找100内的最大素数,只需将循环控制变量的值设为从高到低即可,找到的第一个素数便为最大素数。
正确输出结果:
100以内的最大素数为:97
参考答案
#include<stdio.h>
void main()
{
int i,j;
int c=0;
for(i=100;i>1;i--)
{
for(j=2;j<i;j++)
if(i%j==0)
break;
if(j==i)
{
printf("%d",i);
break;
测试数据:
1)若k=3482,则其各个位上的数字之和为:3+4+8+2=17
2)若k=345,则其各个位上的数字之和为:3+4+5=12
#include<stdio.h>
void main()
{
int n,sum=0;
printf("Please enter n:");
scanf("%d",&n);
54 56 60 66 70
72 78 84 90 96
98
符合条件的所有偶数之和为:1082
#include<stdio.h>
void main()
{
int count=0,i,sum=0;
for(i=1;i<=100;i++)
{
if( (i%3==0 || i%7==0) && i%2==0 )