Dotcpp  >  试卷列表  >  C语言数组

C语言数组


第1题

以下叙述中正确的是( )。

共 1 分 

第2题

以下叙述中正确的是(  )。

共 1 分 

第3题

以下选项中叙述正确的是(  )。

共 1 分 

第4题

以下叙述中错误的是(  )。

共 1 分 

第5题

若要定义一个具有5个元素的整型数组,以下错误的定义语句是

共 1 分 

第6题

设有如下程序段:

1
2
3
4
int a[8]={0};
 int b[]={0};
 char c[2]={"A","B"};
 char d="AB";

以下叙述正确的是(  )。

共 1 分 

第7题

下列选项中,能正确定义数组的语句是(  )。

共 1 分 

第8题

下列定义数组的语句中,对的的是

共 1 分 

第9题

要求定义一个具有6个元素的int型一维数组,以下选项中错误的是 (  )。

共 1 分 

第10题

若有定义语句:

1
int m[]={5,4,3,2,1},i=4;,

则下面对m数组元素的引 用中错误的是(  )。

共 1 分 

第11题

若有说明语句:

1
int *ptr[10];

以下叙述正确的是(  )。

共 1 分 

第12题

有以下程序

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
main()
 {
 int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; 
for(i=0;i<12;i++)
 c[s[i]]++;
 for(i=1;i<5;i++)
 printf("%d",c[i]);
 printf("\n");
 }

程序的运行结果是(  )。

共 1 分 

第13题

设有n个数按从大到小的顺序存放在数组x中,以下能使这n个数在 x数组中的顺序变为从小到大的是(  )。

共 1 分 

第14题

设有一个M*N的矩阵已经存放在一个M行N列的数组x中,且有以

下程序段:

1
2
3
sum=0;
 for(i=0;i<M;i++)sum+=x[i][0]+x[i][N-1];
 for(j=1;j<N-1;j++)sum+=x[0][j]+x[M-1][j];

以上程序段计算的是(  )。

共 1 分 

第15题

有以下程序段:

1
2
3
int *p1,*p2,a[10];
 p1=a;
p2=&a[5];

则p2-p1的值为(  )。

共 1 分 

第16题

设有如下定义语句:

1
int m[ ]={2,4,6,8},*k=m;

以下选项中,表达式的值为6的是(  )。

共 1 分 

第17题

若有定义语句:

1
double x[5]={1.0,2.0,3.0,4.0,5.0}, *p=x;

则错误引用x数组元素的是(  )。

共 1 分 

第18题

设有定义:

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

若0≤i≤9,则对a数组元素的引用错误的是(  )。

共 1 分 

第19题

设有定义

1
double a[10],*s=a;

以下能够代表数组元素a[3]的是(  )。

共 1 分 

第20题

若有以下定义:

1
int x[10],*pt=x;

则对x数组元素的正确引用是(  )。

共 1 分 

第21题

执行以下程序段后,s的值为(  )。

1
2
int a[]={1,2,3,4,5,6,7,8,9}, s=0,k;
 for(k=0;k<8;k+=2) s+=*(a+k);
共 1 分 

第22题

有以下程序

1
2
3
4
5
6
7
#include <stdio.h>
main()
 {
 int i,s=0,t[]={1,2,3,4,5,6,7,8,9};
 for(i=0;i<9;i+=2)s+=*(t+i);
 printf("%d\n",s);
 }

程序执行后的输出结果是(  )。 

共 1 分 

第23题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
main()
 {
 int a[]={10,20,30,40},*p=a,i;
 for(i=0;i<=3;i++)
 {
 a[i]=*p;
 p++;
 }
 printf("%d\n",a[2]);
 }

程序运行后的输出结果是(  )。

共 1 分 

第24题

有以下程序:

1
2
3
4
5
6
7
#include <stdio.h>
main()
 {
 int a[]={1,2,3,4},y,*p=&a[3];--p;
 y=*p;
 printf("y=%d\n",y);
 }

程序的运行结果是(  )。

共 1 分 

第25题

fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋 值。在下画线处应该填写的是(  )。

1
2
3
4
5
6
7
#include <stdio.h>
#define N 5
 void fun(int x[N])
 {
 int m;
for(m=N-1;m>=0;m--)scanf("%d",_____);
 }
