以下程序的输出结果是( )。 main {int x=0.5;char z=a; printf("%d\n",(x&1)&&(z<2));}A.0###S

题目
以下程序的输出结果是( )。 main {int x=0.5;char z=a; printf("%d\n",(x&1)&&(z<2));}A.0S

以下程序的输出结果是( )。 main {int x=0.5;char z=a; printf("%d\n",(x&1)&&(z<2));}

A.0

B.1

C.2

D.3

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序的输出结果是 ______。includevoid prt(int*x,int*y,int*z){ printf("%d,%d,%d

以下程序的输出结果是 ______。#include<stdio.h>void prt(int*x,int*y,int*z){ printf("%d,%d,%d\n",++*x,++*y,*(z++));} int a=10,b=40,c=20;main(){ prt(&a,&b&C) ; prt(&a,&b,&C);}

A.11,42,31 12,22,41

B.11,41,20 12,42,20

C.11,21,40 11,21,41

D.11,41,21 12,42,22


正确答案:B
解析:由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。

第2题:

以下程序的输出结果是( )。

main

{int x=0.5;char z='a';

printf("%d\n",(x&1)&&(z<'2'));}

A.A.0

B.1

C.2

D.3


正确答案:B
(x&1)&&(z<'2')=(0.5&1)&&('a'<'z')=1&&1=1,故选择B选项。

第3题:

以下程序的输出结果是()。includevoid prt(int *x,int *y,int *z){printf("%d,%d,%d\n"

以下程序的输出结果是( )。 #include<stdio.h> void prt(int *x,int *y,int *z) {printf("%d,%d,%d\n",++*x,++*y,*(z++));} main() {inta=10,b=40,c=20; prt(&a,&b,&C); prt(&a,&b,&C);}

A.11,42,31 12,22,41

B.11,41,20 1,42,20

C.11,21,40 11,21,21

D.11,41,21 12,42,22


正确答案:B

第4题:

以下程序的输出结果是()。includevoid prt(int*x,int*y,int*z){printf("%d,%d,%d\n",++

以下程序的输出结果是( )。 #include<stdio.h> void prt(int *x,int *y,int *z) { printf("%d,%d,%d\n",++ *x,++ *y,*(z++));} main() { int a=10,b=40,c=20; prt(&a,&b,&c); prt(&a,&b,&c); }

A.11,42,31 12,22,41

B.11,41,20 12,42,20

C.11,21,40 11,21,21

D.11,41,21 12,42,22


正确答案:B
解析:C程序可以通过传递指针的值(变量的地址)来达到修改实参变量值的目的,这是本题主要说明的问题。这里要注意表达式,(z++)的值是*z,其后的z++在程序中无实际作用。函数调用时,由于x,y和z分别指向a,b和c,因此,*x,*y和*z就是a,b和c的值。第一次调用函数时,*x=a=10,*y=b=40,*z=c=20,输出结果为11,41,20,至此,已经可以肯定选项B)是正确的。第二次输出为:12,42,20。

第5题:

以下程序的输出结果是______。includevoid prt(int*x,int*y,int*z){printf("%d,%d,%d\n

以下程序的输出结果是______。 #include<stdio.h> void prt(int*x,int*y,int*z) { printf("%d,%d,%d\n",++*x,++*y,*(z++));} int a=10,b=40,c=20; main() { prt(&a,&b&c) prt(&a,&b,&c); }

A.11,42,31 12,22,41

B.11,41,20 12,42,20

C.11,21,40 11,21,41

D.11,41,21 12,42,22


正确答案:B
解析:由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。

第6题:

以下程序的输出结果是_______。includevoid prt(int*x,int*y,int*z){printf("%d,%d,%d\

以下程序的输出结果是_______。 #include<stdio.h> void prt(int*x,int*y,int*z) { printf("%d,%d,%d\n",++*x,++*y,*(z++));} int a=10,b=40, c=20; main() { prt(&a,&b&C) ; prt(&a,&b,&C) ; }

A.11,42,31 12,22,41

B.11,41,20 12,42,20

C.11,21,40 11,21,41

D.11,41,21 12,42,22


正确答案:B
解析:由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。

第7题:

以下程序的输出结果是includevoid prt(int *x,int*y,int*z){ printf("%d,%d,%d\n",++*

以下程序的输出结果是 #include<stdio.h> void prt(int *x,int*y,int*z) { printf("%d,%d,%d\n",++*x,++*y,*(z++));} main() { int a=10,b=40,c=20; prt(&a,&b,&c); prt(&a,&b,&c);}

A.11,42,31 12,22,41

B.11,41,20 12,42,20

C.11,21,40 11,21,21

D.11,41,21. 12,42,22


正确答案:B
解析:尽管C语言以传值方式进行函数调用,但也可以通过传递指针的值(变量的地址)来达到修改实参变量值的目的,这是此题主要说明的问题。其次,应注意表达式。(z++)的值是*z,其后的z++在程序中无实际作用。函数调用时,由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次调用函数时,*x=a=10,*y=b=40,*z=c=20输出结果为11,41,20,至此,已经可以肯定选项B)是正确的。在第一次输出后,a=11,b=41,c=20,第二次输出为:12,42,20。注意:指针作为参数的函数调用的执行过程。

第8题:

下列程序的输出结果是 ( ) main( ) { int x=0.5;char z='a'; printf("%d\n", (x & 1) & &(z<'z')); }

A.0

B.1

C.2

D.3


正确答案:A

第9题:

以下程序的输出结果是( )。

main

{int x=0.5;char z=a;

printf("%d\n",(x&1)&&(z<2));}

A.0

B.1

C.2

D.3


正确答案:B

(x&1)&&(z< 2 )=(0.5&1)&&(a <z)=1&&1=1,故选择B选项。