每日一题(45)—— 字符数组找错

void test2()
{char str1[10], str2[10];int i;for(i=0; i<10; i++)str1[i] = 'a';strcpy( str2, str1 );
}

这段代码有什么问题?







解答:如果面试者指出字符数组str1不能在数组内结束可以给3分;如果面试者指出strcpy(str2, str1)调用使得从str1复制到str2的字节数具有不确定性可以给7分,在此基础上指出库函数strcpy工作方式的给10分。

str1不能在数组内结束:因为str1的存储为:{a,a,a,a,a,a,a,a,a,a},没有'\0'(字符串结束符),所以不能结束

strcpy(char *s1,char *s2)他的工作原理是,扫描s2指向的内存,逐个字符付到s1所指向的内存,直到碰到'\0',因为str1结尾没有'\0',所以具有不确定性,不知道他后面还会付什么东东。

正确应如下:

void test2()
{char str1[10], str2[10];int i;for(i=0; i<9; i++){str1[i] = 'a'+i; //把abcdefghi赋值给字符数组}str[i]='\0';//加上结束符strcpy( string, str1 );
}








本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为这个事,是不是刷KPI?

最近闹的比较热闹的事情是&#xff0c;华为有人提交到Linux 上的代码被审核员点名批评刷KPI&#xff0c;并且&#xff0c;这个邮件还上了头条。提交的代码修改如下From: Zhen Lei <thunder.leizhenhuawei.com> To: Kees Cook <keescookchromium.org>,Anton Voronts…

前端小demo——全选和全不选

模拟购物车&#xff0c;实现全选或者全不选&#xff0c;或者其中任意一件单品单选的效果。 点击顶部复选框实现全选 列表中任意一项未选中&#xff0c;顶部复选框就是未选中的状态 <!DOCTYPE html> <html><head lang"en"><meta charset"UT…

PHP函数库06:PHP统计字符串里单词出现次数

<?functionfull_count_words($str) { //返回完整数组&#xff0c;包含字符串里每个单词 $wordsstr_word_count($str,1); $resultarray(); foreach($wordsas$w) { $lwstrtolower($w); //判断单词是否是第一次出现&#xff0c;是则设置为1&#…

每日一题(46)—— volatile

1.一个变量可以既是const 还是volatile吗&#xff1f;解释为什么&#xff1f; 可以&#xff0c;例如状态寄存器。它首先应该是volatile 因为它可以出乎意料的修改&#xff0c;而且应该是const&#xff0c;这个寄存器程序不应该去修改。 2.一个指针可以说volatile的吗&#xf…

毕业2年,我的工作小结

文章转自我的读者朋友&#xff0c;他毕业后从事的是BSP开发工作&#xff0c;主要做LCD模块&#xff0c;我们算是认识比较久&#xff0c;刚毕业那会聊的也挺多&#xff0c;时间过得很快&#xff0c;想不到他已经毕业两年了。最近几天公司&#xff0c;公司的小鲜肉多了起来。我偶…

[Luogu 1351] NOIP2014 联合权值

[Luogu 1351] NOIP2014 联合权值 存图&#xff0c;对于每一个点 \(u\)&#xff0c;遍历它的所有邻接点。以 \(u\) 为中转点的点对中&#xff0c;\((x,y)\) 的联合权值 \(w_x \cdot w_y\) 最大&#xff0c;当且仅当 \(x\) 与 \(y\) 的点权在 \(u\) 的所有邻接点中是前两大的。 成…

Something about WinCE6.0 R3

Windows Embedded家族 Windows Embedded CE概览 WinCE6.0 R3新增组件 R3的发布让WinCE6.0如虎添翼 嵌入式系统的Silverlight 引入Silverlight后UI新的体系结构 触摸手势的支持将彻底改变用户体验

我现在都在这里买元器件了!

记得上大学那会做单片机项目需要买元件&#xff0c;我们就需要跑到市中心去买&#xff0c;绕过大大小小的街道&#xff0c;可以看到坐在柜台的老板&#xff0c;然后跟老板拉扯几句&#xff0c;然后进入大包小包的买卖中。做一个最小系统板至少也要花个小100块钱&#xff0c;大学…

每日一题(47)—— 置1与清0

嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a&#xff0c;写两段代码&#xff0c;第一个设置a的bit 3&#xff0c;第二个清除a 的bit 3。在以上两个操作中&#xff0c;要保持其它位不变。 置1用|&#xff0c;清0用& #define BIT3 (0x01<<3) sta…

读书笔记:《时间投资法》之一

<时间投资法>第一章:为什么搞笑管理时间很难 管理难的理由: 1 .没有最佳法则 我们无法找到适合所有人的生活方式,因此也就找到适合自己的管理时间的法则并不容易.别人的并不一定适合自己. 2. 效果测评有一定难度 对策: 对策一:每天尝试新的方法. 不要把失败的九次看成浪…

高考失利要不要复读?

对于我&#xff0c;如果考不好&#xff0c;我一定会复读。这个事情在每个人身上可能会不同&#xff0c;所以先从我说起&#xff0c;我出生在一个非常贫穷的农民家庭&#xff0c;我有好几个表哥&#xff0c;还有几个堂哥&#xff0c;甚至于我哥&#xff0c;他们读书都非常差&…

每日一题(48)—— 中断

中断是嵌入式系统中重要的组成部分&#xff0c;这导致了很多编译开发商提供一种扩展—让标准C支持中断。具代表事实是&#xff0c;产生了一个新的关键字 __interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR)&#xff0c;请评论一下这段代码的。 …

apiCloud中的API对象

1.属性 appId apiready function () {var appId api.appId; //比如&#xff1a; A6980386445546var appName api.appName; //比如&#xff1a; AppLoadervar appVersion api.appVersion; // 比如&#xff1a; 1.0.0var systemType api.systemType; // 比如&#xff1a; i…

静态测试

静态测试 为什么要进行静态分析呢&#xff1f;一个软件产品可能实现了所要求的功能&#xff0c;但如果它的内部结构组织的很复杂&#xff0c;很混乱&#xff0c;代码的编写也没有规范的话&#xff0c;这时软件中往往会隐藏一些不易被察觉的错误&#xff0c;这是其一。其次&…

我是这样分析Linux性能问题的

在互联网公司普遍“996”的大环境下&#xff0c;大部分做应用的开发者&#xff0c;大都将精力集中在业务代码的优化和调配上&#xff0c;忽略了对 Linux 内核的学习。而且&#xff0c;这部分知识本身就很复杂&#xff0c;所以学习成本也比较高。但是&#xff0c;只要你经历过公…

每日一题(49)—— 有符号数与无符号数

void foo(void) {unsigned int a 6;int b -20;(a b> 6)?(">6"):("<6"); } 上面代码输出是什么&#xff0c;为什么&#xff1f; 答案是“>6”原因是当操作数中有符号类型和无符号类型进行运算时所有的操作数都自动转换成无符号数。

Java访问修饰符(访问控制符)

Java 通过修饰符来控制类、属性和方法的访问权限和其他功能&#xff0c;通常放在语句的最前端。例如&#xff1a; 1. public class className { 2. // body of class 3. } 4. private boolean myFlag; 5. static final double weeks 9.5; 6. protected static final int BOXWI…

随便聊聊,Linux 中的环境变量

大家好&#xff0c;今晚说点简单的。环境变量环境变量在进行linux开发过程中经常碰到&#xff0c;那什么是环境变量呢&#xff1f;很多朋友在刚学习Linux的时候对环境变量不是特别理解&#xff0c;变量不应该是在编程语言中类似于全局变量和局部变量吗&#xff1f;怎么又来了个…

什么MySQL语句在存储过程体中是合法的

什么MySQL语句在存储过程体中是合法的&#xff1f; 什么样的SQL语句在Mysql存储过程中才是合法的呢&#xff1f;你可以创建一个包含INSERT, UPDATE,DELETE, SELECT, DROP, CREATE, REPLACE等的语句。你唯一需要记住的是如果代码中包含MySQL扩充功能&#xff0c;那么代码将不能移…

IntelliJ IDEA使用教程(很全)

这个编辑器我就不再多做介绍了。直接开始新建maven hello world 的Java web项目啦 你电脑上得有jdk1.7&#xff0c;或者1.8&#xff0c;然后就是maven3.x吧&#xff0c;再有就是tomcat7以上吧。还得有我这个编辑器。这些是准备条件 下面就直接开始看图啦&#xff1a; 这个我刚刚…