下面的程序的结果是main( ){int x=3,y=0, z=0;if(x=y+z)cout<<"* * * *";else cout<<"####";}A.有语法错误不能通过编译B.输出****C.可以通过编译,但是不能通过连接,因而不能运行D.输出####

题目

下面的程序的结果是

main( )

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

if(x=y+z)cout<<"* * * *";

else cout<<"####";

}

A.有语法错误不能通过编译

B.输出****

C.可以通过编译,但是不能通过连接,因而不能运行

D.输出####


相似考题
参考答案和解析
正确答案:D
解析:注意本题本意是考察x=y+z,但是少写了一个=,因此逻辑表达式变成了赋值语句,故x的值为0,即假,因此程序执行else部分。本题答案为D。
更多“下面的程序的结果是 main( ) {int x=3,y=0, z=0; if(x=y+z)cout<<"* * * *"; else cout<<"####"; ”相关问题
  • 第1题:

    有以下程序:includevoid main(){ int x=5,y=2; cout<

    有以下程序: #include<iostream.h> void main() { int x=5,y=2; cout<<!(y==x/2)<<","; cout<<y!=x%3)<<","; cout<<(x>0&&y<0)<<","; cout<<(x!=y‖x>=y)<<endl: } 程序执行后的输出结果是( )

    A.0,0,0,1

    B.1,1,1 1

    C.0,0, 1,1

    D.1,1,0,0


    正确答案:A

  • 第2题:

    对于下面的程序,说法正确的是 include void main( ) {int x=3,y=4,z=2; i

    对于下面的程序,说法正确的是 #include<iostream.h> void main( ) { int x=3,y=4,z=2; if(X=y+z) cout <<"x=y+Z"; else cout<<"x!=y+Z";}

    A.不能通过编译

    B.输出6

    C.输出x! =y+z

    D.输出x=y+z


    正确答案:D
    解析:解答本题关键是要理解if后面的括号里的是赋值语句而并非关系判断,赋完值后x不等于零,C++语言里非零都作真处理,所以输出结果为“x=y+z”,故答案为选项D),注意“=”与“==”的区别。

  • 第3题:

    运行程序,程序输出结果是(). void sub (int *s, int *y ) { static int t=3 ; *y=s[t] ; t - -; } int main() { int a[ ]={1,2,3,4}, i , x=0; for (i = 0; i<4; i++) { sub (a,&x ) ; cout<<x;} cout<<endl; return 0 ; }

    A.4321

    B.1234

    C.0000

    D.4444


    x=3

  • 第4题:

    若有以下程序段;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。

  • 第5题:

    以下程序输出的结果是()。includeusing namespace std;int main(){int **x,*y,z=10;y=

    以下程序输出的结果是( )。 #include<iostream> using namespace std; int main() { int **x,*y,z=10; y=&z; x=&y; cout<< **x+1<<endl; return 0; }

    A.11

    B.x的地址

    C.y的地址

    D.运行错误


    正确答案:A
    解析:执行语句y=&z;后,指针y指向了变量z。执行语句x=&y;后,指针**x指向z。所以**x的值为z的值10,那么程序最后输出为11。