有以下程序:#include main(){ int x[3][3]={{2},{4},{6}},i,*q=&x[0][

题目
单选题
有以下程序:#include main(){ int x[3][3]={{2},{4},{6}},i,*q=&x[0][0]; for(i=0;i {  if(i==0)   x[i][i+1]=*q+1;  else   ++q;  printf("%d",*q); } printf("");}程序的运行结果是(  )。
A

23

B

26

C

33

D

36

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

第1题:

下列程序的输出结果是()。includevoid main(){char*str=”12123434”;int x1=0,x2=0,x

下列程序的输出结果是( )。 #include<iostream.h> void main() {char*str=”12123434”; int x1=0,x2=0,x3=0,x4=0,i; for(i=0;str[i]!=’\0’;i++) switch(str[i]) {case’1’:x4++; case’2’:x3++; case’3’:x2++; case’4’:xl++; ) cout<<xl<<“,”<<x2<<

A.8,6,4,1

B.8,6,3,2

C.8,8,4,l

D.8,6,4,2


正确答案:D
解析: 本题考查循环的嵌套,for和switch语句的应用。C++中。各种条件判断,循环语句的用法。只要注意在C++语言中,系统在字符指针的最后位置会增加一个字符串结束符'\0’,执行8次for循环,再根据,witch语句中的条件易知答案。

第2题:

有以下程序:include void sum(int *a){a[0]=a[1];}main(){int aa[10]={1,2,3,4,5,6,7,

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

A.4

B.3

C.2

D.1


正确答案:A
解析:该程序通过main函数循环凋用sum函数。当i=2时,将实参aa[2]的地址传递给形参,此时a[0]=a[1]=aa[3]=4,即aa[2]=4;当i=1时,将实参aa[1]的地址传递给形参,此时a[0]=a[1]=aa[2]=4,即aa[1]=4;当i=0时,将实参aa[0]的地址传递给形参,此时a[0]=a[1]=aa[1]=4,即aa[0]=4;当i=-1时,不满足条件i>=0,跳出循环,程序执行后数组aa中的值为4,4,4,4,5,6,7,8,9,10,所以aa[0]=4。

第3题:

有以下程序:void f(int *x,int *y){ int *t; t=x; x=y ;y=t; *x=*y;}main(){ int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a;q=&a[7]; while(p>q) { f(p,q);p++;q--} for(i=0;i<8;i++)printf("d,",a[i]);}程序运行后的输出结果是( )。A.8,2,3,4,5,6,7,1,B.5,6,7,8,1,2,3,4,C.1,2,3,4,5,6,7,8,D.8,7,6,5,4,3,2,1,


正确答案:C
循环的条件是p>q,而p指向的是数组的首地址,q指向的是数组的最后一个元素,因此p<q,不满足条件,不执行循环,所以结果不变。

第4题:

有以下程序:include void fun(iht * a,int i,int j){int t;if(i < j) {t=a[i];a[i] =

有以下程序:#include <stdio, h>void fun(iht * a,int i,int j){ int t; if(i < j) { t=a[i];a[i] =a[j] ;a[j]=t; i++;j--; fun(a,i,j);main ( ) int x[ ]: {2,6,1,8} ,i; fun(x,0,3); for( i=0;i <4;i ++ ) printf( "%2d" ,x[i] ); printf(" \n");

A.1268

B.8621

C.8162

D.8612


正确答案:C
解析:语句fun(x,0、3);中将数组名x作为实参,即把数组x的首地址传送给形参(指针a),使数组x与形参指针s共占同一段内存单元,在调用函数期间,如果形参数组x的值发生了改变,实参指针a的值也就改变了。程序中fun函数是递归调用函数,其运行过程是:第1次调用fun时,a=x,i=0,j=3,ij成立,a[0]与a[3]交换,a数组中的数变为{8,6,1,2},执行i++;j--;继续调用fun,此时i,j分别为1,2,ij成立,a[1]与a[2]交换,a数组中的数变为{8,1,6,2},执行i++j--;继续调用fun,此时i,j分别为2,1,ij不成立,递归调用结束。当返回主函数时,x数组中的数据就为{8,1,6,2}。

第5题:

有以下程序: include main ( ){int x[ ] = {1,3,5,7,2,4,6,0} ,i,j,k;for(i =0;i<3;i

有以下程序: #include <stdio. h> main ( ) { int x[ ] = {1,3,5,7,2,4,6,0} ,i,j,k; for(i =0;i<3;i ++ ) for (j =2;j> = i;j — ) if( x[j + 1 ] > x[j] ) { k = x[j] ;x[j] = x[j + 1 ] ;x[j + 1 ] = k; } for (i =0;i<3;i++) for(j =4;j <7-i;j ++) if(x[j] >x[j+1]){ k=x[j];x[j] =x[j+1];x[j+1] =k;} for (i=0;i<8;i ++) printf("%d" ,x[i]); prinff("\n" );}程序运行后的输出结果是( )。

A.75310246

B.1234567

C.76310462

D.13570246


正确答案:A
解析:本题考查的是排序算法。for(i=0;i3;i++)for(j=2;j>i;j--)if(x[j+1],x[j]){k=x[j];x[j];x[j+1);x[j+1]=k;}该段程序的作用是将数组元素x[0]~x[3]中的数由大到小排列,得到x[]{7,5,3,1,2,4,6,0}。for(i=0;i3;i++)for(j=4;j7-i;j++)if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}该段程序的作用是将数组元素x[4]~x[7]中的数由小到大排列,得到x[]={7,5,3,1,0,2,4,6}。因此输出结果为75310246。

第6题:

有以下程序:include main() {int a[] = {2,4,6,8,10} ,y =0,x, * p;p =&a[1];for(

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

A.10

B.11

C.14

D.15


正确答案:C
解析:本程序通过语句p=&a[1];将指针变量p指向存储单元a[1],使得p[0]的值为4,通过for循环,使y的值丸P[1]与p[2]之和,即y=6+8,所以输出的y值为14。

第7题:

以下程序的输出结果是includevoid main( ){int i,j,x=0;for(i=0;i<2;i++){x++;for(

以下程序的输出结果是 #include<iostream.h> void main( ) {int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<3;j++) { if(j%2)continue; x++;} x++;} cout<< "x="<<x;}

A.x=4

B.x=8

C.x=6

D.x=12


正确答案:B
解析:该题是一个for循环嵌套语句。第一层for循环循环2次,第二层循环3次,但当j等于 0和1时,将执行continue语句,不执行x++运算,所以每次执行完内循环后,x的增量为1。最后一个x++运算将每次累加起来就是x的值。

第8题:

以下程序的执行结果是【】。 include int f(int b[],int n) { int i,r=1; for(i=0;i

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

include<iostream.h>

int f(int b[],int n)

{

int i,r=1;

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

r=r*b[i];

return r;

}

void main()

{

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

x=f(a,3);

cout<<x<<endl;

}


正确答案:24
24

第9题:

请选出以下程序的输出结果includemain(){ int a[]={1,2,3,4},i;int x=0;for(i=0;i<4;i

请选出以下程序的输出结果 #include<stdio.h> main() { int a[]={1,2,3,4},i; int x=0; for(i=0;i<4;i++) { sub(a,x);printf("%d",x);} printf("\n");} sub(s,y) int*s,y; { static int t=3; y=s[t];t--; }

A.1 2 3 4

B.4 3 2 1

C.0

D.4444


正确答案:C
解析:若指针s指向数组a,则s[t]可以引用数组a中下标为t的元素。注意:通过数组的首地址引用数组元素。

第10题:

有以下程序 include define N 4 void fun(int a[][N],int b[]) { int

有以下程序 #include <stdio.h> #define N 4 void fun(int a[][N],int b[]) { int i; for(i=0;i<N;i++) b[i]=a[i][i]; } main() {int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10} },Y[N],i; fun(x,y); for(i=0;i<N;i++) printf("%d,",y[i]); printf("\n"); } 程序的运行结果是______。

A.1,2,3,4,

B.1,0,7,0,

C.1,4,5,9,

D.3,4,8,10,


正确答案:B
解析:在主函数中,定义并初始化了4行4列的二维数组x。对于二维数组元素的赋值,可以只对部分元素赋初值,未赋初值的元素自动取0。x数组元素赋初值后各元素为:

fun函数的作用是将二维数组a中主对角线元素赋给数组b,由于数组a与数组x共用同一存储单元,也即将数组x中主对角线元素赋给了数组b。又因为数组b与数组y共用同一存储单元,所以主函数中通过语句“printf("%d,"y[i]);”输出的即为数组b中的值,所以程序运行结果为“1,0,7,0,”。

更多相关问题