共 1 分 

第26题

以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。

1
2
3
4
5
6
7
#include <stdio.h>
 #define N 10
 void fun(int x[N])
 {
 int i=0;
 while(i<N)scanf("%d",______);
 }

在程序中下画线处应填入的是(  )。

共 1 分 

第27题

以下程序中给数组所有元素输入数据,请从选项中选择正确的答 案填入下划线处。(  )

1
2
3
4
5
6
7
#include <stdio.h>
main()
 {
 int a[10],i=0;
 while(i<10) scanf("%d", _________);
 
 }
共 1 分 

第28题

有以下程序

1
2
3
4
5
6
#include <stdio.h>
main()
 {
 int a[10]={11,12,13,14,15,16,17,18,19,20},*p=a,i=9;
printf("%d,%d,%d\n",a[p-a],p[i],*(&a[i]));
 }

程序运行后的输出结果是(  )。

共 1 分 

第29题

有以下程序:

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
void fun(int *p)
 {
 printf("%d\n",p[5]);
 }
 main()
 {
 int a[10]={1,2,3,4,5,6,7,8,9,10};
 fun(&a[3]);
 }

程序运行后的输出结果是(  )。

共 1 分 

第30题

有以下程序

1
2
3
4
5
6
7
8
#include <stdio.h>
main()
 {
 int a[]={2,4,6,8,10},x,*p,y=1;
 p=&a[1];
 for(x=0;x<3;x++)y+=*(p+x);
 printf("%d\n",y);
 }

程序的输出结果是(  )。

共 1 分 

第31题

有如下程序:

1
2
3
4
5
6
7
8
9
#include <stdio.h>
main()
 {
 int i,*ptr;
 int array[3]={8,2,4};
 for(ptr=array,i=0;i<2;i++)
 printf("%d,",*ptr++);
 printf("\n");
 }

程序运行后的输出结果是(  )

共 1 分 

第32题

有以下程序:

1
2
3
4
5
6
7
8
9
#include <stdio.h>
main()
 {
 int i,*ptr;
 int array[4]={1,1,3,4};
 for(ptr=array,i=0;i<3;i++)
 printf("%d,",*ptr++);
 printf("\n");
}

程序运行后的输出结果是(  )。

共 1 分 

第33题

有如下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
main() 
{
 int i, *ptr;
 int array[5] = {5,3,1};
 for (ptr=array, i=0; i<5; i++, ptr++)
 {
 if (*ptr == 0)
 putchar('X');
 else
 putchar('A' + *ptr);
 }
 printf("\n");
 }

程序运行后的输出结果是(  )。 

共 1 分 

第34题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
main()
 {
 int x[]={8,2,6,12,5,15},f1,f2;
 int *p=x;
 f1=f2=x[0];
 for(;p<=x+5;p++)
 {
 if(f1<*p)f1=*p;
 if(f2>*p)f2=*p;
 }
 printf("%d,%d\n",f1,f2);
 }

程序的运行结果是(  )。

共 1 分 

第35题

若有函数声明:

1
void fun(float array[],int*ptr);

以下叙述正确的是(  )。

共 1 分 

第36题

若有函数:

1
2
void fun(double a[],int *n)
 {......}

以下叙述中正确的是(  )。

共 1 分 

第37题

若主函数中有定义语句:

1
int a[10],b[10],c;

在主函数前定义的fun函数首部为 void fun(int x[]) 则以下选项中错误的调用语句是(  )。

共 1 分 

第38题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
void f(int b[])
 {
 int i;
 for(i=2;i<6;i++)b[i]*=2;
 }
 main()
 {
 int a[]={1,2,3,4,5,6,7,8,9,10},i;
 f(a);
 for(i=0;i<10;i++)
 printf("%d,",a[i]);
 }

程序运行后的输出结果是(  )。

共 1 分 

第39题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 void fun(int a[],int n)
 {
 int i,t;
for(i=0;i<n/2;i++)
 {
 t=a[i];
 a[i]=a[n-1-i];
 a[n-1-i]=t;
 }
 }
 main()
 {
 int k[10]={1,2,3,4,5,6,7,8,9,10},i;
 fun(k,5);
 for(i=2;i<8;i++)printf("%d",k[i]);
 printf("\n");
 }

