单选题有以下程序#include int a=4;int f(int n){ int t=0; static int a=5; if(n%2) {  int a=6;  t+=a++; } else {  int a=7;  t+=a++; } return t+a++;}main(){ int s=a,i=0; for(;i2;i++)s+=f(i); printf(%d,s);}程序运行后的输出结果是(  )。A 36B 24C 32D 28

题目
单选题
有以下程序#include int a=4;int f(int n){ int t=0; static int a=5; if(n%2) {  int a=6;  t+=a++; } else {  int a=7;  t+=a++; } return t+a++;}main(){ int s=a,i=0; for(;i<2;i++)s+=f(i); printf(%d,s);}程序运行后的输出结果是(  )。
A

36

B

24

C

32

D

28

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

第1题:

有以下程序 int a=4; int f(int n) {int t=0; static int a=5; if(n%2) {int a=6; t+=a++;} else {int a=7 ;t+=a++;} return t+a++; } main() {int s=a,i=0; for(;i〈2;i++) s+=f(i); printf (“%d\\n”,s); }

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

A.24

B.28

C.32

D.36


正确答案:B

第2题:

下列程序的输出结果是()。 include f(int a) {int b=0; static int c=4; a=c++;b++; re

下列程序的输出结果是( )。

#include<stdio.h>

f(int a)

{ int b=0;

static int c=4;

a=c++;b++;

return(a);

}

main()

{ int a=2,i,c;

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

C=f(a++);

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

}

A.4

B.7

C.6

D.5


正确答案:D
解析:本题考查静态变量的使用方法和for循环。在函数调用时,static变量在函数调用结束后所作的所有变化均不保持,所以当i=1时,第2次进入f函数时c=5,所以最终main函数中c的值为5。

第3题:

有以下程序

int a=4;

int f(int n)

{ int t=0; static int a=5;

if(n%2) {int a=6; t+=a++;}

else {int a=7 ;t +=a++ ; }

return t+a++ ;

}

main( )

{ int s=a , i=0 ;

for( ; i 〈 2 ; i++) s+=f(i);

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

}

程序运行后的输出结果是

A)24

B)28

C)32

D)36


正确答案:B

第4题:

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

第5题:

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

第6题:

以下程序的输出结果是 【 11 】 。

#include <stdio.h>

int fun(int x)

{ static int t=0;

return(t+=x);

}

main()

{ int s,i;

for(i=1;i<=5;i++) s=fun(i);

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

}


正确答案:

第7题:

有以下程序:includeint a=4;int f(int n){int t=0;static int a=5;if(n%2) {int a=6;

有以下程序: #include<string.h> int a=4; int f(int n) {int t=0;static int a=5; if(n%2) {int a=6;t++=a++;} else{int a=7;t+=a++;} return t+a++; } main() {int s=a,i=0; for(;i<2;i++)s+=f(i); printf("%d\n",s); } 程序运行后的输出结果是( )。

A.24

B.28

C.32

D.36


正确答案:B
解析:本题考查的是外部变量的应用。因为程序的初始int a=4;语句定义了外部变量a,在以后的执行过程中,当i=0时,调用f(0)函数,执行的语句是else {int a=7;t+=a++;},此处程序中又定义了变量a,所以原来定义的外部变量在此不起作用,得到t=7,返回值语句return t+a++;处,外部变量a起作用,返回值为7+5=12:当i=1时,调用f(1)函数,执行的是语句else{inta=6:t+=a++;},此处程序中又定义了变量a,所以原来定义的外部变量在此不起作用,得到t=6,返回值语句

第8题:

有以下程序

#include <stdio.h>

int a=1;

int f(int c)

{ static int a=2;

c=c+1;

return (a++)+c;}

main()

{ int i,k=0;

for(i=0;i<2;i++){int a=3;k+=f(a);}

k+=a;

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

}

程序运行结果是

A) 14

B) 15

C) 16

D) 17


正确答案:A

第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

第10题:

有以下程序: int a=2; int f(int n) { static int a=3; int t=0; if(n % 2)(static int a=4; t+=a++;} else{static int a=5; t+=a++;} return t+a++; } matin() { int s=a, i; for(i=0; i<3; i++)s+=f(i); printf("% d\n", s); } 程序运行后的输出结果是______。

A.26

B.28

C.29

D.24


正确答案:C
解析:在某一函数中当全局变量与局部变量同名时,则在该函数中,全局变量被屏蔽,访问的是局部变量。因此,t+a++中的a用的是static int a=3的这个a。if语句的执行是当n是偶数时,执行else的部分,否则执行其后的部分。因此,当i=0时,t=5,s=2+8=10;i=1时,t=4,s=10+8=18;当i=2时,t=6,s=18+11=29。

更多相关问题