计算机等级考试二级C语言一维数组与指针.docx

上传人:b****5 文档编号:6699302 上传时间:2023-01-09 格式:DOCX 页数:21 大小:21.21KB
下载 相关 举报
计算机等级考试二级C语言一维数组与指针.docx_第1页
第1页 / 共21页
计算机等级考试二级C语言一维数组与指针.docx_第2页
第2页 / 共21页
计算机等级考试二级C语言一维数组与指针.docx_第3页
第3页 / 共21页
计算机等级考试二级C语言一维数组与指针.docx_第4页
第4页 / 共21页
计算机等级考试二级C语言一维数组与指针.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

计算机等级考试二级C语言一维数组与指针.docx

《计算机等级考试二级C语言一维数组与指针.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级C语言一维数组与指针.docx(21页珍藏版)》请在冰豆网上搜索。

计算机等级考试二级C语言一维数组与指针.docx

计算机等级考试二级C语言一维数组与指针

2010年计算机等级考试二级C语言一维数组与指针

  一、选择题

  

(1)有以下程序

  以下是引用片段:

  main()

  {inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;

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

  }

  程序运行后的输出结果是

  A)16  B)10  C)8  D)6

  

(2)有以下程序

  以下是引用片段:

  main()

  {inta[]={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

  (3)有以下程序

  以下是引用片段:

  voidsort(inta[],intn)

  {inti,j,t;

  for(i=0;i

  for(j=i+1;j

  if(a[i]

  }

  main()

  {intaa[10]={1,2,3,4,5,6,7,8,9,10},i;

  sort(aa+2,5);

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

  printf("\n");

  }

  程序运行后的输出结果是

  A)1,2,3,4,5,6,7,8,9,10,B)1,2,7,6,3,4,5,8,9,10,

  C)1,2,7,6,5,4,3,8,9,10,D)1,2,9,8,7,6,5,4,3,10,

  (4)有以下程序

  以下是引用片段:

  voidsum(inta[])

  {a[0]=a[-1]+a[1];}

  main()

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

  sum(&a[2]);

  printf("%d\n",a[2]);

  }

  程序运行后的输出结果是

  A)6  B)7  C)5  D)8

  (5)有以下程序

  以下是引用片段:

  voidswap1(intc0[],intc1[])

  {intt;

  t=c0[0];c0[0]=c1[0];c1[0]=t;

  }

  voidswap2(int*c0,int*c1)

  {intt;

  t=*c0;*c0=*c1;*c1=t;

  }

  main()

  {inta[2]={3,5},b[2]={3,5};

  swap1(a,a+1);swap2(&b[0],&b[1]);

  printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);

  }

  程序运行后的输出结果是

  A)3553  B)5335  C)3535  D)5353

  (6)有以下程序

  以下是引用片段:

  main()

  {

  intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

  while(i++<7)if(p[i]%2)j+=p[i];

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

  }

  程序运行后的输出结果是

  A)42  B)45  C)56  D)60

  (7)有以下程序

  以下是引用片段:

  voidf(int*x,int*y)

  {intt;

  t=*x;*x=*y;*y=t;

  }

  main()

  {inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;

  p=a;q=&a[7];

  while(p

  {

  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,

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

  A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

  B)数组名代表的是数组所占存储区的首地址,其值不可改变

  C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

  D)可以通过赋初值的方式确定数组元素的个数

  (9)有以下程序

  以下是引用片段:

  #defineN20

  fun(inta[],intn,intm)

  {inti,j;

  for(i=m;i>=n;i--)

  a[i+1]=a[i];

  }

  main()

  {

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

  fun(a,2,9);

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

  printf("%d",a[i]);

  }

  程序运行后的输出结果是

  A)10234  B)12344  C)12334  D)12234

  (10)有以下程序

  以下是引用片段:

  prt(int*m,intn)

  {

  inti;

  for(i=0;i

  m[i]++;

  }

  main()

  {

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

  prt(a,5);

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

  printf("%d,",a[i]);

  }

  程序运行后的输出结果是:

  A)1,2,3,4,5,  B)2,3,4,5,6,  C)3,4,5,6,7,  D)2,3,4,5,1,

  (11)有以下程序

  以下是引用片段:

  main()

  {inta[]={1,2,3,4,5,6,7,8,9,0},*p;

  for(p=a;p

  printf("%d,",*p);

  }

  程序运行后的输出结果是

  A)1,2,3,4,5,6,7,8,9,0,  B)2,3,4,5,6,7,8,9,10,1,

  C)0,1,2,3,4,5,6,7,8,9,  D)1,1,1,1,1,1,1,1,1,,1,

  (12)有以下程序

  以下是引用片段:

  intf(inta)

  {returna%2;}

  main()

  {ints[8]={1,3,5,2,4,6},i,d=0;

  for(i=0;f(s[i]);i++)d+=s[i];

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

  }

  程序运行后的输出结果是

  A)9  B)11  C)19  D)21

  (13)设有定义语句

  intx[6]={2,4,6,8,5,7},*p=x,i;

  要求依次输出x数组6个元素中的值,不能完成此操作的语句是

