无忧首页企业系统我的无忧
无忧服务:
兼职活动培训
娱乐交友:
交友社区资讯
全职实习:
实习暑假寒假
微信号:school51
扫一下,立即关注
加关注
在线支付,立省10元
下载新版APP
===大学生成长生活平台===

2013年计算机二级考试C语言第九章课后题及参考答案

2013-03-18来源/作者:卫凯点击次数:981

第九章 数组

  一、 选择题

  9.1 若已定义:

  int a[ ]={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+i))

  答案:D

  9.2 以下程序段给数组所有元素输入数据,应在下划线处填入的是

  A)a+(i++)

  B)&a(i+1)

  C)a+i

  D)&a[++i]

  main()

  {

  int a[10],i=0;

  while(i<10)scanf("%d",_________);

  .

  .

  .

  }

  答案:D

  9.3 以下程序的输出结果是

  A)3

  B)4

  C)1

  D)2

  main()

  {

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

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

  }

  答案:A

  9.4、 以下程序的输出结果是

  A)不确定的值

  B)3

  C)2

  D)1

  main()

  {

  int n[2]={0},i,j,k=2;

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

  for(j=0;j<k;j++) n[j]=n[i]+1;

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

  }

  答案: A

  9.5 以下程序的输出结果是

  A)17

  B)18

  C)19

  D)20

  main()

  {

  int a[ ]={2,4,6,8,10},y=1,x,*p;

  p=&a[1];

  for(x=0;x<3;x++) y+=*(p+x);

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

  }

  答案: C

  9.6 以下程序的输出结果是

  A)6

  B)8

  C)4

  D)2

  main()

  {

  int a[10]={2,4,6,8},*p=a,i;

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

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

  }

  答案:A

计算机二级C语言章节练习在线测试
第9章 数组 马上检测

  9.7 以下程序的输出结果是

  A)720

  B)120

  C)24

  D)6

  f(int b[ ],int n)

  {

  int i,r=1;

  for(i=0;i<=n;i++)r=r*b[i];

  return r;

  }

  main()

  {

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

  x=f(a,3);

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

  }

  答案:B

  9.8 以下程序中若第一个printf语句输出的是194,则第二个printf语句的输出结果是

  A)212

  B)204

  C)1a4

  D)1a6

  main()

  {

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

  p=a;

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

  printf("%x\\n",p+9);

  }

  答案:D

  9.9 以下程序的输出结果是

  A)0987654321

  B)4321098765

  C)5678901234

  D)0987651234

  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},*p=a,i;

  fun(p,0,3); fun(p,4,9); fun(p,0,9);

  for(i=0;i<10;i++)printf("%d",*(a+i));

  }

  答案: C

  9.10 以下程序的输出结果是

  A) 4 4

  B) 2 2

  C) 2 4

  D) 4 6

  main()

  { int a[5]={2,4,6,8,10},*p,**k;

  p=a; k=&p;

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

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

  }

  答案: C

  9.11 当运行以下程序时输入三行,每行都是在第一列上开始,<CR>代表Enter键:

  a<CR>

  b<CR>

  cdef<CR>

  则程序的输出结果是

  A) abcdef

  B) a

  C) a

  D) a

  b b b

  c cd cdef

  d

  e

  f

  #include "stdio.h"

  #define N 6

  main()

  { char c[N]; int i=0;

  for(i=0;i<N;i++) c[i]=getchar();

  for(i=0;i<N;i++) putchar(c[i]);

  }

  答案: C

  9.12 若有定义和语句:

  int c[4][5], (*cp)[5];cp=c;

  则对c数组元素的引用正确的是

  A) cp+1

  B) *(cp+3)

  C) *(cp+1)+3

  D) *(cp+2)

  答案: D

