作业3 循环
一、读程序写结果
1. 请阅读下面的程序,并回答下列问题
#include <stdio.h>
void main()
{
int count, i, n,num;
double average, total;
printf("Enter n: ");
scanf("%d", &n);
count = 0;
for(i = 1; i <= n; i++){
scanf ("%d", &num);
if(num%2==0) count++;
void main()
{
int count, i, n,num;
double average, total;
printf("Enter n: ");
scanf("%d", &n);
count = 0;
for(i = 1; i <= n; i++){
scanf ("%d", &num);
if(num%2==0) count++;
}
printf("%d\n", count);
}
printf("%d\n", count);
}
(1) 若在程序运行时输入:
5<回车>
8<回车>
6<回车>
9<回车>
4<回车>
7<回车>
8<回车>
6<回车>
9<回车>
4<回车>
7<回车>
运行结果是:3
(2) 简述程序的主要功能: 出输入数字中偶数的个数。
2. 请阅读下面的程序,并回答下列问题
#include <stdio.h>
int main(void)
{ charch;
int i;
for(i=1;i<=5;i++)
{ ch=getchar();
if(ch>='a'&&ch<='y') ch=ch+1;
else if(ch=='z') ch='a';
putchar(ch);
}
return 0;
}
(1) 若在程序运行时输入size5<回车>,输出结果是:tjiaf5
(2)简述程序的主要功能: 把输入字符中属于a~y的都转化为下一个字符,把z改为a,其余的不变,实现字符加密。
二、填空题
1. 下面程序的功能是统计正整数的各位数字中零的个数,并求各位数字中的最大数。
#include <stdio.h>
void main()
{
intn,count=0,max=0,t;
scanf("%d",&n);
do{
t=____n%10____________;
if(t==0) count ++;
else if(max<t)____max=t____________;
n=__n/10______________;
}while(n>0);
printf("count=%d,max=%d",count,max);
}
三.根据流程图,编写相应的程序
解:#include <stdio.h>
int main()
{
int n,i=0,sum=0;
printf("请输入一个整数n:");
scanf("%d",&n);
do
{
if(i%2==0)
sum=sum+i;
else
sum=sum;
i=i+1;
}while(i<=n);
printf("sum=%d\n",sum);
return 0;
}
四、编程题
1.读入一批正整数(以零或负数为结束标志),求其中的奇数和。
测试结果(输入结束回车符用<回车>表示)
(1)输入:1 3 90 7 0<回车>
输出: 11
(2)输入:8 7 4 3 70 5 6 101 -1<回车>
并输出输出:116
(3)输入:1 3 90 0 <回车>
输出:4
(4)输入: 8 7 4 1 70 5 6 101 -1<回车>
输出:114
(5)输入:10 80 -1<回车>
输出:0
解:
#include <stdio.h>
void main()
{
int num,sum=0;
scanf("%d",&num);
while (num > 0)
{
if (num%2 != 0)
{
sum += num;
}
scanf("%d",&num);
}
printf("%d",sum);
}
2.读入1 个正整数 n(n<=100),计算并输出1+1/3+1/5+1/7+……的前n项和(保留3位小数)。
测试结果(输入结束回车符用<回车>表示)
(1)输入:10<回车>
输出:2.133
(2)输入:3<回车>
输出:1.533
解:
#include <stdio.h>
int main()
int main()
{
int n,i;
double sum=0;
printf("Enter n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=1.0/(2*i-1);
printf("sum=%.3lf\n",sum);
return 0;
}
int n,i;
double sum=0;
printf("Enter n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=1.0/(2*i-1);
printf("sum=%.3lf\n",sum);
return 0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论