笔试题 8

1.请输出下面程序的结果:

int main(void)
{
  int a[5]={1,2,3,4,5};
  int *ptr=(int *)(&a+1);
  printf("%d,%d",*(a+1),*(ptr-1));
  return 0;
}

2.请输出下面这段程序的结果:

int main(void)
{
   int a[][3]={1,2,3,4,5,6};
   int (*ptr)[3]=a;
   printf("%d,%d\n",(*ptr)[1],(*ptr)[2]);
   ptr++;
   printf("%d,%d",(*ptr)[1],(*ptr)[2]);
   return 0;
}

3.请指出下面ABCD中哪个有问题,同时,指出为啥有问题

A)char s1[10];s1="HIGH";
B) char s2[]={'H','I','G','H'};
C) char s3[20]="HIGH";
D)char *s4 = "HIGH";

4.请指出下面这段程序错误的地方,并说出原因:

int main(void)
{
  char a;
  char *str=&a;
  strcpy(str,"hello");
  printf(str);
  return 0;
}

5.请输出下面sizeof的结果:

char str[]="HIGH";
char *p=str;
int n=10;

sizeof(str)=?;
sizeof(p)=?;
sizeof(n)=?;

void func(char str[100])
{
 sizeof(str)=?;
}

6.请输出下面的sizeof的结果(32位系统):

#pragma pack(4)
typedef struct ex1
{
   char a;
   int  b;
   short c;
}ex1;
#pragma pack()
sizeof(ex1)=?;

#pragma pack(4)
typedef struct ex2
{
  char  a;
  short b;
  int   c;
}ex2;
#pragma pack()
sizeof(ex2)=?;

7.请输出下面这段程序的结果:

int main(void)
{
  unsigned int   a;
  unsigned short b;
  unsigned char  c;
  a=0xabcdabcd;
  b=a;
  c=a;
  printf("a=0x%x\n",a);
  printf("b=0x%x\n",b);
  printf("c=0x%x\n",c);
  return 0;
}

8.下面的代码会输出什么?有无异常?

int main(void)
{
   unsigned int i;
   for(i=100;i>=0;i--)
   {
      printf("i value %d\n",i);
   }
   return 0;
}

9.请指出下面这段错误的地方,并说出原因:

int main(void)
{
  char *src_str="THIS IS THE STRING"char *dest_str[10];
  strcpy(dest_str,src_str);
  return 0;
}

10.请指出下面这段程序错误的地方,并说出原因:

void GetMemory(char *p)
{
  p=(char *)malloc(100);
}
void Test(void)
{
  char *str=NULL;
  GetMemory(str);
  strcpy(str,"hello world");
  pritnf(str);
}

11.请指出下面这段程序错误的地方,并说说原因:

int main(void)
{
  char *s="ABC";
  pritnf("%s",s);
  s[0]='B';
  printf("%s",s);
  return 0;
}

12.写一个”标准”宏MAX,这个宏输入两个从那书并返回较大的一个


13.请实现函数strlen,不使用新的变量,不用循环语句,能正确返回字符数
unsigned int strlen(const char *s)


14.进程间的通信方式有哪些?


15.什么是死锁?其条件是什么?怎么避免死锁?


16.什么是堆栈溢出?有什么危害?其原因是什么?


17.全局静态变量,局部静态变量,局部变量以及全局变量存储的特点?

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值