我是靠谱客的博主 大力钢笔,最近开发中收集的这篇文章主要介绍让一个数字不断循环的c语言程序,C语言循环练习,建议练练手,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

写在前面:这里是小王成长日志,一名在校大学生,想在学习之余将自己的学习笔记分享出来,记录自己的成长轨迹,帮助可能需要的人。欢迎关注与留言。

1. 分析下列程序,若输入:123456,输出结果是多少?请上机验证并回答如下问题。

#include

int main()

{

int data;

printf("请输入一个数:");

scanf("%ld",&data);

while(data)

{

printf("%d,",data%10);

data=data/10;

}

printf("n");

return 0;

}

回答:

1).上面的程序实现的功能是什么?

答:倒序输出输入的数字的每一位,例如输入123456则输出6,5,4,3,2,1,

2).如果要求程序不输出最后一个逗号,应该如何修改?

答:将while循环体修改如下:

while (data)

{

printf("%d", data % 10);

data = data / 10;

if (data > 0)

printf(",");

}

下列程序的功能为:计算1020个西瓜几天后能卖完(第一天卖了一半多两个,以后每天卖剩下的一半多两个),请在横线处填空,使程序实现其功能并上机调试。

#include

int main()

{

int day,x1,x2;

day=0;

x1=1020;

while(x1>0)

{

x2= x1/2-2 ;

x1=x2;

day++;

}

printf("day=%dn",day);

return 0;

}

3.程序填空,以下程序的功能是计算并输出s=1+1/2+1/3+…+1/10的结果。请将程序填充完整,并上机调试运行验证,然后回答如下问题。

提示:输出结果是:2.928968,填写时要注意类型。

#include

#include

int main()

{

int i;

float s=0;

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

s=s+1/(float)i;

printf("%fn",s);

return 0;

}

回答:

1).若将计算公式改为s=1-1/2+1/3-1/4+1/5…-1/10,程序应该如何修改。(结果为:0.645635,可以增加新的标志变量(如t)来表示每一项的正负号,初值设置为1)

答:将for循环体修改如下

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

{

int t = 1;

if ((i + 2) % 2 == 0)//将i放大以规避1%2==0

t = -1;

else

t = 1;

s = s + t / (float)i;

}

2).若将计算公式改为s=1-1/2+1/3-1/4+1/5…-1/10,程序应该如何填空。(注意不能增加新行和增加新的变量,结果为:0.645635)

答:将for循环体修改如下

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

s = s + 1 / (float)i * pow(-1, i + 1);//乘以 (-1)^(i+1)

编程实现:输入一行字符,以回车键作为结束标志,分别统计出大写字母、小写字母、数字字符、空格和其它字符的个数。

答:

#include

int main()

{

char a;

int small = 0, big = 0, num = 0, space = 0, other = 0;

while ((a = getchar()) != 'n')

{

if (a >= 'a' && a <= 'z')

small++;

else if (a >= 'A' && a <= 'Z')

big++;

else if (a >= '0' && a <= '9')

num++;

else if (a == ' ')

space++;

else

other++;

}

printf("小写字母个数是:t%dn

大写字母个数是:t%dn

数字个数是:t%dn

空格个数是:t%dn

其他字符个数是:t%d",small, big, num, space, other);

return 0;

}

8d427392dfcd33fe4aeeb2069e19993f.png

编程实现:求序列2/1+3/2+5/3+8/5+…前20项之和。

答:

#include

int main()

{

double x = 1, y = 2, sum = 0;

for (int i = 0; i < 20; i++, y = x + y, x = y - x)

sum += y / x;

printf("%lf", sum);

return 0;

}

d79b1f507118bd4ceee183922c39da9b.png

都看到这里了,各位哥哥姐姐叔叔阿姨给小王点个赞 关个注 留个言吧,和小王一起成长吧,你们的关注是对我最大的支持。

有事没事进来看看吧 : 小王的博客目录索引

C语言专栏看这 : C语言学习专栏

如果以上内容有任何不准确或遗漏之处,或者你有更好的意见,就在下面留个言让我知道吧-我会尽我所能来回答。

标签:10,x1,int,练习,C语言,练练手,printf,include,data

来源: https://blog.csdn.net/weixin_45761327/article/details/106585999

最后

以上就是大力钢笔为你收集整理的让一个数字不断循环的c语言程序,C语言循环练习,建议练练手的全部内容,希望文章能够帮你解决让一个数字不断循环的c语言程序,C语言循环练习,建议练练手所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部