若有如下程序:sub(int *t,int a[3][4]){int m,n;for(m=0;m<3;m++)for(n=0;n<4;n++){ *t=a[m][n];

题目

若有如下程序: sub(int *t,int a[3][4]) { int m,n; for(m=0;m<3;m++) for(n=0;n<4;n++) { *t=a[m][n];t++;} } main() { int*t,s[3][4)={{1,2,3),{4,5,6),{7,8,9}}; t=(int*)malloc(50); sub(t,s); printf("%d,%d\n",t[4],t[7]); } 则程序运行后的输出结果是( )。

A.4,7

B.4,0

C.5,8

D.程序错误

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

第1题:

有如下程序:includeusing namespace std;class Base{int x;public:Base(int n=0):x(n

有如下程序: #include<iostream> using namespace std; class Base{ int x; public: Base(int n=0):x(n){cout<<n;} int getX( )const{return x;} }; class Derived:public Base{ int y; public: Derived(int m,int n):y(m),Base(n){tout<<m;} Derived(int m):y(m){cout<<m;} }; int main( ){ Derived dl(3),d2(5,7); return 0; } 程序的输出结果是

A.375

B.357

C.0375

D.0357


正确答案:C
解析:有如下程序:  #includeiostream>  using namespace std;  class Base{  int x;  public:  Base(int n=0):x(n){coutn;}  int getX( )const{return x;}  };  class Derived:public Base{  int y;  public:  Derived(int m,int n):y(m),Base(n){toutm;}  Derived(int m):y(m){coutm;}  };  int main( ){  Derived dl(3),d2(5,7);  return 0;  }  程序的输出结果是  

第2题:

以下程序的输出结果是______。 fun(int *s,int *p) { static int t=3; *p=s[t]; t--; } main() { int str[]={1,2,3,4},i,m=0; for(i=0;i<4;i++) {fun(str,&m); printf("%d",m); } printf("\n"); }

A.0

B.444412

C.1234

D.4321


正确答案:D
解析:程序的功能是将字符数组str中的内容以反序输出。函数fun中t为静态变量,每一次调用函数fun时,t的值为上一次调用函数结束时的值。

第3题:

下面程序的运行结果是 : 【 1 0 】 。

fun(int t[],int n)

{ int i,m;

if(n==1)return t[0];

else

if(n>=2){m=fun(t,n-1); return m; }

}

main()

{ int a[]={11,4,6,3,8,2,3,5,9,2};

printf(" % d\n",fun(a,10));

}


正确答案:
(10) 【 10 】 11
解析 : 此题涉及函数的调用和 if 语句 。 程序先执行第二个 if 语句 , 然后在执行第一个 if 语句 ,最后用 return 返回数值。

第4题:

若有如下程序: int m=1; main() { int t=0,s=0; {int m=4;s+=m;) t+=m; printf("%d,%d\n",s,t); } 则程序运行后的输出结果是( )。

A.1,1

B.1,4

C.4,1

D.4,4


正确答案:C
解析:{intm=4;s+=m;}是复合语句,m=4,s+=m等价于s=s+m=0+4=4。t+=m等价于t=t+m,这里m为全局变量,值为1,t=t+m=O+1=1。

第5题:

以下程序执行后的输出结果是【】。includemain(){int i, m=0,n=0,k=0;for(i=9;i<= 11 ;

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

include<iostream.h>

main()

{

int i, m=0,n=0,k=0;

for(i=9;i<= 11 ;i++)

switch(i/10)

{

case 0: m++; n++; break;

case 10: n++; break;

default: k++; n++;

}

cout<<m<<n<<k;

}


正确答案:132
132

第6题:

有以下程序: main() { int a=15,b=21,m=0; switch(a%3) { case 0:m++;break; case 1:m++; switch(b%2) { default: m++; case 0:m++;break; } rintf("%d\n",m); } 程序运行后的输出结果是( )。

A.1

B.2

C.3

D.4


正确答案:A
解析:本题中首先计算switch后面括号里的表达式a%3,即15%3为0;执行case0:后面的语句m++:m自加1,即m为1遇到break语句;然后跳出switch语句,所以最后输出的m的值为1。所以选项A正确。

第7题:

下列给定程序中,函数fun()的功能是:给一维数组a输入任意4个整数,并按如下的规律输出。例如输入1,2,3,4,程序运行后输出以下方阵:

4 1 2 3

3 4 1 2

2 3 4 1

1 2 3 4

请改正程序中的错误,使它能得出正确的结果。

注意;不要改动main 函数,不得增行或删行,也不得更改程序的结构。

试题程序;

include <stdio.h>

define M 4

/*******************************/

void fun(int a)

{int i,j,k,m;

printf("Enter 4 number: ");

for (i=0; i<M; i++) scanf ("%d", &a [i] );

printf ("\n\n The result : \n\n ");

for (i=M; i>0; i--)

{ k=a [M-1];

for (j=M-1; j>0; j--)

/**********************************/

a[j]=a[j+1];

a[0]=k;

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

printf ("\n ");

}

}

main ()

{int a [M];

fun(a); printf("\n\n ");

}


正确答案:(1)错误:void fun (int a) 正确:int fim (int *a (2)错误:a[j]=a[j+1]; 正确:a[j]=a[j-1];
(1)错误:void fun (int a) 正确:int fim (int *a (2)错误:a[j]=a[j+1]; 正确:a[j]=a[j-1]; 解析:其实,该题中题目信息已经告诉我们按“如下规律”,这就需要去认真分析矩阵的“规律”了,在第1列中,数列以4开始递减,直至1,在该数列中,行和列都是递减循环排列,所以题目在循环的时候有循环条件for(i=M;i>0;i--)和 for (j=M-1;j>0;j--),当然每次循环结束后在列中的赋值语句应该是a[j]=a[j-1];。

第8题:

( 13 )有如下类定义:

class XX{

int xdata;

public:

XX(int n=0) : xdata (n) { }

};

class YY : public XX{

int ydata;

public:

YY(int m=0, int n=0) : XX(m), ydata(n) { }

};

YY 类的对象包含的数据成员的个数是

A ) 1

B ) 2

C ) 3

D ) 4


正确答案:B

第9题:

若有如下程序: int sub(int m) { if(m==1||m==0) return 2; else return(sub(m-1)*sub(m-2));} main() { int n; scanf("%d",&n); printf("%d",sub(n)); } 如果从键盘输入4<回车>,则程序运行后的输出结果是( )。

A.8

B.16

C.24

D.32


正确答案:D
解析:本题的sub()函数是一个递归函数,当参数m为1或0时返回2,否则返回sub(m-1)*sub(m-2)。所以sub(4)递推下来就是sub(4)=sub(3)*sub(2)=sub(2)*sub(1)*sub(1)*sub(0)=sub(1)*sub(0)*2*2*2=25(上标)=32。所以正确答案是D。

第10题:

下面程序的运行结果是:[ ]。

fun(int t[],int n)

{ int i,m;

if(n=1) return t[0];

else

if(n>=2) {m=fun(t,n-1);return m;}

}

main()

{ int a[]={11,4,6,3,8,2,3,5,9,2};

printf("%d\n",fun(a,10));

}


正确答案:11
11 解析:此题主要考核的知识点是数组名作为函数参数及函数调用牙口参数的传递。调用实参可知n=10,形参数组t指向实参a的首地址t[0]=11。执行fun()函数的if-else语句,因为n=10所以执行else语句,在满足if(n>=2)的条件下:m=fun(t[0],9), m=fun(t[0],8), m=fun(t[0],7),......m=fun(t[0],2), .m=fun(t[0],1),当n=1时满足if(n=1)的条件,所以执行此处的return语句,返回数组首地址指向的值t[0],所以答案为11。

更多相关问题