计算机二级

( 11 )有以下程序#include <stdio.h>main (){ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};int b[3]={0},i;for ( i=0;i<3;i++ ) b[i]=a[i][2]+a[2][i];for ( i=0;i<3;i++ ) printf ( " %d " ,b[i] ) ;printf ( " \n " ) ;}程序运行后的输出结果是 【 11 】 。

题目

( 11 )有以下程序

#include <stdio.h>

main ()

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

int b[3]={0},i;

for ( i=0;i<3;i++ ) b[i]=a[i][2]+a[2][i];

for ( i=0;i<3;i++ ) printf ( " %d " ,b[i] ) ;

printf ( " \n " ) ;

}

程序运行后的输出结果是 【 11 】 。

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

第1题:

有以下程序:include void sum(int a[ ] ){a[0]=a[-1] +a[1];}main ( ){int a[10] = {

有以下程序:#include <stdio, h>void sum(int a[ ] ){ a[0]=a[-1] +a[1];}main ( ){ int a[10] = {1,2,3,4,5,6,7,8,9,10}; sum(&a[2]); prinff("% d \n",a[2]); }程序运行后的输出结果是( )。

A.6

B.7

C.5

D.8


正确答案:A
解析:本题将主函数中a[2]的地址传递给了sum函数中的形参a[],使得sum函数中的(a+0)为主函数中a[2]的地址,所以a[-1]即*(a-1)的值为主函数中a[1]的值,故函数sum中a[0]=2+4。由于此函数中的a是指向主函数中的a[2],所以主函数中的a[2]的值即为6。

第2题:

下列程序的输出结果是()。includestruct abc{int a, b, c, s;};main(){struct abc s[2]

下列程序的输出结果是( )。 #include <stdio.h> struct abc { int a, b, c, s;}; main() { struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0].a+s[1].b; printf("%d\n",t); }

A.5

B.6

C.7

D.8


正确答案:B
解析:在本题中,s[0].a=1,s[1].b=5,所以输出结果为6。

第3题:

( 11 )有以下程序

#include <stdio.h>

main ()

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

int b[3]={0},i;

for ( i=0;i<3;i++ ) b[i]=a[i][2]+a[2][i];

for ( i=0;i<3;i++ ) printf ( " %d " ,b[i] ) ;

printf ( " \n " ) ;

}

程序运行后的输出结果是 【 11 】 。


正确答案:

第4题:

若有以下程序:include using namespace std;int main(){ int a[4] [4] = {{1,2,3,-4}

若有以下程序: #include <iostream> using namespace std; int main() { int a[4] [4] = {{1,2,3,-4},{0,-12,-13,14}, {-21,23,0,-24},{-31,32,-33,0}}; int i,j,s = 0; for(i=0;i<4;i++) { for(j=O;j<4;j++) { if(a[i] [j] >=0) continue; s+=a [i] [j]; } } cout<<s<<end1; return 0; } 执行后的输出结果是( )。

A.-138

B.141

C.75

D.-1


正确答案:A
解析:本题属于综合题,考查多个方面的知识点。程序首先定义了一个二维数组a,并初始化其值。在内层for循环体中,遇到大于等于0的数,就继续执行下次循环,否则就执行“s+=a[i][j]”,即把其值累加并保存在变量s中。所以本题双重循环的功能是:计算数组中所有负数的累加和,即s=-138。

第5题:

有以下程序

inculde <stdio.h>

main()

{ int a[3][3]={(1,2,3),(4,5,6),(7,8,9)};

int B[3]={0},i;

For(i=0;i<3;i ++) B[i]=a[i][2]+a[2][i];

For(i=0;1<3;i ++) printF(“%d”,B[i]);

printF(“\n”);

}

程序运行后的输出结果是【1】。


正确答案:101418
101418 解析:当i=0时,b[0]=a[0][2]+a[2][0]=3+7=10;当i=1时,b[1]=a[1][2]+a[2][1]=6+8=14;当i=2时,b[2]=a[2][2]+a[2][2]=9+9=18,则打印结果为101418。

第6题:

有以下程序: include using namespace std; int f(int); int main() {int i;for(i=0;

有以下程序:

include <iostream>

using namespace std;

int f(int);

int main()

{

int i;

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

cout<<f(i)<<" ";

return 0;

}

int f(int i)

{

static int k=1;

for(;i>0;i--)

k+=i;


正确答案:1 2 5 11 21
1 2 5 11 21 解析:函数f()中定义了一个内部静态变量k,其作用域仍在定义它的函数内。但该类型变量采用静态存储分配,当函数执行完,返回调用点时,该变量并不撤销,其值将继续保留,若下次再进入该函数时,其值仍然存在。内部静态变量有隐含初值0,并且只在编译时初始化一次。

第7题:

有以下程序:include void f(int v, int w){int t; t=v; v=w; w=t;}main(){int x=1,y=3

有以下程序: #include <stdio.h> void f(int v, int w) { int t; t=v; v=w; w=t; } main() { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf("%d,%d,%d\n",x,y,z); } 执行后的输出结果( )。

A.1,2,3

B.3,1,2

C.1,3,2

D.2,3,1


正确答案:C
解析:程序中if语句的条件只有y>z为真,所以执行f(y,z)。函数f的功能是交换两形参的值,但由于实参和形参都是一般变量,因此形参变量值的交换不能影响实参的值,main函数中的y和z并来互换,因此输出结果为:1,3,2。

第8题:

有以下程序:includefun(int a, int b){if(a>b) return(a); elsereturn(b);}main(){int

有以下程序: #include <stdio.h> fun(int a, int b) { if(a>b) return(a); else return(b); } main() { int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf("%d\n",r); } 程序运行后的输出结果是( )。

A.3

B.6

C.8

D.12


正确答案:D
解析:本题考查函数的返回值。fun函数的功能是比较a,b的值,返回其中较大者。对于main函数中的语句r=fun(fun(x,y),2*z);是先调用fun(x,y)返回8,再将8和12作为实参调用函数fun,得到的返回值为12。

第9题:

下列程序的输出结果是()。includemain(){ int a[2][3]={{1,2,3},{4,5,6}),(*p)[3],i;p=

下列程序的输出结果是( )。 #include<stdio.h> main() { int a[2][3]={{1,2,3},{4,5,6}),(*p)[3],i; p=a; for(i=0;i<3;i++) { if(i<2) p[1][i]=p[1][i]-1; else p[1][i]=1; } printf("%d\n",a[0][1]+a[1][1]+a[1][2]); }

A.8

B.7

C.12

D.9


正确答案:B
解析:第1次执行for循环,p[1][0]=p[1][0]-1=3:第2次执行for循环,p[1][1]=p[1][1]-1=4;第3次执行for循环,p[1][2]=1,最后输出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

第10题:

有以下程序 include int a=1; int f(int c) { stati

有以下程序 #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
解析:静态局部变量的作用域跟一般局部变量相同,都是从声明处开始到声明所在函数或语句块结束为止。但静态局部变量的生存周期却是从第1次执行到该静态局部变量的声明语句时起,直到程序结束。而—般局部变量的生存周期到离开它的作用域时就结束了。本题的f()函数中static int a=2;语句就声明了一个静态局部变量a,并初始化为2。主函数中,通过一个for循环连着调用了2次f()函数。两次调用形参c都为3,f()函数中让c增1变为4,然后输出(a++) +c,第1次调用a为2,所以输出结果为3+4=6,而第2次调用a被上次调用时的++运算符增1,所以为3,输出结果为3+4=7。所以主函数for循环结束后,k的值是13,下面一条k+=a;语句中的a是全局变量a,值为1。故最终输出结果是14,应该选择 A。

更多相关问题