以下程序的输出结果是main(){ int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p);}func(int a,int b){ static int m=0,i=2; i+=m+1; m=i+a+b; return(m);} A.8,17 B.8,16 C.8,20 D.8,8

题目

以下程序的输出结果是main(){ int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p);}func(int a,int b){ static int m=0,i=2; i+=m+1; m=i+a+b; return(m);} A.8,17 B.8,16 C.8,20 D.8,8

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

第1题:

以下程序的执行结果是______ includevoid func(int); void main(){ int k=4 func(k)

以下程序的执行结果是______

include<iostream.h>

void func(int);

void main()

{

int k=4

func(k) ;

func(k) :

cout<<end1;

}

void func(int a)

{

static int m=0;

m+=a;

cout<<m<<" ";

}


正确答案:48
48

第2题:

下列程序执行后的输出结果是

void func1(int i);

void func2(int i);

char st[]="hello,friend!";

void func1(int i)

{ printf("%c",st[i]);

if(i<3){i+=2;func2(i);}}

void func2(int i)

{ printf("%c",st[i]);

if(i<3){i+=2;func1(i);}}

main()

{ int i=0; func1(i); printf("\n");}

A.hello

B.hel

C.hlo

D.m


正确答案:C
解析:考查函数的调用。函数调用的一般形式为:
函数名(实参列表)
首先调用函数func1(0),输出st[0]=h。i值变为2,并调用函数func2(2),输出st[2]=l。i值此时变为4,又调用函数func1(4),输出st[4]=0。此时i值大于等于3,执行完毕,因此,输出结果为hlo。 函数调用的一般格式以及函数的返回值。

第3题:

以下程序的运行结果是 【 8 】 。

int k=0;

void fun(int m)

{ m+=k; k+=m; printf("m=%d k=%d ",m,k++);}

main( )

{ int i=4;

fun(i++); printf("i=%d k=%d\n",i,k);

}


正确答案:

第4题:

现有如下程序段

#include "stdio.h"

int fun(int k,int *m)

{if(k%3)*m=k*k;

else *m=k/3;}

main()

{ int (*p)(int,int *),m;

p=fun;

(*p)(78, &m);

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

则程序段的输出结果为

A.24

B.25

C.26

D.27


正确答案:C

第5题:

有下列程序:

fun (int x,int y)

{static int m=0,i=2;i+=m+1;

m=i+x+y;return m;

}

main()

{int j=1,m=1,k;

k=fun0,m);printf("%d,"k);

k=fun0,m);printf("%d\n",k);

}

执行后的输出结果是( )。

A.5,5

B.5,11

C.11,11

D.11,5


正确答案:B
解析: 子函数fun(intx,inty),将变量m和i声明为局部静态变量,因此第1次调用主函数后,局部静态变量m和i的值为5和3,第1次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i的初始值分别为5和3,即在执行“i+=m+1”时,i的值为9,因此,最终m的值为11。

第6题:

有以下程序 fun(int x,int y) { static int m=0,i=2; i+=m+1; m=i+x+y; return m; } main() { int j=1,m=1,k; k=fun(j,m); printf("%d,",k); k=fun(j,m); printf("%d\n",k); } 执行后的输出结果是______。

A.5,5

B.5,11

C.11,11

D.11,5


正确答案:B
解析:将j和m的值带入函数fun中,第—次调用完fun()后,m和i的值分别为5和3且要保留,并在第二次调用时使用,这是因为两者都是局部静态变量。所以最后的结果是5和11。

第7题:

有下列程序:

fun(int x,int y)

{statlc int m=0,i=2;

i+=m+1;m=i+X+y;return m;

}

main()

{int j=1,m=1,k;

k=fun(j,m);printf("%d,",k);

k=fun(j,m);printf("%d\n",k);

}

执行后的输出结果是( )。

A.5,5

B.5,11

C.11,11

D.11,5


正确答案:B
解析:子函数fun(int x,int y),将变量m和i声明为局部静态变量,因此第1次调用主函数后,局部静态变量m和i的值为5和3,第1次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i的初始值分别为5和3,即在执行“i+=m=1”时,i的值为9,因此最终m的值为11。

第8题:

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

int k=0;

void fun(int m)

{ m+=k; k+=m; printf(“m=%d\n k=%d ”,m,k++);}

main()

{ int i=4;

fun(i++); printf(“i=%d k=%d\n”,i,k);

}


正确答案:

m=4 k=4 i=5 k=5 

第9题:

以下程序的运行结果是______。 include fun(int a,int b) { int m=0,i=2; i+=m+1; m

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

include<iostrearn.b>

fun(int a,int b)

{

int m=0,i=2;

i+=m+1;

m=i+a+b;

return m;

}

void main()

{int k=4,m=1,p;

p=fun(k,m);cout<<p<<end1;

}


正确答案:8
8

第10题:

以下程序运行后的输出结果【 】。

struct NODE

{int k;

struct NODE *link;

};

main()

{structNODEm[5],*p=m,*q=m+4;

int i=0;

while(p!=q){

p->k=++i;p++;

q->k=i++;q-;

}

q->k=i;

for(i=0;i<5;i++)printf("%d",m[i].k);

printf("\n");

}


正确答案:13431
13431 解析:程序执行过程如下:
p=m,q=m+4,条件9!=q成立,执行p->k=++i;,由于是“前加”,所以m[0].k=1,执行p++后p=m+1;执行q->k=i++;,由于是“后加”,所以m[4].k=1,然后使得i加上1,即i=2,q-后,q=m+3: p=m+1,q=m+3,条件p!=q成立,执行p->k=++i;,由于是“前加”,所以i=3,m[0].k=3,执行p++后p=m+2:执行 p->k=++i;,由于是“后加”,所以m[4].k=3,i=4,q-后,q=m+2; p=m+2,q=m+2,条件p!=q不成立,则执行p->k=i;即m[2].k-4;故输出的值为13431。

更多相关问题