计算机二级

有以下程序main( ){ int a=5,b=4,c=3,d=2;if(a>b>c)cout<<d<<endl;else if((c-1>=d)==1)cout<<d+1<<endl;elsecout<<d+2<<endl;}执行后输出结果是A.2B.3C.4D.编译时有错,无结果

题目

有以下程序

main( )

{ int a=5,b=4,c=3,d=2;

if(a>b>c)

cout<<d<<endl;

else if((c-1>=d)==1)

cout<<d+1<<endl;

else

cout<<d+2<<endl;

}

执行后输出结果是

A.2

B.3

C.4

D.编译时有错,无结果

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

第1题:

下面程序的结果为______。include void main() { int 3=1,b=2; bool c=1; if(a>b)||c

下面程序的结果为______。

include<iostream.h>

void main()

{

int 3=1,b=2;

bool c=1;

if(a>b)||c)cout<<“true”<<endl;

else

cout<<“false”<<endl;

}


正确答案:true。
true。 解析: 本题考查的是对于逻辑运算符号的理解,”||”运算符的任何一边取值为真,则整个运算结果为真。

第2题:

以下程序的执行结果是______. include< c1ass A { public: virtual void funl ()

以下程序的执行结果是______.

include<<iostream.h>

c1ass A

{

public:

virtual void funl () { cout<<"A fun1"<<endl;}

virtual void fun2 () {cout<<"A fun2"<<endl;

void fun3 () {cout<<" A fun 3 "<<endl:)

void fun4 () {cout<<" A fun4 "<<endl:}


正确答案:B fun1 A fun2 A fun3 A fun4
B fun1 A fun2 A fun3 A fun4

第3题:

有以下程序:includevoid fun(int* s,int* * d){* *d=*(s+2);}main(){ inta[]={1,2,3,

有以下程序: #include <stdlib.h> void fun(int * s,int * * d) { * *d=*(s+2); } main() { int a[]={1,2,3,4,5},*b; b=(int *)malloc(sizeof(int)); fun(a,&B) ; printf("%d\n",*b+1); } 程序的输出结果是( )

A.2

B.3

C.4

D.5


正确答案:C

第4题:

有以下程序

main( )

{ int a[][3]={{1,2,3},{4,5,0)},(*pa)[3],i;

pa=a;

for(i=0;i<3;i++)

if(i<2)pa[1][i]=pa[1][i]-1;

else pa[1][i]=1;

cout<<a[1][1]+a[1][1]+a[1][2]<<endl;

}

执行后输出结果是

A.7

B.6

C.8

D.无确定值


正确答案:A
解析:本题考察对二维数组的使用。按照要求分析各个数组元素的位置,即可以正确的得到答案为A。

第5题:

有以下程序: main() {int a=5,b=4,c=3,d=2; if(a>b>C) cout<<d<<end1; else if((c-1)=d)==1) tout<<d+1<<endl; else cout<<d+2<<endl; }

A.2

B.3

C.4

D.编译时有错,无结果


正确答案:B
解析: 本题考查逻辑表达式的结合特性,即左结合性。对于表达式a>b>c,首先判断a>b为真,结果为1,然后判断1>c,为假,故转去判断c-1):d是否成立,成立,结果为1,再判断1=1,结果为真,因此,执行d+1,答案为B。

第6题:

有以下程序:includeiht fun(iht n,int*p){int f1,f2;if(n==1||,n==2)*p=1;else{fun(n-

有以下程序: #include<stdio.h> iht fun(iht 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\n",s); } 程序的运行结果是______。

A.2

B.3

C.4

D.5


正确答案:A
解析: 本题考查的重点是理解递归函数。fun()为递归函数,递归结束条件时n为1或2,从而fun(3,&s)得fun(2,&s)+fun(1,&s)=1+1=2,因此选项A是正确的。

第7题:

有以下程序 include void fun(int n, int *p) { int f1,t2; if(n==1 |

有以下程序 #include <stdio.h> void fun(int n, int *p) { int f1,t2; 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\n", s ); }

A.2

B.3

C.4

D.5


正确答案:A
解析:在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。本题中的fun()函数直接调用了自身,所以它是一个递归函数。fun()函数中,当形参n为1或2时,让形参p所指内容为1。从这里可以看出形参p的用途是输出一个整数,所以我们不妨记作fun(1)=1、 fun(2)=1。如果是其他情况,那么输出结果*p的内容为f(n)=f(n-1)+f(n-2)。由此可见, fun()函数的作用是求斐波纳契数列第n项的值(斐波纳契数列第1和2项的值为1,以后各项分别为前两项之和:1、1、2、3、5、8、13……)。主函数中通过fun()函数,求第3项值;所以输出结果为2,故应该选择A。

第8题:

有以下程序:include void sum(int *a){a[0]=a[1];}main(){int aa[10]={1,2,3,4,5,6,7,

有以下程序: #include <stdio.h> void sum(int *a) { a[0]=a[1]; } main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--) sum(&aa[i]); printf("%d\n",aa[0]); } 执行后的输出结果是( )。

A.4

B.3

C.2

D.1


正确答案:A
解析:该程序通过main函数循环凋用sum函数。当i=2时,将实参aa[2]的地址传递给形参,此时a[0]=a[1]=aa[3]=4,即aa[2]=4;当i=1时,将实参aa[1]的地址传递给形参,此时a[0]=a[1]=aa[2]=4,即aa[1]=4;当i=0时,将实参aa[0]的地址传递给形参,此时a[0]=a[1]=aa[1]=4,即aa[0]=4;当i=-1时,不满足条件i>=0,跳出循环,程序执行后数组aa中的值为4,4,4,4,5,6,7,8,9,10,所以aa[0]=4。

第9题:

以下程序的输出结果是( )。 main() {int a=4,b=5,c=0,d; d=!a&&!b)|| !c; cout<<d<<endl; }

A.1

B.0

C.非0的数

D.-1


正确答案:A
解析: 本题考查逻辑运算符!逻辑“非”,&&逻辑“与”,||逻辑“或”,三者的优先级顺序为!>&&>||,本题中d=!4&&!5||!0,即d=0||1,也即d=1。