单选题有如下程序: #include main() {  inta=8,b;  b=(a2)%2;  printf(%d,%d,a,b); } 程序运行后的输出结果是(  )。A 8,0B 4,0C 4,1D 8,1

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

8,0

B

4,0

C

4,1

D

8,1

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

第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(){ 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符合愿意。

第3题:

有以下程序:include <stdio.h>main( ){ int a=2,b; b=a<<2;printf("%d\n"

有以下程序:

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

第5题:

有以下程序:include main ( ){char a :'a',b; printf( "% c," , + + a); printf("%c

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

A.b,b

B.b,c

C.a,b

D.a,c


正确答案:A
解析:程序中pdntf("%c",++a)是先将a加1,再输a,因此输出的是'b',而pfintf("%c\n",b=a++)是先将a的值赋给b,a再加1,所以输出的也是'b'。

第6题:

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

第7题:

下列程序的执行结果是()。 include main() {inta,b,c; a=b=2; c=(a++)-1;printf("%d,%d

下列程序的执行结果是( )。

#include<stdio.h>

main()

{ inta,b,c;

a=b=2;

c=(a++)-1;printf("%d,%d",a,c) ;

c+=-a+++(++b) ;printf("%d,%d",a,c) ;

}

A.3,1 4,1

B.3,1 4,2

C.2,04,1

D.2,1 4,1


正确答案:A
解析:本题主要考查自加运算符(++、--)的使用。①前缀变量“++i、--i”,在使用i之前,先使i的值加1或者减1,再使用此时的表达式的值参与运算;②后缀变量“i++、i--”,先使用此时的表达式的值参与运算,在使用i之后,再使i的值加1或者减1。本题中计算表达式c=(a++)-1时先使用a的值进行计算,结果为c=2-1=1,然后将a的值加1,即执行完此语句后a的值是3;表达式c+=-a+++ (++b)等价于 c=c+(-a++)+(++b), c=1+(-3)+3=1, 此时a=4,b=3。

第8题:

有以下程序:include main(){ inta=1,b=2,c=3,x; x=(ab)&c; printf("%d\n",x);}程

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

A.0

B.1

C.2

D.3


正确答案:D
解析:在C语言中,整型数据在内存中是按二进制形式存放的,位运算就是直接对这些二进制进行操作的一系列运算符。例如题目中a、b、c的值分别为1、2、3,那它们在内存中存放的样子就是;0001、0010、0011(由于数据不大,int类型本来要占4字节也就是32位二进制的,这里就省写为4位了)。“^”运算符的作用是:按位异或。意思是:两个操作数对应的二进制位如果相异,则结果对应的二进制位为1,否则结果对应二进制位为0。所以00010011=0011。“&”运算符的作用是:位与。意思是:如果两个操作数对应的二进制位同时为1,则结果对应的二进制位为1,否则结果对应二进制位为0。所以0011&0011=0011,也就是十进制的3,故本题最终输出结果为3,应该选择D。

第9题:

有以下程序includedefine PT3.5;define S(x)PT*x*x;main(){inta=1,b2;printf("%4.1f

有以下程序 #include<stdio.h> #define PT3.5; #define S(x)PT*x*x; main() { inta=1,b2; printf("%4.1f\n",S(a+b); } 程序运行后的输出结果是______。

A.14.0

B.31.5

C.7.5

D.程序有错无输出结果


正确答案:D
解析:本题考查的是宏定义。带参数的宏定义是按#define命令行中指定的字符串从左到右进行转换,其定义的—般形式为:#define宏名(参数表)字符串,因此在程序中宏定义后面不能有分号“;”,所以程序运行出错,没有输出结果, 因此,选项D是正确的。

第10题:

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

更多相关问题