龙旗控股笔试2010n年笔试题(面向软件工程师,软件测试工程师)

来源:互联网 发布:关联规则算法实例 编辑:程序博客网 时间:2024/05/18 03:42

( Time::25min)

一、选择题

 

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 <stdio.h>

#include <stdlib.h>

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

{

 

      int times=position-'0'-1;

      if(flag==0)

      {

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

      }

      if(flag==1)

      {

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

      }

 

      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<stdio.h>

#include<stdlib.h>

#include<string.h>

voidRightLoopMove(char* pStr,unsigned short steps)

{

 

    unsigned short i=strlen(pStr);

    int num=0;

  char temp[10];

 

 for(;num<steps;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<steps;num++)

    {

         pStr[num]=temp[num];

    }

 

}

 

intmain(int argc,char* argv[])

{

    char str[20]="abcdefghi";

    RightLoopMove(str,2);

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

    return 1;

}


原创粉丝点击