计算机二级C语言巩固练习
  1.下列说法正确的是( )。
  A.在C语言中,可以使用动态内存分配技术定义元素个数可变的数组
  B.在c语言中,数组元素的个数可以不确定,允许随机变动
  C.在C语言中,数组元素的数据类型可以不一致
  D.在C语言中,定义一个数组后.就确定了它所容纳的元素的个数
  2.表达式“~0x11”的值是( )。
  A.0xFFEE
  B.0x71
  C.0x0071
  D.0xFFF1
  3.下列程序的输出结果是( )。
  main()
  { int p[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
  4.下列程序的输出结果是( )。
  #included stdi0.h>
字符串比较函数实现  #included string.h>
  void fun(int b[])
  { static int i=0;
  do
  { b[i]+=b[i+1];
  }while(++i<2);
  }
  main()
  { int k,a[5]={1,3,5,4,9};
  fun(a);
  for(k=0;k<5;k++)printf("%d",a[k]);
  }
  A.13579
  B.48579
  C.48549
  D.48999
  5.有以下程序:
  main()
  { int a=1,b=3,C=5,*P;
  int*p1=&a,*p2=&b,*p3=&c;
  *p=*p1*(*p2);
  }
  执行后的输出结果是( )。
  A.1
  B.2
  C.3
  D.4
  6.有以下程序:
  fun(int x)
  { int P;
  if(x==0 || x==l)return(3);
  p=x-fun(x-2);
  return p;
  }
  main()
  {printf("%d\n",fun(7));}
  程序执行后的输出结果是( )。
  A.7
  B.3
  C.2
  D.0
  7.下述程序的运行结果是( )。
  #included stdio.h>
  #included strin9.h>
  main()
  { char*s1="abDuj";
  char*s2="ABdUG";
  int t;
  t=strcmp(s1,s2);
  printf("%d",t);
  }
  A.正数
  B.负数
  C.零
  D.不确定的值
  8.下列程序中c的二进制值是( )。
  char a=2,b=4,c;
  c=a^b>>2;
  A.00000011
  B.00010100
  C.00011100
  D.00011000
  9.函数fseek()的正确调用形式是( )。
  A.fseek(位移量,起始点,文件类型指针);
  B.fseek(文件类型指针,位移量,起始点);
  C.fseek(文件类型指针,起始点,位移量);
  D.fseek(起始点,位移量,文件类型指针);
  10.下列叙述正确的是( )。
  A.C语言中的文件是流式文件,因此只能顺序存取数据
  B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
  C.在一个程序中当对文件进了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
  D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
  11.为了避免在嵌套的条件语句if else中产生二义性,C语言规定,else子句总是与( )配对。
  A.缩排位置相同if
  B.其前面最近的if
  C.其后面最近的if
  D.同一行上的if
  12.设有下列程序段:
  char str[]="HelloWorld":
  char* plr;
  ptr=str:
  执行上面的程序段后,*(ptr+10)的值为( )。
  A.’\0 ’
  B.’0’
  C.不确定的值
  D.’0’的地址
  13.有以下程序:
  void swap(char*x,char*y)
  { char t;
  t=*x;*x=*y;*y=t;
  }
  main()
  { char*s1="abe",*s2="123":
  swap(s1,s2);
  printf("%s,%s\n",s1,s2);
  }
  程序执行后的输出结果是( )。
  A.123,abe
  B.abc.123
  C.1bc,a23
  D.321,cba
  14.下列程序的运行结果是( )。
  #include
  main()
  { static char a[]="Languagef",b[]="programe":
  char*p1,*p2;int k;
  p1=a;p2=b;
  for(k=0;k<=8;k++)
  if(*(p1+k)==*(p2+k))
  printf("%c",*(p1+k)):
  }
  A.gae
  B.ang
  C.program
  D.有语法错
  15.下列程序的运行结果为( )。
  #define MAX(x,y)(x)>(y)?(x):(y)
  main()
  { int a=2,b=3,C=1,d=3,t:
  printf("%d\n",(MAX(a+h,c+d))*100):
  }
  A.500
  B.5
  C.4
  D.400
  参考答案及解析
  1.D。【解析】在C语言中,数组元素的个数是确定的,不允许随机变动,数组定义好后,它所能容纳的元素的个数也就确定了,并且同一个数组中所有元素都是同一类型。
  2.A。【解析】本题主要考查按位求反运算:十六进制整型常量的形式是以数字Ox开头的十六进制字符串;位求反运算的规则是:将二进制表示的运算对象按位取反,即将1变0,将0变1。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。