龙旗控股笔试题和面试题答案

新高考网

  龙旗控股笔试题分享,欢迎大家阅读和练习!
  一、选择题

  1. 下列程序的运行结果是

  # define A 5

  # define B A+1

  main( )

  {

  int a;

  a=B;

  printf(″%d\n″a--);

  }

  A.6

  B.5

  C.4

  D.出错

  2. 设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]);

  的输出结果是

  A.147

  B.159

  C.357

  D.369

  3. 设有以下程序段:int a=1, b=10, c=1, x;x=a&&b||++c;printf(″%d, %d\n″,x,c);执行后输出的结果是

  A.0,0

  B.0,1

  C.1,0

  D.1,1

  4. 假定a和b为int型变量,则执行下述语句组后,b的值为

  a=1;

  b=10;

  do

  {

  b-=a;

  a++;

  } while (b--<0);

  A.9

  B.-2

  C.-1

  D.8

  5. 设int a = 3;则表达式a<1&&--a>1的运算结果和a的值分别是

  A.0和2

  B.0和3

  C.1和2

  D.1和3

  6. 表达式“sizeof(int [1][2])/sizeof(int)”的值为_____。

  A 1 B 2 C 3 D 4

  二、专业题

  1.Windows NT下的32位机运行环境下:

  char str[]=“Hello”;

  char *p =str;

  int n = 10;

  请计算strlen(str),sizeof(str),sizeof(p),sizeof(n)

  5, 6, 4, 4

  2.请编码实现以下功能的函数

  功能:实现对一个8 bit数据(unsigned char类型)的指定位(例如第n位)的置0或者置1操作,并保持其他位不变。

  函数原型:void bit_set(unsigned char*p_data,unsigned char position,bool flag)

  函数参数说明:p_data是指定的源数据,position是指定位(取值范围1~8),flag表示是置0还是置1操作

  #include

  #include

  void bit_set(unsigned char* p_data,unsignedchar position,bool flag)

  {

  int times=position-'0'-1;

  if(flag==0)

  {

  *p_data= (*p_data)&(~(0x01<

  }

  if(flag==1)

  {

  *p_data= (*p_data)| (0x01<

  }

  printf("===%d\n",*p_data);

  }

  int main(int argc,char* argv[])

  {

  unsignedchar a;

  unsignedchar num;

  scanf("%c",&a);

  getchar();

  scanf("%c",&num);

  bit_set(&a,num,0);

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

  return1;

  }

  3.请用C语言实现字符串右循环移位函数,比如?abcdefghi?循环右移2位就是?hiabcdefg?。

  函数原型: void RightLoopMove(char * pStr,unsignedshort steps)

  参数说明:

  pStr:Pointer to a?\0?terminated string

  steps:The rotate shift numbers

  #include

  #include

  #include

  voidRightLoopMove(char* pStr,unsigned short steps)

  {

  unsigned short i=strlen(pStr);

  int num=0;

  char temp[10];

  for(;num

  {

  static int length=i-steps;

  temp[num]=pStr[length];

  length++ ;

  }

  for(num=i-1-steps;num>=0;num--)

  {

  pStr[num+steps]=pStr[num];

  }

  for(num=0;num

  {

  pStr[num]=temp[num];

  }

  }

  intmain(int argc,char* argv[])

  {

  char str[20]="abcdefghi";

  RightLoopMove(str,2);

  printf("%s\n",str);

  return 1;

  }

中国点击率最高的一篇文章 !