计算机二级

以下程序的输出结果是intf( ){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( );cout<<a<<endl;}A.20B.24C.25D.15

题目

以下程序的输出结果是

intf( )

{

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( );

cout<<a<<endl;

}

A.20

B.24

C.25

D.15

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

第1题:

以下程序的输出结果是 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
解析:对函数的静态局部变量是在编译时就赋初值,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋值,而只是保留上次函数调用结束时的值。

第2题:

以下程序的输出结果是intf(){ static int i= 0; int s=1; s+=i; i++; return s;}main( ){ inti, a=0; for(i=0;i<5;i++)a+=f(); cout<<a<<end1;}

A.20

B.24

C.25

D.15


正确答案:D
解析:本题考察的是同名局部变量和全局变量的作用域之间的关系。同时考察了静态变量的特点:退出函数和进入函数并不影响静态变量的值。因此,循环多次,实际上完成静态变量的累加。即1+2+3+4+5,其值为15,故答案为D。

第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
解析:函数f中变量i为静态变量,函数f调用结束后变量i所占据的存储单元不会释放,而在主函数中f被调用5次,具体过程如下。
  第1次调用f:s=s+i=1+0=1,i=i+1=1,主函数中a=a+f()=O+1=1
  第2次调用f:s=s+1=1+1=2,i=i+1=2,丰函数中a=a+f()=1+2=3
  第3次调用f:s=s+1=1+2=3,i=i+1=3,主函数中a=a+f()=3+3=6
  第4次调用f:s=s+i=1+3=4,i=i+1=4,主函数中a=a+r()=6+4=10
  第5次调用f:s=s+i=1+4=5,i=i+4=5,主函数中a=a+f()=10+5=15
  所以printf语句的输出结果为15。

第4题:

有以下程序:includeint a=2;int f(int *a){return (*a) ++;}main(){ int s=0;{ int a=

有以下程序: #include <stdio.h> int a=2; int f(int *a) { return (*a) ++;} main() { int s=0; { int a=5; s+=f(&a); } s+=f(&a); printf("%d\n",s) } 执行后的输出结果是( )。

A.10

B.9

C.7

D.8


正确答案:C
解析:在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用这些变量。对于main函数中的{inta=5;s+=f(&a);},a只在花括号内有效。在函数之外定义的变量称为外部变量,外部变量是全局变量,它的有效范围是从定义该变量的位置开始到本源文件结束。程序开头的定义inta=2;使a成为全局变量,main函数中第二个s+=f(&a);语句中的a就是这个全局变量。

第5题:

以下程序的输出结果是 intf() {static int i=0; int s=1; s+=i;i++; retumS;} 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
解析: 函数的静态局部变量在编译时就赋初值,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋值,而只是保留上次函数调用结束时的值。

第6题:

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

若有以下程序: #include <iostream> using namespace std; int f() { static int i = 0; ints= 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中定义了一个静态局部变量l它的初始值为0,还定义了一个局部变量s(它的初始值为1),用来返回计算所得值。函数f中所进行的数据加工是s+=i和i++。即每调用一次函数f,返回(i+1)的值后,i的值增1。再看主函数,在主函数main中,通过一个for语句连续调用f函数5次,并把每次调用f函数的返回值相加并存入a。最后输出a的值。在了解各函数功能以及调用关系后就可计算出a的值为15。

第7题:

以下程序的输出结果是______。 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
解析:函数f中变量i为静态变量,函数f调用结束后变量i所占据的存储单元不会释放,而在主函数中f被调用5次,具体过程如下:
  第1次调用f:s=s+i=1+0=1,i=i+1=1,主函数中a=a+f()=0+1=1
  第2次调用f:s=s+i=1+1=2,i=i+1=2,主函数中a=a+f()=1+2=3
  第3次调用f:s=s+i=1+2=3,i=i+1=3,主函数中a=a+f()=3+3=6
  第4次调用f:s=s+i=1+3=4,i=i+1=4,主函数中a=a+f()=6+4=10
  第5次调用f:s=s+i=1+4=5,i=i+4=5,主函数中a=a+f()=10+5=15
  所以printf语句的输出结果为15。

第8题:

若有以下程序: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。

第9题:

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

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

A.20

B.24

C.25

D.15


正确答案:D