已知int a=1,b=-1;则语句printf("%d\n",(a--,++b));的输出结果是A.-1 B.0 C.1 D.语句错误

题目

已知int a=1,b=-1;则语句printf("%d\n",(a--,++b));的输出结果是A.-1 B.0 C.1 D.语句错误

参考答案和解析
正确答案:B
表面上看,题目中是给出一个输出函数,实际上是考查printf函数输出表列为逗号表达式的情况。逗号表达式的一般形式为:表达式1,表达式2,……,表达式n,整个逗号表达式的值为表达式n的值。题目中的实际输出是++b的值,初始时,b=-1,先将b进行++运算,然后将结果输出,输出结果为0。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

6、已知“int a=5,b=1,c=0;”,则执行下列语句时()。 if (a=b+c) printf("****\n"); else printf("####\n");

A.有语法错误,没有结果

B.输出****和####

C.输出****

D.输出####


HAPPYYEAR

第2题:

已知“int a=5,b=1,c=0;”,则执行下列语句时()。 if (a=b+c) printf("****n"); else printf("####n");

A.有语法错误,没有结果

B.输出****和####

C.输出****

D.输出####


30

第3题:

若有“int a=2019”,则下列程序段的输出结果是()。 if(a>0) printf("1"); else if(a<0) printf("-1"); else printf("0");

A.1

B.0

C.-1

D.语句存在错误,没有输出。


C本题考查位运算,属于基础知识,题目中将整型变量8,二进制表达为00(301000,右移一位为000

第4题:

若int类型数据占两个字节,则下列语句 int k=-1; printf("%d,%u\n",k,k); 的输出为( )

A.-1,-1

B.-132,767

C.-132,768

D.-165,535


正确答案:D

第5题:

若有下列说明和语句,已知int型数据占2个字节,则下列语句的输出结果是( )。 struct st { char a[15]; int b; double c; }; printf("%d",sizeof (struct st));

A.15

B.8

C.25

D.2


正确答案:C
解析:本题主要考查结构体的内存使用:对结构体而言,结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立。题中int b占2个字节,char a[15]占15个字节,double c占8个字节,所以共25个字节。

第6题:

设有如下定义: int x=10,y=3,z; 则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。A.1SX

设有如下定义: int x=10,y=3,z; 则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。

A.1

B.0

C.4

D.3


正确答案:D

第7题:

设有说明:int a=1,b=0;,则执行以下语句的输出结果是______。 switch(a) {case 1: switch(b) {case 0:printf("**0**\n");break; case 1:printf("**1*\n");break; } case 2:printf("**2**\n");break; }

A.**0**

B.**0** **2**

C.**0** **1** **2**

D.switch语句中存在语法错误


正确答案:B
解析:本题是switch-case语句的嵌套使用,外层switch语句的第一个分支(嵌套switch语句)执行完后,没有break;语句,将继续执行第二个分支。

第8题:

设有定义:float x=123.4567;,则执行以下语句后的输出结果是[ ]。

printf("%f\n"(int)(x*100+0.5)/100.1;


正确答案:123.46
123.46 解析:输出语句的表达式:(int)(x*100+0.5)/100.0是指先运算表达式中的“x*100+0.5”,然后将其结果强制转换为int型,即:(int)(l23.4567*100+O.5)=(int)12346.17=12346,接下来进行”/100.0”的运算即:12346/100.0=123.46,原因是除运算是双目运算,当—边是整型数,—边是实型数时,系统自动将整型转换为实型数,然后进行运算,又因为最后的的输出格式是float类型的实数,所以结果为123.460000。

第9题:

设有定义: float x=123.4567; ,则执行以下语句后的输出结果是 【 6 】 。

printf("%f\n",(int)(x*100+0.5)/100.0);


正确答案:
答案 123.460000
解析:表达式( int ) (x*100+0.5) 的值为 12346 ,然后再除以 100.0 ,其结果为 123.460000 。