更多“单选题有以下程序:#includemain(){ int x=1,y=2,z=3; if(xy)  if(y A 331B 41C 2D 1”相关问题
  • 第1题:

    有以下程序: void f(int v,int w) { int t; t=v;V=W;W=t; } main() { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf("%d,%d<%d\n",x,y,Z); } 执行后输出结果是( )。

    A.1,2,3

    B.3,1,2

    C.1,3,2

    D.2,3,1


    正确答案:C
    解析:C语言规定else总是和离它最近的if语句配对。分析可以知道,。函数f()作用是让形参v和形参w的值交换。在主函数中首先定义了3个变量x、y和z。然后再执行下面的if-else语句。由程序可以看出第一个else和第一个if搭配,第二个else和第二个if搭配。由于调用函数时是进行值传递的。即将实参x、y、z传给形参v和w,以后行参和实参再无联系,故通过if语句调用f()函数后,x、y和z的值并没有改变。因此最后输出的x、y和z的值为1、3和2,所以,4个选项中选项C符合题意。

  • 第2题:

    有以下程序: void f(int v , int w) { int t; t=v;v=w;w=t; } main() { int x=l,y=3,z=2; if(x>y} f(x,y); else if(y>z) f(y,z); else f(x,z); printf("%d,%d,%d\n",x,y,z); } 执行后输出结果是

    A.1,2,3

    B.3,1,2

    C.1,3,2

    D.2,3,1


    正确答案:C
    解析:本题考核的知识点是函数的调用和if-else语句的应用。C语言规定else总是和离它最近的if语句配对。分析可以知道,函数f()作用是让形参v和形参w的值交换。在i函数中首先定义了三个变量x。y和z。然后再执行下面的if-else语句.由程序可以看出第—个else和第一个订搭配,第二个else和第二个if搭配。由于调用函数时是进行值传递的。即将实参x,y,z传给形参v和w,以后行参和实参再无联系,故通过if语句调用f()函数后,x、y和z的值并没有改变。故最后输出的x、v和z的值为1、3和2,所以,4个选项中选项C符合题意。

  • 第3题:

    下列函数定义中,会出现编译错误的是

    A.max(int x,int y,int*z) {*z=x>y?xy;}

    B.int max(int x,y) {int z; z=x>y?xy; return z; }

    C.max(int x,int y) {int z; z=x>y?xy;return(z); }

    D.int max(int x,int y) { return(x>y?xy);}


    正确答案:B
    解析:本题考核的知识点是函数的定义方法。选项B中在说明形参时,省略了第二个参数的类型,故选项B编译不能通过。

  • 第4题:

    有以下程序 include mare() { int x=1,y=2,z=3; if(x>y) if

    有以下程序 #include <stdio.h> mare() { int x=1,y=2,z=3; if(x>y) if(y<z) printf("%d",++z); else printf("%d",++y); printf("%d\n",x++); } 程序的运行结果是______。

    A.331

    B.41

    C.2

    D.1


    正确答案:D
    解析:本题考查的是if语句的嵌套。C语言规定else总是与它上面的最近的且不带else的if配对,所以本题else与if(yz)配对,即为内嵌if。在程序执行时,先判断if(x>y)的条件表达式x>y,即1>2,不成立,所以不执行内嵌if,直接执行“printf("%d",x++);”语句。由于x++表示在使用后再将x加1,所以输出1。

  • 第5题:

    有以下程序includeint f(intx){inty; if(x==0||x==1)return(3); y=x*x-f(x-2); return

    有以下程序 #include <stdio.h> int f(int x) { int y; if(x==0||x==1) return(3); y=x*x-f(x-2); return y; } main() { int z; z=f(3); printf("%d\n",z); } 程序的运行结果是

    A.0

    B.9

    C.6

    D.8


    正确答案:C
    解析:函数int f(int x)是一个递归函数调用,当x的值等于0或1时,函数值等于3,其他情况下y=x2-f(x -2),所以在主函数中执行语句z=f(3)时,y=3*3-f(3-2)=9-f(1)=9-3=6。

  • 第6题:

    有以下程序: main() { int x=5,y=2,z=1; printf("%d\n",x%y&~z); }程序运行后的输出结果为______。

    A.3

    B.2

    C.1

    D.0


    正确答案:D

  • 第7题:

    有以下程序

    #include

    main()

    { int x=1,y=0;

    if(!x) y++;

    else if(x==0)

    if (x) y+=2;

    else y+=3;

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

    }

    程序运行后的输出结果是

    A.3

    B.2

    C.1

    D.0


    正确答案:D

  • 第8题:

    有以下程序:includemain(){int a[]={1,2,3,4},y,*p=&a[3];--p;y=*p;printf("y=%d\n",y

    有以下程序: #include<stdio.h> main() { int a[]={1,2,3,4},y,*p=&a[3]; --p;y=*p;printf("y=%d\n",y); } 程序的运行结果是( )。

    A.y=0

    B.y=1

    C.y=2

    D.y=3


    正确答案:D
    解析:本题主要考查一维数组及数组元素的地址。程序中定义数组a后知,a[0]=1,a[1]=2,a[2]=3,a[3]=4;在定义指针p时给其赋值为a[3]的地址。执行--p;语句后,p指向数组元素a[2];然后执行y=*p;语句,y的值为指针p所指向的变量的值为3。

  • 第9题:

    有以下程序:includemain(){int x=102,y=012; printf("%2d,%2d\n",x,y);}执行后的输出

    有以下程序: #include <stdio.h> main() { int x=102,y=012; printf("%2d,%2d\n",x,y); } 执行后的输出结果是( )。

    A.10,01

    B.02,12

    C.102,10

    D.02,10


    正确答案:C
    解析:y=012是将八进制数12赋给变量y。格式符%d,用于输出十进制整数;%md,m为指定的输出值的宽度,如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。本题是将八进制数12也按十进制数输出,八进制数12转换为十进制数为10,输出结果为102,10。

  • 第10题:

    有以下程序 void f(int v,int w) { int t; t=v; v=w; w=t; } main() { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf("%d,%d,%d/n",x,y,z); }执行后输出结果是()

    • A、1,2,3
    • B、3,1,2
    • C、1,3,2
    • D、2,3,1

    正确答案:C

  • 第11题:

    单选题
    有以下程序 void f(int v,int w) { int t; t=v; v=w; w=t; } main() { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf("%d,%d,%d/n",x,y,z); }执行后输出结果是()
    A

    1,2,3

    B

    3,1,2

    C

    1,3,2

    D

    2,3,1


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

  • 第12题:

    单选题
    有以下程序#include main(){ int x,y,z;  x=y=1;  z=x++,y++,++y; printf(%d,%d,%d,x,y,z);}程序运行后的输出结果是(  )。
    A

    2,3,1

    B

    2,3,2

    C

    2,3,3

    D

    2,2,1


    正确答案: D
    解析:
    考查逗号表达式。注意区分,z=x++是先将x的值赋给z,在令x自增;z=++x是先将x自增,再将自增后的值赋给z;而无论是++x还是x++,都会完成x自增的运算。对于表达式“z=x++,y++,++y;”,因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式改成“(z=x++),(y++),(++y);”。然后从左向右先计算表达式z=x++,后缀自增运算先进行其他运算,再执行自增运算,所以z的值为1,x的值为2,再计算逗号表达式第二个表达式y++,此时y的值为1,y++的值为2,最后计算第三个表达式++y,y的值为3。答案选择A选项。

  • 第13题:

    有以下程序: main() { int x=3, y=2, z=1; printf("% d\n", x/y&~z); } 程序运行后的输出结果是______。

    A.3

    B.2

    C.-1

    D.0


    正确答案:D
    解析:本题中表达式x/y&~z中运算符优先级的顺序为:~(按位取反)、/(除)、&(按位与),即首先执行~z得11111110,然后执行x/y=3/2=1,最后执行1&11111110=00000001 &11111110=00000000=0。

  • 第14题:

    有以下程序:include void f(int v, int w){int t; t=v; v=w; w=t;}main(){int x=1,y=3

    有以下程序: #include <stdio.h> void f(int v, int w) { int t; t=v; v=w; w=t; } main() { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf("%d,%d,%d\n",x,y,z); } 执行后的输出结果( )。

    A.1,2,3

    B.3,1,2

    C.1,3,2

    D.2,3,1


    正确答案:C
    解析:程序中if语句的条件只有y>z为真,所以执行f(y,z)。函数f的功能是交换两形参的值,但由于实参和形参都是一般变量,因此形参变量值的交换不能影响实参的值,main函数中的y和z并来互换,因此输出结果为:1,3,2。

  • 第15题:

    有以下程序includeintf(intx){inty;if(x==0||x==1)return(3);y=x*x-f(x-2);returny;}m

    有以下程序 #include <stdio.h> intf(int x) { int y; if(x==0||x==1) return(3); y=x*x-f(x-2); return y; } main() { int z; z=f(3); printf("%d\n",z); } 程序的运行结果是

    A.0

    B.9

    C.6

    D.8


    正确答案:C
    解析: 函数int f(int x)是一个递归函数调用,当x的值等于0或1时,函数值等于3,其他情况下y=x2-f(x-2),所以在主函数中执行语句z=f(3)时,y=3*3-f(3-2)=9=f(1)=9-3=6。

  • 第16题:

    有以下程序:includemain(){int x=3,y=2,z=1; printf("%d\n",x/y&~z);程序运行后的

    有以下程序: #include <stdio.h> main() { int x=3,y=2,z=1; printf("%d\n",x/y&~z); 程序运行后的输出结果是( )。

    A.3

    B.2

    C.1

    D.0


    正确答案:D
    解析:&是按位“与”运算符,若参加运算的两个运算量的相应位都为1,则该位的结果值为1,否则为0。~是“取反”运算符,用来对一个二进制数按位取反,即将0变1,1变0。对于x/y&~z,先计算x/y的值,结果为1,用十六进制表示为0001;z用十六进制表示为0001,则~z为FFFE;最后进行&运算,整个表达式的值为0。

  • 第17题:

    有以下程序#include <stdio.h>main() { int x=1, y=2, z=3; if(x>y) if(y<z) printf("%d", ++z); else printf("%d", ++y); printf("%d\n", x++);}程序的运行结果是A.331 B.41 C.2 D.1


    正确答案:D
    本题考查if-else语句的使用。if-else语句可以在条件为“真”或为“假”时执行指定的动作,由if引导条件为“真”时执行的操作;由else引导条件为“假”时执行的操作。else语句要与上面最近的if语句进行匹配,如果要嵌套调用if-else语句,需要将嵌套部分用{}括起来,避免程序报错。题目中给出了一个if语句和一个if-else语句,if-else语句为第一个if语句的子语句。首先执行外层if语句,执行条件为x>y,由于x=1,y=2,故该条件为假,不执行if的子语句,直接执行语句printf("%d\n", x++);,该语句先输出x的值,然后进行x++操作。x的初始值为1,输出结果为1。

  • 第18题:

    有以下程序:main ( ){ int X=3, y=2, z=1; printf ("%d\n", x/y&~z );}

    A.3

    B.2

    C.1

    D.0


    正确答案:D
    解析:本题考核的知识点是位运算符的应用。位与运算符“&”参加运算的两个数据,按二进位进行“与”运算,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0,取反运算符“~”,用来对一个;进制按位取反,即将0变1,1变0.在prinft()函数的表达式中,“&”前面表达式的值为1(3/2=1)表示为二进制为00000001,而按位取反运算符“~”的优先级高于按位与运算符“&”,先计算“&”后面的取反运算符“~”。z的二进制表示为00000001,取反后为11111110,最后进行“&”,即“00000001&11111110”可知结果为00000000,故最后的值为0,所以,4个选项中选项D符合题意。

  • 第19题:

    有以下程序: main() {int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d,%d\n",x,y,z); 程序运行后的输出结果是( )。

    A.2,3,3

    B.2,3,2

    C.2,3,1

    D.2,2,1


    正确答案:C
    解析:z=x++是先把x的值1赋给z,所以z=1,然后再把x加1赋给x,x=2,++y后y又加1,所以y=3。

  • 第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题:

    有以下程序 void f(int v,int w) { int t; t=v;v=w;w=t } main() {int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); pfintf("%d,%d,%d\n",x,y,2); } 执行后输出结果是

    A.1,2,3

    B.3,1,2

    C.1,3,2

    D.2,3,1


    正确答案:C
    解析:C语言规定else总是和离它最近的if语句配对。分析可以知道,函数f()作用是让形参v和形参w的值交换。在主函数中首先定义了三个变量x、y和z。 然后再执行下面的if-else语句。由程序可以看出第一个else和第一个if搭配,第二个else和第二个if搭配。由于调用函数时是进行值传递的。即将实参x,y,z传给形参v和w,以后形参和实参再无联系,故通过if语句调用f()函数后,x、y和x的值并没有改变。故最后输出的x、y和z的值为1、3和2。

  • 第22题:

    单选题
    有以下程序: #include main() {  int x=1,y=2,z=3;  if(x>1)   if(y>x)putchar('A');   else putchar('B');  else   if(z
    A

    D

    B

    C

    C

    B

    D

    A


    正确答案: A
    解析:
    A项正确,main函数中,首先判断条件x>1,因为x=1,不满足条件,程序跳入else语句判定z<x是否成立,z=3,x=1,条件不成立,输出字母D。答案选择A选项。

  • 第23题:

    单选题
    有以下程序:#include int f(int x){ int y; if(x==0||x==1)  return (3); y=x*x-f(x-2); return y;}main(){ int z; z=f(3); printf(%d,z);}程序的运行结果是(  )。
    A

    0

    B

    9

    C

    6

    D

    8


    正确答案: C
    解析:
    函数f是递归函数,递归的终止条件是x为1或2。f(3)=3*3-f(1),当x=0或x=1时返回值为3,即f(0)=3,f(1)=3;所以y=3*3-3=6。答案选择C选项。