更多“单选题有以下程序 #include main() {  inta[]={2,4,6,8,10},x,*p,y=1;  p=a[1];  for(x=0;x3;x++)y+=*(p+x);  printf("%d",y); } 程序的输出结果是(  )。A 19B 13C 11D 15”相关问题
  • 第1题:

    有以下程序: #include<stdio.h> main( ) {int x=1,y=0; if(!x)y++; else if(x==0) if(x)y+=2; else y+=3; Drintf("%d\n"。v); } 程序运行后的输出结果是( )。

    A.3

    B.2

    C.1

    D.0


    正确答案:D
    因为x!=0,所以下列的循环不执行,只执行y++,最后结果为0。

  • 第2题:

    执行以下程序后,y的值是 ( ) main( ) { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for(x=0;x<3;x+ +) y+=* (p+x); printf("%d\n",y); }

    A.17

    B.18

    C.19

    D.20


    正确答案:C

  • 第3题:

    有以下程序 main() { iht a[]{2,4,6,9,10}, y=0,x,*p; p=&a[1]; for(x=1);X<3;x++) y+=p[x]; printf("%d\n",y); 程序运行后的输出结果是

    A.10

    B.11

    C.14

    D.15


    正确答案:C
    解析:题目首先申请了一个整型数组a,并让一个指针变量p指向数组的元素arl)。然后使用一个for循环,循环变量x从1递增到2,即循环两次.在循环体中每次让y累加p[x]的值,而p[x)写成指针形式就是*(p+x)。所以两次y加的值分别是a[2]和a[3]的值,故最终输出6+8=14。应该选择C。

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

    有以下程序: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。

  • 第6题:

    有以下程序

    #inclUde<stdio.h>

    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
    解析:本题主要考查的知识点为if语句的嵌套.变量x的值(为1。既不满址表达式!x为真.也不满足表达式x==0.故不执行if语句,而直接执行printf函数输出y的值0。 

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

    有以下程序:

    main

    { int a[]=(2,4,6,8,10},y=0,x,*P;

    p=&a[1];

    for(x=1;x<3;x++) y+=p[x];

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

    }

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

    A.A.10

    B.11

    C.14

    D.15


    正确答案:C
    由题目的语句P=&a[1]可知,P指向a数组中下标为1的元素“4”,又因为P为指针变量,所以P[x]与*(p+x)等价,因而在for循环语句中,第一次循环P[1]指向a数组中下标为2的元素“6”,第二次循环p[2]指向a数组中下标为3的元素“8”,所以y=6+8=14,因而选项C为正确答案。

  • 第9题:

    以下程序的输出结果是______。 include main() { char*a="abcdefghi";int k fun(a);p

    以下程序的输出结果是______。 #include <string.h> main() { char*a="abcdefghi";int k fun(a);puts(a); } fun(char*s) { int x,y; char c for(x=0,y=strlen(s)-1;x<y:x++,y--) {c=s[y];s[y]=s[x];s[x]=c;} }

    A.ihgfedcba

    B.abcdefghi

    C.abcdedeba

    D.ihgfefghi


    正确答案:A

  • 第10题:

    执行以下程序后,y的值是() main( ) { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y + = * (p + x); printf(""%d/n"",y); }

    • A、17
    • B、18
    • C、19
    • D、20

    正确答案:C

  • 第11题:

    单选题
    执行以下程序后,y的值是() main( ) { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y + = * (p + x); printf(""%d/n"",y); }
    A

    17

    B

    18

    C

    19

    D

    20


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

  • 第12题:

    单选题
    有以下程序 #include  main() {  int a[]={2,4,6,8,10},x,*p,y=1;  p=&a[1];  for(x=0;x<3;x++)y+=*(p+x);  printf("%d",y); } 程序的输出结果是(  )。
    A

    19

    B

    13

    C

    11

    D

    15


    正确答案: B
    解析:
    p=&a[1]是把p指向a[1],即*p=a[1]=4;在for循环中,通过指针p依次访问a[1]、[2]、a[3],所以y=1+4+6+8=19。答案选择A选项。

  • 第13题:

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

  • 第14题:

    有以下程序:include main() {int a[] = {2,4,6,8,10} ,y =0,x, * p;p =&a[1];for(

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

    A.10

    B.11

    C.14

    D.15


    正确答案:C
    解析:本程序通过语句p=&a[1];将指针变量p指向存储单元a[1],使得p[0]的值为4,通过for循环,使y的值丸P[1]与p[2]之和,即y=6+8,所以输出的y值为14。

  • 第15题:

    下列程序的输出结果是______。main() { int x,y; for(x=1,y=1;x<=10;x++) {if(y>=5)break;if(y%3=

    下列程序的输出结果是______。 main() { int x,y; for(x=1,y=1;x<=10;x++) {if(y>=5)break; if(y%3==1) }y+=3; continue; } y-=5; } printf("%d\n",x); }

    A.2

    B.3

    C.4

    D.5


    正确答案:B
    解析:本题考查循环辅助控制语句break和continue,前者退出整个for循环,后者跳过本次循环没有执行完的若干条语句,开始下一次循环操作,建议读者采用本书推荐的列表法分析。

  • 第16题:

    有以下程序 include struct st { int x,y;} data[2]={1,10,2,20}; main(

    有以下程序 #include <stdio.h> struct st { int x,y;} data[2]={1,10,2,20}; main() { struct st *p=data; printf("%d,",p->y); printf("%d\n",(++p)->x); } 程序的运行结果是______。

    A.10,1

    B.20,1

    C.10,2

    D.20,2


    正确答案:C
    解析:本题定义了一个包含两个元素(data[0]、data[1])的结构体数组data,其中data[0].x=1;data[0].y=10;data[1].x=2; data[1].y=20。在主函数中,定义了一个指向结构体数组的结构体指针变量p,使得p指向结构体数组的首地址,所以p->y访问的是第一个鲒构体数组元素的第二个值,即data[0].y;(++p)->x访问的是第二个结构体数组元素的第一个值,即 data[1].x,所以程序输出结果为10,2。

  • 第17题:

    以下程序段的输出结果是 ______。includevoidmain() { int x[]二{9,7,5,3,1),y=0,j,

    以下程序段的输出结果是 ______。 #include<iostream.h> void main() { int x[]二{9,7,5,3,1),y=0,j,*p=&x[2]; for(j=0;i<3;j++) y+=*(p+j); cout<<y; }

    A.7

    B.8

    C.9

    D.10


    正确答案:C

  • 第18题:

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

    有以下程序: #include<stdio.h> main() {inta[]={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

  • 第19题:

    执行以下程序后,y的值是 ( ) main( ) { int a [ ]={2,4,6,8,10); int y=1,x, *p; p=&a[1]; for(x=0;x<3; x + +) y + =* (p + x); printf("%d\n",y); }

    A.17

    B.18

    C.19

    D.20


    正确答案:C

  • 第20题:

    下列程序的输出结果为______。 main ( ) { int p, y=0, x=0; p=x<<8 | ~y>>8; printf("%d",p); p+

    下列程序的输出结果为______。 main ( ) { int p, y=0, x=0; p=x<<8 | ~y>>8; printf("%d ",p); p+=(p+=2); printf("%d\n",p); }

    A.-1 0

    B.0 0

    C.0 4

    D.-1 2


    正确答案:D

  • 第21题:

    (27)有以下程序

    #include <stdio.h>

    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

  • 第22题:

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

    3

    B

    2

    C

    1

    D

    0


    正确答案: D
    解析:
    else子句总是与前面最近的不带else的if相结合,与书写格式无关。本题中的层次关系是:if(!x)与else if(x==0)是一组,位于条件判断的最外层。而if(x)与else是一组,位于else if(x==0)条件的内层。由此可知条件均不成立,所以y未进行任何操作,仍为0。答案选择D选项。

  • 第23题:

    单选题
    有以下程序:#include main(){ int x=0,y=6;  do {  while(--y)x++; } while(y--); printf(%d,%d,x,y); }程序的运行结果是(  )。
    A

    5,0

    B

    6,0

    C

    5,-1

    D

    6,-1


    正确答案: A
    解析:
    程序执行过程为:执行do…while的循环体:y=5,判断y为真,x=1;y=4,x=2;y=3,x=3;y=2,x=4;y=1,x=5;y=0,判断y为假,退出循环体。判断do…while条件y=0为假,y=-1,退出循环。输出x,y为5,-1,答案选择C选项。

  • 第24题:

    单选题
    有以下程序#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选项。