设有定义int m=1,n=-1;则执行语句printf(〞%d/n〞,(m--++n));后的输出结果是()A、-1B、0C、1D、2

题目

设有定义int m=1,n=-1;则执行语句printf(〞%d/n〞,(m--&&++n));后的输出结果是()

  • A、-1
  • B、0
  • C、1
  • D、2
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设有定义: 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 。

第2题:

有以下程序

#include <stdio.h>

main()

{ int m=1,n=2,*p=&m,*q=&n,*r;

r=p;p=q;q=r;

printf("%d,%d,%d,%d\n",m,n,*p,*q);

}

程序运行后的输出结果是

A)1,2,1,2

B)1,2,2,1

C)2,1,2,1

D)2,1,1,2


正确答案:B

第3题:

有以下程序

main()

{ int k=5;

while(--k) printf("%d",k -= 3);

printf("\n");

}

执行后的输出结果是

A)1

B)2

C)4

D) 死循环


正确答案:A
答案 A
解析 :k 的初始值为 5 , 当第 1 次执行 while 循环时 , k 自减变为 4 , 非 0 , 执行循环里的 print f语句 , 输出 1 , 此时 k 的值变为 1 。 程序执行第 2 次循环 , k 自减 1 变为 0. , 为假 , 退出 while循环语句。所以程序的最后结果为 1 。

第4题:

若有如下程序: int sub(int m) { if(m==1||m==0) return 2; else return(sub(m-1)*sub(m-2));} main() { int n; scanf("%d",&n); printf("%d",sub(n)); } 如果从键盘输入4<回车>,则程序运行后的输出结果是( )。

A.8

B.16

C.24

D.32


正确答案:D
解析:本题的sub()函数是一个递归函数,当参数m为1或0时返回2,否则返回sub(m-1)*sub(m-2)。所以sub(4)递推下来就是sub(4)=sub(3)*sub(2)=sub(2)*sub(1)*sub(1)*sub(0)=sub(1)*sub(0)*2*2*2=25(上标)=32。所以正确答案是D。

第5题:

已知int k=10,m=3,n;则下列语句输出结果是printf("%d\n",n=(k%m,k/m));

A.2

B.3

C.4

D.5


正确答案:B
解析:表达式n=(k%m,k/m)实际上是将k/m的结果赋值给了n。逗号表达式中最后一个表达式的值是该逗号表达式的值,所以输出结果为k/m。

第6题:

若有定义 : float x=1.5; int a=1,b=3,c=2; 则正确的 switch 语句是

A)

switch(x)

{ case 1.0: printf("*\n");

case 2.0: printf("**\n");}

B)

switch((int)x);

{ case 1: printf("*\n");

case 2: printf("**\n");}

C)

switch(a+b)

{ case 1: printf("*\n");

case 2+1: printf("**\n");}

D)

switch(a+b)

{ case 1: printf("*\n");

case c: printf("**\n");}


正确答案:C
(19)C) 解析 : C 语言中 ,switch 语句专用于实现多分支结构程序 , 其特点是各分支清晰而直观 。switch 后面括号中可以是任何表达式 , 取其整数部分与各常量表达式进行比较。常量表达式中不能出现变量 , 且类型必须是整型、字符型或枚举型 , 各常量表达式各不相同。

第7题:

设有如下定义:int x=1,y=-1;则下列语句的输出结果是______。printf("%d\n",(x--&++y));

A.1

B.0

C.-1

D.2


正确答案:B

第8题:

若变量已正确定义,则以下语句的输出结果是

s=32; s ^ =32; printf("%d",s);

A)-1

B)0

C)1

D)32


正确答案:B
答案 B
解析:语句 s =32; s?=32 ;相当于 s 与自身作按位异或运算,其结果等于 0 。

第9题:

设有定义: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。

第10题:

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

A.3

B.0

C.4

D.1


正确答案:A

更多相关问题