大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > C技巧 > 2013年计算机二级C单选押密试题及答案(3)

2013年计算机二级C单选押密试题及答案(3)(1)

关键词:计算机二级C语言考试模拟题真题  阅读(1738) 赞(16)

[摘要]本文是2013年计算机二级C单选押密试题及答案(3),与大家分享。

  一、单项选择题

  1.以下程序的输出结果是( B)。

  main( )

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

  int i;

  i=8;

  p=a+i;

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

  }

  A) 6

  B) 6789

  C) ‘6’

  D) 789

  2.以下程序的运行结果是( A )。

  #include "stdio.h"

  main( )

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

  }

  A) 运行后报错

  B) 6 6

  C) 6 11

  D) 5 5

  3.若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是( C )。

  int t[3][3],*pt[3],k;

  for(k=0; k<3; k++) pt[k]=&t[k][0];

  A) t[2][0]

  B) t[2][2]

  C) t[l][2]

  D) t[2][l]

  4.下面程序把数组元素中的最大值放入a[0]中,则在if语句中的条件表达式应该是( B )。

  main( )

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

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

  if(________) *a=*p;

  printf("%d",*a);

  }

  A) p>a

  B) *p>a[0]

  C) *p>*a[0]

  D) *p[0]> *a[0]

  5.以下程序的输出结果是( A )。

  #include

  #include

  main( )

  {char *a="abcdefghi";

  int k;

  fun (a); puts(a);

  }

  fun(char *s)

  {int x, y;

  char c;

  for(x=0, y=strlen(s)-1; x

  {c=s[y]; s[y]=s[x]; s[x]=c;}

  }

  A) ihgfedcba

  B) abcdefghi

  C) abcdedeba

  D) ihgfefghi

  6.以下程序的输出结果是( B )。

  main( )

  {char *s="12134211";int v[4]={0,0,0,0},k,i;

  for(k=0;s[k];k++)

  {switch(s[k])

  {case '1':i=0;

  case '2':i=1;

  case '3':i=2;

  case '4':i=3;

  }

  v[i]++;

  }

  for(k=0;k<4;k++) printf("%d ",v[k]);

  }

  A) 4 2 1 1

  B) 0 0 0 8

  C) 4 6 7 8

  D) 8 8 8 8

  7.以下程序的输出结果是( D )。

  #include

  main( )

  {char *p1,*p2,str[50]="ABCDEFG";

  p1="abcd";p2="efgh";

  strcpy(str+1,p2+1);strcpy(str+3,p1+3);

  printf("%s",str);str+1表示数组第二个数据B,p2+1指向f,即把fgh复制到BCD的位置,同时复制‘\0’

  }

  A) AfghdEFG

  B) Abfhd

  C) Afghd

  D) Afgd

  8.若有以下定义和语句:

  double r=99,*p=&r;

  *p=r;

  则以下正确的叙述是( D )。

  A) 以上两处的*p含义相同,都说明给指针变量p赋值

  B) 在"double r=99,*p=&r; "中,把r的地址赋给了p所指的存储单元

  C) 语句"*p=r; "把变量r的值赋给指针变量p

  D) 语句"*p=r; "取变量r的值放回r中

  9.若已定义:

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

  其中0≤ i ≤9, 则对a数组元素不正确的引用是( D )。

  A) a[p-a]

  B) *(&a[i])

  C) p[i]

  D) *(*(a+i))=*a[i]

  10.下列程序执行后的输出结果是( A )。

  void func(int *a, int b[ ])

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

  main()

  {int a, b[5];

  a=0; b[0]=3;

  func(&a, B);

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

  }

  A) 6

  B) 3

  C) 8

  D) 9

  11.下列程序执行后的输出结果是( B )。

  main()

  {int a[3][3], *p, i;

  p=&a[0][0];

  for(i=0; i<9; i++) p[i]=i+1;

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

  }

  A) 3

  B) 6

  C) 9

  D) 随机数

  12.请选出正确的程序段( C )。

  A) int *p;

  B) int *s, k;

  C) int *s, k;

  D) int *s, k;

  scanf("%d", p); *s=100; char *p, c; char *p, c;

  s=&k; s=&k;

  p=&c; p=&c;

  *p='a'; s=p;

  *s=1;

  13.已知指针p的指向如下图所示,则执行语句 *- -p; 后*p的值是( B )。

  a[0] a[1] a[2] a[3] a[4]

  1020304050

  A) 30

  B) 20

  C) 19

  D) 29

  14.设已有定义: char *st="how are you";下列程序段中正确的是( A )。

  A) char a[11], *p; strcpy(p=a+1, &st[4]);

  B) char a[11]; strcpy(++a, st);

  C) char a[11]; strcpy(a, st);

  D) char a[ ], *p; strcpy(p=&a[1], st+2);

  15.以下程序的输出结果是( C )。

  main( )

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

  for(i=0; i<4; i+=2) printf("%d ", p[i]);

  }

  A) 5 2

  B) 5 1

  C) 5 3

  D) 9 7

  16.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是( B )。

  A) i=*p;

  B) *p=*&j;

  C) i=&j;

  D) i=**p;

  17.以下定义语句中,错误的是(D )。

  A) int a[ ]={1,2};

  B) char *a[3];

  C) char s[10]="test";

  D) int n=5,a[n];

  18.下列程序段的输出结果是(A )。

  void fun(int *x, int *y)

  {printf("%d %d", *x, *y); *x=3; *y=4;}

  main()

  {int x=1,y=2;

  fun(&y, &x);

  printf("%d %d", x, y);

  }

  A) 2 1 4 3

  B) 1 2 1 2

  C) 1 2 3 4

  D) 2 1 1 2

«上一页12345下一页»


相关评论