1.
main()
{
int i,j,a=0;
for(i=0;i<2;i++)
for(j=4;j>=0;j--)
a++;
}
循环体语句a++运行次数为______
2.
main()
{
int i=1,s=3;
do
{
s+=i++;
if(s%7==0) continue;
else
++i;
}
while(s<15);
printf("%d",i);
}
运行结果是_____
3.
#include<stdio.h>
main()
{
int v1=0,v2=0;
char c;
while((c=getchar())!='#')
{
switch(c)
{
case'a':
case'h':
default:v1++;
case'o':v2++;
}
}
printf("%d,%d\n",v1,v2);
}
从键盘输入China#<回车>,则程序运行的结果是_______
请说明详细解答过程,谢谢!
第一题
共执行10次,首先进入FOR循环,,执行i=0,判断i<2,为真,执行下面的程序,j=4;j>=0为真,则执行a++;直到
J=0停止共5次。然后退出循环,执行i++,i=1,继续执行5次,再退出循环,执行i++,i=2为假,程序结束。
第二题
答案8,这是DO-WHILE循环,s+=i++;即s+=i;i++;执行后S=3+1=4,i+1=2,S=4%7=4,执行i+1,i=3,判断s=4<15,继续执行上面循环,
s=4+3=7,i+1=4,s=7%7=0,执行continue,退出本次循环,s=7<15,续执行上面循环
s=7+4=11,i+1=5,s=11%7=4,执行i+1=6,s=11<15,续执行上面循环
s=11+6=17,,i=6+1=7,s=17%7=3,执行i+1=8,此时s=17>15,退出本次循环,输出i=8
第3题
答案5,5
输入六个字符,只有第六个等于#,故前五个各加5次为5,第六次退出循环,输出V1,V2。
以后最好用C++,C很多在VC 6.0运行不好,输入输出流复杂
1.10 (2*5)
2.8
(3+1%7!=0;i=2)
(4+2%7!=0;i=4)
(6+4%7!=0;i=6)
(10+6%7!=0;i=8) s=16>15退出循环
3.5,5
由于case分支没有加break语句,所以再遇到字母'o'之前,v1和v2总是相等,
China没有o所以v1和v2都等于5