帮我解一下这道C语言的题目

2025-05-23 15:12:39
推荐回答(6个)
回答(1):

#include//注意你在stdio前面多打一个空格。编译会出错···
main()
{int k=2,s=0;
do{//注意do是关键词,必需要小写。。。请不要乱改
if((k%2)!=0) //这个应该是0,而不是字母o。楼主打错了··
continue;
s+=k;
k++;
}while(k>10);
//如果楼主的k>10,请注意,他只做了一次do,并没有任何一次循环。
printf("s=%d\n",s);//所以结果是s=0
}
以上是按楼主的理解解释的

针对楼上某些人的提问

#include
main()
{int k=2,s=0;
do{
if((k%2)!=0)
{
printf("%d\t",k);
continue; //还有楼上的有的人瞎改。我也顺便说一下吧。contiune的意思是跳出该次循环,进行下一次循环。当k=3的时候跳出该次循环,k的值并没有+1,所以一直是3,因此会死循环,请注意看printf的值,一直是3
}
s+=k;
k++;
}while(k<10);//所以显然这里不能改成k<10.只能用k>10.只样的话,他不经过while,这样就不会死循环

printf("s=%d\n",s);
}

楼主我刚才查过些资料。。结果是这样的
continue所谓的跳出,必需先在while循环里
可是当你第一次做do的时候还没在循环
所以到if的时候,虽然k%2==0,但是此时的continue的意思并不是跳出循环。
因为循环还没开始。所以会继续往下走
这样s+=k就经过处理所以s=2.
此时的k=3.然后再判断while不符合,所以跳出
结果是2~~~~~~~~~~这是上机运行过结果,肯定没有问题。。

#include
main()
{int k=2,s=0;
do{
printf("s=%d\n",s);//也可以把这个打印放这里,你就会发现一直打印的是S=2.也就是第一次do的结果,后面continue跳出循环根本不经过下面两句
//从这里来看,也知道第一次的continue的作用。后面continue跳出该次循环就好理解了
if((k%2)!=0)
{
printf("%d\t",k);
continue;
s+=k;
k++;
}while(k<10);

printf("s=%d\n",s);

}

欢迎楼主一起讨论··

回答(2):

第一行:包括<输入输出>
第二行:主函数
第三行:整型k=2,s=0(这是基本的赋值语句)
第四行:执行循环
如果k%2不等于0则继续
第五行:将k赋值于的s自增;k自增
第六行:当k>10停止
第七行:输出s.

(本人现学现卖~只供参考)

回答(3):

首先赋值k=2 s=0
先执行:
if((k%2)!=0) continue;//如果k不能被2整除就跳过此次循环 进行下一次循环
s+=k;k++;//s=s+k k=k+1
}
while(k>10)//k>10就继续循环 否则跳出
printf("s=%d\n",s);//打出"s=s的值"

回答(4):

调用stdio.h头文件,运行主函数,进入程序,定义K=2,S=0,如果K除2不等于0,则继续执行。最后输出S的值

回答(5):

题目抄错了吧,一看怎么是个死循环啊,s就停在2这里了,k就等于3,然后不停判断k是否大于10.。。。。。。。。。

回答(6):

索瑞,高中QB语言没学好。帮不了忙。甚至我都分不清是不是QB语言了。