程序运行的结果是(  )。

共 1 分 

第40题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
void fun(int a[],int n)
 {
 int i,j=0,k=n/2,b[10];
 for(i=n/2-1;i>=0;i--)
 {
 b[i]=a[j];
 b[k]=a[j+1];
 j+=2;
 k++;
 }
 for(i=0;i<n;i++)
 a[i]=b[i];
 }
 main()
 {
 int c[]={10,9,8,7,6,5,4,3,2,1},i;
 fun(c,10);
 for(i=0;i<10;i++)
 printf("%d,",c[i]);
 printf("\n");
 }

程序的运行结果是(  )。

共 1 分 

第41题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 void fun(int a[], int n)
 {
 int i;
 for(i=0;i<n;i++)
 {
 if(i%2==0)
 a[i] += n;
 else
 a[i] -= n;
 }
 }
 main()
 {
 int c[5]={5,4,3,2,1},i;
 fun(c,5);
 for(i=0;i<5;i++)
 printf("%d,",c[i]);
 printf("\n");
 }

程序运行后的输出结果是(  )。

共 1 分 

第42题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 void fun(int a[],int n)
 {
 int i;
 for(i=0;i<n;i++)
 {
 if(i % 3==0)
 a[i]-=n;
 else
 a[i]+=n;
 }
 }
 main()
 {
 int c[5]={6,7,8,9,10},i;
 fun(c,5);
 for(i=0;i<5;i++)printf("%d,",c[i]);
 printf("\n");
 }

程序运行后的输出结果是(  )。

共 1 分 

第43题

若有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
void fun(int a[],int n)
 {
 int t,i,j;
 for(i=1;ia[j])
 {
 t=a[i];
 a[i]=a[j];
 a[j]=t;
 }
 }
 main()
 {
 int c[10]={10,9,8,7,6,5,4,3,2,1},i;
 fun(c,10);
 for(i=0;i<10;i++)printf("%d,",c[i]);
 printf("\n");
 }

则程序的输出结果是(  )。

共 1 分 

第44题

以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 void f(int b[],int n,int flag)
 {
 int i,j,t;
 for(i=0;i<n-1;i++)
 for(j=i+1;j<n;j++)
 if(flag?b[i]>b[j]:b[i]<b[j])
 {
 t=b[i];
 b[i]=b[j];
 b[j]=t;
 }
 }
 main()
 {
 int a[10]={5,4,3,2,1,6,7,8,9,10},i;
 f(&a[2],5,0);
 f(a,5,1);
 for(i=0;i<10;i++)
 printf("%d,",a[i]);
 }

程序运行后的输出结果是(  )。

共 1 分 

第45题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
void f(int *p);
 main()
 {
 int a[5]={1,2,3,4,5},*r=a;
 f(r);
 printf("%d\n",*r);
 }
 void f(int *p)
 {
 p=p+3;
 printf("%d,",*p);
 }

程序运行后的输出结果是(  )。

共 1 分 

第46题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
void f(int *q)
 {
 int i=0;
 for(;i<5;i++)(*q)++;
 }
 main()
 {
 int a[5]={1,2,3,4,5},i;
 f(a);
 for(i=0;i<5;i++)
 printf("%d,",a[i]);
 }

程序运行后的输出结果是(  )。

共 1 分 

第47题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 #define N 8
 void fun(int *x,int i)
{
 *x=*(x+i);
 }
 main()
 {
 int a[N]={1,2,3,4,5,6,7,8},i;
 fun(a,2);
 for(i=0;i<N/2;i++)
 {
 printf("%d,",a[i]);
 }
 printf("\n");
 }

程序运行后的输出结果是(  )。

共 1 分 

第48题

有如下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
void change(int *array,int len)
 {
 for(;len>=0;len--)
 array[len]+=2;
 }
 main()
{
 int i,array[5]={1,2};
 change(array,4);
 for(i=0;i<4;i++)
 printf("%d,",array[i]);
 printf("\n");
 }

程序运行后的输出结果是(  )。

共 1 分 

第49题

有如下程序:

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
void change(int * array,int len)
 {
 for(;len>=0;len--)array[len]-=1;
 }
 main()
 {
 int i, array[5]={2,2};
 change(array,4);
 for(i=0;i<5;i++)printf("%d,",array[i]);
 printf("\n");
}