A)for(i=0;i<6;i++)printf("-",*(p++)); B)for(i=0;i<6;i++)printf("-",*(p+i));

 C)for(i=0;i<6;i++)printf("-",*p++);D)for(i=0;i<6;i++)printf("-",(*p)++);

  (14)有以下程序

  以下是引用片段:

  #include

  main()

  {inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;

  *q=*(p+5);

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

  }

  程序运行后的输出结果是

  A)运行后报错  B)66  C)611  D)510

  (15)已有定义:

inti,a[10],*p;,则合法的赋值语句是

  A)p=100;  B)p=a[5];  C)p=a[2]+2;  D)p=a+2;

 

  (16)有以下程序

  以下是引用片段:

  main()

  {intx[]={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+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]);

  printf("\n");

  }

  程序运行后的输出结果是:

  A)75310246  B)01234567  C)76310462  D)13570246

  (17)有以下程序段

  inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;

  b=p[5];

  b中的值是

  A)5  B)6  C)8  D)9

  (18)有以下程序

  voidswap1(intc[])

  {intt;

  t=c[0];c[0]=c[1];c[1]=t;

  }

  voidswap2(intc0,intc1)

  {intt;

  t=c0;c0=c1;c1=t;

  }

  main()

  {inta[2]={3,5},b[2]={3,5};

  swap1(A);swap2(b[0],b[1]);

  printf(“%d%d%d%d\n”,a[0],a[1],b[0],b[1]);

  }

  其输出结果是

  A)5353  B)5335  C)3535  D)3553

  (19)有以下程序

  以下是引用片段:

  voidsum(int*A)

  {a[0]=a[1];}

  main()

  {intaa[10]={1,2,3,4,5,6,7,8,9,10},i;

  for(i=2;i>=0;i--)&nb

  sp;sum(&aa[i]);

  printf(“%d\n”,aa[0]);

  }

执行后的输出结果是

A)4  B)3  C)2  D)1

  (20)有以下程序

  以下是引用片段:

  voidsort(inta[],intn)

  {inti,j,t;

  for(i=0;i

  for(j=i+2;j

  if(a[i]

  }

  main()

  {intaa[10]={1,2,3,4,5,6,7,8,9,10},i;

  sort(aa,10);

  for(i=0;i<10;i++)printf(“%d”,aa[i]);

  printf(“\n”);

  }

  其输出结果是

  A)1,2,3,4,5,6,7,8,9,10,  B)10,9,8,7,6,5,4,3,2,1,

  C)9,2,7,4,5,6,3,8,1,10,  D)1,10,3,8,5,6,7,4,9,2,

  (21)以下能正确定义一维数组的选项是

  A)int  num[];             B)#define N100

  Int num[N];

  C)int num[0..100];          D)int N=100;

  int  num[N];

  (22)有以下程序

  以下是引用片段:

  main()

  {intp[7]={11,13,14,15,16,17,18},i=0,k=0;

  while(i<7&&p[i]%2){k=k+p[i];i++;}

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

  }

  执行后输出结果是

  A)58  B)56  C)45  D)24

  (23)有以下程序

  以下是引用片段:

  main()

  {intx[8]={8,7,6,5,0,0},*s;

  s=x+3

  printf("%d\n",s[2]);

  }

  执行后输出结果是

  A)随机值  B)0  C)5  D)6

  (24)以下函数的功能是:

通过键盘输入数据,为数组中的所有元素赋值。

  以下是引用片段:

  #defineN10

  voidarrin(intx[N])

  {inti=0;

  while(i

  scanf("%d",);

  }

  在下划线处应填入的是

  A)x+i  B)&x[i+1]  C)x+(i++)  D)&x[++i]

  (25)以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序

  以下是引用片段:

  voidsort(inta[],intn)

  {inti,j,t;

  for(i=0;i

  for(j=i+1,j

  if(a[i]

  }

  main()

  {intaa[10]={1,2,3,4,5,6,7,8,9,10},i;

  sort(&aa[3],5);

  for(i=o;i<10;i++)print(“%d,”,aa[i]);

  printf(‘\n”);

  }

  程序运行后的输出结果是

  A)1,2,3,4,5,6,7,8,9,10 B)10,9,8,7,6,5,4,3,2,1,

  C)1,2,3,8,7.6.5.4.9,10  D)1,2,10,9,8,7,6,5,4,3

  (26)以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。

  以下是引用片段:

  voidreverse(inta[],intn)

  {inti,t;

  for(i=0;i

  {t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

  }

  main()

  {intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;

  reverse(b,8);

  for(i=6;i<10;i++)s+=b[i];

  printf(“%d\n”,s);

  }

  程序运行后的输出结果是

  A)22  B)10  C)34  D)30

  (27)以下程序调用findmax函数返回数组中的最大值

  以下是引用片段:

  findmax(int*a,intn)

  {int*p,*s;

  for(p=a,s=a;p-a

  if()s=p;

  return(*s);

  }

  main()

  {intx[5]={12,21,13,6,18};

  printf("%d\n",findmax(x,5));

  }

  在下划线处应填入的是

  A)p>s  B)*p>*s  C)a[p]>a[s]  D)p-a>p-s

  (28)若有定义:

