计算机二级

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

题目
以下程序的输出结果是【】。include main ( ) int a[3][3] ={{1,2,9},{3,4,8},{5,6,7} } ,

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

include <stdio.h>

main ( )

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

for(i=0;i<3;i++) s+ =a[i][i] + a[i][3-i-1];

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

参考答案和解析
正确答案:30
30 解析:当i=0时,s=0+a[0][0]+a[0][2]=10;i=1时,s=10+a[1][1]+ a[1][1]=18;i=2时,s=18+a[2][2]+a[2][0]=30。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序的输出结果是( )。 include void swap(int*a,int*B){int*t; t=a;a=b;b=c;} main

以下程序的输出结果是( )。 include<stdio.h> void swap(int*a,int*B){int*t; t=a;a=b;b=c;} main() {int i=3,j=5,*p=&i,*q=&j; swap(p,q);printf("%d %d\n",*p,*q); }


正确答案:3 5
3 5 解析:本题考查函数中形参和实参的传递。在C语言函数中实参和形参传递具有不可逆性,参数只能由实参传向形参,而不能由形参传向实参,虽然swap函数的功能是实现两个数的交换,但由于没有返回值,故最终的输出结果为3 5。

第2题:

以下程序的输出结果是#include "stdio.h"int *fun(int *a,int *b){ int m; m=*a; m+=*b-3; return(&m);}main(){ int x=21,y=35,*a=&x,*b=&y; int *k; k=fun(a,b); printf("%d\n",*k);}


正确答案:53
本题考查指针函数的使用。题目给出的程序包括两个部分,一个为指针函数fun,一个为主函数main。主函数main部分给出两个整型变量x和y,并给出相应的赋值。main函数的执行结果为输出*k的值,而*k的值即*fun的值。fun函数包括两个整型指针形参*a和*b。通过对*a、*b进行操作,得到结果m,并将m值返回,整个程序的实际输出即为m的值。初始时,m=*a=21。随后令m=m+*b-3,得m=53。整个程序的输出结果即为53。

第3题:

以下程序的输出结果是includeint a[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)ma

以下程序的输出结果是 #include<stdio.h> int a[3][3]={1,2,3,4,5,6,7,8,9,},*p; main() { p=(int*)malloc(sizeof(int)); f(p,a); printf("%d\n”,*p); free(p);} f(int *s,intp [][3]) { *s=p[1][1];}

A.1

B.4

C.7

D.5


正确答案:D
解析: 本题考查了二维数组元素引用的方法。题中用动态存储分配函数malloc分配了一个int型数据长度大小的内存,然后指针p指向了这段内存,函数f()中对p所指向的数据进行了赋值,p[1][1]为二维数组第二行第二列的元素,对应于实参a的元素5,所以输出结果为5。

第4题:

以下程序的输出结果是includeint a[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)ma

以下程序的输出结果是 #include<stdio.h> int a[3][3]={1,2,3,4,5,6,7,8,9,},*p; main() { p=(int*)malloc(sizeof(int)); f(p,a); printf("%d\n",*p); free(p);} f(int *s, int p[][3]) { *s=p[1][1];}

A.1

B.4

C.7

D.5


正确答案:D
解析:本题考查了二维数组元素引用的方法。题中用动态存储分配函数malloc分配了一个int型数据长度大小的内存,然后指针p指向了这段内存,函数f()中对p所指向的数据进行了赋值,p[1][1]为二维数组第二行第二列的元素,对应于实参a的元素5,所以输出结果为5。

第5题:

以下程序的输出结果是[ ]。

main()

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

for(i=0;i<3;i++) s+=-a[i][i]+a[i][3-i-1];

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

}


正确答案:30
30 解析:此题主要考核的是多维数组以及for()循环语句的应用,即i=0时,s=()+a[0][0]+a[0][2]=10,i=1时, s=10+a[1][1]+a[1][1]=18,i=2时,s=18+a[2][2]+a[2][0]=30。

第6题:

以下程序的输出结果是______。include void swap(int *a, int *b){ int *t;}{ int i=3,j

以下程序的输出结果是______。

include <stdio.h>

void swap(int *a, int *b)

{ int *t;

}

{ int i=3,j=5,*p=&i,*q=&j;

swap(p,q); printf("%d %d\n",*p,*q);


正确答案:

第7题:

以下程序的输出结果是( )。 includefun(){ int a=0;a+=3;printf("%d",A); } main() {int

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

include<stdio.h>

fun()

{ int a=0;

a+=3;

printf("%d",A);

}

main()

{ int cc;

for(cc=1;cc<=4;cc++)

fun();

printf("\n");

}


正确答案:3 3 3 3
3 3 3 3 解析:本题考查for循环,for(cc=1;cc=4;cc++)表示循环4次,a+=3表示每次a的值增加3,但是子函数中没有将变量a定义为static类型,所以每次调用完子函数之后,变量a所做的改变都不能保存,这样在下一次调用子函数时,a的初值仍是0,所以不管调用多少次,子函数输出始终是3。

第8题:

下列程序的输出结果是【 】。include void swap(int *a, int *B) { int *t; t=a;a=b;b=t;

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

include <stdio.h>

void swap(int *a, int *B)

{

int *t;

t=a;a=b;b=t;

}

main()

{

int i=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d %d\n",*p,*q);

}


正确答案:3 5
3 5 解析:本题考查函数中实参和形参的传递,在C语言函数中实参和形参传递具有不可逆性,参数只能由实参传向形参,而不能由形参传向实参,虽然swap函数的功能是实现两个数的交换,但没有返回值,故最终的输出结果为3 5。

第9题:

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

main()

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

for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1];

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

}


正确答案:
(8) 【 8 】 30
解析 : 程序运行后的结果是 a[0][0]+a[0][2]+a[1][1]+a[1][1]+a[2][2]+a[2][0]=1+9+4+4+7+5=30