程序运行后的输出结果是(  )。

共 1 分 

第50题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 void fun(int *a,int n)
 {
 int t,i,j;
 for(i=0;i<n-1;i++)
 for(j=i+1;j<n;j++)
 if(a[i]<a[j])
 {
 t=a[i];
 a[i]=a[j];
 a[j]=t;
 }
 }
 main()
 {
 int c[10]={1,2,3,4,5,6,7,8,9,0},i;
 fun(c+4,6);
 for(i=0;i<10;i++)printf("%d,",c[i]);
 printf("\n");
}

程序的运行结果是(  )。

共 1 分 

第51题

有以下程序(函数fun只对下标为偶数的元素进行操作):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
void fun(int *a,int n)
 {
 int i,j,k,t;
 for(i=0;ia[k])k=j;
 t=a[i];
 a[i]=a[k];
 a[k]=t;
 }
 }
 main()
 {
 int aa[10]={1,2,3,4,5,6,7},i;
 fun(aa,7);
for(i=0;i<7;i++)printf("%d,",aa[i]);
 printf("\n");
 }

程序运行后的输出结果是(  )。

共 1 分 

第52题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
void fun(int *x,int s,int n)
 {
 int i;
 for(i=s;i>=n;i--)
 *(x+i+3)=*(x+i);
 }
 main()
 {
 int m[]={0,1,2,3,4,5,6,7,8,9},k;
 fun(m,10-4,3);
 for(k=0;k<10;k++)
 printf("%d",m[k]);
 }

程序的运行结果是(  )。

共 1 分 

第53题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
 void fun(int *x,int s, int e)
 {
 int i,j,t;
 for(i=s,j=e;i<j;i++,j--)
 {
 t=*(x+i);
 *(x+i)=*(x+j);
 *(x+j)=t;
 }
 }
 main()
 {
 int m[]={0,1,2,3,4,5,6,7,8,9},k;
 fun(m,0,3);
 fun(m+4,0,5);
 fun(m,0,9);
 for(k=0;k<10;k++)printf("%d",m[k]);
 }

程序的运行结果是(  )。

共 1 分 

第54题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
 void fun(int *s,int n1,int n2)
 {
 int i,j,t;
 i=n1;
 j=n2;
 while(i<j)
 {
 t=s[i];
 s[i]=s[j];
 s[j]=t;
 i++;
 j--;
 }
 }
 main()
 {
 int a[10]={1,2,3,4,5,6,7,8,9,0},k;
fun(a,0,3);
 fun(a,4,9);
 fun(a,0,9);
 for(k=0;k<10;k++)
 printf("%d",a[k]);
 printf("\n");
 }

程序运行的结果是(  )。

共 1 分 

第55题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
 void fun(int *s,int n1,int n2)
 {
 int i,j,t;
 i=n1;
 j=n2;
 while(i<j)
 {
 t=*(s+i);
 *(s+i)=*(s+j);
*(s+j)=t;
 i++;
 j--;
 }
 }
 main()
 {
 int a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;
 fun(p,0,3);
 fun(p,4,9);
 fun(p,0,9);
 for(i=0;i<10;i++)
 printf("%d",*(a+i));
 printf("\n");
 }

程序运行后的输出结果是(  )。

共 2 分 

第56题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
void fun(int *s,int t,int *k)
 {
 int p;
 for(p=0,*k=p;ps[*k])*k=p;
 }
 main()
 {
 int a[10]={11,12,13,14,15,16,20,18,19,10},k;
 fun(a,10,&k);
 printf("%d,%d\n",k,a[k]);
 }

程序运行后的输出结果是(  )。

共 2 分 

第57题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int fun(char s[])
 {
 int n=0;
 while(*s<='9'&&*s>='0')
{
 n=10*n+*s-'0';
 s++;
 }
 return (n);
 }
 main()
 {
 char s[10]={'6','1','*','4','*','9','*','0','*'};
 printf("%d\n",fun(s));
 }

程序的运行结果是(  )。

共 2 分 

第58题

设有定义 int x[2][3]; 则以下关于二维数组x的叙述中错误的是(  )。

共 2 分 

第59题

以下定义数组的语句中错误的是(  )。

