参考答案和解析
正确答案:B
更多“下列程序段的执行结果是()。 X=5:Y=5:Z=6 Writ”相关问题
  • 第1题:

    下列程序段的执行结果是( )。

    x = 3 : y = 5 : z = 9

    x = x + y

    y = x - y

    If x - y >z - x Then z = x + y

    If x + y >z - y Then x = z + y

    Print x, y, z

    A、 3 5 9

    B、 14 3 11

    C、 8 3 11

    D、 8 5 9


    正确答案:B

  • 第2题:

    若有以下程序段:include using namespace std;int main (){ int a[]={1,4,5}; int *p

    若有以下程序段: #include <iostream> using namespace std; int main () { int a[]={1,4,5}; int *p=&a[0],x=6, y,z; for (y=0; y<3; y++) z= ( (* (p+y) <x) ? *(p+y) :x); cout<<z<<end1; return 0; } 程序运行后的输出结果是( )。

    A.1

    B.4

    C.5

    D.2


    正确答案:C
    解析:本题考核指针的运算。程序首先定义了一整型数组a,并赋初值1,4,5。即a[0],a[1]和a[2]的值分别为1,4和5。程序还定义了一个整型指针p,并将其初始化且指向数组元素a[0]。在for循环语句中,赋值语句“z=((*(p+y)x)?*(p+y):x);”可等价为“z=(a[y]x)?a[y]:x”。因为表达式中的“*(p+y)=p[y]=a[y]”。for语句每循环一次,就给变量z重新赋值一次,z的值其实就是数组和x相比较,将数组a中的最大值赋给z。当y=2后,退出循环,输出结果是5。

  • 第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); } 程序执行后的输出结果是

    A.3,2,0

    B.3,2,-1

    C.4,3,1

    D.5.-2,-5


    正确答案:B
    解析:本题中首先定义了三个整型变量x、y和z并分别赋值为0、5和3,while循环的判定条件为z-->0&&++x5,由于x的初值为3,所以当z--执行3次后,z-->0将不在成立,又由于x的初值为0,所以++x执行5次,++x5将不再成立,而它们两个表达式的值为逻辑与的关系,故当z-->0不成立时整个表达式的值为假,因此该循环共执行了3次,即语句y=y-1共执行了三次,但while循环的判定表达式却执行了四次,故起最后输出的x、y、z的值分别为3,2,-1,所以,4个选项中选项B符合题意。

  • 第4题:

    下列程序段的执行结果为______。 x = 0: y = 1 z = 1: n = 0 Do x = x + y + z n = n + 1 Loop While x < 10 Print x; n

    A.10 5

    B.x n

    C.9 5

    D.10 6


    正确答案:A

  • 第5题:

    若有以下程序段;includeusing namespace std;int main(){ int a[]={1,4,5}; int *p=&

    若有以下程序段; #include<iostream> using namespace std; int main() { int a[]={1,4,5}; int *p=&a[0],x=6,y,z; for(y=0;y<3;y++) z=((*(p+y)<x) ? *(p+y):x); cout<<z<<end1; return 0; } 程序运行后的输出结果是( )。

    A.1

    B.4

    C.5

    D.2


    正确答案:C
    解析:本题考核指针的运算。①程序首先定义了一整型数组a,并赋初值1,4,5。即a[0],a[1]和a[2]的值分别为1,4和5。程序还定义了一个整型指针p,并初始化它指向数组元素a[0]。②在for循环语句中,赋值语句“z=((*(p+y)x)?*(p+y):x);”可等价为:“z=(aly]x)?a[y]:x”。因为表达式中的“*(p+y)=p[y]=a[y]”。③for语句每循环一次,就给变量z重新赋值一次,z的值其实就是数组和x相比较,将数组a中的最大值赋给z。当y=2后,退出循环,输出结果是5。

  • 第6题:

    下列程序运行后的输出结果是()。includevoid fun(int,int,int*);void main(){int x,

    下列程序运行后的输出结果是( )。 #include<iostream.h> void fun(int,int,int*); void main() { int x,y,z; fun(5,6,&x); fun(7,x,&y); fun(x,y,&z); cout<<x<<","<<y<<","<<z<<endl; } void fun(int a,int b,int *c) { b+=a; *c=b-a; }

    A.5,5,5

    B.6,6,6

    C.5,6,7

    D.7,7,7


    正确答案:B
    解析:由程序中的main函数入手,分别调用fun函数,第一个调用中x参数为引用地址,调用后x的值为6,因为参数为地址,所以第二个调用中的x参数值为6,调用后y的计算结果为6。同理,z在第三个函数调用后z的值为6。

  • 第7题:

    若有宏定义如下: #define X 5 #define Y X+1 #define Z Y*X/2以下程序段的输出结果是______。 int a;a=Y; printf("%d\n",Z); printf("%d\n",--a);

    A.7 6

    B.12 6

    C.12 5

    D.7 5


    正确答案:D
    解析:根据宏定义知:X=5,Y=X+1=6,Z=Y*X/2=X+1*X/2=7,a=Y=6,--a=5。

  • 第8题:

    下面程序执行的结果是( )。 CLEAR X=5 Y=6 Z=7 IF X>Y IF Z>8 X=X+Y ELSE X=X+Z ENDIF ENDIF ?X

    A.5

    B.11

    C.12

    D.13


    正确答案:A
    解析:在IF-ENDIF语句中,当表达式为真时,则执行IF语句之后、ELSE或ENDIF语句(以先出现的语句为准)之前的所有命令;当表达式为假时,则执行ELSE语句之后、ENDIF语句之前的所有命令。而且ELSE应该与距离它最近的不带ELSE的IF配对。本题第一个IF没有相应的ELSE配对,且表达式为假,直接输出X的值。

  • 第9题:

    下列程序运行后的输出结果是()。 include void fun(int,int,int*); void main() { i

    下列程序运行后的输出结果是( )。 #include<iostream.h> void fun(int,int,int*); void main() { int x,y,z; fun(5,6,&x); fun(7,x,&y); fun(x,y,&z); cout<<x<<","<<y<<","<<z<<end1; } void fun(int a,int b,int *c) { b+=a; *c=b-a; }

    A.5, 5, 5

    B.6, 6, 6

    C.5, 6, 7

    D.7, 7, 7


    正确答案:B
    解析:由程序中的main函数入手,分别调用fun函数,第一个调用中x参数为引用地址,调用后x的值为6,因为参数为地址,所以第二个调用中的x参数值为6,调用后y的计算结果为6。同理, z在第三个函数调用后z的值为6。

  • 第10题:

    若有如下程序: main() {int x=3,y=4,z; z=(x+(y-=X*X)); printf("%d,%d\n",y,z); } 则程序执行后的输出结果是( )。

    A.-4,2

    B.-5,-2

    C.-5,-1

    D.4,-2


    正确答案:B
    解析:因为x的初始值为3,所以x*x=9,而y的初始值为4,所以y-=9后,y为-5,z=(x+(y-=x*x))=3+(-5)=-2。故程序执行后的输出结果是-5,-2,选项B正确。

  • 第11题:

    下列语句执行后的结果是()。 y=5;p=&y;x=*p++;

    • A、x=5,y=5
    • B、x=5,y=6
    • C、x=6,y=5
    • D、x=6,y=6

    正确答案:A

  • 第12题:

    单选题
    下列程序段的执行结果是()。 X=5:Y=5:Z=6 WriteLine("E({0})", X+Y*Z)
    A

    E(60)

    B

    E(35)

    C

    E(X+Y*Z)

    D

    X+Y*Z


    正确答案: C
    解析: 暂无解析

  • 第13题:

    有如下程序段:

    intx=1,y=2,z=3;

    x=x^z:

    y=y^z;

    z=x^y:

    cout<<x<<y<<z;

    这个程序段的输出结果是______。


    正确答案:213
    213

  • 第14题:

    有以下程序段,其输出的结果是______。

    int x,y,z;

    X=y=z=0;

    ++x‖++y && ++z;

    cout<<x<<","<<y<<","<<z<<endl;


    正确答案:100
    1,0,0

  • 第15题:

    下列语句执行后的结果是______。 y=5;p=;x=*p++;

    A.x=5,y=5

    B.x=5,y=6

    C.x=6,y=5

    D.x=6,y=6


    正确答案:A
    解析:p=&y使指针p指向y,x=*p++使x=y,P指向下一个数据。

  • 第16题:

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

    A.3,2,0

    B.3。2. 1

    C.4,3,-1

    D.5,2.-5


    正确答案:B
    while语句执行如下:当z=3,x=0时,表达式Z-->0&&++x<5为真,z的值变为2,x的值变为1,执行语句“y=y-1;”,y的值变为4;当z=2,x=1时,表达式z-->O&&++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。

  • 第17题:

    下列语句执行后的结果是 ( )y=5;p=&y; x=* p+ +;

    A.x=5, y=5

    B.x=5, y=6

    C.x=6, y=5

    D.x=6, y=6


    正确答案:A

  • 第18题:

    下列程序的运行结果是

    #include "stdio.h"

    main( )

    { int x=-9,y=5,z=8;

    if(x<y)

    if(y<0) z=0;

    else z+=1;

    printf("%d\n",z);}

    A.6

    B.7

    C.8

    D.9


    正确答案:D
    解析:if…else语句的执行过程如下,首先计算if后面一对圆括号内表达式的值,若表达式的值为非0,执行if子句,然后跳过else子句,去执行if语句后的下一条语句;若表达式的值为0,跳过if子句,去执行else子句,接着去执行if语句后的下一条语句。C语言的语法规定,else子句总是与前面最近的不带else的if匹配,与书写格式无关,本题目的后一个if-else相当于嵌套在第一个if子句里,相当于x=0时,z=z+1。

  • 第19题:

    有以下程序:main{ int x=0,y=5,z=3;while(z-->0&&++x<5)y=y-l;printf("%d,%d,%d\n&qu

    有以下程序:

    main

    { int x=0,y=5,z=3;

    while(z-->0&&++x<5)y=y-l;

    printf("%d,%d,%d\n",x,y,z);

    }

    程序执行后的输出结果是( )。

    A.3,2,0

    B.3,2,-1

    C.4,3,-1

    D.5,2.-5


    正确答案:B
    while语句执行如下:当z=3,x=0时,表达式Z-->0&&++x<5为真,z的值变为2,x的值变为1,执行语句“y=y-1;”,y的值变为4;当z=2,x=1时,表达式z-->O&&++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。

  • 第20题:

    有以下程序:includemain(){int x=0,y=5,z=3; while(z-->0&& ++x<5) y=y-1; pr

    有以下程序: #include <sldio.h> 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


    正确答案:B
    解析:当x=0,y=5,z=3时,z->0&&++x5成立,执行y=y-1;此时y=5-1=4,z=z-1=2,x=x+1=1;条件z-->0&&++x5仍然成立,继续执行y=y-1,此时y=y-1=3,z=1,x=2;条件z-->0&&++x5仍然成立,继续执行y=y-1,此时y=y-1=2,z=0,x=3;条件不再成立,执行条件判断后x=3,y=2,z=-1。

  • 第21题:

    单击按钮时,以下列程序运行后的输出结果是 Private Sub proc1(x As Integer,y As Integer,z As Integer) x=3*z y=2*z z=X+y End Sub Private Sub Command1_Click( ) Dim x As Integer,y As Integer,z As Integer x=1:y=2:z=3 Call proc1(x,x,2) Print x;x;z Call proc1(x,y,y) Print x;y;y End Sub

    A.6 6 12 6 6 10

    B.9 5 10 5 10 10

    C.9 6 12 9 10 15

    D.9 5 10 5 4 10


    正确答案:A
    解析:从整体上看,主调过程将两次调用过程Proc1后,实参的值将随形参变化而变化,现在分析一下这两次调用实参和形参是怎么变化的。第一次调用被调过程proc1,主调过程把实参x,x,z的地址分别传给形参x,y,z,此时形参x,y,z值分别为1,1,3,执行语句x=3*z后,形参x值变为9,此时相对应的实参,也变为9,执行语句y=2*z后,形参y值变为6,则相对应的实参x值为6。执行z=x+y后,形参。值应为12,当然这次调用后,程序代码输出的数值为6,6,12。第二次调用被调过程proc1,主调过程把实参x,x,x的地址分别传给形参x,y,z。我们应注意一下,此时实参x的值为6而不是1,所以此时形参x,y,z值分别为6,2和2,执行语句x=3*z后,形参x值为6,相对实参x值也相应的变为6。执行语句y=2*z后,形参y值变为4,相应的实参y值也变为4,执行z=x+y后,形参z值就为10,相应的实参Y的值变为10,而形参y和。的地址相同,最后它们值都应为10,所以此次调用后,程序代码将输出的数值为6,10和10。

  • 第22题:

    下面程序执行结果是()。CLEARX=5Y=6Z=7IF X>Y IF Z>8X=X+YELSEX=X+ZENDIFENDIF?X

    • A、5
    • B、11
    • C、12
    • D、13

    正确答案:A

  • 第23题:

    单选题
    下面程序执行结果是()。CLEARX=5Y=6Z=7IF X>Y IF Z>8X=X+YELSEX=X+ZENDIFENDIF?X
    A

    5

    B

    11

    C

    12

    D

    13


    正确答案: D
    解析: 暂无解析