参考答案和解析
正确答案: A
解析:
C语言中“^”的意思是按位异或,10^3表示先把10和3换算成二进制再进行异或,即1010 ^ 0011 = 1001b,转成十进制为9。答案选择D选项。
更多“单选题有以下程序:#include main(){ int c,d; c=10^3; d=10+3; printf(%d,%d,c,d);}程序运行后的输出结果是(  )。A 103,13B 13,13C 10,13D 9,13”相关问题
  • 第1题:

    有以下程序 include main( ) { printf("%d\n",NULL); } 程序运行后的输出结果是

    有以下程序

    #include <stdio.h>

    main( )

    { printf("%d\n",NULL); }

    程序运行后的输出结果是

    A.0

    B.1

    C.-1

    D.NULL没定义,出错


    正确答案:A
    解析:因为在头文件stdio.h中,已对NULL作了宏定义,其值为0。

  • 第2题:

    有以下程序:include main( ){ unsigned int a; int b=-1;a=b;printf(" % u", a);程序

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

    A.-1

    B.65535

    C.32767

    D.-32768


    正确答案:B
    解析:不同类型的对象进行混合运算时,需要进行数据的类型转换,其转换方向为int→unsigned→long→double。本题程序中的变量b为int型,需要转换为unsigned型。int型变量的数值范围为-32768~32767,最高位为符号位,而unsigned所表示的数的范围为0~65535,它的最高位为数值位。由于内存中是以补码形式存储数据的,所以整型数-1在内存中表示为16个1,最高位的1表示符号为负,将它转换为unsigned类型,即将原符号位的1看成数值,所以得到16个数值1,即65535。

  • 第3题:

    以下程序运行后的输出结果是( )。 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。

  • 第4题:

    有以下程序

    #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,按照循环,打印五个*号后结束循环,再打印一个#号。

  • 第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 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。

  • 第7题:

    有以下程序: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符合题意。

  • 第8题:

    单选题
    有以下程序:#include main(){ int a[10]={1,3,5,7,11,13,17},*p=a;  printf(%d,,*(p++)); printf(%d,*(++p)); }程序运行后的输出结果是(  )。
    A

    3,7

    B

    3,5

    C

    1,5

    D

    1,3


    正确答案: D
    解析:
    程序执行过程:指针p指向数组第一个元素;*(p++)先取p,输出p指向的元素1,之后p移动1个存储空间,指向数组第二个元素;*(++p),指针p移动1个存储空间指向数组第三个元素,之后输出所指元素5。答案选择C选项。

  • 第9题:

    单选题
    有以下函数:#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选项。

  • 第10题:

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

  • 第11题:

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

  • 第12题:

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

  • 第13题:

    有以下程序 include define F(X,Y) (X)*(Y) main( ) { int a=3, b=4; prin

    有以下程序

    #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++替换X,用b++替换Y,再求(a++)*(b++)的值。

  • 第14题:

    有以下程序:include main(){ printf("%d\n",NULL);}程序运行后的输出结果是()。A.0B.1C

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

    A.0

    B.1

    C.-1

    D.NULL没定义,出错


    正确答案:A
    解析:在C语言中NULL的ASCII码值为0,而输出函数要求以整形格式输出,故最后的输出数为0。所以,4个选项中选项A符合愿意。

  • 第15题:

    有以下程序:includedefine X 5+6main(){int a=2,c;C=X*2:printf("%d",C);}程序运行后

    有以下程序: #include<stdio.h> #define X 5+6 main() {int a=2,c; C=X*2: printf("%d",C); } 程序运行后的输出结果是( )。

    A.17

    B.22

    C.16

    D.11


    正确答案:A

  • 第16题:

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

  • 第17题:

    有以下程序,程序执行后,输出结果是【】include void fun(int*A) {a[0]=a[1];} main() {i

    有以下程序,程序执行后,输出结果是【 】

    include<stdio.h>

    void fun(int*A)

    { a[0]=a[1];}

    main()

    { int a[10]={10,9,8,7,6,5,4,3,2,1,},i;

    for(i=2;i>1=0;i-) fun(&a[i]);

    for(i=0;i<10;i++) printf("%d,a[i]);

    printf("\n");

    }


    正确答案:7777654321
    7777654321 解析:本题主要考查函数的调用,第—次调用把数组元素a[2]的地址赋给a,此时a[1]即是原数组的a[3]等于7,再执行赋值语句a[0]=a[1],则a[0]和a[1]中的值都是7,然后再把这个值返回给a[2]同样地第二次调用的时候函数返回值也是7,第三次调用返回值也是7,因此数组的前4个元素,即对a[0]、a[1]、a[2]和a[3]的值都为7,当执行第二个for循环时输出数组中所有元素的值7777654321。

  • 第18题:

    有以下程序: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函数中,当格式转换说明符个数少于输出项个数时,多余的输出项不予输出。

  • 第19题:

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

  • 第20题:

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

  • 第21题:

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

    12

    B

    11

    C

    10

    D

    9


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

  • 第22题:

    单选题
    有以下程序:#include void fun(int n){ static int num = 1; num=num+n; printf(%d, num);}main(){ fun(3); fun(4); printf();}程序运行后的输出结果是(  )。
    A

    48

    B

    34

    C

    35

    D

    45


    正确答案: D
    解析:
    函数fun中定义了一个静态局部变量num,在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久性的存储单元。第一次调用fun时,num=1+3=4,此处考查的是静态变量,即第一次调用完之后的数值并不会被释放,因此第二次调用时num仍保持上次的值4,故最终num=4+4=8。答案选择A选项。

  • 第23题:

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