该楼层疑似违规已被系统折叠隐藏此楼查看此楼
(18)下列程序的输出结果是_________。
Main()
{ int i;
for(i=1;i+l;i++)
{ if(i>4){printlf("%d",i++);break;}
}
printf("%d",i++);
}
A)55 B)56
c)程序错误,没有输出 D)循环条件永远为真,死循环
答案:B
评析:本程序中有个for循环,但注意到for循环的条件是"i+l",也就是只要i+l的值为真(非零值均为真),就执行循环。当i=l的时,i+l的值为真,判断if条件不成立,执行i++,输出i的值为5。
(19)下列程序的输出结果是_________。
#define A 100
main()
{ int i=O,sum=O;
do{ if(I==(i/2)*2)continue;
sum+=i;
}while(++i
printf("%d\n",sum);
}
A)2500 B)2050 C)4 D)O
答案:A
评析:本题程序的功能是求1到_99之问(包括1和99)所有奇数之和。程序中的while循环的终止条件为++i=100,在while循环体内,如果i是偶数,则执行continue,跳过这一次循环,执行下一次循环,否则求和。最后输出的值是1到99之间(包括l和99)所有奇数之和(1+99)*50/2=2500。
(20)下列程序的输出结果是_________。
main()
{ int I=3;
switch(i)
{ case 1:
case 2:printf("%d",i);
case 3:
case 4:break;
default:printf("OK");
}
}
A)0 B)3 C)OK D)没有任何输出
答案:D
评析:在题中,i的值为3,由于"case 3:"后面没有break语句,所以继续向下执行"case 4:"后面的语句,由于"case 4:"后面的语句为break强行退出switch语句,所以,本题没有任何输出。
(21)下列程序执行后的输出结果是________。
main()
{ int m[][3]={1,4,7,2,5,8,3,6,9};
int i,k=2:
for(I=0;i<3;i++)
{printf("%d",m[k][i]);}