2016.05.05笔试

  1. 求fun(10)的输出结果是?
void fun (int x)
{
    if (x/2 > 0) fun(x/2);
    printf ("%d", x);
}

答案:1 2 5 10.
考点:递归

  1. 以下程序的输出结果是?
void fun ()
{
    static int a = 0;
    a+= 2;
    printf ("%d \n", a);
}
main ()
{
    int cc;
    for (cc = 1; cc < 4; cc++)
        fun ();
        printf ("\n");
}

答案: 2 4 6.
考点:考察static的作用

staitc的作用如下:
a. 函数体内的static变量上午作用范围为该函数体, 该变量的内存只被分配一次,其值在下次调用时扔维持上次的值.
b. 在模块内的static变量可以被这一模块内的其它函数访问,但不能被模块外的其它函数访问.
c. 在模块内的staitic函数只可被这一模块的其它函数调用,这个函数的使用范围被限制在声明它的模块内.
d. 在类中的static变量属于整个类所有,对类的所有对象只有一份备份.
e. 在类中的static成员函数属于整个类所拥有,这个函数不接受this指针,因而只能访问类的static成员变量.

  1. 请在所有三位数的正整数中寻找符合下列条件的数:它既是完全平方数,又有两位数字相同, 如144、676等,编写一段C语言的程序找出所有满足上述条件的三位数,并存放在数值result[]中.
  3 int perfectSquare (int result[])
  4 {
  5         int xBai, yShi, zGei;
  6         int i = 10, j = 0;
  7         int tmp;
  8 
  9         while (i*i < 999)
 10         {
 11                 tmp = i*i; 
 12                 xBai = tmp / 100;
 13                 yShi = (tmp % 100) / 10;
 14                 zGei = (tmp % 100) % 10; 
 15                 if (xBai == yShi || xBai == zGei || yShi == zGei)
 16                 {
 17                         result[j] = tmp;
 18                         printf ("tmp = %d\n", tmp);
 19                 }
 20                 i++;
 21                 j++;
 22         }
 23         return 0;
 24 }
VirtualBox:160519$ ./perf 
tmp = 100
tmp = 121
tmp = 144
tmp = 225
tmp = 400
tmp = 441
tmp = 484
tmp = 676
tmp = 900
  1. 二叉树的遍历方式.

  2. 现有以下定义:

#define N 3
#define Y(n) ((N+1)*n)

则执行语句z = 2*(N+Y(5+1))+N后z的值为:51
宏替换的结果:2*(3+(3+1)*5+1)+3=51

  1. 若已经定义:int a[9]; *p=a. 并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是:C
    A. p+1; B. a+1; C. a++; D. ++p;

  2. 如下:

unsigned char *pucCharArray[10][10];
typedef union unRec
{
    unsigned long ulIndex;
    unsigned short usLevel[6];
    unsigned char ucPos;
}REC_S;
REC_S stMAX, *pstMax;
四字节对齐方式时:
sizeof(pucCharArray) = 400
sizeof(stMAX)        = 12
sizeof(pstMax)       = 4
sizeof(*pstMax)      = 12
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值