首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列程序中的函数stropy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如,若t所指字符串为:efgh,调用strcpy2后,s所指字符串为:efghefgh。请填空。 #include <stdi
下列程序中的函数stropy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如,若t所指字符串为:efgh,调用strcpy2后,s所指字符串为:efghefgh。请填空。 #include <stdi
admin
2013-02-23
59
问题
下列程序中的函数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全国计算机二级
相关试题推荐
下列叙述中正确的足
下列对于软件测试的描述中正确的是
若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是()。intt[3][3],*Pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];
下列函数定义中,会出现编译错误的是______。
下面的关键字中,不能够从循环体中跳到循环体外的是______。
设y是int型变量,请写出y为奇数的关系表达式【】。
假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为【】。
已知字符0的ASCⅡ码为十六进制数30,下面程序的输出是______。main(){inti;union{unsignedcharc;unsignedinti[4];}z;z.i[0]=0x39;z
注释说明了程序的功能,它分为【】注释和功能性注释。
源程序文档化要求程序应加注释。注释一般分为序言性注释和【】。
随机试题
患者,男,50岁。头痛昏蒙,神识呆滞,项背强急,四肢抽搐,胸脘满闷,呕吐痰涎,苔白腻,脉弦滑。问题3:其证候是
论述对危重患者实施护理的主要内容。
下颌第一磨牙的最小牙尖是
关于静止期牙周炎病理变化正确的是
在市场经济条件下的医德建设,重点是纠正和防止
从事建筑工程活动的人员,要通过国家任职资格考试、考核,由建设行政主管部门()并颁发资格证书。
根据我国现行规定,资本公积包括()。
按照计算的时间单位不同,我国常用的工资制有哪几种具体形式?()
某影楼与甲约定:“影楼为甲免费拍写真集,甲允许影楼使用其中一张照片作为影楼的橱窗广告。”后甲发现自己的照片被用在一种性药品广告上。经查,制药公司是从该影楼花500元买到该照片的。下列说法正确的有()。
Manisendlesslyinventive.Buthisgreatestinventionisnon-invention,theskilloftransmittingintact(完美无损的)andunchangedfr
最新回复
(
0
)