strcpy(字符数组,字符串)进行复制时,连同结束标志’/0’一起复制。

题目

strcpy(字符数组,字符串)进行复制时,连同结束标志’/0’一起复制。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列程序中的函数strcpy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如,若t所指字符串为:efgh,调用strcpy2后,s所指字符串为:efghefgh。请填空。#include <stdio.h>#include <string.h>void strcpy2(char *s,char *t){char *p=; while(*s++=*t++); s=s-1; while(=*p++);}main(){char str1[100]="abcd",str2[]="efgh"; strcpy2(str1,str2); printf("%s\n",strl);}


正确答案:t *s++
两种赋值的方法是一样的,将指向的字符的地址赋给s,然后各自增1,s=s-1的目的是在赋值的时候多加了1.

第2题:

若需要把一个字符串赋给字符数组,则选用的函数是()。

A、strlen

B、strcmp

C、strcat

D、strcpy


正确答案:D

第3题:

下列程序中的函数 strcpy2() 实现字符串两次复制 , 即将 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= 【 1 5 】 ;

while( 【 1 6 】 =*p++);

}

main()

{ char str1[100]="abcd",str2[]="efgh";

strcpy2(str1 ,str2); printf("%s\n",str1);

}


正确答案:
答案 s-1 ; *s++
解析:除去第 1 次复制字符串中的结束标志 ‘ \0 ’
             开始第 2 次复制字符串。

第4题:

有以下程序:以下叙述中正确的是( )。

A.在给P和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3

B.由于P数组中没有字符串结束符,长度不能确定;但q数组中字符长度为3

C.由于q数组中没有字符串结束符,长度不能确定;但P数组中字符长度为3

D.由于P和q数组中没有字符串结束符,故长度都不能确定


正确答案:B
本题考查的是库函数的调用。Stden

第5题:

根据程序中的注释将下列缺失部分补充完整。

class A{

char*a;

public:

A():a(0){}

A(char*aa){ //把aa所指字符串复制给a所指向的存储空间

a= 【 】 char[strlen(aa)+1];

strcpy(a,aa);

}

~A(){delete[]a;}

}


正确答案:new
new 解析:本题主要考查对动态存储分配的掌握。要将字符串复制给a所指向的内存空间,需先给指针a动态分配内存空间,故使用运算符new。

第6题:

函数调用strcat(strcpy(str1,str2),str3)的功能是( )。

A.将字符串str1复制到字符串str2中后再连接到字符串str3之后

B.将字符串str1连接到字符串str2之后再复制到字符串str3之后

C.将字符串str2复制到字符串str1后再将字符串str3连接到字符串str1之后

D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中


正确答案:C
解析:strcat(s1,s2)是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制给s1字符串,要保证s1能容纳下连接或复制后的字符串。

第7题:

以下程序中函数scmp功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。#includ<string. h>char *scmp(char *s1,char *s2){ if(strcmp(s1,s2)<0) return(s1); else return(s2);}main(){ int i;char string[20],str[3][20]; for(i=0;i<3;i++) gets(str[i]); strcpy(string,scmp(str[0],str[1])); //库函数 strcpy 对字符串进行复制 strcpy(string,scmp(stfing,str[2])); puts(string); }若运行时依次输入: abed、abba 和abc三个字符串,则输出结果为( )。

A.abed

B.abba

C.abc

D.abca


正确答案:B

第8题:

下列关于字符串的说法中错误的是

A.在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志

B.′\0′作为标志占用存储空间,计入串的实际长度

C.在表示字符串常量的时候不需要人为在其末尾加入′\0′

D.在C语言中,字符串常量隐含处理成以′\0′结尾


正确答案:B

第9题:

编写 strcpy函数

已知 strcpy函数的原型是

char *strcpy(char *strDest, const char *strSrc);

其中 strDest 是目的字符串,strSrc 是源字符串。

(1)不调用 C++/C 的字符串库函数,请编写函数 strcpy

(2)strcpy能把 strSrc 的内容复制到 strDest,为什么还要 char * 类型的返回值?


正确答案:
 

第10题:

有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数): #include<stdio.h> #include<string.h> main( ) {char a[10]="abc",b[10]="012",c[10]="xyz"; strcpy(a+1,b+2); puts(strcat(a,c+1)); } 程序运行后的输出结果是( )。

A.al2xyz

B.12yz

C.a2yz

D.bc2yz


正确答案:C
第一次执行字符串的复制函数a的值是a2,第二次执行的是字符串的连接函数,所以运行结果为a2yz。

更多相关问题