概述
写在前面:这里是小王成长日志,一名在校大学生,想在学习之余将自己的学习笔记分享出来,记录自己的成长轨迹,帮助可能需要的人。欢迎关注与留言。
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;
}
编程实现:求序列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;
}
都看到这里了,各位哥哥姐姐叔叔阿姨给小王点个赞 关个注 留个言吧,和小王一起成长吧,你们的关注是对我最大的支持。
有事没事进来看看吧 : 小王的博客目录索引
C语言专栏看这 : C语言学习专栏
如果以上内容有任何不准确或遗漏之处,或者你有更好的意见,就在下面留个言让我知道吧-我会尽我所能来回答。
标签:10,x1,int,练习,C语言,练练手,printf,include,data
来源: https://blog.csdn.net/weixin_45761327/article/details/106585999
最后
以上就是大力钢笔为你收集整理的让一个数字不断循环的c语言程序,C语言循环练习,建议练练手的全部内容,希望文章能够帮你解决让一个数字不断循环的c语言程序,C语言循环练习,建议练练手所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复