c语言基础

Posted on 2009-10-28 00:18 小苏 阅读(787) 评论(0)  编辑 收藏 引用
1、下题的输出是什么?
typedef struct
{
    int  num;
    char name[10];
    int  age;
}Student,*pStudent;

void printName(pStudent pt)
{
    printf("%s\n",pt->name);
    return;
}

void main()
{
    Student students[3]={{111, "liu", 18},
                {222, "wang", 19},
                {333, "zhao", 10}};
    printName(students+2);
    return;
}

2、选择
#include <stdio.h>
void main()
{
    union
    {
        int k;
        char i[2];
    }*s, a;
    s=&a;
    s->i[0]=0x39;
    s->i[1]=0x38;
    printf("%x\n", a.k);
}

A.3839 B.3938 C.380039 D.不可预知

3、
enum ENUM_A
{
    X1,
    Y1,
    Z1=6,
    A1,
    B1
};

enum ENUM_A enumA=Y1;
enum ENUM_A enumB=B1;

enumA=_______
enumB=_______

4、
VCHAR *pucCharArray[10][10];
typedef union unRec
{
    ULONG ulIndex;
    USHORT usLevel[6];
    UCHAR ucDos;
}REC_S;

REC_S stMax, *pstMax;

四字节对齐时    sizeof(pucCharArray)=______
           sizeof(stMax)=______
        sizeof(*stMax)=______

5、
typedef union unHead
{
    UCHAR aucSrc[6];
    struct tagContent
    {
        UCHAR ucFlag[3];
        ULONG ulNext;
    }Content;
}HEAD_S;

32位CPU,VC编译环境下:
强制一字节对齐情况下,请指出sizeof(HEAD_S)
强制二字节对齐情况下,请指出sizeof(HEAD_S)
强制四字节对齐情况下,请指出sizeof(HEAD_S)


6、
四字节对齐的情况下:
typedef struct tagRec
{
    long lA1;
    char cA2;
    char cA3;
    long lA4;
    long lA5;
}REC_S;

void main()
{
    REC_S stMax;
    printf("\r\n sizeof(stMax)=%d", sizeof(stMax));
    return;
}

输出结果为: sizeof(stMax)=______

7、
typedef struct tagtest
{
    unsigned char ucFlag;
    unsigned long ulLen;
}TEST_S;

TEST_S test[10];

四字节对其时: sizeof(TEST_S)=_____ sizeof(test)=______

8、
#pragma pack(4)
int main(int argc, char* argv[])
{
    struct tagtest1
    {
      short a;
      char  d;
      long  b;
      long  c;
    }

    struct tagtest2
    {
      long  b;
      short c;
      char  d;
      long  a;
    }

    struct tagtest3
    {
      short c;
      long  b;
      char  d;
      long  a;
    }

    struct tagtest1 stT1;
    struct tagtest2 stT2;
    struct tagtest3 stT3;
    printf("%d %d %d", sizeof(stT1), sizeof(stT2), sizeof(stT3));
    return 0;
}
#pragma pack()

输出是______

9、
typedef struct Head
{
    VCHAR aucSrc[6];
    VLONG ulType;
}HEAD_S;

在强制一字节对其的情况下,sizeof(HEAD_S)=____
在强制二字节对其的情况下,sizeof(HEAD_S)=____

10、
union tagAAAA
{
  struct
  {
    char  ucFirst;
    short usSecond;
    char  ucThird;
  }half;
  long lI;
}number;

struct tagBBBB
{
  char  ucFirst;
  short usSecond;
  char  ucThird;
  short usForth;
}half;

struct tagCCCC
{
  struct
  {
     char ucFirst;
     short usSecond;
     char ucThird;
  }half;
  long lI;
};

在字节对其为1的情况下:
sizeof(union tagAAAA)=_____
sizeof(struct tagBBBB)=____
sizeof(struct tagCCCC)=____
字节对齐为4的情况下:
sizeof(union tagAAAA)=_____
sizeof(struct tagBBBB)=____
sizeof(struct tagCCCC)=____

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理