计算机二级

以下程序的运行结果是【 】。include<iostream.h>func(int a,int b){statlC int m=0,i=2;i+=m+1;m=i+a+b;return m;}void main(){int k=4,m=1,p;p=func(k,m);cout<<p<<”,”;p=func(k,m);cout<<p<<endl;}

题目

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

include<iostream.h>

func(int a,int b)

{

statlC int m=0,i=2;

i+=m+1;

m=i+a+b;

return m;

}

void main()

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

p=func(k,m);cout<<p<<”,”;

p=func(k,m);cout<<p<<endl;

}

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

第1题:

下列程序的运行结果是______。include int Func(int *a,int n) {int s=1; for(int i=0

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

include<iomanip.h>

int Func(int *a,int n)

{int s=1;

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

s*=*a++;

returns;}

void main()

{inta[]:{1,2,3,4,5,6,7,8};

intb=Func(a,6)+Func(&a[5],2);

cout<<“b=“<(b<<endl;}


正确答案:b=762。
b=762。 解析: 本题考查了。a++的用法。*a++作为表达式时,先计算*a作为表达式的值,然后使指针变量 a本身增1,在本惠中,s*=*a++等同于3=s**a,a++,S后面第一个*是乘号。

第2题:

有如下程序段#include "stdio.h"void fun(int *a,int *b,int *c,int *d,int *e){ int i,j,k,m; for(i=0;i< *a;i++) for(j=0;j< *b;j++)  for(k=0;k<*c;k++)  for(m=0;m< *d;m++)  ++*e;}main(){ int a=10,b=10,c=10,d=10,e=0; fun(&a,&b,&c,&d,&e); printf("%d\n",e);} 则程序段的输出结果是A.10000 B.1000 C.100 D.0


正确答案:A
在本题中,程序首先定义了一个无返回值的函数fun,该函数带有五个整型的指针形参变量,然后通过一个四层循环来操作++*e;语句,由于*与++运算符的优先级一样,它们都是自右至左结合的操作,因此,++*e等价于++(*e),这个操作可描述为:先用地址取值,然后对其进行自加,由于是通过传址传值法的,因此,还需要将相加后的结果传递到实参中。
在主函数中,定义五个整型变量并分别赋初值,然后调用fun函数,传递的参数是刚定义的五个整型变量的地址,采用的是传址传值法,能为实参带回一个结果值。从fun函数中我们不难看出,当变量a,b,c,d分别为10时,循环总共执行10000次,即自加进行了10000次,而且每次自加后都改变了实参的结果。因此,循环结束后,变量e的值为10000。本题的正确答案是A。

第3题:

以下程序的正确运行结果是()。includeint f(int);.void main(){int a=2,i;for(i=0;i

以下程序的正确运行结果是( )。 #include<iostream.h> int f(int);. void main() { int a=2,i; for(i=0;i<3;i++) cout<<f(a)<<" "; cout<<endl; } int f(int a) { int b=0; static int c=3; b++;c++; return(a+b+c); }

A.777

B.7 10 13

C.79 11

D.7 8 9


正确答案:D

第4题:

以下程序的正确运行结果是()。includeint f(int);void main(){int a=2,i;for(i=0;i<

以下程序的正确运行结果是( )。 #include<iostream.h> int f(int); void main() { int a=2,i; for(i=0;i<3;i++)cout<<f(a)<<" "; cout<<endl; } int f(int a) { int b=0; static int c=3; b++;c++; return(a+b+c); }

A.777

B.7 10 13

C.7 9 11

D.7 8 9


正确答案:D

第5题:

有以下程序include main(){ int.i=0,a=0;while(i<20){for(;;) {if((i%10)==0)break;el

有以下程序 #include <stdio.h> main() { int.i=0,a=0; while(i<20) { for(;;) { if((i%10)==0) break; else i--; } i+=11; a+=i; } printf("%d\n",a) ; } 程序运行后的输出结果是( )

A.21

B.32

C.33

D.11


正确答案:B

第6题:

有以下程序:include prt(int * m,int n)int i;for(i =0;i

有以下程序:#include <stdio.h>prt(int * m,int n) int i; for(i =0;i<n;i ++ ) m[i] ++;main( )} int a[ ] = { 1,2,3,4,5} ,i; prt(a,5); for(i =0;i<5;i ++ ) printf( "% d," ,a[i] );}程序运行后的输出结果是( )。

A.1,2,3,4,5,

B.2,3,4,5,6,

C.3,4,5,6,7,

D.2,3,4,5,1


正确答案:B
解析:prt(a,5);用数组名a作函数实参,不是把a数组的值传递给形参m,而是将数组a的首地址传递给指针变量m,使指针变量m指向数组a的首地址,这样他们就占用同一段内存单元。当改变了指针变量所指向的存储单元中的内容,也就改变了数组a中的元素。函数pit的作用是将指针变量m所指向的存储单元中的各元素值加1,也就是数组a中各元素的值加l,所以输出结果为:2,3,4,5,6,

第7题:

有以下程序:includeusing namespace std;int f(int,int);int main(){ int i:1,x; x=f

有以下程序: #include<iostream> using namespace std; int f(int,int); int main() { int i:1,x; x=f(i,i+1); cout<<x<<end1; return 0; } int f(int a,int b) { int c; c = a; if(a>b) c = 1; else if(a==b) c = 0; else c = -2; return c; } 运行后的输出结果是( )。

A.1

B.0

C.-1

D.-2


正确答案:D
解析:本题考核对函数调用方法的掌握程度。做此类题主要是弄清楚程序每一步的目的:在主函数前面声明了整型函数f。在主函数中,调用了函数f()。实参的值分别是1和2,1传给函数f的形参a,2传给函数f的形参b,函数返回的值赋给变量x。即为输出的函数值。具体分析一下函数f()的功能:如果a大于b,则赋予c的值为1;并且跳出if-else语句。如果a不大于b,则进入elseif分支中,如果a等于b,则赋予c的值为0,并跳出以下的if-else语句。如果a不等于b,则进入else分支,执行c=-2。因为实参1,2分别传给形参a,b,所以此时ab,f()函数应执行c=-2。即最终输出应为-2。

第8题:

该程序运行的结果是( )。

#include

#include

#define M 100

void fun(int m, int *a, int *n)

{ int i,j=0;

for(i=1;i<=m;i++)

if(i%7==0||i==0)

a[j++]=i;

*n=j;}

main()

{ int aa[M],n,k;

clrscr();

fun(10,aa,&n);

for(k=0;k

if((k+1) ==0)printf("\n");

else printf("M",aa[k]);

printf("\n");}


正确答案:
7

第9题:

以下程序的执行结果是______ 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