intaa[8];。

则以下表达式中不能代表数组元aa[1]的地址的是

  A)&aa[0]+1  B)&aa[1]  C)&aa[0]++  D)aa+1

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

  以下是引用片段:

  f(intb[],intm,intn)

  {inti,s=0;

  for(i=m;i

  returns;

  }

  main()

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

  x=f(a,3,7);

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

  }

  A)10  B)18  C)8  D)15

  (30)假定int类型变量占用两个字节,其有定义:

intx[10]={0,2,4};,则数组x在内存中所占字节数是

  A)3  B)6  C)10  D)20

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

  以下是引用片段:

  main()

  {inti,a[10];

  for(i=9;i>=0;i--)a[i]=10-i;

  printf(“%d%d%d”,a[2],a[5],a[8]);

  }

  A)258  B)741  C)852  D)369

  (32)下列程序的输出结果是

  A)非法  B)a[4]的地址  C)5  D)3

  以下是引用片段:

  main()

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

  printf(“%d”,*--p);

  }

  (33)下面程序的输出结果是

  A)0  B)1  C)10  D)9

  以下是引用片段:

  main()

  {inta[]={1,2,3,4,5,6,7,8,9,0,},*p;

  p=a;

  printf(“%d\n”,*p+9);

  }

  (34)当调用函数时,实参是一个数组名,则向函数传送的是

  A)数组的长度  B)数组的首地址  C)数组每一个元素的地址  D)数组每个元素中的值

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

  A)20  B)21  C)22  D)23

  以下是引用片段:

  main()

  {inti,k,a[10],p[3];

  k=5;

  for(i=0;i<10;i++)a[i]=i;

  for(i=0;i<3;i++)p[i]=a[i*(i+1)];

  for(i=0;i<3;i++)k+=p[i]*2;

  printf(“%d\n”,k);

  }

  (36)以下函数返回a所指数组中最小的值所在的下标值

  以下是引用片段:

  fun(int*a,intn)

  {inti,j=0,p;

  p=j;

  for(i=j;i

  if(a[i]

  return(p);

  }

  在下划线处应填入的是

  A)i=p  B)a[p]=a[i]  C)p=j  D)p=i

  (37)有如下说明

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

  则数值为9的表达式是

  A)*P+9  B)*(P+8)  C)*P+=9  D)P+8

  (38)有如下程序

  以下是引用片段:

  main0

  {intn[5]={0,0,0},i,k=2;

  for(i=0;i

  printf(“%d\n”,n[k]);

  }

  该程序的输出结果是

  A)不确定的值  B)2  C)1  D)0

  (39)执行下面的程序段后,变量k中的值为

  A)不定值  B)33  C)30  D)10

  intk=3,s[2];

  s[0]=k;k=s[1]*10;

  (40)若已定义:

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

  其中0≤i≤9,则对a数组元素不正确的引用上

  A)a[p-a]  B)*(&a[i])  C)p[i]  D)a[10] 

  (41)下列程序执行后的输出结果是

  A)6  B)7  C)8  D)9

  以下是引用片段:

  voidfunc(int*a,intb[])

  {b[0]=*a+6;}

  main()

  {inta,b[5];

  a=0;b[0]=3;

  func(&a,b);printf("%d\n,b[0]);

  }

  (42)若有以下调用语句,则不正确的fun函数的首部是

  A)voidfun(intm,intx[])B)voidfun(ints,inth[41])

  C)voidfun(intp,int*s)D)voidfun(intn,inta)

  以下是引用片段:

  main()

  {…

  inta[50],n;

  …

  fun(n,&a[9]);

  …

  }

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

  A)6  B)6789  C)'6'  D)789

  以下是引用片段:

  main()

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

  inti;

  i=8;

  p=a+I;

  printf("%s\n",p-3);

  }

  (44)以下程序的运行结果是

  A)运行后报错  B)66  C)612  D)55

  以下是引用片段:

  #include"stdio.h"

  main()

  {

  inta[]={1,2,3,4,5,6,7,8,9,10,11,12,};

  int*p=a+5,*q=NULL;

  *q=*(p+5);

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

  }

  (45)下面程序把数组元素中的最大值放入a[0]中。

则在if语句中的条件表达式应该是

  A)p>a  B)*p>a[0]  C)*p>*a[0]  D)*p[0]>*a[0]

  以下是引用片段:

  main()

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

  for(i=o;i<10;i++,p++)

  if(________)*a=*p;

  printf("%d",*a);

  }

  (46)以下程序运行后,输出结果是

  A)10000  B)10010  C)00110  D)10100

  以下是引用片段:

  main()

  {inty=18,i=0,j,a[8];

  do

  {a[i]=y%2;i++

  y=y/2;

  }while(y>=1)

  for(j=i-1;j>=0;j--)printf("%d",a[j];

  printf("\n");

  }

  (47)设有如下定义:

  intarr[]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1