2018年华为应届待遇:c语言试题

来源:百度文库 编辑:高校问答 时间:2024/04/26 23:48:54
【2.23】假定从键盘上输入"3.6,2.4<回车>",下面程序的输出是____。
#include <math.h>
main()
{ float x,y,z;
scanf("%f,%f",&x,&y);
z=x/y;
while(1)
{ if(fabs(z)>1.0)
{ x=y;
y=z;
z=x/y;
}
else break;
}
printf("%f\n",y);
}
A) 1.500000 B) 1.600000 C) 2.000000 D) 2.400000

参考答案B,请人分析此程序的运行详细过程。

float x,y,z; \* 定义x,y,z为浮点型;*\
scanf("%f,%f",x,y); \*从键盘输入x,y值*\
z=x/y; \*不用说*\
while(1) \*当条件为真*\
{if(fab(z)>1.0)
{x=y; \*把x赋值给y.*\
y=a; \*同理*\
z=x/y;
\*循环过程
z=3.6/2.4=1.5
x=2.4 y=1.5 z=1.6
x=1.5 y=1.6 z=0.9375<1,退出循环.
此时y=1.6
输出y值.
所以y=1.6.

选B