更多“单选题有如下程序:#include main(){ int a=9,b; b=(a3)%4; printf(%d,%d,a,b);}程序运行后的输出结果是(  )。A 9,1B 4,0C 4,3D 9,3”相关问题
  • 第1题:

    以下程序运行后的输出结果是( )。 include main() { int x=20; printf("%d", 0

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

    include<stdio.h>

    main()

    { int x=20;

    printf("%d", 0<x<20);

    printf("%d\n", 0<x && x<20);

    }


    正确答案:10
    10 解析:表达式0x20,首先计算0x,其值为1,再计算120,其值为1,输出1;表达式0x && x20,0x为1,x20为0,再计算1 && 0,其值为0,输出0。所以输出结果为10。

  • 第2题:

    有以下程序

    #include <stdio.h>

    void func(int n)

    { int i;

    for(i=0;i<=n;i++) printf(”*”);

    printf(”#”).

    }

    main( )

    { func(3); printf(”???? ”); func(4); printf(”\n”); }

    程序运行后的输出结果是

    A)****#????***#

    B)***# ????*** *#

    C)**#????*****#

    D)****#????*****#


    正确答案:D
    【答案】D
    【知识点】函数调用中形参与实参的关系
    【解析】第一次调用实参为3,所以形参变量n为3,打印四个*号后打印一个#号。然后在主函数中打印四个?。再次调用func函数,实参值为4,所以形参n的值为4,按照循环,打印五个*号后结束循环,再打印一个#号。

  • 第3题:

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

    A.2

    B.4

    C.6

    D.8


    正确答案:D
    本题考查运算符“<<”,b=a<<2,是左移2位,a=2,即b=2*2*2=8。

  • 第4题:

    下列程序的输出结果是()。 include main() {int a=4; printf("%d\n",(a+=a-=a*A) ); }A

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

    #include<stdio.h>

    main()

    { int a=4;

    printf("%d\n",(a+=a-=a*A) );

    }

    A.-8

    B.14

    C.0

    D.-24


    正确答案:D
    解析:表达式a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:①第一个表达式(a-=a*a)=(a=a-a*a=-12);②第二个表达式 (a+=a-=a*a)=(a=a+a=-24)。

  • 第5题:

    有以下程序:include define F(X,Y)(X)*(Y)main(){int a=3,b=4;printf("%d\n",F(a++,b

    有以下程序: #include <stdio.h> #define F(X,Y)(X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } 程序运行后的输出结果是( )。

    A.12

    B.15

    C.16

    D.20


    正确答案:A
    解析:在程序中先将表达式中的宏替换掉,则输出语句中的表达式为(a++)*(b++),而a++的值为3,b++的值为4。因此最后的值为3*4=12。所以,4个选项中选项A符合题意。

  • 第6题:

    有程序 include main( ) { int a,b,c=246; a=c/100%9; b=(-)& &(-

    有程序 # include<stdio.h> main( ) { int a,b,c=246; a=c/100%9; b=(-)& &(-1); printf("%d,%d\n%,a,b); } 输出结果是 ( )

    A.2,1

    B.3,2

    C.4,3

    D.2,-1


    正确答案:A

  • 第7题:

    单选题
    有如下程序:#include main(){ int a=9,b; b=(a>>3)%4; printf(%d,%d,a,b);}程序运行后的输出结果是(  )。
    A

    9,1

    B

    4,0

    C

    4,3

    D

    9,3


    正确答案: D
    解析:
    程序执行完成后,变量a的值不变,始终为9,a转化成二进制数1001B,1001 >> 3 = 0001B = 1,1再对4求余得到余数1,赋给b值。答案选择A选项。

  • 第8题:

    单选题
    有以下函数:#include void func(int n){ int i; for(i=0;i<=n;i++)printf(*); printf(#);}main(){ func(3); printf(????); func(4); printf();}程序运行后的输出结果是(  )。
    A

    ****#????***#

    B

    ***#????*****#

    C

    **#????*****#

    D

    ****#????*****#


    正确答案: D
    解析:
    从main函数开始,执行func()函数,for循环执行4次,连续输出四个“*”,然后输出一个“#”;输出“????”;再次调用func(),for循环执行5次,连续输出五个“*”,然后输出一个“#”;最后输出换行符。答案选择D选项。

  • 第9题:

    单选题
    有以下程序:#include #include main(){ int *a,*b,*c; a=b=c=(int*)malloc(sizeof(int)); *a=1; *b=2,*c=3; a=b; printf(%d,%d,%d,*a,*b,*c);}程序运行后的输出结果是(  )。
    A

    3,3,3

    B

    2,2,3

    C

    1,2,3

    D

    1,1,3


    正确答案: A
    解析:
    库函数malloc(size)用来分配size个字节的存储区,返回一个指向存储区首地址的基类型为void的地址。本程序中,系统只分配了一个整型数据的存储空间,并把这个空间的地址分别赋给了指针型变量a,b和c。程序利用指针a把数据1写入了该空间,然后利用指针b,把数据2写入该空间,因为指针型变量a、b和c指向了同一个存储空间,所以数据2将原来的1覆盖掉了,同理数据3又将2覆盖掉了。因此,此空间中最后留有的数据是3。又因为3个指针都指向该空间,所以输出数据均为3。答案选择A选项。

  • 第10题:

    单选题
    有以下程序:#include int f(int x,int y){    return((y-x)*x);}main(){    int a=3,b=4,c=5,d;    d=f(f(a,b),f(a,c));    printf(%d,d);}程序运行后的输出结果是(  )。
    A

    10

    B

    9

    C

    8

    D

    7


    正确答案: B
    解析:
    主函数中语句d=f(f(a,b),f(a,c));用函数的返回值做参数,所以首先计算f(a,b)代入a=3,b=4,得3,然后计算f(a,c),代入a=3,c=5得6,所以d=f(f(a,b),f(a,c));,即为计算d=f(3,6),值为9。答案选择B选项。

  • 第11题:

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

    -12

    B

    9

    C

    0

    D

    3


    正确答案: C
    解析:
    C语言中,表达式从右向左计算。a+=a-=a*a;可以写成a-=a*a; a+=a; 而a-=a*a等价于a=a-(a*a)=3-(3*3)=-6;a+=a等价于a=a+a=(-6)+(-6)=-12。答案选择A选项。

  • 第12题:

    单选题
    有如下程序:#include struct S{ int x,y;};main(){ struct S data[2] = {4,3,1,9}; int i; for(i=0;i<2;i++)  printf(%d,%d;,data[i].x, data[i].y>>1);}程序运行后的输出结果是(  )。
    A

    4,1;1,4;

    B

    4,1;2,4;

    C

    4,3;1,9;

    D

    4,3;2,3;


    正确答案: A
    解析:
    “>>”右移运算符。程序执行过程为:定义结构体数组data,并且初始化,则data[0].x=4,data[0].y=3,data[1].x=1,data[1].y=9。for循环依次输出结构体变量的成员与经过位运算之后的结果。3=11B,9=1001B,data[0].y>>1=1,data[1].y>>1=4。答案选择A选项。

  • 第13题:

    下列程序的输出结果是______。 include main ( ) {int a,b,c=246; a=c/100%9; b=(-1)

    下列程序的输出结果是______。 #include <stdio. h> main ( ) { int a,b,c=246; a=c/100%9; b=(-1)&&(-1); printf ("%d, %d\n", a,b); }

    A.2,1

    B.3,2

    C.4,3

    D.2,-1


    正确答案:A

  • 第14题:

    有以下程序: include main( ){ int m =12,n=34;printf( "% d% d" ,m++ , ++n);printf(

    有以下程序: #include <stdio.h>main( ){ int m =12,n=34; printf( "% d% d" ,m++ , ++n); printf("% d% d \n" ,n ++ , ++m); }程序运行后的输出结果是( )。

    A.12353514

    B.12353513

    C.12343514

    D.12343513


    正确答案:A
    解析:程序执行printf("%d%d",m++,++n);后,输出的是m和n+1的值1235,然后m+1=13,再执行printf("%d%d\n",n++,++m);输出n和m+1的值3514,之后n+1=36。这里要注意的是m++和++m的区别:m++是先输出m的值,再执行m++;++m是先执行++m,再输出m的值。

  • 第15题:

    有以下程序: include < stdio. h > main ( ) int a=3,b=4,c=5,d=2;if(a>b) if(b>c)printf("%d",

    有以下程序: #include < stdio. h > main ( ) int a=3,b=4,c=5,d=2; if(a>b) if(b>c)printf("%d",d++ +1); else printf( "% d", + + d + 1 ); printf( "% d \n" ,d); 程序运行后的输出结果是( )。

    A.2

    B.3

    C.43

    D.44


    正确答案:A
    解析:C语言规定:else总是与离自己前面最近的if配对,程序中if(a>b)不成立,因此执行prinff("%d\n",d);,输出结果为2。

  • 第16题:

    有以下程序:include main ( ){int a =666,b =888;printf( "%'d \n", a,b); 程序运行

    有以下程序: #include <stdio, h> main ( ) { int a =666,b =888; printf( "%'d \n", a,b); 程序运行后的输出结果是( )。

    A.错误信息,

    B.666

    C.888

    D.666,888


    正确答案:B
    解析:在printf函数中,当格式转换说明符个数少于输出项个数时,多余的输出项不予输出。

  • 第17题:

    如下程序的运行结果是______。 include main() { int x=y=3,z=1; printf ("%d%d\n",(++

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

    A.3 4

    B.4 2

    C.4 3

    D.3 3


    正确答案:D

  • 第18题:

    有以下程序: include main( ) {int a,b,d =25; a = d/10%9;b = a&&(-1); prin

    有以下程序: #include <stdio.h> main( ) { int a,b,d =25; a = d/10%9;b = a&&(-1); printf("% d,% d\n" ,a,b); } 程序运行后的输出结果是( )。

    A.6,1

    B.2,1

    C.6,0

    D.2,0


    正确答案:B
    解析:“/”表示整除,“%”表示求余。程序中表达式a=d/10%9的值为25/10%9=2,则b=a&&(-1)=2&&(-1)=1(注意:-1表示真,0表示假),所以a,b的值分别为2,1。

  • 第19题:

    单选题
    有以下程序:#include main(){ int a=7; while(a--); printf(%d, a);}程序运行后的输出结果是(  )。
    A

    -1

    B

    0

    C

    1

    D

    7


    正确答案: B
    解析:
    “++”和“—”运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当以后缀形式出现时,则先取值,再进行加一或减一操作。程序中执行a--,直到while判断为0时才跳出循环,执行下条语句,即a为0时再执行a--,此时跳出while循环,最终输出的结果为-1。答案选择A选项。

  • 第20题:

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

    12

    B

    11

    C

    10

    D

    9


    正确答案: D
    解析:
    x=011表示按照八进制赋值,则十进制数为9,所以输出++x的结果为10。答案选择C选项。

  • 第21题:

    单选题
    有以下程序:#include main(){ int a=3; int b=3; printf(%d, a&b);}程序运行后的输出结果是(  )。
    A

    6

    B

    1

    C

    0

    D

    3


    正确答案: D
    解析:
    “&”按位与运算符。a=3=11B,b=3=11B,按位与结果为11B=3,答案选择D选项。

  • 第22题:

    单选题
    有如下程序:#include #include main(){ printf(%d,strlen(0\tA011\1));}程序运行后的输出结果是(  )。
    A

    8

    B

    9

    C

    7

    D

    10


    正确答案: B
    解析:
    strlen是求字符串长度的函数,"0\tA011\1"是一个长度为8的字符串,其中\t、、\1均为转义字符常量,但是长度也是1,因此输出结果是8,答案选择A选项。

  • 第23题:

    单选题
    有以下程序:#include main(){ int a=2,b; b=a<<2; printf(%d,b);}程序运行后的输出结果是(  )。
    A

    2

    B

    4

    C

    6

    D

    8


    正确答案: C
    解析:
    a的初始值为2,程序中将a左移2位的结果赋值给b,即相当于十进制乘以4,结果为8。答案选择D选项。

  • 第24题:

    单选题
    有如下程序:#include main(){ int i,*ptr; int array[3]={8,2,4}; for(ptr=array,i=0;i  printf("%d,",*ptr++); printf("");}程序运行后的输出结果是(  )。
    A

    8,2,

    B

    8,8,

    C

    2,4,

    D

    4,8,


    正确答案: D
    解析:
    *的优先级低于++,即先运算ptr++再运算*ptr。程序执行过程为:定义指针ptr与数组array,执行for循环,使指针指向数组首地址,i=0,输出指针指向的元素array[0]=8,然后指针加1,指向数组下一个元素;i=1,输出array[1]=2,指针指向数组下一个元素;i=2退出for循环。程序依次输出8和2。答案选择A选项。