c语言面试找错题.docx

上传人:b****5 文档编号:26419118 上传时间:2023-06-19 格式:DOCX 页数:6 大小:15.32KB
下载 相关 举报
c语言面试找错题.docx_第1页
第1页 / 共6页
c语言面试找错题.docx_第2页
第2页 / 共6页
c语言面试找错题.docx_第3页
第3页 / 共6页
c语言面试找错题.docx_第4页
第4页 / 共6页
c语言面试找错题.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

c语言面试找错题.docx

《c语言面试找错题.docx》由会员分享,可在线阅读,更多相关《c语言面试找错题.docx(6页珍藏版)》请在冰豆网上搜索。

c语言面试找错题.docx

c语言面试找错题

c语言面试找错题

 

1、C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?

 

inta=5,b=7,c;

 

c=a+++b;

 

这个问题将做为这个测验的一个愉快的结尾。

不管你相不相信,上面的例子是完全合乎语法的。

问题是编译器如何处理它?

水平不高的编译作者实际上会争论这个问题,根据最处理原则,编译器应当能处理尽可能所有合法的用法。

因此,上面的代码被处理成:

 

c=a+++b;

 

因此,这段代码持行后a=6,b=7,c=12。

 

如果你知道答案,或猜出正确答案,做得好。

如果你不知道答案,我也不把这个当作问题。

 

我发现这个问题的最大好处是这是一个关于代码编写风格,代码的可读性,代码的可修改性的好的话题。

 

2、下面的代码输出是什么,为什么?

 

voidfoo(void)

 

{

 

unsignedinta=6;

 

intb=-20;

 

(a+b6)?

puts(6):

puts(=6

 

}

 

这个问题测试你是否懂得C语言中的整数自动转换原则,我发现有些开发者懂得极少这些东西。

不管如何,这无符号整型问题的答案是输出是6。

原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。

因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于6。

这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。

如果你答错了这个问题,你也就到了得不到这份工作的边缘。

 

3、请找出下面代码中的所以错误

 

说明:

以下代码是把一个字符串倒序,如abcd倒序后变为dcba

 

1、#includestring.h

 

2、main()

 

3、{

 

4、char*src=hello,world

 

5、char*dest=NULL;

 

6、intlen=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、return0;

 

14、}

 

答:

 

方法1:

 

intmain(){

 

char*src=hello,world

 

intlen=strlen(src);

 

char*dest=(char*)malloc(len+1);//要为\0分配一个空间

 

char*d=dest;

 

char*s=src[len-1];//指向最后一个字符

 

while(len--!

=0)

 

*d++=*s--;

 

*d=0;//尾部要加\0

 

printf(%s\n,dest);

 

free(dest);//使用完,应当释放空间,以免造成内存汇泄露

 

return0;

 

}

 

方法2:

 

#include

 

#include

 

main()

 

{

 

charstr[]=hello,world

 

intlen=strlen(str);

 

chart;

 

for(inti=0;i

 

{

 

t=str[i];

 

str[i]=str[len-i-1];str[len-i-1]=t;

 

}

 

printf(%s,str);

 

return0;

 

}

 

4、请问下面程序有什么错误?

 

inta[60][250][1000],i,j,k;

 

for(k=0;k=1000;k++)

 

for(j=0;jj++)

 

for(i=0;ii++)

 

a[i][j][k]=0;

 

答案:

把循环语句内外换一下

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1