精心整理的c语言常考的笔试题

时间:2018-12-31 12:00:00 资料大全 我要投稿

精心整理的关于c语言常考的笔试题

  一、 想说一说关于集中数据类型的sizeof问题,这题出现率40%

精心整理的关于c语言常考的.笔试题

  sizeof就是求在内存总占多少字节的问题,最基本的char 1字节 short 2字节 int 4字节

  任何的指针都是4字节 sizeof(数组名)=数组占的大小(这里必须注意虽然数组名可作为只想数组首地址的指针,但是sizeof(数组名)求得的不是指针的大小,而是数组大小)

  还有就是sizeof(结构体) sizeof(联合体)

  举两个例子 struct stu {

  Char a;

  Int b;

  Char c;

  };

  struct teacher {

  Char a;

  Char c;

  Int b;

  };

  Sizeof (stu) =12 ;内存中这样存储 char 空空空 int char 空空空

  内存4字节对其问题

  Sizeof (teacher) =8 ;内存中这样存储 char char空空 int

  关于联合体

  Union std{

  Char a[10];

  Int b[3];

  }

  Sizeof(std)=12; 联合体公用内存,取其中所占内存最大的元素为联合体所占内存

  以下为Windows NT下的32位C++程序,请计算sizeof的值

  char str[] = “Hello” ;

  char *p = str ;

  int n = 10;

  1. 请计算

  sizeof (str ) = 6

  sizeof ( p ) = 4

  sizeof ( n ) = 4

  void Func ( char str[100])

  {

  请计算

  sizeof( str ) = 4

  }

  void *p = malloc( 100 );

  请计算

  sizeof ( p ) = 4

  还有位段的问题如下

  分析:

  struct bit

  { int a:3;

  int b:2;

  int c:3;

  };

  int main()

  {

  bit s;

  char *c=(char*)&s;

  cout<

  *c=0x99;

  cout << s.a <

  int a=-1;

  printf("%x",a);

  return 0;

  }

  输出为什么是

  4

  1

  -1

  -4

  ffffffff

  因为0x99在内存中表示为 100 11 001 , a = 001, b = 11, c = 100

  当c为有符合数时, c = 100, 最高1为表示c为负数,负数在计算机用补码表示,所以c = -4;同理

  b = -1;

  当c为有符合数时, c = 100,即 c = 4,同理 b = 3

【精心整理的关于c语言常考的笔试题】相关文章:

1.C语言笔试题

2.c语言类笔试题

3.GE:C语言笔试题

4.c语言笔试题大全

5.C语言求职笔试题

6.C语言笔试题目

7.C语言笔试题集锦

8.C语言基础笔试题