当前位置:IT认证>计算机二级

问题:

[单选] 有以下程序:
main()
{  int x=0,y=5,z=3;
while(z-->0&&++x<5)y=y-1:
printf(”%d,%d,%d\n”,x,y.z);
}
程序执行后的输出结果是(  )。

A . 3,2,0
B . 3,2,-1
C . 4,3,-1
D . 5,2,5

分析以下程序的输出结果是(  )。main() {int a=5,b=-1,c; c=adds(a,b); printf(“%d”,c); c=adds(a,b); printf(“%d”,c); } int adds(intx,int y) {static int m=0,n=3; n*=++m; m=n%x+y++; return(m); } 2,3。 2,2。 3,2。 2,4 。 在函数中默认存储类型说明符的变量应该是________存储类型。 内部静态。 外部。 自动。 寄存器。 若有定义:int a[5],*p=a;,则对a数组元素地址的正确引用是______。 p+5。 *a+1。 &amp;a+1。 &am。 p。 ;a[0]。 以下叙述中错误的是(  )。 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。 数组名代表的是数组所占存储区的首地址,其值不可改变。 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息。 可以通过赋初值的方式确定数组元素的个数 。 视图设计一般有3种设计次序,下列不属于视图设计次序的是(  )。 自顶而下。 由内向外。 由外向内。 自底向上 。 有以下程序:
main()
{  int x=0,y=5,z=3;
while(z-->0&&++x<5)y=y-1:
printf(”%d,%d,%d\n”,x,y.z);
}
程序执行后的输出结果是(  )。
参考答案:

  参考解析

while语句执行如下:
当z=3,x=0时,表达式z一一>0&&++x%5为真,Z的值变为2,X的值变为l,执行语句“y=y-1;”,Y的值变为4;
当z=2,x=1时,表达式z一一>0&&++x<5为真,z的值变为1,X的值变为2,执行语句“y=y-1;”,y的值变为3;
当z=1,x=2时,表达式z一一>0&&++x<5为真,z的值变为0,X的值变为3,执行语句“y=y-1;”,Y的值变为2;
当z=0,x=3时,表达式z一一>0为假,表达式(z一一>o&&++x%5)为假,Z的值为-1,不进行++x<5的判断,不执行语句y=y-1;;
所以X的值为3,Y的值为2,z的值为-1。答案为B。

在线 客服