计算机二级

以下程序的输出结果是()。includemain(){int a[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;for以下程序的输出结果是( )。 #include<stdio.h> main() {int a[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) s+=a[i][a[j][j]]; printf("%d\n",s); }A.3B.4C.1D.9

题目
以下程序的输出结果是()。includemain(){int a[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;for

以下程序的输出结果是( )。 #include<stdio.h> main() {int a[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) s+=a[i][a[j][j]]; printf("%d\n",s); }

A.3

B.4

C.1

D.9

参考答案和解析
正确答案:B
解析:当外层循环为i时,内层循环i只能取j=i,所以s+=a[i][a[j][j]],其实就是s+=a[i][a[i][i]],当i=0时,s=s+a[0][a[01[0]]=s+a[0][0]=1,当i=1时,s=s+a[1][a[1][1]1=s+a[1][1]=1+1=2,当i=2时,s=s+a[2][a[2][2]]=s+a[2][2]=2+2=4。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第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题:

以下程序的输出结果是()。includemain(){in(b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;f

以下程序的输出结果是( )。 #include<iostream.h> main() { in(b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0,i<3:i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; cout<<t; }

A.3

B.4

C.1

D.9


正确答案:B

第3题:

以下程序的输出结果是()。//includemain(){ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j, t

以下程序的输出结果是( )。 //include<iostream.h> main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j, t=1; for(i=0,i<3; i+ +) for(j=i;j<=i; j+ +) t=t+b[i][b[j][j]]; cout<<t; }

A.3

B.4

C.1

D.9


正确答案:B

第4题:

有以下程序includemain(){int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=0;for(i=0;i<3;i++)

有以下程序 #include<stdio.h> main() {int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=0; for(i=0;i<3;i++) for(j=2;j>=i;j--)t+=b[i][j]; printf("%d\n",t); } 程序运行后的输出结果是( )。

A.4

B.3

C.8

D.9


正确答案:C
解析:这道题主要考查的是二维数组的有关知识。在两层for循环语句中,累加上三角元素,所以程序执行的过程为t=b[0][0]+b[0][1]+b[0][2]+b[1][]+b[1][2]+b[2][2]=8。

第5题:

以下程序的输出结果是()。includemain(){int b[3][3]={0,1,2,0,1,2,0,1,2},ij,t=1;f

以下程序的输出结果是( )。 #include<iostream.h> main() { int b[3][3]={0,1,2,0,1,2,0,1,2},ij,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]; cout<<t; }

A.3

B.4

C.1

D.9


正确答案:B

第6题:

下列程序的输出结果是______。include main(){ int i=1,j=3; printf("%d,",i++); {int

下列程序的输出结果是______。#include <stdio.h>main (){ int i=1,j=3; printf("%d,",i++); { int i=0; i+=j*2; printf("%d,%d,",i,j); } printf("%d,%d\n",i,j);}

A.1,6,3,1,3

B.1,6,3,2,3

C.1,6,3,6,3

D.1,7,3,2,3


正确答案:B

第7题:

有以下程序:includeintf(intn)} if(n==1)return 1;else return f(n-1)+1;}main(){int

有以下程序: #include <stdio.h> intf(intn) } if(n==1) return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=1; i<3; i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是( )。

A.4

B.3

C.2

D.1


正确答案:B
解析:在main函数中,j的值是f(1)和f(2)的值相加的结果。f(1)=1,f(2)=f(1)+1=2,j的值为1+2=3。

第8题:

以下程序的输出结果是______。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);


正确答案:

第9题:

以下程序的输出结果是【 】。include main() {int i,j,sum; for(i=3;i>=-1;i-) (sum=0; fo

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

include<stdio.h>

main()

{int i,j,sum;

for(i=3;i>=-1;i-)

(sum=0;

for(j=1;j<=i;j++) sum+=i*j;

}

printf("%d\n,sum);

}


正确答案:√
1 解析:本题考查的是for循环嵌套。外循环i变量从3递减到1,内循环变量j在每轮外循环的作用下从1递增到i,并在每轮外循环结束时,通过内循环求得sum的值,但由于外循环体的第一条语句是将变量sum初始化为0,所以每轮外循环结束时求得的sum值均被下一轮外循环执行时重新初始化为0,只有在最后一轮,当i=1时,内循环求得stan=1,跳出内循环,i的值减1变为0,不满足i>=1这个条件,结束外循环,此时输出sum的值为1。