计算机二级C语言章节练习在线测试
第9章 数组 马上检测

  9.13 若已定义:

  int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*prt)[3]=a,*p=a[0];

  则能正确表示数组元素a[1][2]的表达式是

  A) *((*prt+1)[2]

  B) *(*(p+5))

  C) (*prt+1)+2

  D)

  *(*(a+1)+2)

  答案: D

  9.14 若有定义和语句:

  int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*prt)[3]=a,*p[4],i;

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

  则不能够正确表示a数组元素的表达式是

  A) a[4][3]

  B) p[0][0]

  C) prt[2][2]

  D)

  (*(p+1))[1]

  答案: A

  9.15 以下程序的输出结果是

  A) 23

  B) 26

  C) 33

  D) 36

  main()

  { int aa[3][3]={{2},{4},{6}},i,*p=&aa[0][0];

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

  { if(i==0)

  aa[i][i+1]=*p+1;

  else ++p;

  printf("%d",*p);

  }

  printf("\\n");

  }

  答案: A

  9.16 以下程序的输出结果是

  A) 60

  B) 68

  C) 99

  D) 108

  main()

  { int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};

  int (*p)[4]=a,i,j,k=0;

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

  for(j=0; j<2; j++)

  k+=*(*(p+i)+j);

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

  }

  答案: A

  9.17 以下程序的输出结果是

  A) 1,5,9,

  B) 1,4,7,

  C) 3,5,7,

  D) 3,6,9,

  main()

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

  for(i=0; i<3; i++) printf("%d,",x[i][2-i]);

  }

  答案: C

  9.18 若有定义语句 int (*p)[M]; 其中的标识符p是

  A) M个指向整型变量的指针

  B) 指向M个整型变量的函数指针

  C) 一个指向具有M个整型元素的一维数组指针

  D) 具有M个指针元素的一维指针数组,每个元素都只能指向整型量

  答案: C

计算机二级C语言章节练习在线测试
第9章 数组 马上检测

  二、填空题

  9.19 若有以下定义:

  double w[10];

  则w数组元素下标的上限是____,下限是____。

  答案: 9 0

  9.20 以下程序的输出结果是____。

  main()

  { int a[]={2,4,6},*prt=&a[0],x=8,y,z;

  for(y=0; y<3; y++)

  z=(*(prt+y)<x)?*(prt+y):x;

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

  }

  答案:6

  9.21 以下程序的输出结果是____。

  main()

  { int arr[10],i,k=0;

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

  for(i=0; i<4; i++) k+=arr[i]+i;

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

  }

  答案:12

  9.22 以下程序的输出结果是____。

  #define N 5

  fun(char *s,char a,int n)

  { int j;

  *s=a; j=n;

  while(a<s[j]) j--;

  return j;

  }

  main()

  { char s[N+1]; int k,p;

  for(k=1; k<=N; k++) s[k]=\’\’\’\’A\’\’\’\’+k+1;

  printf("%d\\n",fun(s,\’\’\’\’E\’\’\’\’,N));

  }

  答案:3

  9.23 若输入3个整数3,2,1,则以下程序的输出结果是____.

  void sub(int n,int uu[])

  { int t;

  t=uu[n--]; t+=3*uu[n];

  n++;

  if(t>=10)

  { uu[n++]=t/10; uu[n]=t%10; }

  else uu[n]=t;

  }

  main()

  { int i,n,aa[10]={0};

  scanf("%d%d%d",&n,&aa[0],&aa[1]);

  for(i=1; i<n; i++) sub(i,aa);

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

  printf("\\n");

  }

  答案: 2721

  9.24 以下程序的输出结果是____.

  main()

  { int i,j,row,col,m;

  int arr[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};

  m=arr[0][0];

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

  for(j=0; j<3; j++)

  if(arr[i][j]<m)

  { m=arr[i][j]; row=i; col=j; }

  printf("%d,%d,%d\\n",m,row,col);

  }

  答案: -850,2,0

  9.25 以下findmax返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空。

  findmax(int s[],int t)

  { int k,p;

  for(p=0,k=p; p<t; p++)

  if(s[p]>s[k]) ____;

  return ____;

  }

  答案: k=p k

  9.26 以下程序统计从终端输入的字符中每个大写字母的个数,num[0]中统计字母A的个数,

  其它依次类推.用#号结束输入,请填空.

  #include "stdio.h"

  #include "ctype.h"

  main()

  { int num[26]={0},i; char c;

  while(____!=\’\’\’\’#\’\’\’\’)

  if(isupper(c)) num[___]+=1;

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

  if(num[i]) printf("%c: %d\\n",i+\’\’\’\’A\’\’\’\’,num[i]);

  }

  答案: (c=getchar()) c-\’\’\’\’A\’\’\’\’

计算机二级C语言章节练习在线测试
第9章 数组 马上检测




相关阅读



关于我们 | 联系我们 | 用户指南 | 网站地图 | 意见建议 | 会员注册 | 用户协议 | 隐私政策