欢迎访问易文君范文网!

c语言面试找错题

未知 分享 时间: 加入收藏 我要投稿 点赞

c语言面试找错题Sr2易文君-文库范文网

  1、 c 语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?Sr2易文君-文库范文网

  int a = 5, b = 7, c;Sr2易文君-文库范文网

  c = a+++b;Sr2易文君-文库范文网

  这个问题将做为这个测验的一个愉快的结尾。不管你相不相信,上面的例子是完全合乎语法的。问题是编译器如何处理它?水平不高的编译作者实际上会争论这个问题,根据最处理原则,编译器应当能处理尽可能所有合法的用法。因此,上面的代码被处理成:Sr2易文君-文库范文网

  c = a++ + b;Sr2易文君-文库范文网

  因此, 这段代码持行后 a = 6, b = 7, c = 12。Sr2易文君-文库范文网

  如果你知道答案,或猜出正确答案,做得好。如果你不知道答案,我也不把这个当作问题。Sr2易文君-文库范文网

  我发现这个问题的最大好处是这是一个关于代码编写风格,代码的可读性,代码的可修改性的好的话题。Sr2易文君-文库范文网

  2、下面的代码输出是什么,为什么?Sr2易文君-文库范文网

  void foo(void)Sr2易文君-文库范文网

  {Sr2易文君-文库范文网

  unsigned int a = 6;Sr2易文君-文库范文网

  int b = -20;Sr2易文君-文库范文网

  (a+b > 6) ? puts("> 6") : puts("<= 6");Sr2易文君-文库范文网

  }Sr2易文君-文库范文网

  这个问题测试你是否懂得 c 语言中的整数自动转换原则,我发现有些开发者懂得极少这些东西。不管如何,这无符号整型问题的答案是输出是 ">6"。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20 变成了一个非常大的正整数,所以该表达式计算出的结果大于 6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。如果你答错了这个问题,你也就到了得不到这份工作的边缘。Sr2易文君-文库范文网

  3、请找出下面代码中的所以错误Sr2易文君-文库范文网

  说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”Sr2易文君-文库范文网

  1、#include"string.h"Sr2易文君-文库范文网

  2、main()Sr2易文君-文库范文网

  3、{Sr2易文君-文库范文网

  4、 char*src="hello,world";Sr2易文君-文库范文网

  5、 char* dest=null;Sr2易文君-文库范文网

  6、 int len=strlen(src);Sr2易文君-文库范文网

  7、 dest=(char*)malloc(len);Sr2易文君-文库范文网

  8、 char* d=dest;Sr2易文君-文库范文网

  9、 char* s=src[len];Sr2易文君-文库范文网

  10、 while(len--!=0)Sr2易文君-文库范文网

  11、 d++=s--;Sr2易文君-文库范文网

  12、 printf("%s",dest);Sr2易文君-文库范文网

  13、 return 0;Sr2易文君-文库范文网

  14、}Sr2易文君-文库范文网

  答:Sr2易文君-文库范文网

  方法 1:Sr2易文君-文库范文网

  int main(){Sr2易文君-文库范文网

  char* src = "hello,world";Sr2易文君-文库范文网

  int len = strlen(src);Sr2易文君-文库范文网

  char* dest = (char*)malloc(len+1);//要为\0 分配一个空间Sr2易文君-文库范文网

  char* d = dest;Sr2易文君-文库范文网

  char* s = &src[len-1];//指向最后一个字符Sr2易文君-文库范文网

  while( len-- != 0 )Sr2易文君-文库范文网

  *d++=*s--;Sr2易文君-文库范文网

  *d = 0;//尾部要加\0Sr2易文君-文库范文网

  printf("%s\n",dest);Sr2易文君-文库范文网

  free(dest);// 使用完,应当释放空间,以免造成内存汇泄露Sr2易文君-文库范文网

  return 0;Sr2易文君-文库范文网

  }Sr2易文君-文库范文网

  方法 2:Sr2易文君-文库范文网

  #includeSr2易文君-文库范文网

  #includeSr2易文君-文库范文网

  main()Sr2易文君-文库范文网

  {Sr2易文君-文库范文网

  char str[]="hello,world";Sr2易文君-文库范文网

  int len=strlen(str);Sr2易文君-文库范文网

  char t;Sr2易文君-文库范文网

  for(int i=0; iSr2易文君-文库范文网

  {Sr2易文君-文库范文网

  t=str[i];Sr2易文君-文库范文网

  str[i]=str[len-i-1]; str[len-i-1]=t;Sr2易文君-文库范文网

  }Sr2易文君-文库范文网

  printf("%s",str);Sr2易文君-文库范文网

  return 0;Sr2易文君-文库范文网

  }Sr2易文君-文库范文网

  4、请问下面程序有什么错误?Sr2易文君-文库范文网

  int a[60][250][1000],i,j,k;Sr2易文君-文库范文网

  for(k=0;k<=1000;k++)Sr2易文君-文库范文网

  for(j=0;j<250;j++)Sr2易文君-文库范文网

  for(i=0;i<60;i++)Sr2易文君-文库范文网

  a[i][j][k]=0;Sr2易文君-文库范文网

  答案:把循环语句内外换一下Sr2易文君-文库范文网

精选图文

169845
领取福利

微信扫码领取福利

微信扫码分享