Java认证考试

int i = 0, j = 5;  tp;   for (;;) {  i++;  for(;;) {  if (i> --j) {  break tp;  break tp;  }  }  System.out.println(“i=” +i “,j =”+j); } What is the result?()  A、 i = 1, j = 0B、 i = 1, j = 4C、 i = 3, j = 4D、 i = 3, j = 0E、 Compilation fails.

题目

int i = 0, j = 5;  tp;   for (;;) {  i++;  for(;;) {  if (i> --j) {  break tp;  break tp;  }  }  System.out.println(“i=” +i “,j =”+j); } What is the result?()  

  • A、 i = 1, j = 0
  • B、 i = 1, j = 4
  • C、 i = 3, j = 4
  • D、 i = 3, j = 0
  • E、 Compilation fails.
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序的输出结果是 include int f( ) { static int i=0; int s=1 s+ =i;

以下程序的输出结果是 #include<iostream.h> int f( ) { static int i=0; int s=1 s+ =i; i++; return s;} void main( ) { int i,a=0; for(i=0 ;i<5;i++)a+=f( ); cout < < a;}

A.20

B.24

C.25

D.15


正确答案:D
解析:对函数的静态局部变量是在编译时就赋初值,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋值,而只是保留上次函数调用结束时的值。注意:静态函数只能用静态变量。

第2题:

以下程序的运行结果是______。includemain(){ int fun();fun();}fun(){static int a[3]=

以下程序的运行结果是______。

include<stdio.h>

main()

{ int fun();fun();}

fun()

{static int a[3]={0,1,2};

int i;

for(i=0;i<3;i++)a[i]+=a[i];

for(i=0;i<3;i++)printf("%d,",a[i]);

pfintf("\n",);}


正确答案:
本题主要考查for循环语句的使用以及静态局部变量的特点。

第3题:

以下程序的输出结果是

int f()

{ static int i=0;

int s=1;

s+=i; i++;

return s; }

main()

{ int i,a=0;

for(i=0;i<5;i++)a+=f();

printf("%d\n",a);}

A.20

B.24

C.25

D.15


正确答案:D
解析:函数的静态局部变量在编译时就赋初值,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋值,而只是保留上次函数调用结束时的值。

第4题:

若有以下程序:includeusing namespace std;int f(){ static int i=O; int s=1; s+=i;

若有以下程序: #include<iostream> using namespace std; int f() { static int i=O; int s=1; s+=i; i++; return s; } int main() { int i,a=0; for(i=0;i<5;i++) a+=f(); cout<<a<<endl; retrun 0; } 程序运行后,输出的结果是

A.20

B.24

C.25

D.15


正确答案:D
解析:本题考核静态局部变量在函数中的使用。静态局部变量就是将局部变量说明为静态的。静态局部变量既有在局部域作用的特性(即变量只能在变量的作用范围内被访问),又可以永久存在(变量的值得以保留,并可继续使用)。静态局部变量只在第一次执行时初始化一次。在函数f中定义了一个静态局部变量i,它的初始值为0,还定义了一个局部变量s(它的初始值为1),用来返回计算所得值。函数f中所进行的数据加工是s+=i和i++。即每调用一次函数f,返回(i+1)的值后,i的值增1。再看主函数,在主函数main中,通过一个for语句连续调用f函数5次,并把每次调用f函数的返回值相加并存入a。最后输出a的值。在了解各函数功能以及调用关系后就可计算出a的值为15。

第5题:

有以下程序: include using namespace std; int f(int); int main() {int i;for(i=0;

有以下程序:

include <iostream>

using namespace std;

int f(int);

int main()

{

int i;

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

cout<<f(i)<<" ";

return 0;

}

int f(int i)

{

static int k=1;

for(;i>0;i--)

k+=i;


正确答案:1 2 5 11 21
1 2 5 11 21 解析:函数f()中定义了一个内部静态变量k,其作用域仍在定义它的函数内。但该类型变量采用静态存储分配,当函数执行完,返回调用点时,该变量并不撤销,其值将继续保留,若下次再进入该函数时,其值仍然存在。内部静态变量有隐含初值0,并且只在编译时初始化一次。

第6题:

下面函数的作用是【 】。

int index(int x,int a[],int n)

{

for(int i=0;i<n;i++)

{

if(a[i]==x)

return i;

}

return i;

}


正确答案:数组a中查找x若有则返回第一个x的下标若没有则返回n
数组a中查找x,若有则返回第一个x的下标,若没有则返回n 解析:函数的作用是通过变量数组,在数组中查找x,若找到则显示下标i。

第7题:

阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。

【说明】

著名的四色定理指出任何平面区域均可以用4种颜色着色,使相邻区域着不同的颜色。本程序对给定的区域图找出所有可能的不超过4种颜色的着色方案。

【函数】

include <stdio.h>

define N 10 /*要着色的N个区域*/

void output(int color[]) /*输出一种着色方案 color[i]的值为区域i所着颜色*/

{

int i;

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

printf("%4d", color[i]);

printf("\n");

}

int back(int *ip, int color[j] /*回溯*/

int c=4;

while (c==4)

{

if (*ip<=0)

return 0:

--(*ip);

c=(1);

color[*ip]=-1;

}

return c;

}

/*检查区域i,考查c种颜色的可能性 */

int colorOK(iht i, int c, int adj[][N], int color[])

{

int j;

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

if ((2))

return 0;

return 1;

}

/*为区域i选一种可着的颜色*/

int select(int i, int c, int adj[][N], int color[])

/*寻找各种着色方案 adj[i][j]=1表示区域i与区域j不相邻*/

{

int k;

for (k=c; k<=4; k++) /*4种颜色*/

if (colorOK((3)))

return k;

return 0;

}

int coloring(int adj[][N])

{

int color[N], i, c, cnt;

for (i=0; i<N; i++) color[i]=-1:

i=c=0; cnt=0;

while (1)

[

if ((c=(4))==0)

{

c=back(&i, color);

if (c==0)

return cnt;

}

else

{

(5);

i++;

if(i==N)

{

output(color);

++cnt;

c=back(&i, color);

}

else

c=0;

}

}

}

void main()

{

int adj[N][N]={ {0, 1, 0, 1, 1, 1, 1, 1, 1, 1},

{1, 0, 1, 1, 0, 1, 1, 1, 1, 0},

{0, 1, 0, 1, 0, 1, 1, 0, 1, 1},

{1, 1, 1, 0, 1, 1, 0, 0, 1, 1},

{1, 0, 0, 1, 0, 1, 0, 0, 0, 0},

{1, 1, 1, 1, 1, 0, 1, 0, 0, 1},

{1, 1, 1, 0, 0, 1, 0, 0, 1, 0},

{1, 1, 0, 0, 0, 0, 0, 0, 1, 1},


正确答案:(1)color[*ip] (2)adj[i][j]==1&&color[j]==c (3)ikaajcolor (4)select(ic+1adjcolor) (5)color[i]=c
(1)color[*ip] (2)adj[i][j]==1&&color[j]==c (3)i,k,aaj,color (4)select(i,c+1,adj,color) (5)color[i]=c 解析:本题考查四色定理在C语言中的实现。
题目对四色定理做了解释,是指任何平面区域均可以用4种颜色着色,使相邻区域着不同的颜色。而题目中给定了区域图,要求找出所有可能的不超过4种颜色的着色方案。下面我们来分析程序。
第(1)空在函数back()中,这个函数的作用在注释中已经给出,是回溯,通过回溯,我们可以搜索出问题的所有解。此空是给变量c赋一个值,从程序中我们可以推断出变量c中存放的是区域中当前选中的颜色,而表示区域中当前选中的颜色的是数组color的当前值,因此,此空答案为“color[*ip]”。
第(2)空在函数colorOK()中,这个函数的作用在注释中也给出了,是检查区域i,考查c种颜色的可能性,这就要求判断每种颜色是否适合区域i,如果适合,则返回真。此空是函数体中一个条件判断语句的条件,如果条件不成立,则返回真,那么条件应该不能确定该颜色是否适合区域i。如果比较的是两个不相邻的位置,且两个位置的颜色都为当前色,那么肯定不能确定当前色是否适合区域i。因此,此空答案为“adj[i][j]==1 &&color[j]==c”。
第(3)空在函数select()中,这个函数是为区域i选一种可着色,此空是函数colorOK()的参数,而这个函数有4个参数,分别是当前位置i、当前颜色和两个数组,因此,此空答案为“i,k,adj,color”。
第(4)空是给变量c赋值,变量c中存放的是当前要处理的颜色,而这条语句是条件判断执行语句,如果条件成立,则要回溯,那么说明不能确定当前区域的颜色,而为当前区域i选一种可着色是函数select()的功能,它返回0时,说明不能确定区域i的颜色。因此,此空答案为“select(i,c+1,adj,color)”。
第(5)空是在上空中条件不成立的情况下执行的语句,条件不成立说明确定了当前区域i的颜色,然后应该将该区域存为这种颜色,而变量c中存放的就是当前处理的颜色,因此,此空答案为“color[i]=c”。

第8题:

include void main() int s=0 for(int i=l;i<=8;i十=2) s十=i*i

#include

void main()

int s=0

for(int i=l;i<=8;i十=2)

s十=i*i

cout<<"s="<

}

输出结果:


参考答案s=84

第9题:

若有以下程序:include using namespace std;int f(){static int i = 0;int s = 1;s+=

若有以下程序: #include <iostream> using namespace std; int f() { static int i = 0; int s = 1; s+=i; i++; return s; } int main() { int i,a = 0; for(i = 0;i<5;i++) a+=f(); cout<<a<<endl; return 0; } 程序运行后,输出的结果是

A.20

B.24

C.25

D.15


正确答案:D
解析:本题考核静态局部变量在函数中的使用。静态局部变量就是将局部变量说明为静态的。静态局部变量既有在局部域作用的特性(即变量只能在变量的作用范围内被访问),又可以永久存在(变量的值得以保留,并可继续使用)。静态局部变量只在第一次执行时初始化一次。在函数f中定义了一个静态局部变量i,它的初始值为0,还定义了一个局部变量s(它的初始值为1),用来返回计算所得值。函数f中所进行的数据加工是s+=i和i++。即每调用一次函数f,返回(i+1)的值后,i的值增1。再看主函数,在主函数main中,通过一个for语句连续调用f函数5次,并把每次调用f函数的返回值相加并存入a。最后输出a的值。在了解各函数功能以及调用关系后就可计算出a的值为15。

第10题:

以下程序运行后的输出结果是()。includevoid reverse(int a[],int n){int i,t;for(i=0;

以下程序运行后的输出结果是( )。 #include<stdio.h> void reverse(int a[],int n) {int i,t; for(i=0;i<n/2;i++) {t==a[i];a[i]=a[n-1-i];a[n-1-i]=t;} } main() {int b[10]={10,9,8,7,6,5,4,3,2,1};int i,s=0; reverse(b,10); for(i=0;i<3;i++)s+=b[i]; printf("%d\n",s); }

A.27

B.6

C.25

D.30


正确答案:B
解析:本题考查函数调用时的参数传递。函数reverse将数组b进行了逆置,此时b[10]={10,9,8,7,6,5,4,3,2,1),后面for语句的功能是将b中的后3个数累加,并将结果放在s中,最后将s输出,结果s=1+2+3=6。

更多相关问题