首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列程序中的函数stropy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如,若t所指字符串为:efgh,调用strcpy2后,s所指字符串为:efghefgh。请填空。 #include <stdi
下列程序中的函数stropy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如,若t所指字符串为:efgh,调用strcpy2后,s所指字符串为:efghefgh。请填空。 #include <stdi
admin
2013-02-23
93
问题
下列程序中的函数stropy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如,若t所指字符串为:efgh,调用strcpy2后,s所指字符串为:efghefgh。请填空。
#include <stdio.h>
#include <string.h>
void strcpy2(char *s,char *t)
{ char *p=t;
while(*s++=*t++);
s=【 】;
while(【 】=*p++);
}
main()
{ char str1[100]="abed",str2[]="efgh";
strcpy2(str1,str2); printf("%s\n",str1);
}
选项
答案
s-1或--s或s-- *s++
解析
在函数。strcpy2()中,首先将指针t保存到指针p中,然后进入第1个while()循环,其循环条件为*s++=*t++,其中“*”和“++”运算符的优先级相同,但他们的结合性为从右至左,而“=”运算符优先级比较低,所以原表达式等价于(*s++)=(*(t++)),即将t当前所指内容复制到s当前所指地址中,然后让s和t同时往后移动一位,整个表达式返回的是复制给s的值。所以,当t所指内容是字符串结束符’\0’,时,while循环结束,原先t所指的整个字符串也就复制到s所指的地址中去了。但是,while循环最后一次判断也会让s和t往后移动一位,即此时s指向了字符串结束符’\0’的后一位。所以第2次复制字符串之前,应先将s指针往回移动一位,故前一空应该填入s-1或其他等价形式。接下来的while循环实现第二次复制,照抄第1次的while循环就行,故后一空应填入*s++。
转载请注明原文地址:https://kaotiyun.com/show/mePp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
在C语言中提供的合法的关键字是______。
以下程序段十,不能正确赋字符串(编译时系统会提示错误)的是()。
有以下程序:main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;}while
设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
下列对于软件测试的描述中正确的是
在数据库管理系统提供的数据语言中,负责数据的模式定义与数据的物理存取构建的是
若已建立如下图所示的单向链表结构:在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是______。
fgetc函数的作用是从指定文件读入一个个字符,该文件的打开方式必须是______。
下列运算符中,不属于关系运算符的是()
当向一棵m阶的B-树做插入操作时,若一个结点中的关键字个数等于______,则必须分裂为2个结点。
随机试题
淋巴细胞为主型霍奇金淋巴瘤:结节性淋巴细胞为主型霍奇金淋巴瘤:
放疗物理剂量师的工作范围
不能作为判定CML,急性变的指标是
男,30岁,上腹痛7天,餐后突然加剧6小时,并很快波及全腹,既往有胃病史,查体;全腹压痛,反跳痛,肌紧张,肝浊音界消失,肠鸣音减弱。最可能的诊断是
流水施工的表达方式除网络图外,主要还有横道图和垂直图。这两种图形均可以清楚地表达出( )。
应每月清点一次的财产是()。
非正式组织所拥有的权力具有较强的个性色彩,其领导者产生的形式是()。
在基期成本费用水平的基础上,结合预算期业务量及有关降低成本的措施,通过调整有关原有成本项目而编制的预算,称为()。
华罗庚教授曾指出:“宇宙之大,粒子之微,火箭之谜,化工之巧,地球之变,生物之谜,日用之繁,无处不用数学.”这句话精炼地指出了数学广泛的__________.
设平衡的二叉排序树(AVL树)的结点个数为n,则其平均查找长度的数量级为________。
最新回复
(
0
)