共 2 分 

第60题

以下错误的定义语句是(  )。

共 2 分 

第61题

若有定义语句:

1
int m[][3]={1,2,3,4,5,6,7};

则与该语句等价的是 ( )。

共 2 分 

第62题

若有定义:

1
int a[2][3];

以下选项中对a数组元素正确引用的是(  )。

共 2 分 

第63题

有如下程序:

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
main()
 {
 int i,k;
 int array[4][2]={{1,2},{4,9},{6}};
for(i=0;i<2;i++)
 for(k=0;k<4;k++)
 {
 printf("%d,",array[k][i]);
 }
 printf("\n");
 }

程序运行后的输出结果是(  )。

共 2 分 

第64题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
main()
 {
 int i,k;
 int array[4][2]={{1,0},{0},{2,9},{3}};
 for(i=0;i<2;i++)
 for(k=0;k<3;k++)
 {
 printf("%d,",array[k][i]);
 }
 printf("\n");
}

程序运行后的输出结果是(  )。

共 2 分 

第65题

有以下程序

1
2
3
4
5
6
7
8
#include <stdio.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+=b[i][b[j][i]];
 printf("%d\n",t);
 }

程序运行后的输出结果是(  )。

共 2 分 

第66题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
main()
 {
 int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}};
 int i,j,k,t;
 for(i=0;i<4;i++)
 for(j=0;j<3;j++)
 for(k=j+1;k<4;k++)
 if(a[j][i]>a[k][i])
 {
 t=a[j][i];
 a[j][i]=a[k][i];
 a[k][i]=t;
 }
 for(i=0;i<4;i++)
 printf("%d,",a[i][i]);
 }

程序运行后的输出结果是(  )。

共 2 分 

第67题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 main()
 {
 int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t;
 for(i=0;i<3;i++)
 for(k=i+1;k<4;k++)
 if(a[i][i]<a[k][k])
 {
 t=a[i][i];
 a[i][i]=a[k][k];
 a[k][k]=t;
 }
 for(i=0;i<4;i++)
 printf("%d,",a[0][i]);
 }

程序运行后的输出结果是(  )。

共 2 分 

第68题

有以下程序

1
2
3
4
5
6
7
#include <stdio.h>
main()
 {
int i,t[][3]={9,8,7,6,5,4,3,2,1};
 for(i=0;i<3;i++)
 printf("%d,",t[2-i][i]);
 }

程序执行后的输出结果是(  )。

共 2 分 

第69题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
main()
 {
 char a[4][4]={' '};
 int i,j;
 for(i=0;i<4;i++)
 {
 a[i][0]=a[i][3]='#';
 for(j=1;j<3;j++)
 {
 a[0][j]=a[3][j]='#';
 if((i!=0)&&(i!=3))a[i][j]='o';
 }
 }
 for(i=1;i<3;i++)
 {
 for(j=0;j<4;j++)
 printf("%2c",a[i][j]);
printf("\n");
 }
 }

程序的运行结果是(  )。

共 2 分 

第70题

若有定义语句:

1
char s[3][10],(*k)[3],*p;

则以下赋值语句正确的是(  )。

共 2 分 

第71题

有定义语句:

1
int *p[4];

以下选项中与此语句等价的是(  )。

共 2 分 

第72题

若有定义 int(* pt)[3]; 则下列说法中正确的是(  )。

共 2 分 

第73题

若有定义语句:

1
2
int a[4][10],*P,*q[4];
且0≤i<4

则错误的赋值是(  )。

共 2 分 

第74题

若有定义语句:

1
int a[2][3],*p[3];

则以下语句中正确的是(  )。

共 2 分 

第75题

若有定义:

1
int w[3][5];

则以下不能正确表示该数组元素的表达式是(  )。

共 2 分 

第76题

设有以下说明和语句:

1
int x[3][4],(* p)[4];p=a;

则与表达式*(*p+2)等价的选项是(  )。

共 2 分 

第77题

有以下程序

1
2
3
4
5
6
7
#include <stdio.h>
main()
 {
 int x[3][2]={0},i;
 for(i=0;i<3;i++)scanf("%d",x[i]);
 printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);
 }

若运行时输入:2 4 6<回车>,则输出结果为(  )。

共 2 分