计算机二级

有以下程序#include<stdio.h>main(){ int a=1,b=0;if(--a)b++;else if(a==0) b+=2;else b+=3:printf("%d\n",b);}程序运行后的输出结果是A.0B.1C.2D.3

题目

有以下程序

#include<stdio.h>

main()

{ int a=1,b=0;

if(--a)b++;

else if(a==0) b+=2;

else b+=3:

printf("%d\n",b);

}

程序运行后的输出结果是

A.0

B.1

C.2

D.3

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

第1题:

【填空题】当从键盘输入-1 0<CR>,则以下程序的运行结果是 。 #include<stdio.h> main() {int a,b,m,n; m=n=1; scanf("%d%d",&a,&b); do{if(a>0) {m=2*n;b++;} else {n=m+n;a+=2;b++;} }while(a==b); printf("m=%d n=%dn",m,n); }


This Is A Test.

第2题:

【单选题】以下程序的运行后的输出结果是_______。 #inlude <stdio.h> main() { int a=1,b=0; if(--a) b++; else if(a==0) b+=2; else b+=3; printf("%dn",b); }

A.0

B.1

C.2

D.3


7

第3题:

试题18

有以下程序

#include <stdio.h>

main()

{ int a=1,b=0;

if(- -a) b++;

else if(a= =0) b+=2;

else b==3;

printf(“%d\n”, b);

}

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

A.0

B.1

C.2

D.3


正确答案:C
试题18分析
a的值为1,- -a为0,不满足if(- -a),此时a的值为0,满足if(a= =0),执行b+=2;所以b的值为2。所以输出结果为2。
试题18答案
c

第4题:

有以下程序

#include<stdio.h>

main( )

{int a=1,b=0

if(!a)b++;

else if(a==0)if(a)b+=2

else b+=3

printf(”%d\n”,b);

}

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

A.0

B.1

C.2

D.3


正确答案:A
解析:a=1所以!a表达式为假,不执行b++。又a=1所以a=0为假,所以跳过语句后面的if和else语句(因为else和最近的if语句组成一条复合语句),直接输出,所以结果为0。

第5题:

有以下程序includemain(){intx=1,y=0,a=0,b=0;switch(X){case1:switch(y){case0:a++;b

有以下程序 #include <stdio.h> main() { int x=1,y=0,a=0,b=0; switch(X) { case 1: switch(y) { case 0:a++; break; case 1:b++; break; } case 2:a++;b++;break; case 3:a++;b++; } printf("a=%d,b=%d\n",a,b); } 程序

A.a=1,b=0

B.a=2,b=2

C.a=1,b=1

D.a=2,b=1


正确答案:D
解析: 本题考查switch语句,首先,x=1符合条件casel,执行switch(y)语句,y=0符合case 0语句,执行a++并跳出switch(y)语句,此时a=1。因为case 1语句后面没有break语句,所以向后执行case2语句,执行a++,b++,然后跳出switch(x),得a=2,b=1。

第6题:

有以下程序:

#include<stdio.h>

main( )

{ int a=1,b=0;

if(--a)b++;

else if(a==0)b+=2;

else b+=3:

print[("%d\n",b);

}

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

A.0

B.1

C.2

D.3


正确答案:D

第7题:

有以下程序 #include<stdi0.h> void fun(int n,int*p) ( int f1,f2; if(n==1|| n==2)*p=1; else { fun(n-1,&f1);fun(n-2,&f2); *p=f1+f2; } } main { int s; fun(3,&s);printf("%d",s); } 程序的运行结果是( )。

A.2

B.3

C.4

D.5


正确答案:A
在函数fun中对参数n的值进行判断,如果其值等于1或2,则*p=1,否则,函数fun进行递归调用fun(n.1,&f1);fun(13.2,&f2);*p=n+f2;在主函数调用fun函数时传递给参数n的值为3,fun函数又递归用了两次自身fun(2,&n);fun(1,&f1);所以n和f2的值都为1,通过指针P的引用,变量S的值为2。

第8题:

有以下程序

#include<stdi0.h>

void fun(int n,int*p)

( int f1,f2;

if(n==1|| n==2)*p=1;

else

{ fun(n-1,&f1);fun(n-2,&f2);

*p=f1+f2;

}

}

main

{ int s;

fun(3,&s);printf("%d",s);

}

程序的运行结果是( )。

A.2

B.3

C.4

D.5


正确答案:A
在函数fun中对参数n的值进行判断,如果其值等于1或2,则*p=1,否则,函数fun进行递归调用fun(n.1,&f1);fun(13.2,&f2);*p=n+f2;在主函数调用fun函数时传递给参数n的值为3,fun函数又递归用了两次自身fun(2,&n);fun(1,&f1);所以n和f2的值都为1,通过指针P的引用,变量S的值为2。

第9题:

以下程序的输出结果是includein[fun(int n,int *s){int n,f2;if(n==0‖n==1)*s=1;else{

以下程序的输出结果是 #include<stdio.h> in[fun(int n,int *s) {int n,f2; if(n==0‖n==1) *s=1; else {fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2; }} void main() { int x; fun(6,&x); pfintf("\n%d",x);}

A.7

B.13

C.9

D.10


正确答案:B