几个笔试题(一)


(一)12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种? 

 

http://blog.csdn.net/suyksuyk/article/details/4697941

 

 

 

(二)

#include<iostream>
using namespace std;
#pragma pack(2)
class A
{
         union U                      //13 union中选最大的为占内存的
         {
                   char buff[13];
                   int i;
         }u;
         int i;         //4  
         void foo() {    }               //函数不占
         typedef char* (*f)(void*);           //指针函数不占
         enum{red, green, blue} color;  //4
}a;
#pragma pack(2)


int main()
{
         cout<<sizeof(a)<<endl;//
}

 

13+4+4=21

          但是#pragma pack(2) 是代表2字节对齐,数据对齐 也就是22了。如果去掉#pragma pack(2),就是24。



sizeof(a)的值是()

A、20       B、21       C22        D、24           E、非以上选项

 

 

(三)

 

#include <iostream>
using namespace std;
struct Foo
{
         Foo() {  }
         Foo(int) {  }
         void fun()   {  }
};
int main(void)
{
         Foo a(10);    //语句1
         a.fun();     //语句2
         Foo b();      //语句3    编译器认为是一个函数
         b.fun();      //语句4   
         return 0;
}

哪语句错误?  语句4

(四)int **a[3][4];        //数组 a 有 3*4 个元素,每个元素是一个 指向指针的整型指针

printf("%d\n",sizeof(a));  //48

       3×4×4=48


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值