c语言面试找错题
1、 c 语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?
int a = 5, b = 7, c;
c = a+++b;
这个问题将做为这个测验的一个愉快的结尾。不管你相不相信,上面的例子是完全合乎语法的。问题是编译器如何处理它?水平不高的编译作者实际上会争论这个问题,根据最处理原则,编译器应当能处理尽可能所有合法的用法。因此,上面的代码被处理成:
c = a++ + b;
因此, 这段代码持行后 a = 6, b = 7, c = 12。
如果你知道答案,或猜出正确答案,做得好。如果你不知道答案,我也不把这个当作问题。
我发现这个问题的最大好处是这是一个关于代码编写风格,代码的可读性,代码的可修改性的好的话题。
2、下面的代码输出是什么,为什么?
void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) ? puts("> 6") : puts("<= 6");
}
这个问题测试你是否懂得 c 语言中的整数自动转换原则,我发现有些开发者懂得极少这些东西。不管如何,这无符号整型问题的答案是输出是 ">6"。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20 变成了一个非常大的正整数,所以该表达式计算出的结果大于 6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。如果你答错了这个问题,你也就到了得不到这份工作的边缘。
3、请找出下面代码中的所以错误
说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”
1、#include"string.h"
2、main()
3、{
4、 char*src="hello,world";
5、 char* dest=null;
6、 int len=strlen(src);
7、 dest=(char*)malloc(len);
8、 char* d=dest;
9、 char* s=src[len];
10、 while(len--!=0)
11、 d++=s--;
12、 printf("%s",dest);
13、 return 0;
14、}
答:
方法 1:
int main(){
char* src = "hello,world";
int len = strlen(src);
char* dest = (char*)malloc(len+1);//要为 分配一个空间
char* d = dest;
char* s = &src[len-1];//指向最后一个字符
while( len-- != 0 )
*d++=*s--;
*d = 0;//尾部要加
printf("%sn",dest);
free(dest);// 使用完,应当释放空间,以免造成内存汇泄露
return 0;
}
方法 2:
#include
#include
main()
{
char str[]="hello,world";
int len=strlen(str);
char t;
for(int i=0; i
{
t=str[i];
str[i]=str[len-i-1]; str[len-i-1]=t;
}
printf("%s",str);
return 0;
}
4、请问下面程序有什么错误?
int a[60][250][1000],i,j,k;
for(k=0;k<=1000;k++)
for(j=0;j<250;j++)
for(i=0;i<60;i++)
a[i][j][k]=0;
答案:把循环语句内外换一下
-
面试题:讲解实习经历
你的简历中提到你曾经在er公司实习过,能讲讲这段实习经历吗?a.我就做了1个月,比较短,没有太多实质性的工作,就是整理相关资料,负责定会议室等。b.我在er做了三个月,最初是一个项目进去实习的,后来项目完成后我的上司认为我做的还可以,就留下来继续外联的工作,我觉得er的...
-
面试答题应遵循的原则
一、面试答题应遵循的原则1.紧扣试题要求答题;2.实事求是回答问题;3.观点要明确;4.答题要简明扼要;5.要时时体现文明礼貌素质;6.随机应变,化被动为主动的展现自我。二、面试答题的要领1.答题的观点要正确;2.要点明确、思路清晰;3.能自圆其说;4.层次清楚;5.回答要有创新;6....
-
行政面试问题及答案
行政助理面试问题1、中秋节前发月饼,发到最后多出一盒,你作为刚入职的行政助理该怎么办?参考答案:请示上级领导,并想好2种以上的解决方案供领导选择,例如:建议退回或中午休息的时候大家一起分享这盒月饼。2、行政工作最重要的是什么?参考答案:行政部门是公司的核心部...
-
大学毕业生部分面试题
字你在接受别人指导时,会不会感到难受或受到伤害这是个顺从性问题,如果你的失误被别人指出来之后,会轻易地顶撞或发火,那么你在公司里不会干得很久。初级岗位的竞争相当激烈,这也是你表明自己与众不同的又一个机会。我会接受别人的意见,更重要的是,我能接受建设性的批...