更多“假设有定义 char s1[20]="1234567" ,s2[20]={"ABCD"};,则执行strcpy(s1,s2)后,s1的内容为“ABCD””相关问题
  • 第1题:

    若已包括头文件且已有定义char s1[18],s2={"ABCDE"}和int i,现要将字符串 "ABCDE"赋给

    若已包括头文件<string.h>且已有定义char s1[18],s2={"ABCDE"}和int i,现要将字符串 "ABCDE"赋给s1,下列语句错误的是( )

    A.strcpy(s1,s2)

    B.strcpy(s1,"ABCDE");

    C.s1="ABCDE";

    D.for(i=0;i<6;i++) s1[i]=s2[i];


    正确答案:C
    解析:数组名s1是代表s1数组首地址的地址常量,而不是变量,因为“=”左边不能出现常量, 因此 sl="ABCDE"的方法是错误的。

  • 第2题:

    有以下程序并includeincludefun(char * w,int n){char t,*s1,*s2; s1=w;s2=

    有以下程序 并include<stdio.h> #include<string.h> fun(char * w,int n) { char t,*s1,*s2; s1=w; s2=w+n-1; while(s1<s2) { t=*s1++; * s1=*s2--; * s2=t; } } main() { char p[]="1234567"; fun(p,strlen(p)); puts(p); } 程序运行后的输出结果是( )

    A.1234567

    B.7654321

    C.1711717

    D.7177171


    正确答案:C

  • 第3题:

    以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址

    #include <stdio.h>

    #include <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(string,str[2]));

    printf("%s\n",string);

    }

    若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为

    A.abcd

    B.abba

    C.abc

    D.abca


    正确答案:B
    解析:当第一次执行strcpy()函数时,把输入的前两个串中的较小者复制到string中,第二次调用strcpy()函数时,则是把前两者中的较小者与第三个串进行比较返回较小者,并复制到string中,故string存放了3个输入串中的最小者。

  • 第4题:

    以下程序的输出结果是______。includeincludefun(char*w,int n){ char t,*s

    以下程序的输出结果是______。 #include<stdio.h> #include<string.h> fun(char*w,int n) { char t,*s1,*s2; s1=w;s2=w+n-1; while(s1<s2) { t=*s1++; *s1=*s2-; *s2=t; } } main() { char*p; p="1234567"; fun(p,strlen(p)); puts(p); }

    A.1234567

    B.7654321

    C.1711717

    D.7177171


    正确答案:C
    解析:在子函数fun中,s1为字符串w的起始地址,s2为字符串的结束地址(字符'\0'除外),当执行循环结束循环, w="1711717"。

  • 第5题:

    若已包括头文件,运行下列程序段时输出结果是()。int i=0;char s1[10]="ABCD

    若已包括头文件<stdio.h>和<string.h>,运行下列程序段时输出结果是( )。 int i=0; char s1[10]="ABCD",s2[10]="EFG"; strcat(s1,S2); while(s2[i++]!='\0') s2[i]=s1[i]; puts(s2);

    A.ABC

    B.ABCDEF

    C.EBCDEFG

    D.CBD


    正确答案:C
    解析: strcat(s1,s2)把s2连接到s1的后面,s1=ABCDEFG,执行while(s2[i++]!='\0')后i的值变为1,往后执行s2[i]=s1[i]时是从把s1的第二位给s2的第二位开始,把s1赋给s2。

  • 第6题:

    下列程序运行后,输出结果是______。 include include fun(char *w ,int

    下列程序运行后,输出结果是______。 #include <stdio. h> #include <string. h> fun (char *w ,int n) { char t,*s1,*s2; s1=w; s2=w+n-1; while (s1<s2) { t=*s1++; *s1=*s2--; *s2=t; } } main () { char *p; p="1234567"; fun (p, strlen (p)); puts (p); }

    A.1234567

    B.7654321

    C.1711717

    D.7177171


    正确答案:C

  • 第7题:

    以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。 #include<string> char*scmp(char*s1,char*s2) { if(strcmp(s1,s2)<0) return(s1); else retrun(s2); } main() { int i;char string[20],str[3][20]; for(i=0;i<3;i+

    A.abcd

    B.abba

    C.abc

    D.abca


    正确答案:B

  • 第8题:

    下列选项中,能够满足“若字符串s1等于字符串s2,则执行ST”要求的是( )。

    A.if(strcmp(s2,s1)==0)ST;

    B.if(s1===s2)ST;

    C.if(strcpy(s1,s2)==1)ST;

    D.if(s1,s2==0)ST;


    正确答案:A
    解析:strcmp(char*,char*),函数strcmp用于比较两个字符串的长度,长者为大,若字符个数也一样,则从左至右依次比较相同位上的字符,字符大小按ASCⅡ表值计算,直到最后一个字符,若还相同,则两个字符串相等,返回值0。选项A中if(strcmp(s2,s1)=0)ST,若s2等于s1,则返回值0,0等于0,所以逻辑表达式strcmp(s2,s1)=0为真执行ST。

  • 第9题:

    以下程序的输出结果是( )。 include main() {char*s1,*s2,m; s1=s2=(char*)malloc(size

    以下程序的输出结果是( )。

    include<stdlib.h>

    main()

    {char*s1,*s2,m;

    s1=s2=(char*)malloc(sizeof(char));

    *s1=15;

    *s2=20;

    m=*s1+*s2:

    printf("%d\n",m);

    }


    正确答案:40
    40 解析:malloc()函数的作用是开辟一个长度为sizeof(char)的内存区,s1、s2为指向字符型数据的指针变量,执行“s1=s2=(char*)malloc(sizeof(chat));”语句后,s1、s2指向同一个存储空间,此时m=*s1+*s2=20+20=40。

  • 第10题:

    下列程序的运行结果是()。      #include   #include   FUN(char *w,int n)  {   char temp,*s1,*s2; s1=w;  s2=w+n-1;  while(s1temp=*s1++;  *s1=*s2--;  *s2=temp;  }  }      main( )  {   char *p;  p=“1234567”;  FUN(p,strlen(p));  puts(p);  }


    正确答案:1711717

  • 第11题:

    填空题
    下列程序的运行结果是()。      #include   #include   FUN(char *w,int n)  {   char temp,*s1,*s2; s1=w;  s2=w+n-1;  while(s1temp=*s1++;  *s1=*s2--;  *s2=temp;  }  }      main( )  {   char *p;  p=“1234567”;  FUN(p,strlen(p));  puts(p);  }

    正确答案: 1711717
    解析: 暂无解析

  • 第12题:

    单选题
    若有定义语句 char*s1="OK",*s2="ok"; 以下选项中能够输出"OK"的语句是(  )。
    A

    if(strcmp(s1,s2)==0)puts(s1);

    B

    if(strcmp(s1,s2)!=0)puts(s2);

    C

    if(strcmp(s1,s2)==1)puts(s1);

    D

    if(strcmp(s1,s2)!=0)puts(s1);


    正确答案: B
    解析:
    strcmp用于比较两字符串:当s1s2时,返回值大于0。题中s1与s2两个字符串不相等且s1小于s2,AC两项错误。B项,输出的小写的ok,只有D项输出的是大写的OK。答案选择D选项。

  • 第13题:

    若有以下定义和语句: char*s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是______。

    A.4

    B.5

    C.9

    D.10


    正确答案:A
    解析:函数strcpy(s1,s2)的返回结果是指针s1的新值"1234",因此求串长函数的结果为4。

  • 第14题:

    对于下面的程序includeincludechar *scmp(char*s1,char*s2){if(strcmp(s1,

    对于下面的程序 #include<stdio.h> #include<string.h> char *scmp(char*s1,char*s2) { if(strcmp(s1,s2)<0)return(s1); else return(s2); } main() { int i:char string[20],sb[3][20]; for(i=0;i<3;i++)gets(str[i]); strcpy(string,scmp(str[0],str[1])); strcpy(string,scmp(string,str[21)); printf("%s\n",string); } 若运行时依次输入abcd、abba和abc三个字符串,则输出结果为______。

    A.abcd

    B.abba

    C.abc

    D.abca


    正确答案:B
    解析:本题自定义函数scrnp()的作用是比较字符串s1和s2的大小,如果s1s2,函数返回s1的值,否则返回s2的值。若运行时依次输入abcd、abba和abc三个字符串,执打strcpy(string,scmp(str[0],str[1]));后,string的值为abba,再执行strcpy(string,scmp(string,str[2]));,由于scmp(string,str[2])返回string的值abba,再拷贝到字符串数组string中,所以本题输出abba。

  • 第15题:

    以下程序中函数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

  • 第16题:

    对于下面的程序includeincludechar * scmp(char * s1,char * s2){if(strcm

    对于下面的程序 #include<stdio.h> #include<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(string,scmp(string,str[2])); printf("%s\n",string); } 若运行时依次输入abcd、abba和abc三个字符串,则输出结果为 ______。

    A.abcd

    B.abba

    C.abc

    D.abca


    正确答案:B
    解析:本题自定义函数scmp()的作用是比较字符串s1和s2的大小,如果s1s2,函数返回s1的值,否则返回s2的值。若运行时依次输入abcd、abba和abc三个字符串,执行strcpy(string,scmp(str[0],str[1]));后,string的值为abba,再执行strcpy(string,scmp(string,str[2]));,由于scmp(stringstr[2])返回string的值abba,再拷贝到字符串数组string中,所以本题输出abba。

  • 第17题:

    若已包括头文件,运行下列程序段时输出结果是()。 int i=0; char s1[10]="AB

    若已包括头文件<stdio.h>和<string.h>,运行下列程序段时输出结果是( )。

    int i=0;

    char s1[10]="ABCD",s2[10]="EFG";

    Strcat(s1,S2) ;

    while(s2[i++]!='\0')

    s2[i]=s1[i];

    puts(s2);

    A.ABC

    B.ABCDEF

    C.EBCDEFG

    D.CBD


    正确答案:C
    解析:strcat(s1,s2)把s2连接到s1的后面,s1= ABCDEFG,执行while(s2[i++]!='\0')后i的值变为1,往后执行s2[i]=s1[i]时是从把s1的第二位给s2的第二位开始,把s1赋给s2。

  • 第18题:

    以下程序的输出结果是_______。includeincludefun(char*w,int n){char t,*s

    以下程序的输出结果是_______。 #include<stdio.h> #include<string.h> fun(char*w,int n) { char t,*s1,*s2; s1=w;s2=w+n-1; while(s1<s2) { t=*s1++: *sl=*s2-; *s2=t; } } main() { char*p; p="1234567"; fun(p,strlen(p)); puts(p); }

    A.1234567

    B.7654321

    C.1711717

    D.7177171


    正确答案:C
    解析:在于函数fun中,s1为字符串w的起始地址,s2为字符串的结束地址(字符'\0'除外),当执行循环结束循环,w="1711717"。

  • 第19题:

    以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址: #include <stdio.h> #include <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(string,str[2])); printf("%s\n",string); } 若运行时依次输入abed、abba和abc三个字符串,则输出结果为( )。

    A.abed

    B.abba

    C.abc

    D.abca


    正确答案:B
    解析:本题首先从键盘读入3个字符串放到二维数组str中,然后通过两次比较,每次把较小的字符串复制到字符数组string中,所以执行完以后,string中存放的是最小的字符串,输入的3个字符串前两个字符都是“ab”,而第3个字符‘e’、‘b’、‘c’中‘b’最小,所以最小字符串是“abba”,故应该选择B。

  • 第20题:

    有以下程序:include using namespace std;int main ( ){ char s1[10],s2[10]; char*p

    有以下程序: #include <iostream> using namespace std; int main ( ) { char s1[10],s2[10]; char *p=s1,*q=s2; cin>>s1>>s2; while (*p ! =' \0 ' ) p++; while (*q!='\0') *p++=*q++; *p='\0'; cout<<s1<<end1; return 0; }

    A.abcd0ghij

    B.abcd0ghij0

    C.abcd

    D.abcdghij


    正确答案:D
    解析:程序定义两个字符串指针p和q,并使指针分别指向字符串数组s1和s2。数组s1和s2通过输入的字符串赋初值。程序中第1个while语句,用来计算s1的长度,并把指针p移到数组s1的最后一个元素。第2个while语句,是将数组s2中的字符串合并到数组s1的后面。语句“*p'\0';”,是合并后的字符串s1的结束标志。所以最后s1中的字符串为abcdghij。

  • 第21题:

    ( 31 )若有以下定义和语句

    char s1[10]= " abcd! " ,*s2= " \n123\\ ";

    printf ( " %d %d\n ", strlen ( s1 ) ,strlen ( s2 ) ) ;

    则输出结果是

    A ) 5 5

    B ) 10 5

    C ) 10 7

    D ) 5 8


    正确答案:A

     

  • 第22题:

    设char *s1, *s2;分别指向两个字符串,可以判断字符串s1和s2是否相等的表达式为()

    • A、s1=s2
    • B、s1==s2
    • C、strcpy(s1,s2)==0
    • D、strcmp(s1,s2)==0

    正确答案:D

  • 第23题:

    单选题
    若有以下定义和语句:char s1[10]=abcd!, *s2=n123\\;printf(%d%d, strlen(s1), strlen(s2));则输出结果是(  )。
    A

    55

    B

    105

    C

    107

    D

    58


    正确答案: C
    解析:
    strlen函数是计算字符串长度的函数,求字符串的实际字符个数,不包括字符'\0'在内,在字符'\0'之后的所有字符均不计入长度中。所以strlen(s1)=5。而以"\"开头的字符序列是转义字符,"\\"的含义是一个字符'\',所以s2所指向的内容实际上是"n123\",所以strlen(s2)=5。答案选择A选项。

  • 第24题:

    单选题
    有以下程序 #include  void swap(char *x,char *y) {  char t;  t=*x;  *x=*y;  *y=t; } main() {  char *s1,*s2;   char a[]=abc;  char b[]=123;  s1=a;  s2=b;  swap(s1,s2);  printf(%s,%s,s1,s2); } 程序执行后的输出结果是(  )。
    A

    1bc,a23

    B

    abc,123

    C

    123,abc

    D

    321,cba


    正确答案: B
    解析:
    字符串是一个特殊的数组,按照数组的规则,s1应该指向的是数组的首地址,即"abc"的第一个字符的地址。s2指向的是"abc"的第一个字符的地址。调用swap函数之后交换的是两个字符串的第一个字符'a'和'1'的内容,答案选择A选项。