请高手帮我解决一下这道题,谢谢!
有以下程序#include<string.h>main(){charp[20]={′a′,′b′,′c′,′d′},q[]="abc",r[]="abcde";strca...
有以下程序
# include <string.h>
main()
{char p[20]={′a′, ′b′, ′c′, ′d′}, q[]="abc", r[]="abcde";
strcat(p, r); strcpy(p+strlen(q), q);
printf("%d\n",strlen(p));
}
程序运行后的输出结果是
A)9
B)6
C)11
D)7
请简略的说一下过程,谢谢!! 展开
# include <string.h>
main()
{char p[20]={′a′, ′b′, ′c′, ′d′}, q[]="abc", r[]="abcde";
strcat(p, r); strcpy(p+strlen(q), q);
printf("%d\n",strlen(p));
}
程序运行后的输出结果是
A)9
B)6
C)11
D)7
请简略的说一下过程,谢谢!! 展开
3个回答
展开全部
这题有些错误
#include "stdio.h"
#include <string.h>
main()
{char p[20]={'a','b','c','d'}, q[]="abc", r[]="abcde";
strcat(p, r); strcpy(p+strlen(q), q);
printf("%d\n",strlen(p));
}
strcat涵数的作用连接两个字符数组中的字符串,字符数组r接到p的后面
p此时abcdabcde\0\0\0\0\0\0\0\0\0\0\0
strcpy(p+strlen(q), q); strlen(q)测试q的实际长度为3 p+strlen(9)等价于p+3即数组指针也就是指向p[3]的地址,然后把q中的abe从p[3]这地址开始复制得到abcabc\0\0\0\0\0\0\0\0\0\0\0\0\0\0
所以strlen(p)最后为6
#include "stdio.h"
#include <string.h>
main()
{char p[20]={'a','b','c','d'}, q[]="abc", r[]="abcde";
strcat(p, r); strcpy(p+strlen(q), q);
printf("%d\n",strlen(p));
}
strcat涵数的作用连接两个字符数组中的字符串,字符数组r接到p的后面
p此时abcdabcde\0\0\0\0\0\0\0\0\0\0\0
strcpy(p+strlen(q), q); strlen(q)测试q的实际长度为3 p+strlen(9)等价于p+3即数组指针也就是指向p[3]的地址,然后把q中的abe从p[3]这地址开始复制得到abcabc\0\0\0\0\0\0\0\0\0\0\0\0\0\0
所以strlen(p)最后为6
11111
2024-11-15 广告
2024-11-15 广告
作业指导书是一种专门编写的指导性文件,用于完成某一项或同一类型的工作。它是根据设计图纸、制造厂说明书、相关的验评标准、编写人员现场所积累的施工经验以及成熟实用的施工工艺所编写的。定义和作用作业指导书是质量管理体系文件的组成部分,主要用于阐明...
点击进入详情页
本回答由11111提供
展开全部
选B
分析:
strcat(p, r); =》这时候字符数组p[20]="abcdabcde";
strcpy(p+strlen(q), q); =>q[]="abc", strlen(q)= 3,不计算'\0';
strcpy(p+strlen(q), q)=>把字符数组r所有元素复制到字符数组p下标为3开始位置,并且字符数组r的结束符算'\0'也一起复制,字符数组p[20]="abcabc";strlen(p)不计算'\0'在内所有字符长度,故strlen(p)为6
分析:
strcat(p, r); =》这时候字符数组p[20]="abcdabcde";
strcpy(p+strlen(q), q); =>q[]="abc", strlen(q)= 3,不计算'\0';
strcpy(p+strlen(q), q)=>把字符数组r所有元素复制到字符数组p下标为3开始位置,并且字符数组r的结束符算'\0'也一起复制,字符数组p[20]="abcabc";strlen(p)不计算'\0'在内所有字符长度,故strlen(p)为6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询