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

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

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

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

  21.当输入a1b2c3d4e时,以下程序的输出结果为( A )。

  #include

  main( )

  {char str[40];

  printf(“请输入含有四个数字字符的字符串:\n”);

  scanf(“%s”,str);

  insert(str);

  }

  insert(char str[ ])

  {int i;

  for(i=strlen(str);i>0;i--)

  {str[2*i]=str[i];

  str[2*i-1]= ‘ ’;

  }

  printf(“\n结果是:%s”, str);

  }

  A) a 1 b 2 c 3 d 4 e

  B) 1 2 3 4

  C) a 1 b 2

  D) 因输入错误,程序出错

  22.在下列叙述中,错误的一条是( A )。

  A) 主函数main中定义的变量在整个文件或程序中有效

  B) 不同函数中,可以使用相同名字的变量

  C) 函数中的形式参数是局部变量

  D) 在一个函数内部,可在复合语句中定义变量,这些变量只在本复合语句中有效

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

  #include

  main( )

  {int i;

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

  as ( );

  }

  as( )

  {int lv=0;

  static int sv=0;

  printf(“lv=%d, sv=%d”, lv, sv);

  lv++;

  sv++;

  }

  A) lv=0,sv=0,lv=0,sv=1

  B) lv=0,sv=0,lv=1,sv=1

  C) lv=0,sv=0,lv=0,sv=0

  D) lv=0,sv=1,lv=0,sv=1

  24.在下列叙述中,错误的一条是( B )。

  A) 全局变量存放在静态存储区中,在程序开始执行时就给全局变量分配存储区,程序执行完才释放

  B) 在有参函数中,形参在整个程序一开始执行时便分配内存单元

  C) 用数组名作函数实参和形参时,应在主调函数和被调用函数中分别定义数组

  D) 在同一个源文件中,全局变量与局部变量同名时,在局部变量的作用范围内,全局变量不起作用

  25.在下列语句中,不正确的是( D )。

  A) c=2*max(a,B);  B) m=max(a,max(b,C));

  C) printf(“%d”,max(a,B));

  D) int max(int x,int max(int y,int z));

  26.若输入1.5、2.5,以下程序的输出结果为( C )。

  main( )

  {int max(float x, float y);

  float a, b;

  int c;

  scanf(“%f, %f” , &a, &B);

  c=max(a, B);

  printf(“%d”, C);

  }

  max(float x, float y)

  {float z;

  z=x>y ? x : y;

  return(z);

  }

  A) 1

  B) 2.5

  C) 2

  D) 3

  27、下列程序结构中,正确的是( D )。

  A) main()

  {float a,b,c;

  scanf(“%f,%f”,&a,&B);

  c=add(a,B);

  …

  }

  int add(float x,float y)

  { … }

  B) main()

  {float a,b,c;

  scanf(“%f,%f”,&a,&B);

  c=add(a,B);

  …

  }

  float add(float x,float y)

  { … }

  C) float add();

  main()

  {float a,b,c;

  scanf(“%f,%f”,&a,&B);

  c=add(a,B);

  …

  }

  float add(float x,float y)

  { … }

  D) float add(float x,float y)

  { … }

  main()

  {float a,b,c;

  scanf(“%f,%f”,&a,&B);

  c=add(a,B);

  …

  }

  28.在下列叙述中,错误的一条是( B )。

  A) scanf函数可以用来输入任何类型的多个数据

  B) 数组名作函数参数时,也采用“值传递”方式

  C) 如果形参发生改变,不会改变主调函数的实参值

  D) 函数的实参与形参的类型应一致

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

  main()

  {int i=1,j=3;

  printf(“%d”,i++);

  {int i=0;

  i+=j*2;

  printf(“%d,%d”,i,j);

  }

  printf(“%d,%d\n”,i,j);

  }

  A) 1,6,3,1,3

  B) 1,6,3,2,3

  C) 1,6,3,6,3

  D) 1,7,3,2,3

  30.C语言中形参的缺省存储类别是( A )。

  A) 自动(auto)

  B) 静态(static)

  C) 寄存器(register)

  D) 外部(extern)

  31.设有如下函数:

  ggg(float x)

  {printf(“\n%d”, x*x);}

  则函数的类型为( C )。

  A) 与参数x的类型相同

  B) void

  C) int

  D) 无法确定

  32.C语言规定,程序中各函数之间( A )

  A) 既允许直接递归调用也允许间接递归调用

  B) 不允许直接递归调用也不允许间接递归调用

  C) 允许直接递归调用不允许间接递归调用

  D) 不允许直接递归调用允许间接递归调用

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

  main()

  {int i=2,p;

  p=f(i,i+1);

  printf(“%d”,p);

  }

  int f(int a,int B)

  {int c;

  c=a;

  if(a>B) c=1;

  else

  if(a==B) c=0;

  else c=-1;

  return(C);

  }

  A) -1

  B) 0

  C) 1

  D) 2

  34.以下程序的输出结果为( B )。

  f(int b[ ], int n)

  {int i, r;

  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);

  }

  A) 720

  B) 120

  C) 24

  D) 6

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

  f(int a)

  {int b=0;

  static c=3;

  a=c++, b++;

  return(a);

  }

  main( )

  {int a=2, i, k;

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

  k=f(a++);

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

  }

  A) 3

  B) 0

  C) 5

  D) 4

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

  int d=1;

  fun(int p)

  {int d=5;

  d+=p++;

  printf(“%d”, D);

  }

  main( )

  {int a=3;

  fun(a);

  d+=a++;

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

  }

  A) 84

  B) 96

  C) 94

  D) 85

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

  fun(int k)

  {if(k>0) fun(k-1);

  printf(“%d”, k);

  }

  main( )

  {int w=5;

  fun(w);

  }

  A) 54321

  B) 012345

  C) 12345

  D) 543210

  38.以下说法中正确的是( C )。

  A) C语言程序总是从第一个定义的函数开始执行

  B) 在C语言程序中,被调用的函数必须在main()函数中定义

  C) C语言程序总是从main()函数开始执行

  D) C语言程序中的main()函数必须放在程序的开始部分

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

  int abc(int u, int v);

  main()

  {int a=24, b=16, c;

  c=abc (a, B);

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

  }

  int abc(int u, int v)

  {int w;

  while(v)

  {w= u%v; u=v; v=w;}

  return u;

  }

  A) 6

  B) 7

  C) 8

  D) 9



相关评论